Commit f319783e authored by Taddeus Kroes's avatar Taddeus Kroes

Removed prototype function grammar.

parent b9aea94e
......@@ -98,8 +98,6 @@ TOKEN_MAP = {
OP_REWRITE: 'REWRITE',
}
FUNCTIONS = [OP_SQRT, OP_SIN, OP_COS, OP_TAN, OP_INT, OP_SOLVE]
def to_expression(obj):
return obj if isinstance(obj, ExpressionBase) else ExpressionLeaf(obj)
......
......@@ -314,7 +314,6 @@ class Parser(BisonParser):
"""
exp : NUMBER
| IDENTIFIER
| function
| LPAREN exp RPAREN
| unary
| binary
......@@ -330,13 +329,10 @@ class Parser(BisonParser):
if option == 1: # rule: IDENTIFIER
return Leaf(values[0])
if option == 2: # rule: function
return values[0]
if option == 3: # rule: LPAREN exp RPAREN
if option == 2: # rule: LPAREN exp RPAREN
return values[1]
if option in [4, 5, 6]: # rule: unary | binary | nary
if option in [3, 4, 5]: # rule: unary | binary | nary
return values[0]
raise BisonSyntaxError('Unsupported option %d in target "%s".'
......@@ -409,45 +405,6 @@ class Parser(BisonParser):
raise BisonSyntaxError('Unsupported option %d in target "%s".'
% (option, target)) # pragma: nocover
def on_function(self, target, option, names, values):
"""
function : function_name LPAREN arglist RPAREN
"""
if option == 0: # rule: function_name LPAREN arglist RPAREN
print 'FUNCTION:', values[0], values[2]
return Node(values[0], *values[2])
raise BisonSyntaxError('Unsupported option %d in target "%s".'
% (option, target)) # pragma: nocover
def on_function_name(self, target, option, names, values):
"""
function_name : SQRT | SIN | COS | TAN | INT | SOLVE
"""
if 0 <= option <= 5: # rule: SQRT | SIN | COS | TAN | INT | SOLVE
return values[0]
#return TOKEN_OP_MAP[values[0]]
raise BisonSyntaxError('Unsupported option %d in target "%s".'
% (option, target)) # pragma: nocover
def on_arglist(self, target, option, names, values):
"""
arglist : arglist COMMA exp
| exp
"""
if option == 0: # rule: arglist COMMA exp
return values[0] + [values[2]]
if option == 1: # rule: exp
return [values[0]]
raise BisonSyntaxError('Unsupported option %d in target "%s".'
% (option, target)) # pragma: nocover
# -----------------------------------------
# operator tokens
# -----------------------------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment