'cdivision': True, # Will be False in 0.12
'cdivision_warnings': False,
'always_allow_keywords': False,
- 'wraparound' : True
+ 'wraparound' : True,
+ 'c99_complex' : False,
+ 'a': 4,
}
# Override types possibilities above, if needed
if value == "True": return True
elif value == "False": return False
else: raise ValueError("%s directive must be set to True or False" % name)
+ elif type is int:
+ try:
+ return int(value)
+ except ValueError:
+ raise ValueError("%s directive must be set to an integer" % name)
else:
assert False
repr(s.sy), repr(s.systring)))
return body
-COMPILER_DIRECTIVE_COMMENT_RE = re.compile(r"^#\s*cython:\s*([a-z_]+)\s*=(.*)$")
+COMPILER_DIRECTIVE_COMMENT_RE = re.compile(r"^#\s*cython:\s*(\w+)\s*=(.*)$")
def p_compiler_directive_comments(s):
result = {}
name = m.group(1)
try:
value = Options.parse_option_value(str(name), str(m.group(2).strip()))
+ if value is not None: # can be False!
+ result[name] = value
except ValueError, e:
s.error(e.args[0], fatal=False)
- if value is not None: # can be False!
- result[name] = value
s.next()
return result