Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
5c33d86b
Commit
5c33d86b
authored
Jun 07, 2009
by
Benjamin Peterson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use booleans for flags
parent
dea29d0c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
19 deletions
+19
-19
Parser/asdl.py
Parser/asdl.py
+9
-9
Parser/asdl_c.py
Parser/asdl_c.py
+10
-10
No files found.
Parser/asdl.py
View file @
5c33d86b
...
...
@@ -204,19 +204,19 @@ class ASDLParser(spark.GenericParser, object):
def
p_field_2
(
self
,
(
type
,
_
,
name
)):
" field ::= Id * Id "
return
Field
(
type
,
name
,
seq
=
1
)
return
Field
(
type
,
name
,
seq
=
True
)
def
p_field_3
(
self
,
(
type
,
_
,
name
)):
" field ::= Id ? Id "
return
Field
(
type
,
name
,
opt
=
1
)
return
Field
(
type
,
name
,
opt
=
True
)
def
p_field_4
(
self
,
(
type
,
_
)):
" field ::= Id * "
return
Field
(
type
,
seq
=
1
)
return
Field
(
type
,
seq
=
True
)
def
p_field_5
(
self
,
(
type
,
_
)):
" field ::= Id ? "
return
Field
(
type
,
opt
=
1
)
return
Field
(
type
,
opt
=
True
)
builtin_types
=
(
"identifier"
,
"string"
,
"int"
,
"bool"
,
"object"
)
...
...
@@ -256,7 +256,7 @@ class Constructor(AST):
return
"Constructor(%s, %s)"
%
(
self
.
name
,
self
.
fields
)
class
Field
(
AST
):
def
__init__
(
self
,
type
,
name
=
None
,
seq
=
0
,
opt
=
0
):
def
__init__
(
self
,
type
,
name
=
None
,
seq
=
False
,
opt
=
False
):
self
.
type
=
type
self
.
name
=
name
self
.
seq
=
seq
...
...
@@ -264,9 +264,9 @@ class Field(AST):
def
__repr__
(
self
):
if
self
.
seq
:
extra
=
", seq=
1
"
extra
=
", seq=
True
"
elif
self
.
opt
:
extra
=
", opt=
1
"
extra
=
", opt=
True
"
else
:
extra
=
""
if
self
.
name
is
None
:
...
...
@@ -294,7 +294,7 @@ class Product(AST):
class
VisitorBase
(
object
):
def
__init__
(
self
,
skip
=
0
):
def
__init__
(
self
,
skip
=
False
):
self
.
cache
=
{}
self
.
skip
=
skip
...
...
@@ -329,7 +329,7 @@ class VisitorBase(object):
class
Check
(
VisitorBase
):
def
__init__
(
self
):
super
(
Check
,
self
).
__init__
(
skip
=
1
)
super
(
Check
,
self
).
__init__
(
skip
=
True
)
self
.
cons
=
{}
self
.
errors
=
0
self
.
types
=
{}
...
...
Parser/asdl_c.py
View file @
5c33d86b
...
...
@@ -86,7 +86,7 @@ class EmitVisitor(asdl.VisitorBase):
self
.
file
=
file
super
(
EmitVisitor
,
self
).
__init__
()
def
emit
(
self
,
s
,
depth
,
reflow
=
1
):
def
emit
(
self
,
s
,
depth
,
reflow
=
True
):
# XXX reflow long lines?
if
reflow
:
lines
=
reflow_lines
(
s
,
depth
)
...
...
@@ -255,7 +255,7 @@ class PrototypeVisitor(EmitVisitor):
ctype
=
get_c_type
(
type
)
self
.
emit_function
(
cons
.
name
,
ctype
,
args
,
attrs
)
def
emit_function
(
self
,
name
,
ctype
,
args
,
attrs
,
union
=
1
):
def
emit_function
(
self
,
name
,
ctype
,
args
,
attrs
,
union
=
True
):
args
=
args
+
attrs
if
args
:
argstr
=
", "
.
join
([
"%s %s"
%
(
atype
,
aname
)
...
...
@@ -267,19 +267,19 @@ class PrototypeVisitor(EmitVisitor):
for
i
in
range
(
1
,
len
(
args
)
+
1
):
margs
+=
", a%d"
%
i
self
.
emit
(
"#define %s(%s) _Py_%s(%s)"
%
(
name
,
margs
,
name
,
margs
),
0
,
reflow
=
0
)
self
.
emit
(
"%s _Py_%s(%s);"
%
(
ctype
,
name
,
argstr
),
0
)
reflow
=
False
)
self
.
emit
(
"%s _Py_%s(%s);"
%
(
ctype
,
name
,
argstr
),
False
)
def
visitProduct
(
self
,
prod
,
name
):
self
.
emit_function
(
name
,
get_c_type
(
name
),
self
.
get_args
(
prod
.
fields
),
[],
union
=
0
)
self
.
get_args
(
prod
.
fields
),
[],
union
=
False
)
class
FunctionVisitor
(
PrototypeVisitor
):
"""Visitor to generate constructor functions for AST."""
def
emit_function
(
self
,
name
,
ctype
,
args
,
attrs
,
union
=
1
):
def
emit
(
s
,
depth
=
0
,
reflow
=
1
):
def
emit_function
(
self
,
name
,
ctype
,
args
,
attrs
,
union
=
True
):
def
emit
(
s
,
depth
=
0
,
reflow
=
True
):
self
.
emit
(
s
,
depth
,
reflow
)
argstr
=
", "
.
join
([
"%s %s"
%
(
atype
,
aname
)
for
atype
,
aname
,
opt
in
args
+
attrs
])
...
...
@@ -298,7 +298,7 @@ class FunctionVisitor(PrototypeVisitor):
emit
(
"PyErr_SetString(PyExc_ValueError,"
,
2
)
msg
=
"field %s is required for %s"
%
(
argname
,
name
)
emit
(
' "%s");'
%
msg
,
2
,
reflow
=
0
)
2
,
reflow
=
False
)
emit
(
'return NULL;'
,
2
)
emit
(
'}'
,
1
)
...
...
@@ -314,7 +314,7 @@ class FunctionVisitor(PrototypeVisitor):
emit
(
""
)
def
emit_body_union
(
self
,
name
,
args
,
attrs
):
def
emit
(
s
,
depth
=
0
,
reflow
=
1
):
def
emit
(
s
,
depth
=
0
,
reflow
=
True
):
self
.
emit
(
s
,
depth
,
reflow
)
emit
(
"p->kind = %s_kind;"
%
name
,
1
)
for
argtype
,
argname
,
opt
in
args
:
...
...
@@ -323,7 +323,7 @@ class FunctionVisitor(PrototypeVisitor):
emit
(
"p->%s = %s;"
%
(
argname
,
argname
),
1
)
def
emit_body_struct
(
self
,
name
,
args
,
attrs
):
def
emit
(
s
,
depth
=
0
,
reflow
=
1
):
def
emit
(
s
,
depth
=
0
,
reflow
=
True
):
self
.
emit
(
s
,
depth
,
reflow
)
for
argtype
,
argname
,
opt
in
args
:
emit
(
"p->%s = %s;"
%
(
argname
,
argname
),
1
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment