aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_lemon_yaccer.y
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-17 13:15:15 +1000
committerDavid Walter Seikel2012-01-17 13:15:15 +1000
commite235a097751de7ad97563997215f76761b3db609 (patch)
tree3dc1098de9770e8b165ed8dbc4128f5f2245afaa /LuaSL/src/LuaSL_lemon_yaccer.y
parentAdd a newline at the end of the file. lol (diff)
downloadSledjHamr-e235a097751de7ad97563997215f76761b3db609.zip
SledjHamr-e235a097751de7ad97563997215f76761b3db609.tar.gz
SledjHamr-e235a097751de7ad97563997215f76761b3db609.tar.bz2
SledjHamr-e235a097751de7ad97563997215f76761b3db609.tar.xz
Use EFL logging.
Diffstat (limited to '')
-rw-r--r--LuaSL/src/LuaSL_lemon_yaccer.y72
1 files changed, 46 insertions, 26 deletions
diff --git a/LuaSL/src/LuaSL_lemon_yaccer.y b/LuaSL/src/LuaSL_lemon_yaccer.y
index 5899052..3df7def 100644
--- a/LuaSL/src/LuaSL_lemon_yaccer.y
+++ b/LuaSL/src/LuaSL_lemon_yaccer.y
@@ -1,5 +1,5 @@
1%include { 1%include {
2#include "LuaSL_LSL_tree.h" 2#include "LuaSL.h"
3} 3}
4 4
5%extra_argument {LuaSL_yyparseParam *param} 5%extra_argument {LuaSL_yyparseParam *param}
@@ -89,40 +89,40 @@ exprList ::= expr.
89exprList ::= . 89exprList ::= .
90 90
91%right LSL_BOOL_AND. 91%right LSL_BOOL_AND.
92expr(A) ::= expr(B) LSL_BOOL_AND(C) expr(D). { A = addOperation(B, C, D); } 92expr(A) ::= expr(B) LSL_BOOL_AND(C) expr(D). { A = addOperation(param, B, C, D); }
93%right LSL_BOOL_OR. 93%right LSL_BOOL_OR.
94expr(A) ::= expr(B) LSL_BOOL_OR(C) expr(D). { A = addOperation(B, C, D); } 94expr(A) ::= expr(B) LSL_BOOL_OR(C) expr(D). { A = addOperation(param, B, C, D); }
95 95
96%left LSL_BIT_AND LSL_BIT_XOR LSL_BIT_OR. 96%left LSL_BIT_AND LSL_BIT_XOR LSL_BIT_OR.
97expr(A) ::= expr(B) LSL_BIT_OR(C) expr(D). { A = addOperation(B, C, D); } 97expr(A) ::= expr(B) LSL_BIT_OR(C) expr(D). { A = addOperation(param, B, C, D); }
98expr(A) ::= expr(B) LSL_BIT_XOR(C) expr(D). { A = addOperation(B, C, D); } 98expr(A) ::= expr(B) LSL_BIT_XOR(C) expr(D). { A = addOperation(param, B, C, D); }
99expr(A) ::= expr(B) LSL_BIT_AND(C) expr(D). { A = addOperation(B, C, D); } 99expr(A) ::= expr(B) LSL_BIT_AND(C) expr(D). { A = addOperation(param, B, C, D); }
100 100
101%right LSL_EQUAL LSL_NOT_EQUAL. 101%right LSL_EQUAL LSL_NOT_EQUAL.
102expr(A) ::= expr(B) LSL_NOT_EQUAL(C) expr(D). { A = addOperation(B, C, D); } 102expr(A) ::= expr(B) LSL_NOT_EQUAL(C) expr(D). { A = addOperation(param, B, C, D); }
103expr(A) ::= expr(B) LSL_EQUAL(C) expr(D). { A = addOperation(B, C, D); } 103expr(A) ::= expr(B) LSL_EQUAL(C) expr(D). { A = addOperation(param, B, C, D); }
104%right LSL_LESS_THAN LSL_GREATER_THAN LSL_LESS_EQUAL LSL_GREATER_EQUAL. 104%right LSL_LESS_THAN LSL_GREATER_THAN LSL_LESS_EQUAL LSL_GREATER_EQUAL.
105expr(A) ::= expr(B) LSL_GREATER_EQUAL(C) expr(D). { A = addOperation(B, C, D); } 105expr(A) ::= expr(B) LSL_GREATER_EQUAL(C) expr(D). { A = addOperation(param, B, C, D); }
106expr(A) ::= expr(B) LSL_LESS_EQUAL(C) expr(D). { A = addOperation(B, C, D); } 106expr(A) ::= expr(B) LSL_LESS_EQUAL(C) expr(D). { A = addOperation(param, B, C, D); }
107expr(A) ::= expr(B) LSL_GREATER_THAN(C) expr(D). { A = addOperation(B, C, D); } 107expr(A) ::= expr(B) LSL_GREATER_THAN(C) expr(D). { A = addOperation(param, B, C, D); }
108expr(A) ::= expr(B) LSL_LESS_THAN(C) expr(D). { A = addOperation(B, C, D); } 108expr(A) ::= expr(B) LSL_LESS_THAN(C) expr(D). { A = addOperation(param, B, C, D); }
109 109
110%left LSL_LEFT_SHIFT LSL_RIGHT_SHIFT. 110%left LSL_LEFT_SHIFT LSL_RIGHT_SHIFT.
111expr(A) ::= expr(B) LSL_RIGHT_SHIFT(C) expr(D). { A = addOperation(B, C, D); } 111expr(A) ::= expr(B) LSL_RIGHT_SHIFT(C) expr(D). { A = addOperation(param, B, C, D); }
112expr(A) ::= expr(B) LSL_LEFT_SHIFT(C) expr(D). { A = addOperation(B, C, D); } 112expr(A) ::= expr(B) LSL_LEFT_SHIFT(C) expr(D). { A = addOperation(param, B, C, D); }
113 113
114%left LSL_SUBTRACT LSL_ADD LSL_CONCATENATE. 114%left LSL_SUBTRACT LSL_ADD LSL_CONCATENATE.
115expr(A) ::= expr(B) LSL_ADD(C) expr(D). { A = addOperation(B, C, D); } 115expr(A) ::= expr(B) LSL_ADD(C) expr(D). { A = addOperation(param, B, C, D); }
116expr(A) ::= expr(B) LSL_SUBTRACT(C) expr(D). { A = addOperation(B, C, D); } 116expr(A) ::= expr(B) LSL_SUBTRACT(C) expr(D). { A = addOperation(param, B, C, D); }
117%left LSL_DIVIDE LSL_MODULO LSL_MULTIPLY LSL_DOT_PRODUCT LSL_CROSS_PRODUCT. 117%left LSL_DIVIDE LSL_MODULO LSL_MULTIPLY LSL_DOT_PRODUCT LSL_CROSS_PRODUCT.
118expr(A) ::= expr(B) LSL_MULTIPLY(C) expr(D). { A = addOperation(B, C, D); } 118expr(A) ::= expr(B) LSL_MULTIPLY(C) expr(D). { A = addOperation(param, B, C, D); }
119expr(A) ::= expr(B) LSL_MODULO(C) expr(D). { A = addOperation(B, C, D); } 119expr(A) ::= expr(B) LSL_MODULO(C) expr(D). { A = addOperation(param, B, C, D); }
120expr(A) ::= expr(B) LSL_DIVIDE(C) expr(D). { A = addOperation(B, C, D); } 120expr(A) ::= expr(B) LSL_DIVIDE(C) expr(D). { A = addOperation(param, B, C, D); }
121 121
122%right LSL_BIT_NOT LSL_BOOL_NOT LSL_NEGATION. 122%right LSL_BIT_NOT LSL_BOOL_NOT LSL_NEGATION.
123expr(A) ::= LSL_BIT_NOT(B) expr(C). { A = addOperation(NULL, B, C); } 123expr(A) ::= LSL_BIT_NOT(B) expr(C). { A = addOperation(param, NULL, B, C); }
124expr(A) ::= LSL_BOOL_NOT(B) expr(C). { A = addOperation(NULL, B, C); } 124expr(A) ::= LSL_BOOL_NOT(B) expr(C). { A = addOperation(param, NULL, B, C); }
125expr(A) ::= LSL_SUBTRACT(B) expr(C). [LSL_NEGATION] { A = addOperation(NULL, B, C); } 125expr(A) ::= LSL_SUBTRACT(B) expr(C). [LSL_NEGATION] { A = addOperation(param, NULL, B, C); }
126 126
127// Types, typecasts, and expression reordering. 127// Types, typecasts, and expression reordering.
128 128
@@ -198,13 +198,33 @@ expr ::= LSL_ANGLE_OPEN expr LSL_COMMA expr LSL_COMMA expr LSL_ANGLE_CLOSE. [L
198 198
199// Parser callbacks. 199// Parser callbacks.
200 200
201%parse_accept {printf("Parsing complete.\n");} 201%parse_accept
202{
203 gameGlobals *game = param->game;
202 204
203%parse_failure {fprintf(stderr,"Giving up. Parser is hopelessly lost!\n");} 205 PI("Parsing complete.");
206}
207
208%parse_failure
209{
210 gameGlobals *game = param->game;
211
212 PE("Giving up. Parser is hopelessly lost!");
213}
204 214
205%stack_overflow {fprintf(stderr,"*******************************************************************Giving up. Parser stack overflow @ line %04d column %04d\n", yypMinor->yy0->line, yypMinor->yy0->column);} // Gotta love consistancy, if it ever happens. 215%stack_overflow
216{
217 gameGlobals *game = param->game;
206 218
207%syntax_error {fprintf(stderr,"*******************************************************************Syntax error @ line %04d column %04d\n", yyminor.yy0->line, yyminor.yy0->column);} 219 PE("Giving up. Parser stack overflow @ line %04d column %04d.", yypMinor->yy0->line, yypMinor->yy0->column); // Gotta love consistancy, if it ever happens.
220}
221
222%syntax_error
223{
224 gameGlobals *game = param->game;
225
226 PE("Syntax error @ line %04d column %04d.", yyminor.yy0->line, yyminor.yy0->column);
227}
208 228
209 229
210/* Undocumented shit that might be useful later. Pffft 230/* Undocumented shit that might be useful later. Pffft