diff options
author | Pearu Peterson <pearu.peterson@gmail.com> | 2006-10-23 11:42:09 +0000 |
---|---|---|
committer | Pearu Peterson <pearu.peterson@gmail.com> | 2006-10-23 11:42:09 +0000 |
commit | 400ba83e59ef77b68c5a415daadcd1548f2e58f6 (patch) | |
tree | 61e9605a888e26ec058597589c5b2688ea846b87 /numpy/f2py/lib/parser/pattern_tools.py | |
parent | 0de69a4aa425c8f472e86f18795ba537893d292e (diff) | |
download | numpy-400ba83e59ef77b68c5a415daadcd1548f2e58f6.tar.gz |
F2PY G3: Cont. implementing Fortran expression parser and unittests.
Diffstat (limited to 'numpy/f2py/lib/parser/pattern_tools.py')
-rw-r--r-- | numpy/f2py/lib/parser/pattern_tools.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/numpy/f2py/lib/parser/pattern_tools.py b/numpy/f2py/lib/parser/pattern_tools.py index 4f6d8b990..0c08eab95 100644 --- a/numpy/f2py/lib/parser/pattern_tools.py +++ b/numpy/f2py/lib/parser/pattern_tools.py @@ -26,8 +26,8 @@ class Pattern: p1.named(name) -> match of <p1> has name p1.match(string) -> return string match with <p1> p1.flags(<re.I,..>) - p1.rsplit(..) - p1.lsplit(..) + p1.rsplit(..) -> split a string from the rightmost p1 occurrence + p1.lsplit(..) -> split a string from the leftmost p1 occurrence """ _special_symbol_map = {'.': '[.]', '*': '[*]', @@ -253,6 +253,7 @@ not_op = Pattern('<not-op>','[.]NOT[.]',flags=re.I) and_op = Pattern('<and-op>','[.]AND[.]',flags=re.I) or_op = Pattern('<or-op>','[.]OR[.]',flags=re.I) equiv_op = Pattern('<equiv-op>','[.](EQV|NEQV)[.]',flags=re.I) +percent_op = Pattern('<percent-op>',r'%',flags=re.I) intrinsic_operator = power_op | mult_op | add_op | concat_op | rel_op | not_op | and_op | or_op | equiv_op extended_intrinsic_operator = intrinsic_operator @@ -283,6 +284,9 @@ abs_binary_constant = abs(binary_constant) abs_octal_constant = abs(octal_constant) abs_hex_constant = abs(hex_constant) +intrinsic_type_name = Pattern('<intrinsic-type-name>',r'(INTEGER|REAL|COMPLEX|LOGICAL|CHARACTER|DOUBLE\s*COMPLEX|DOUBLE\s*PRECISION|BYTE)',flags=re.I) +abs_intrinsic_type_name = abs(intrinsic_type_name) + def _test(): assert name.match('a1_a') assert abs(name).match('a1_a') |