mirror of https://github.com/python/cpython
use booleans for flags
This commit is contained in:
parent
dea29d0c11
commit
5c33d86b4b
|
@ -204,19 +204,19 @@ class ASDLParser(spark.GenericParser, object):
|
||||||
|
|
||||||
def p_field_2(self, (type, _, name)):
|
def p_field_2(self, (type, _, name)):
|
||||||
" field ::= Id * Id "
|
" field ::= Id * Id "
|
||||||
return Field(type, name, seq=1)
|
return Field(type, name, seq=True)
|
||||||
|
|
||||||
def p_field_3(self, (type, _, name)):
|
def p_field_3(self, (type, _, name)):
|
||||||
" field ::= Id ? Id "
|
" field ::= Id ? Id "
|
||||||
return Field(type, name, opt=1)
|
return Field(type, name, opt=True)
|
||||||
|
|
||||||
def p_field_4(self, (type, _)):
|
def p_field_4(self, (type, _)):
|
||||||
" field ::= Id * "
|
" field ::= Id * "
|
||||||
return Field(type, seq=1)
|
return Field(type, seq=True)
|
||||||
|
|
||||||
def p_field_5(self, (type, _)):
|
def p_field_5(self, (type, _)):
|
||||||
" field ::= Id ? "
|
" field ::= Id ? "
|
||||||
return Field(type, opt=1)
|
return Field(type, opt=True)
|
||||||
|
|
||||||
builtin_types = ("identifier", "string", "int", "bool", "object")
|
builtin_types = ("identifier", "string", "int", "bool", "object")
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ class Constructor(AST):
|
||||||
return "Constructor(%s, %s)" % (self.name, self.fields)
|
return "Constructor(%s, %s)" % (self.name, self.fields)
|
||||||
|
|
||||||
class Field(AST):
|
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.type = type
|
||||||
self.name = name
|
self.name = name
|
||||||
self.seq = seq
|
self.seq = seq
|
||||||
|
@ -264,9 +264,9 @@ class Field(AST):
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.seq:
|
if self.seq:
|
||||||
extra = ", seq=1"
|
extra = ", seq=True"
|
||||||
elif self.opt:
|
elif self.opt:
|
||||||
extra = ", opt=1"
|
extra = ", opt=True"
|
||||||
else:
|
else:
|
||||||
extra = ""
|
extra = ""
|
||||||
if self.name is None:
|
if self.name is None:
|
||||||
|
@ -294,7 +294,7 @@ class Product(AST):
|
||||||
|
|
||||||
class VisitorBase(object):
|
class VisitorBase(object):
|
||||||
|
|
||||||
def __init__(self, skip=0):
|
def __init__(self, skip=False):
|
||||||
self.cache = {}
|
self.cache = {}
|
||||||
self.skip = skip
|
self.skip = skip
|
||||||
|
|
||||||
|
@ -329,7 +329,7 @@ class VisitorBase(object):
|
||||||
class Check(VisitorBase):
|
class Check(VisitorBase):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(Check, self).__init__(skip=1)
|
super(Check, self).__init__(skip=True)
|
||||||
self.cons = {}
|
self.cons = {}
|
||||||
self.errors = 0
|
self.errors = 0
|
||||||
self.types = {}
|
self.types = {}
|
||||||
|
|
|
@ -86,7 +86,7 @@ class EmitVisitor(asdl.VisitorBase):
|
||||||
self.file = file
|
self.file = file
|
||||||
super(EmitVisitor, self).__init__()
|
super(EmitVisitor, self).__init__()
|
||||||
|
|
||||||
def emit(self, s, depth, reflow=1):
|
def emit(self, s, depth, reflow=True):
|
||||||
# XXX reflow long lines?
|
# XXX reflow long lines?
|
||||||
if reflow:
|
if reflow:
|
||||||
lines = reflow_lines(s, depth)
|
lines = reflow_lines(s, depth)
|
||||||
|
@ -255,7 +255,7 @@ class PrototypeVisitor(EmitVisitor):
|
||||||
ctype = get_c_type(type)
|
ctype = get_c_type(type)
|
||||||
self.emit_function(cons.name, ctype, args, attrs)
|
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
|
args = args + attrs
|
||||||
if args:
|
if args:
|
||||||
argstr = ", ".join(["%s %s" % (atype, aname)
|
argstr = ", ".join(["%s %s" % (atype, aname)
|
||||||
|
@ -267,19 +267,19 @@ class PrototypeVisitor(EmitVisitor):
|
||||||
for i in range(1, len(args)+1):
|
for i in range(1, len(args)+1):
|
||||||
margs += ", a%d" % i
|
margs += ", a%d" % i
|
||||||
self.emit("#define %s(%s) _Py_%s(%s)" % (name, margs, name, margs), 0,
|
self.emit("#define %s(%s) _Py_%s(%s)" % (name, margs, name, margs), 0,
|
||||||
reflow = 0)
|
reflow=False)
|
||||||
self.emit("%s _Py_%s(%s);" % (ctype, name, argstr), 0)
|
self.emit("%s _Py_%s(%s);" % (ctype, name, argstr), False)
|
||||||
|
|
||||||
def visitProduct(self, prod, name):
|
def visitProduct(self, prod, name):
|
||||||
self.emit_function(name, get_c_type(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):
|
class FunctionVisitor(PrototypeVisitor):
|
||||||
"""Visitor to generate constructor functions for AST."""
|
"""Visitor to generate constructor functions for AST."""
|
||||||
|
|
||||||
def emit_function(self, name, ctype, args, attrs, union=1):
|
def emit_function(self, name, ctype, args, attrs, union=True):
|
||||||
def emit(s, depth=0, reflow=1):
|
def emit(s, depth=0, reflow=True):
|
||||||
self.emit(s, depth, reflow)
|
self.emit(s, depth, reflow)
|
||||||
argstr = ", ".join(["%s %s" % (atype, aname)
|
argstr = ", ".join(["%s %s" % (atype, aname)
|
||||||
for atype, aname, opt in args + attrs])
|
for atype, aname, opt in args + attrs])
|
||||||
|
@ -298,7 +298,7 @@ class FunctionVisitor(PrototypeVisitor):
|
||||||
emit("PyErr_SetString(PyExc_ValueError,", 2)
|
emit("PyErr_SetString(PyExc_ValueError,", 2)
|
||||||
msg = "field %s is required for %s" % (argname, name)
|
msg = "field %s is required for %s" % (argname, name)
|
||||||
emit(' "%s");' % msg,
|
emit(' "%s");' % msg,
|
||||||
2, reflow=0)
|
2, reflow=False)
|
||||||
emit('return NULL;', 2)
|
emit('return NULL;', 2)
|
||||||
emit('}', 1)
|
emit('}', 1)
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ class FunctionVisitor(PrototypeVisitor):
|
||||||
emit("")
|
emit("")
|
||||||
|
|
||||||
def emit_body_union(self, name, args, attrs):
|
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)
|
self.emit(s, depth, reflow)
|
||||||
emit("p->kind = %s_kind;" % name, 1)
|
emit("p->kind = %s_kind;" % name, 1)
|
||||||
for argtype, argname, opt in args:
|
for argtype, argname, opt in args:
|
||||||
|
@ -323,7 +323,7 @@ class FunctionVisitor(PrototypeVisitor):
|
||||||
emit("p->%s = %s;" % (argname, argname), 1)
|
emit("p->%s = %s;" % (argname, argname), 1)
|
||||||
|
|
||||||
def emit_body_struct(self, name, args, attrs):
|
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)
|
self.emit(s, depth, reflow)
|
||||||
for argtype, argname, opt in args:
|
for argtype, argname, opt in args:
|
||||||
emit("p->%s = %s;" % (argname, argname), 1)
|
emit("p->%s = %s;" % (argname, argname), 1)
|
||||||
|
|
Loading…
Reference in New Issue