From 88bd40ecf3f58414bbc2dd1ea924e90d3885116c Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Fri, 25 Jan 2013 21:06:08 +0200 Subject: Added if clause. --- parser.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'parser.py') diff --git a/parser.py b/parser.py index a6af003..ac6c8e5 100755 --- a/parser.py +++ b/parser.py @@ -19,7 +19,9 @@ import ply.yacc as yacc import nodes reserved = {'true' : 'TRUE', - 'false' : 'FALSE'} + 'false' : 'FALSE', + 'if' : 'IF', + 'endif' : 'ENDIF'} tokens = ['LPAREN', 'RPAREN', @@ -119,6 +121,10 @@ def p_statement_method_call(t): 'statement : expression DOT expression LPAREN args RPAREN' t[0] = nodes.MethodCall(t[1], t[3], t[5], t.lineno(1)) +def p_statement_if(t): + 'statement : IF LPAREN statement RPAREN EOL codeblock ENDIF' + t[0] = nodes.IfStatement(t[3], t[6], t.lineno(1)) + def p_statement_expression(t): 'statement : expression' t[0] = nodes.statement_from_expression(t[1]) -- cgit v1.1