diff options
Diffstat (limited to '')
-rw-r--r-- | LuaSL/src/LuaSL_yaccer.y | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/LuaSL/src/LuaSL_yaccer.y b/LuaSL/src/LuaSL_yaccer.y index 75cfd78..57d3075 100644 --- a/LuaSL/src/LuaSL_yaccer.y +++ b/LuaSL/src/LuaSL_yaccer.y | |||
@@ -9,9 +9,12 @@ | |||
9 | 9 | ||
10 | %define api.pure | 10 | %define api.pure |
11 | 11 | ||
12 | %token <integerValue> LSL_INTEGER | 12 | %token <spaceValue> LSL_SPACE |
13 | 13 | ||
14 | %nonassoc LSL_STATEMENT | 14 | %nonassoc LSL_STATEMENT |
15 | |||
16 | %token <integerValue> LSL_INTEGER | ||
17 | |||
15 | %left LSL_BOOL_AND | 18 | %left LSL_BOOL_AND |
16 | %left LSL_BOOL_OR | 19 | %left LSL_BOOL_OR |
17 | %left LSL_BIT_AND LSL_BIT_XOR LSL_BIT_OR | 20 | %left LSL_BIT_AND LSL_BIT_XOR LSL_BIT_OR |
@@ -20,19 +23,25 @@ | |||
20 | %left LSL_LEFT_SHIFT LSL_RIGHT_SHIFT | 23 | %left LSL_LEFT_SHIFT LSL_RIGHT_SHIFT |
21 | %left LSL_SUBTRACT LSL_ADD | 24 | %left LSL_SUBTRACT LSL_ADD |
22 | %left LSL_DIVIDE LSL_MODULO LSL_MULTIPLY | 25 | %left LSL_DIVIDE LSL_MODULO LSL_MULTIPLY |
26 | |||
23 | %right LSL_BIT_NOT LSL_BOOL_NOT LSL_NEGATION | 27 | %right LSL_BIT_NOT LSL_BOOL_NOT LSL_NEGATION |
24 | 28 | ||
25 | %token LSL_PARENTHESIS_OPEN LSL_PARENTHESIS_CLOSE LSL_EXPRESSION | 29 | %token LSL_PARENTHESIS_OPEN LSL_PARENTHESIS_CLOSE LSL_EXPRESSION |
26 | 30 | ||
27 | %type <expressionValue> expr | 31 | %type <expressionValue> expr |
28 | |||
29 | %type <statementValue> statement | 32 | %type <statementValue> statement |
33 | %type <spaceValue> ignorable | ||
30 | 34 | ||
31 | %% | 35 | %% |
32 | 36 | ||
33 | input : | 37 | input : |
34 | expr { ((LuaSL_yyparseParam*)data)->ast = addOperation(LSL_EXPRESSION, $1, $1); } | 38 | expr { ((LuaSL_yyparseParam*)data)->ast = addOperation(LSL_EXPRESSION, $1, $1); } |
35 | | statement { ((LuaSL_yyparseParam*)data)->ast = addStatement($1, ((LuaSL_yyparseParam*)data)->ast); } | 39 | | statement { ((LuaSL_yyparseParam*)data)->ast = addStatement($1, ((LuaSL_yyparseParam*)data)->ast); } |
40 | | ignorable { ((LuaSL_yyparseParam*)data)->ast = addSpace($1, ((LuaSL_yyparseParam*)data)->ast); } | ||
41 | ; | ||
42 | |||
43 | ignorable : | ||
44 | LSL_SPACE { $$ = strdup($1); } | ||
36 | ; | 45 | ; |
37 | 46 | ||
38 | statement : | 47 | statement : |