aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_yaccer.y
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-08 09:01:44 +1000
committerDavid Walter Seikel2012-01-08 09:01:44 +1000
commit0306182b9bcafa7f850dd91aa196ae7d562d2254 (patch)
treec815ac4506e27ed285a67d5ca1f936f40b90b9b6 /LuaSL/src/LuaSL_yaccer.y
parentParenthesis and statement parsing. (diff)
downloadSledjHamr-0306182b9bcafa7f850dd91aa196ae7d562d2254.zip
SledjHamr-0306182b9bcafa7f850dd91aa196ae7d562d2254.tar.gz
SledjHamr-0306182b9bcafa7f850dd91aa196ae7d562d2254.tar.bz2
SledjHamr-0306182b9bcafa7f850dd91aa196ae7d562d2254.tar.xz
Use character classes, some clean up. Tried to add space storing, but it did not work.
Diffstat (limited to '')
-rw-r--r--LuaSL/src/LuaSL_yaccer.y13
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
33input : 37input :
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
43ignorable :
44 LSL_SPACE { $$ = strdup($1); }
36; 45;
37 46
38statement : 47statement :