diff options
Diffstat (limited to 'LuaSL')
-rw-r--r-- | LuaSL/src/LuaSL_lemon_yaccer.y | 65 |
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 | ||
160 | expr(A) ::= identifier(B). { A = B; } | 160 | expr(A) ::= identifier(B). { A = B; } |
161 | 161 | ||
162 | /* | ||
163 | --accepting rule at line 85 ("integer") | ||
164 | LSL_lemon Input LSL_TYPE_INTEGER | ||
165 | LSL_lemon Reduce [script ::=]. | ||
166 | LSL_lemon Shift 1 | ||
167 | LSL_lemon Stack: script | ||
168 | LSL_lemon Shift 177 | ||
169 | LSL_lemon Stack: script LSL_TYPE_INTEGER | ||
170 | --accepting rule at line 36 (" ") | ||
171 | --accepting rule at line 104 ("Checking") | ||
172 | LSL_lemon Input LSL_IDENTIFIER | ||
173 | LSL_lemon Reduce [type ::= LSL_TYPE_INTEGER]. | ||
174 | LSL_lemon Shift 107 | ||
175 | LSL_lemon Stack: script type | ||
176 | LSL_lemon Shift 97 | ||
177 | LSL_lemon Stack: script type LSL_IDENTIFIER | ||
178 | --accepting rule at line 36 (" ") | ||
179 | --accepting rule at line 71 ("=") | ||
180 | LSL_lemon Input LSL_ASSIGNMENT_PLAIN | ||
181 | LSL_lemon Shift 16 | ||
182 | LSL_lemon Stack: script type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN | ||
183 | --accepting rule at line 36 (" ") | ||
184 | --accepting rule at line 104 ("FALSE") | ||
185 | LSL_lemon Input LSL_IDENTIFIER | ||
186 | LSL_lemon Shift 127 | ||
187 | LSL_lemon Stack: script type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN LSL_IDENTIFIER | ||
188 | --accepting rule at line 81 (";") | ||
189 | LSL_lemon Input LSL_STATEMENT | ||
190 | LSL_lemon Reduce [identifier ::= LSL_IDENTIFIER]. | ||
191 | 22/01/2012 15:32:13 INF<15847>:LuaSL LuaSL_compile.c :305 checkVariable() Found FALSE! | ||
192 | LSL_lemon Shift 94 | ||
193 | LSL_lemon Stack: script type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN identifier | ||
194 | LSL_lemon Reduce [expr ::= identifier]. | ||
195 | LSL_lemon Shift 67 | ||
196 | LSL_lemon Stack: script type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN expr | ||
197 | LSL_lemon Shift 142 | ||
198 | LSL_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") | ||
205 | LSL_lemon Input LSL_TYPE_INTEGER | ||
206 | LSL_lemon Reduce [statement ::= type LSL_IDENTIFIER LSL_ASSIGNMENT_PLAIN expr LSL_STATEMENT]. | ||
207 | LSL_lemon Shift 194 | ||
208 | LSL_lemon Stack: script statement | ||
209 | LSL_lemon Reduce [script ::= script statement]. | ||
210 | LSL_lemon Shift 1 | ||
211 | LSL_lemon Stack: script | ||
212 | |||
213 | |||
214 | Results in - | ||
215 | integer {Checking} = | ||
216 | integer {FALSE} = 0; // whether doing consistency check | ||
217 | |||
218 | Instead of - | ||
219 | integer Checking = FALSE; // whether doing consistency check | ||
220 | |||
221 | Coz 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. | ||
163 | expr(A) ::= identifier LSL_ASSIGNMENT_CONCATENATE expr(B). { A = B; } | 228 | expr(A) ::= identifier LSL_ASSIGNMENT_CONCATENATE expr(B). { A = B; } |
164 | expr(A) ::= identifier LSL_ASSIGNMENT_ADD expr(B). { A = B; } | 229 | expr(A) ::= identifier LSL_ASSIGNMENT_ADD expr(B). { A = B; } |
165 | expr(A) ::= identifier LSL_ASSIGNMENT_SUBTRACT expr(B) . { A = B; } | 230 | expr(A) ::= identifier LSL_ASSIGNMENT_SUBTRACT expr(B) . { A = B; } |