aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL
diff options
context:
space:
mode:
Diffstat (limited to 'LuaSL')
-rw-r--r--LuaSL/src/LuaSL_lemon_yaccer.y65
1 files changed, 65 insertions, 0 deletions
diff --git a/LuaSL/src/LuaSL_lemon_yaccer.y b/LuaSL/src/LuaSL_lemon_yaccer.y
index 239b598..325170f 100644
--- a/LuaSL/src/LuaSL_lemon_yaccer.y
+++ b/LuaSL/src/LuaSL_lemon_yaccer.y
@@ -159,7 +159,72 @@ expr(A) ::= LSL_IDENTIFIER(B) LSL_PARENTHESIS_OPEN(C) exprList(D) LSL_PARENTHESI
159 159
160expr(A) ::= identifier(B). { A = B; } 160expr(A) ::= identifier(B). { A = B; }
161 161
162/*
163--accepting rule at line 85 ("integer")
164LSL_lemon Input LSL_TYPE_INTEGER
165LSL_lemon Reduce [script ::=].
166LSL_lemon Shift 1
167LSL_lemon Stack: script
168LSL_lemon Shift 177
169LSL_lemon Stack: script LSL_TYPE_INTEGER
170--accepting rule at line 36 (" ")
171--accepting rule at line 104 ("Checking")
172LSL_lemon Input LSL_IDENTIFIER
173LSL_lemon Reduce [type ::= LSL_TYPE_INTEGER].
174LSL_lemon Shift 107
175LSL_lemon Stack: script type
176LSL_lemon Shift 97
177LSL_lemon Stack: script type LSL_IDENTIFIER
178--accepting rule at line 36 (" ")
179--accepting rule at line 71 ("=")
180LSL_lemon Input LSL_ASSIGNMENT_PLAIN
181LSL_lemon Shift 16
182LSL_lemon Stack: script type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN
183--accepting rule at line 36 (" ")
184--accepting rule at line 104 ("FALSE")
185LSL_lemon Input LSL_IDENTIFIER
186LSL_lemon Shift 127
187LSL_lemon Stack: script type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN LSL_IDENTIFIER
188--accepting rule at line 81 (";")
189LSL_lemon Input LSL_STATEMENT
190LSL_lemon Reduce [identifier ::= LSL_IDENTIFIER].
19122/01/2012 15:32:13 INF<15847>:LuaSL LuaSL_compile.c :305 checkVariable() Found FALSE!
192LSL_lemon Shift 94
193LSL_lemon Stack: script type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN identifier
194LSL_lemon Reduce [expr ::= identifier].
195LSL_lemon Shift 67
196LSL_lemon Stack: script type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN expr
197LSL_lemon Shift 142
198LSL_lemon Stack: script type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN expr LSL_STATEMENT
199--accepting rule at line 36 (" ")
200--accepting rule at line 39 ("// whether doing consistency check")
201--accepting rule at line 36 ("
202
203")
204--accepting rule at line 85 ("integer")
205LSL_lemon Input LSL_TYPE_INTEGER
206LSL_lemon Reduce [statement ::= type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN expr LSL_STATEMENT].
207LSL_lemon Shift 194
208LSL_lemon Stack: script statement
209LSL_lemon Reduce [script ::= script statement].
210LSL_lemon Shift 1
211LSL_lemon Stack: script
212
213
214Results in -
215integer {Checking} =
216integer {FALSE} = 0; // whether doing consistency check
217
218Instead of -
219integer Checking = FALSE; // whether doing consistency check
220
221Coz it replaces the variable with the definition of the variable.
222
223*/
224
225
162%right LSL_ASSIGNMENT_CONCATENATE LSL_ASSIGNMENT_ADD LSL_ASSIGNMENT_SUBTRACT LSL_ASSIGNMENT_MULTIPLY LSL_ASSIGNMENT_MODULO LSL_ASSIGNMENT_DIVIDE LSL_ASSIGNMENT_PLAIN. 226%right LSL_ASSIGNMENT_CONCATENATE LSL_ASSIGNMENT_ADD LSL_ASSIGNMENT_SUBTRACT LSL_ASSIGNMENT_MULTIPLY LSL_ASSIGNMENT_MODULO LSL_ASSIGNMENT_DIVIDE LSL_ASSIGNMENT_PLAIN.
227// Yes, these can be expressions, and can happen in if statements and such.
163expr(A) ::= identifier LSL_ASSIGNMENT_CONCATENATE expr(B). { A = B; } 228expr(A) ::= identifier LSL_ASSIGNMENT_CONCATENATE expr(B). { A = B; }
164expr(A) ::= identifier LSL_ASSIGNMENT_ADD expr(B). { A = B; } 229expr(A) ::= identifier LSL_ASSIGNMENT_ADD expr(B). { A = B; }
165expr(A) ::= identifier LSL_ASSIGNMENT_SUBTRACT expr(B) . { A = B; } 230expr(A) ::= identifier LSL_ASSIGNMENT_SUBTRACT expr(B) . { A = B; }