diff --git a/src/parser.py b/src/parser.py
index 123d55d517e4a5dcc9a9b6aef9180fe5cae40947..17d1c9f6e3dd6621fc8b22e0c1ef812f53c3b4b0 100644
--- a/src/parser.py
+++ b/src/parser.py
@@ -43,6 +43,10 @@ class Parser(BisonParser):
docstrings. Scanner rules are in the 'lexscript' attribute.
"""
+ # Words to be ignored by preprocessor
+ words = zip(*filter(lambda (s, op): TOKEN_MAP[op] == 'FUNCTION', \
+ OP_MAP.iteritems()))[0] + ('raise', 'graph')
+
# Output directory of generated pybison files, including a trailing slash.
buildDirectory = PYBISON_BUILD + '/'
@@ -154,14 +158,11 @@ class Parser(BisonParser):
+ '|([a-z])\s*([0-9])' # match: a4 result: a ^ 4
+ '|([0-9])\s+([0-9]))') # match: 4 4 result: 4 * 4
- words = zip(*filter(lambda (s, op): TOKEN_MAP[op] == 'FUNCTION', \
- OP_MAP.iteritems()))[0] + ('raise', 'graph')
-
def preprocess_data(match):
left, right = filter(None, match.groups())
# Filter words (otherwise they will be preprocessed as well)
- if left + right in words:
+ if left + right in Parser.words:
return left + right
# If all characters on the right are numbers. e.g. "a4", the