aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_lemon_yaccer.y
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-16 05:36:59 +1000
committerDavid Walter Seikel2012-01-16 05:36:59 +1000
commitdb420ae1d5147c32b1395d357ad40778efc400a8 (patch)
treeabda3c85788eed29e0a266e12eab0e0e1cd27e57 /LuaSL/src/LuaSL_lemon_yaccer.y
parentWe need an untyped function declaration, but it conflicts, so leave it commen... (diff)
downloadSledjHamr-db420ae1d5147c32b1395d357ad40778efc400a8.zip
SledjHamr-db420ae1d5147c32b1395d357ad40778efc400a8.tar.gz
SledjHamr-db420ae1d5147c32b1395d357ad40778efc400a8.tar.bz2
SledjHamr-db420ae1d5147c32b1395d357ad40778efc400a8.tar.xz
Make things more robust against a half arsed parser.
Diffstat (limited to '')
-rw-r--r--LuaSL/src/LuaSL_lemon_yaccer.y6
1 files changed, 3 insertions, 3 deletions
diff --git a/LuaSL/src/LuaSL_lemon_yaccer.y b/LuaSL/src/LuaSL_lemon_yaccer.y
index a43885f..83aff23 100644
--- a/LuaSL/src/LuaSL_lemon_yaccer.y
+++ b/LuaSL/src/LuaSL_lemon_yaccer.y
@@ -11,7 +11,7 @@
11%token_destructor {burnLeaf($$);} 11%token_destructor {burnLeaf($$);}
12 12
13 13
14program ::= script LSL_SCRIPT(A). { A->left = param->ast; param->ast = A; } // Lemon does not like the start symbol to be on the RHS, so give it a dummy one. 14program ::= script LSL_SCRIPT(A). { if (NULL != A) A->left = param->ast; param->ast = A; } // Lemon does not like the start symbol to be on the RHS, so give it a dummy one.
15 15
16%right LSL_BOOL_AND. 16%right LSL_BOOL_AND.
17expr(A) ::= expr(B) LSL_BOOL_AND(C) expr(D). { A = addOperation(B, C, D); } 17expr(A) ::= expr(B) LSL_BOOL_AND(C) expr(D). { A = addOperation(B, C, D); }
@@ -68,7 +68,7 @@ exprList ::= expr.
68exprList ::= . 68exprList ::= .
69expr ::= LSL_IDENTIFIER LSL_PARENTHESIS_OPEN exprList LSL_PARENTHESIS_CLOSE. 69expr ::= LSL_IDENTIFIER LSL_PARENTHESIS_OPEN exprList LSL_PARENTHESIS_CLOSE.
70expr(A) ::= LSL_PARENTHESIS_OPEN(B) expr(C) LSL_PARENTHESIS_CLOSE(D). { A = addParenthesis(B, C, D); } 70expr(A) ::= LSL_PARENTHESIS_OPEN(B) expr(C) LSL_PARENTHESIS_CLOSE(D). { A = addParenthesis(B, C, D); }
71expr(A) ::= LSL_PARENTHESIS_OPEN(B) type(C) LSL_PARENTHESIS_CLOSE(D). { A = addTypecast(B, C, D); } 71expr(A) ::= LSL_PARENTHESIS_OPEN(B) type(C) LSL_PARENTHESIS_CLOSE(D) expr(E). { A = addTypecast(B, C, D, E); }
72 72
73%right LSL_ASSIGNMENT_CONCATENATE LSL_ASSIGNMENT_ADD LSL_ASSIGNMENT_SUBTRACT LSL_ASSIGNMENT_MULTIPLY LSL_ASSIGNMENT_MODULO LSL_ASSIGNMENT_DIVIDE LSL_ASSIGNMENT_PLAIN. 73%right LSL_ASSIGNMENT_CONCATENATE LSL_ASSIGNMENT_ADD LSL_ASSIGNMENT_SUBTRACT LSL_ASSIGNMENT_MULTIPLY LSL_ASSIGNMENT_MODULO LSL_ASSIGNMENT_DIVIDE LSL_ASSIGNMENT_PLAIN.
74expr ::= LSL_IDENTIFIER LSL_ASSIGNMENT_CONCATENATE expr. 74expr ::= LSL_IDENTIFIER LSL_ASSIGNMENT_CONCATENATE expr.
@@ -151,7 +151,7 @@ state ::= LSL_IDENTIFIER stateBlock.
151%nonassoc LSL_SCRIPT. 151%nonassoc LSL_SCRIPT.
152script ::= script state. 152script ::= script state.
153script ::= script function. 153script ::= script function.
154script ::= script statement(A). { A->left = param->ast; param->ast = A; } 154script ::= script statement(A). { if (NULL != A) A->left = param->ast; param->ast = A; }
155script ::= . 155script ::= .
156 156
157%nonassoc LSL_SPACE LSL_COMMENT LSL_COMMENT_LINE LSL_UNKNOWN. 157%nonassoc LSL_SPACE LSL_COMMENT LSL_COMMENT_LINE LSL_UNKNOWN.