aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/CodeTools
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs584
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/CSReservedWords.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs230
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/ICodeConverter.cs3
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSCodeTransformer.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/Properties/AssemblyInfo.cs10
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs13
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/LSL_EventTests.cs24
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.lexer.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.parser.cs1710
11 files changed, 1266 insertions, 1322 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs
index 4e0c273..031f00a 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs
@@ -26,6 +26,7 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.Text;
29using System.IO; 30using System.IO;
30using System.Collections.Generic; 31using System.Collections.Generic;
31using System.Reflection; 32using System.Reflection;
@@ -39,9 +40,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
39 { 40 {
40// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 41// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
41 42
43 private static yyLSLSyntax yyLSL = new yyLSLSyntax();
42 private SYMBOL m_astRoot = null; 44 private SYMBOL m_astRoot = null;
43 private Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> m_positionMap; 45 private Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> m_positionMap;
44 private int m_indentWidth = 4; // for indentation
45 private int m_braceCount; // for indentation 46 private int m_braceCount; // for indentation
46 private int m_CSharpLine; // the current line of generated C# code 47 private int m_CSharpLine; // the current line of generated C# code
47 private int m_CSharpCol; // the current column of generated C# code 48 private int m_CSharpCol; // the current column of generated C# code
@@ -94,6 +95,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
94 get { return m_astRoot; } 95 get { return m_astRoot; }
95 } 96 }
96 97
98 public void Clear()
99 {
100 m_astRoot.kids = null;
101 m_astRoot.yylx = null;
102 m_astRoot.yyps = null;
103 m_astRoot = null;
104 m_positionMap = null;
105 m_warnings.Clear();
106 m_comms = null;
107 }
97 /// <summary> 108 /// <summary>
98 /// Resets various counters and metadata. 109 /// Resets various counters and metadata.
99 /// </summary> 110 /// </summary>
@@ -106,18 +117,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
106 m_astRoot = null; 117 m_astRoot = null;
107 } 118 }
108 119
120 public string Convert(string script)
121 {
122 StringBuilder sb = new StringBuilder(4096);
123 Convert(script, sb);
124 return sb.ToString();
125 }
126
109 /// <summary> 127 /// <summary>
110 /// Generate the code from the AST we have. 128 /// Generate the code from the AST we have.
111 /// </summary> 129 /// </summary>
112 /// <param name="script">The LSL source as a string.</param> 130 /// <param name="script">The LSL source as a string.</param>
113 /// <returns>String containing the generated C# code.</returns> 131 /// <returns>String containing the generated C# code.</returns>
114 public string Convert(string script) 132 public void Convert(string script, StringBuilder sb)
115 { 133 {
116// m_log.DebugFormat("[CS CODE GENERATOR]: Converting to C#\n{0}", script); 134// m_log.DebugFormat("[CS CODE GENERATOR]: Converting to C#\n{0}", script);
117 135
118 m_warnings.Clear(); 136 m_warnings.Clear();
119 ResetCounters(); 137 ResetCounters();
120 Parser p = new LSLSyntax(new yyLSLSyntax(), new ErrorHandler(true)); 138 ErrorHandler errorHandler = new ErrorHandler(true);
139 Parser p = new LSLSyntax(yyLSL, errorHandler);
121 140
122 LSL2CSCodeTransformer codeTransformer; 141 LSL2CSCodeTransformer codeTransformer;
123 try 142 try
@@ -148,38 +167,39 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
148 167
149 m_astRoot = codeTransformer.Transform(); 168 m_astRoot = codeTransformer.Transform();
150 169
151 string retstr = String.Empty;
152 170
153 // standard preamble 171 // standard preamble
154 //retstr = GenerateLine("using OpenSim.Region.ScriptEngine.Common;"); 172
155 //retstr += GenerateLine("using System.Collections.Generic;"); 173
156 //retstr += GenerateLine(""); 174
157 //retstr += GenerateLine("namespace SecondLife");
158 //retstr += GenerateLine("{");
159 m_braceCount++; 175 m_braceCount++;
160 //retstr += GenerateIndentedLine("public class Script : OpenSim.Region.ScriptEngine.Common");
161 //retstr += GenerateIndentedLine("{");
162 m_braceCount++; 176 m_braceCount++;
163 177
164 // line number 178 // line number
165 m_CSharpLine += 9; 179 m_CSharpLine += 10;
166 180
167 // here's the payload 181 // here's the payload
168 retstr += GenerateLine(); 182 sb.Append("\n");
169 foreach (SYMBOL s in m_astRoot.kids) 183 foreach (SYMBOL s in m_astRoot.kids)
170 retstr += GenerateNode(m_astRoot, s); 184 GenerateNodeToSB(m_astRoot, s, sb);
185
186 codeTransformer = null;
187 p.m_lexer.m_buf=null;
188 p.m_lexer.yytext = null;
189 p.m_lexer = null;
190 p.m_symbols = null;
191 p = null;
192 errorHandler = null;
171 193
172 // close braces! 194 // close braces!
173 m_braceCount--; 195// m_braceCount--;
174 //retstr += GenerateIndentedLine("}"); 196 //retstr += GenerateIndentedLine("}");
175 m_braceCount--; 197// m_braceCount--;
176 //retstr += GenerateLine("}"); 198 //retstr += GenerateLine("}");
177 199
178 // Removes all carriage return characters which may be generated in Windows platform. Is there 200 // Removes all carriage return characters which may be generated in Windows platform. Is there
179 // cleaner way of doing this? 201 // cleaner way of doing this?
180 retstr = retstr.Replace("\r", ""); 202// sb.Replace("\r", "");
181
182 return retstr;
183 } 203 }
184 204
185 /// <summary> 205 /// <summary>
@@ -206,78 +226,76 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
206 /// <param name="previousSymbol">The parent node.</param> 226 /// <param name="previousSymbol">The parent node.</param>
207 /// <param name="s">The current node to generate code for.</param> 227 /// <param name="s">The current node to generate code for.</param>
208 /// <returns>String containing C# code for SYMBOL s.</returns> 228 /// <returns>String containing C# code for SYMBOL s.</returns>
209 private string GenerateNode(SYMBOL previousSymbol, SYMBOL s) 229 private void GenerateNodeToSB(SYMBOL previousSymbol, SYMBOL s, StringBuilder sb)
210 { 230 {
211 string retstr = String.Empty;
212
213 // make sure to put type lower in the inheritance hierarchy first 231 // make sure to put type lower in the inheritance hierarchy first
214 // ie: since IdentArgument and ExpressionArgument inherit from 232 // ie: since IdentArgument and ExpressionArgument inherit from
215 // Argument, put IdentArgument and ExpressionArgument before Argument 233 // Argument, put IdentArgument and ExpressionArgument before Argument
216 if (s is GlobalFunctionDefinition) 234 if (s is GlobalFunctionDefinition)
217 retstr += GenerateGlobalFunctionDefinition((GlobalFunctionDefinition) s); 235 GenerateGlobalFunctionDefinition((GlobalFunctionDefinition) s, sb);
218 else if (s is GlobalVariableDeclaration) 236 else if (s is GlobalVariableDeclaration)
219 retstr += GenerateGlobalVariableDeclaration((GlobalVariableDeclaration) s); 237 GenerateGlobalVariableDeclaration((GlobalVariableDeclaration) s , sb);
220 else if (s is State) 238 else if (s is State)
221 retstr += GenerateState((State) s); 239 GenerateState((State) s, sb);
222 else if (s is CompoundStatement) 240 else if (s is CompoundStatement)
223 retstr += GenerateCompoundStatement(previousSymbol, (CompoundStatement) s); 241 GenerateCompoundStatement(previousSymbol, (CompoundStatement) s, sb);
224 else if (s is Declaration) 242 else if (s is Declaration)
225 retstr += GenerateDeclaration((Declaration) s); 243 GenerateDeclaration((Declaration) s, sb);
226 else if (s is Statement) 244 else if (s is Statement)
227 retstr += GenerateStatement(previousSymbol, (Statement) s); 245 GenerateStatement(previousSymbol, (Statement) s, sb);
228 else if (s is ReturnStatement) 246 else if (s is ReturnStatement)
229 retstr += GenerateReturnStatement((ReturnStatement) s); 247 GenerateReturnStatement((ReturnStatement) s, sb);
230 else if (s is JumpLabel) 248 else if (s is JumpLabel)
231 retstr += GenerateJumpLabel((JumpLabel) s); 249 GenerateJumpLabel((JumpLabel) s, sb);
232 else if (s is JumpStatement) 250 else if (s is JumpStatement)
233 retstr += GenerateJumpStatement((JumpStatement) s); 251 GenerateJumpStatement((JumpStatement) s, sb);
234 else if (s is StateChange) 252 else if (s is StateChange)
235 retstr += GenerateStateChange((StateChange) s); 253 GenerateStateChange((StateChange) s, sb);
236 else if (s is IfStatement) 254 else if (s is IfStatement)
237 retstr += GenerateIfStatement((IfStatement) s); 255 GenerateIfStatement((IfStatement) s, sb);
238 else if (s is WhileStatement) 256 else if (s is WhileStatement)
239 retstr += GenerateWhileStatement((WhileStatement) s); 257 GenerateWhileStatement((WhileStatement) s, sb);
240 else if (s is DoWhileStatement) 258 else if (s is DoWhileStatement)
241 retstr += GenerateDoWhileStatement((DoWhileStatement) s); 259 GenerateDoWhileStatement((DoWhileStatement) s, sb);
242 else if (s is ForLoop) 260 else if (s is ForLoop)
243 retstr += GenerateForLoop((ForLoop) s); 261 GenerateForLoop((ForLoop) s, sb);
244 else if (s is ArgumentList) 262 else if (s is ArgumentList)
245 retstr += GenerateArgumentList((ArgumentList) s); 263 GenerateArgumentList((ArgumentList) s, sb);
246 else if (s is Assignment) 264 else if (s is Assignment)
247 retstr += GenerateAssignment((Assignment) s); 265 GenerateAssignment((Assignment) s, sb);
248 else if (s is BinaryExpression) 266 else if (s is BinaryExpression)
249 retstr += GenerateBinaryExpression((BinaryExpression) s); 267 GenerateBinaryExpression((BinaryExpression) s, sb);
250 else if (s is ParenthesisExpression) 268 else if (s is ParenthesisExpression)
251 retstr += GenerateParenthesisExpression((ParenthesisExpression) s); 269 GenerateParenthesisExpression((ParenthesisExpression) s, sb);
252 else if (s is UnaryExpression) 270 else if (s is UnaryExpression)
253 retstr += GenerateUnaryExpression((UnaryExpression) s); 271 GenerateUnaryExpression((UnaryExpression) s, sb);
254 else if (s is IncrementDecrementExpression) 272 else if (s is IncrementDecrementExpression)
255 retstr += GenerateIncrementDecrementExpression((IncrementDecrementExpression) s); 273 GenerateIncrementDecrementExpression((IncrementDecrementExpression) s, sb);
256 else if (s is TypecastExpression) 274 else if (s is TypecastExpression)
257 retstr += GenerateTypecastExpression((TypecastExpression) s); 275 GenerateTypecastExpression((TypecastExpression) s, sb);
258 else if (s is FunctionCall) 276 else if (s is FunctionCall)
259 retstr += GenerateFunctionCall((FunctionCall) s); 277 GenerateFunctionCall((FunctionCall) s, sb);
260 else if (s is VectorConstant) 278 else if (s is VectorConstant)
261 retstr += GenerateVectorConstant((VectorConstant) s); 279 GenerateVectorConstant((VectorConstant) s, sb);
262 else if (s is RotationConstant) 280 else if (s is RotationConstant)
263 retstr += GenerateRotationConstant((RotationConstant) s); 281 GenerateRotationConstant((RotationConstant) s, sb);
264 else if (s is ListConstant) 282 else if (s is ListConstant)
265 retstr += GenerateListConstant((ListConstant) s); 283 GenerateListConstant((ListConstant) s, sb);
266 else if (s is Constant) 284 else if (s is Constant)
267 retstr += GenerateConstant((Constant) s); 285 GenerateConstant((Constant) s, sb);
268 else if (s is IdentDotExpression) 286 else if (s is IdentDotExpression)
269 retstr += Generate(CheckName(((IdentDotExpression) s).Name) + "." + ((IdentDotExpression) s).Member, s); 287 Generate(CheckName(((IdentDotExpression) s).Name) + "." + ((IdentDotExpression) s).Member, s, sb);
270 else if (s is IdentExpression) 288 else if (s is IdentExpression)
271 retstr += GenerateIdentifier(((IdentExpression) s).Name, s); 289 GenerateIdentifier(((IdentExpression) s).Name, s, sb);
272 else if (s is IDENT) 290 else if (s is IDENT)
273 retstr += Generate(CheckName(((TOKEN) s).yytext), s); 291 Generate(CheckName(((TOKEN) s).yytext), s, sb);
274 else 292 else
275 { 293 {
276 foreach (SYMBOL kid in s.kids) 294 foreach (SYMBOL kid in s.kids)
277 retstr += GenerateNode(s, kid); 295 GenerateNodeToSB(s, kid,sb);
278 } 296 }
279 297
280 return retstr; 298 return;
281 } 299 }
282 300
283 /// <summary> 301 /// <summary>
@@ -285,10 +303,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
285 /// </summary> 303 /// </summary>
286 /// <param name="gf">The GlobalFunctionDefinition node.</param> 304 /// <param name="gf">The GlobalFunctionDefinition node.</param>
287 /// <returns>String containing C# code for GlobalFunctionDefinition gf.</returns> 305 /// <returns>String containing C# code for GlobalFunctionDefinition gf.</returns>
288 private string GenerateGlobalFunctionDefinition(GlobalFunctionDefinition gf) 306 private void GenerateGlobalFunctionDefinition(GlobalFunctionDefinition gf, StringBuilder sb)
289 { 307 {
290 string retstr = String.Empty;
291
292 // we need to separate the argument declaration list from other kids 308 // we need to separate the argument declaration list from other kids
293 List<SYMBOL> argumentDeclarationListKids = new List<SYMBOL>(); 309 List<SYMBOL> argumentDeclarationListKids = new List<SYMBOL>();
294 List<SYMBOL> remainingKids = new List<SYMBOL>(); 310 List<SYMBOL> remainingKids = new List<SYMBOL>();
@@ -299,18 +315,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
299 else 315 else
300 remainingKids.Add(kid); 316 remainingKids.Add(kid);
301 317
302 retstr += GenerateIndented(String.Format("{0} {1}(", gf.ReturnType, CheckName(gf.Name)), gf); 318 GenerateIndented(String.Format("{0} {1}(", gf.ReturnType, CheckName(gf.Name)), gf, sb);
303 319
304 // print the state arguments, if any 320 // print the state arguments, if any
305 foreach (SYMBOL kid in argumentDeclarationListKids) 321 foreach (SYMBOL kid in argumentDeclarationListKids)
306 retstr += GenerateArgumentDeclarationList((ArgumentDeclarationList) kid); 322 GenerateArgumentDeclarationList((ArgumentDeclarationList) kid, sb);
307 323
308 retstr += GenerateLine(")"); 324 GenerateLine(")", sb);
309 325
310 foreach (SYMBOL kid in remainingKids) 326 foreach (SYMBOL kid in remainingKids)
311 retstr += GenerateNode(gf, kid); 327 GenerateNodeToSB(gf, kid,sb);
312
313 return retstr;
314 } 328 }
315 329
316 /// <summary> 330 /// <summary>
@@ -318,18 +332,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
318 /// </summary> 332 /// </summary>
319 /// <param name="gv">The GlobalVariableDeclaration node.</param> 333 /// <param name="gv">The GlobalVariableDeclaration node.</param>
320 /// <returns>String containing C# code for GlobalVariableDeclaration gv.</returns> 334 /// <returns>String containing C# code for GlobalVariableDeclaration gv.</returns>
321 private string GenerateGlobalVariableDeclaration(GlobalVariableDeclaration gv) 335 private void GenerateGlobalVariableDeclaration(GlobalVariableDeclaration gv, StringBuilder sb)
322 { 336 {
323 string retstr = String.Empty;
324
325 foreach (SYMBOL s in gv.kids) 337 foreach (SYMBOL s in gv.kids)
326 { 338 {
327 retstr += Indent(); 339 Indent(sb);
328 retstr += GenerateNode(gv, s); 340 GenerateNodeToSB(gv, s ,sb);
329 retstr += GenerateLine(";"); 341 GenerateLine(";", sb);
330 } 342 }
331
332 return retstr;
333 } 343 }
334 344
335 /// <summary> 345 /// <summary>
@@ -337,15 +347,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
337 /// </summary> 347 /// </summary>
338 /// <param name="s">The State node.</param> 348 /// <param name="s">The State node.</param>
339 /// <returns>String containing C# code for State s.</returns> 349 /// <returns>String containing C# code for State s.</returns>
340 private string GenerateState(State s) 350 private void GenerateState(State s, StringBuilder sb)
341 { 351 {
342 string retstr = String.Empty;
343
344 foreach (SYMBOL kid in s.kids) 352 foreach (SYMBOL kid in s.kids)
345 if (kid is StateEvent) 353 if (kid is StateEvent)
346 retstr += GenerateStateEvent((StateEvent) kid, s.Name); 354 GenerateStateEvent((StateEvent) kid, s.Name, sb);
347
348 return retstr;
349 } 355 }
350 356
351 /// <summary> 357 /// <summary>
@@ -354,10 +360,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
354 /// <param name="se">The StateEvent node.</param> 360 /// <param name="se">The StateEvent node.</param>
355 /// <param name="parentStateName">The name of the parent state.</param> 361 /// <param name="parentStateName">The name of the parent state.</param>
356 /// <returns>String containing C# code for StateEvent se.</returns> 362 /// <returns>String containing C# code for StateEvent se.</returns>
357 private string GenerateStateEvent(StateEvent se, string parentStateName) 363 private void GenerateStateEvent(StateEvent se, string parentStateName, StringBuilder sb)
358 { 364 {
359 string retstr = String.Empty;
360
361 // we need to separate the argument declaration list from other kids 365 // we need to separate the argument declaration list from other kids
362 List<SYMBOL> argumentDeclarationListKids = new List<SYMBOL>(); 366 List<SYMBOL> argumentDeclarationListKids = new List<SYMBOL>();
363 List<SYMBOL> remainingKids = new List<SYMBOL>(); 367 List<SYMBOL> remainingKids = new List<SYMBOL>();
@@ -369,18 +373,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
369 remainingKids.Add(kid); 373 remainingKids.Add(kid);
370 374
371 // "state" (function) declaration 375 // "state" (function) declaration
372 retstr += GenerateIndented(String.Format("public void {0}_event_{1}(", parentStateName, se.Name), se); 376 GenerateIndented(String.Format("public void {0}_event_{1}(", parentStateName, se.Name), se , sb);
373 377
374 // print the state arguments, if any 378 // print the state arguments, if any
375 foreach (SYMBOL kid in argumentDeclarationListKids) 379 foreach (SYMBOL kid in argumentDeclarationListKids)
376 retstr += GenerateArgumentDeclarationList((ArgumentDeclarationList) kid); 380 GenerateArgumentDeclarationList((ArgumentDeclarationList) kid, sb);
377 381
378 retstr += GenerateLine(")"); 382 GenerateLine(")", sb);
379 383
380 foreach (SYMBOL kid in remainingKids) 384 foreach (SYMBOL kid in remainingKids)
381 retstr += GenerateNode(se, kid); 385 GenerateNodeToSB(se, kid, sb);
382
383 return retstr;
384 } 386 }
385 387
386 /// <summary> 388 /// <summary>
@@ -388,20 +390,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
388 /// </summary> 390 /// </summary>
389 /// <param name="adl">The ArgumentDeclarationList node.</param> 391 /// <param name="adl">The ArgumentDeclarationList node.</param>
390 /// <returns>String containing C# code for ArgumentDeclarationList adl.</returns> 392 /// <returns>String containing C# code for ArgumentDeclarationList adl.</returns>
391 private string GenerateArgumentDeclarationList(ArgumentDeclarationList adl) 393 private void GenerateArgumentDeclarationList(ArgumentDeclarationList adl, StringBuilder sb)
392 { 394 {
393 string retstr = String.Empty;
394
395 int comma = adl.kids.Count - 1; // tells us whether to print a comma 395 int comma = adl.kids.Count - 1; // tells us whether to print a comma
396 396
397 foreach (Declaration d in adl.kids) 397 foreach (Declaration d in adl.kids)
398 { 398 {
399 retstr += Generate(String.Format("{0} {1}", d.Datatype, CheckName(d.Id)), d); 399 Generate(String.Format("{0} {1}", d.Datatype, CheckName(d.Id)), d, sb);
400 if (0 < comma--) 400 if (0 < comma--)
401 retstr += Generate(", "); 401 Generate(", ", sb);
402 } 402 }
403
404 return retstr;
405 } 403 }
406 404
407 /// <summary> 405 /// <summary>
@@ -409,20 +407,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
409 /// </summary> 407 /// </summary>
410 /// <param name="al">The ArgumentList node.</param> 408 /// <param name="al">The ArgumentList node.</param>
411 /// <returns>String containing C# code for ArgumentList al.</returns> 409 /// <returns>String containing C# code for ArgumentList al.</returns>
412 private string GenerateArgumentList(ArgumentList al) 410 private void GenerateArgumentList(ArgumentList al, StringBuilder sb)
413 { 411 {
414 string retstr = String.Empty;
415
416 int comma = al.kids.Count - 1; // tells us whether to print a comma 412 int comma = al.kids.Count - 1; // tells us whether to print a comma
417 413
418 foreach (SYMBOL s in al.kids) 414 foreach (SYMBOL s in al.kids)
419 { 415 {
420 retstr += GenerateNode(al, s); 416 GenerateNodeToSB(al, s, sb);
421 if (0 < comma--) 417 if (0 < comma--)
422 retstr += Generate(", "); 418 Generate(", ", sb);
423 } 419 }
424
425 return retstr;
426 } 420 }
427 421
428 /// <summary> 422 /// <summary>
@@ -430,33 +424,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
430 /// </summary> 424 /// </summary>
431 /// <param name="cs">The CompoundStatement node.</param> 425 /// <param name="cs">The CompoundStatement node.</param>
432 /// <returns>String containing C# code for CompoundStatement cs.</returns> 426 /// <returns>String containing C# code for CompoundStatement cs.</returns>
433 private string GenerateCompoundStatement(SYMBOL previousSymbol, CompoundStatement cs) 427 private void GenerateCompoundStatement(SYMBOL previousSymbol, CompoundStatement cs, StringBuilder sb)
434 { 428 {
435 string retstr = String.Empty;
436
437 // opening brace 429 // opening brace
438 retstr += GenerateIndentedLine("{"); 430 GenerateIndentedLine("{", sb);
439 m_braceCount++; 431 m_braceCount++;
440 432
441 if (m_insertCoopTerminationChecks) 433 if (m_insertCoopTerminationChecks)
442 { 434 {
443 // We have to check in event functions as well because the user can manually call these. 435 // We have to check in event functions as well because the user can manually call these.
444 if (previousSymbol is GlobalFunctionDefinition 436 if (previousSymbol is GlobalFunctionDefinition
445 || previousSymbol is WhileStatement 437 || previousSymbol is WhileStatement
446 || previousSymbol is DoWhileStatement 438 || previousSymbol is DoWhileStatement
447 || previousSymbol is ForLoop 439 || previousSymbol is ForLoop
448 || previousSymbol is StateEvent) 440 || previousSymbol is StateEvent)
449 retstr += GenerateIndentedLine(m_coopTerminationCheck); 441 GenerateIndentedLine(m_coopTerminationCheck, sb);
450 } 442 }
451 443
452 foreach (SYMBOL kid in cs.kids) 444 foreach (SYMBOL kid in cs.kids)
453 retstr += GenerateNode(cs, kid); 445 GenerateNodeToSB(cs, kid, sb);
454 446
455 // closing brace 447 // closing brace
456 m_braceCount--; 448 m_braceCount--;
457 retstr += GenerateIndentedLine("}"); 449 GenerateIndentedLine("}", sb);
458
459 return retstr;
460 } 450 }
461 451
462 /// <summary> 452 /// <summary>
@@ -464,9 +454,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
464 /// </summary> 454 /// </summary>
465 /// <param name="d">The Declaration node.</param> 455 /// <param name="d">The Declaration node.</param>
466 /// <returns>String containing C# code for Declaration d.</returns> 456 /// <returns>String containing C# code for Declaration d.</returns>
467 private string GenerateDeclaration(Declaration d) 457 private void GenerateDeclaration(Declaration d, StringBuilder sb)
468 { 458 {
469 return Generate(String.Format("{0} {1}", d.Datatype, CheckName(d.Id)), d); 459 Generate(String.Format("{0} {1}", d.Datatype, CheckName(d.Id)), d, sb);
470 } 460 }
471 461
472 /// <summary> 462 /// <summary>
@@ -474,7 +464,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
474 /// </summary> 464 /// </summary>
475 /// <param name="s">The Statement node.</param> 465 /// <param name="s">The Statement node.</param>
476 /// <returns>String containing C# code for Statement s.</returns> 466 /// <returns>String containing C# code for Statement s.</returns>
477 private string GenerateStatement(SYMBOL previousSymbol, Statement s) 467 private void GenerateStatement(SYMBOL previousSymbol, Statement s, StringBuilder sb)
478 { 468 {
479 string retstr = String.Empty; 469 string retstr = String.Empty;
480 bool printSemicolon = true; 470 bool printSemicolon = true;
@@ -484,20 +474,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
484 { 474 {
485 // A non-braced single line do while structure cannot contain multiple statements. 475 // A non-braced single line do while structure cannot contain multiple statements.
486 // So to insert the termination check we change this to a braced control structure instead. 476 // So to insert the termination check we change this to a braced control structure instead.
487 if (previousSymbol is WhileStatement 477 if (previousSymbol is WhileStatement
488 || previousSymbol is DoWhileStatement 478 || previousSymbol is DoWhileStatement
489 || previousSymbol is ForLoop) 479 || previousSymbol is ForLoop)
490 { 480 {
491 transformToBlock = true; 481 transformToBlock = true;
492 482
493 // FIXME: This will be wrongly indented because the previous for/while/dowhile will have already indented. 483 // FIXME: This will be wrongly indented because the previous for/while/dowhile will have already indented.
494 retstr += GenerateIndentedLine("{"); 484 GenerateIndentedLine("{", sb);
495 485
496 retstr += GenerateIndentedLine(m_coopTerminationCheck); 486 GenerateIndentedLine(m_coopTerminationCheck, sb);
497 } 487 }
498 } 488 }
499 489
500 retstr += Indent(); 490 Indent(sb);
501 491
502 if (0 < s.kids.Count) 492 if (0 < s.kids.Count)
503 { 493 {
@@ -508,19 +498,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
508 // (MONO) error. 498 // (MONO) error.
509 if (!(s.kids.Top is IdentExpression && 1 == s.kids.Count)) 499 if (!(s.kids.Top is IdentExpression && 1 == s.kids.Count))
510 foreach (SYMBOL kid in s.kids) 500 foreach (SYMBOL kid in s.kids)
511 retstr += GenerateNode(s, kid); 501 GenerateNodeToSB(s, kid, sb);
512 } 502 }
513 503
514 if (printSemicolon) 504 if (printSemicolon)
515 retstr += GenerateLine(";"); 505 GenerateLine(";", sb);
516 506
517 if (transformToBlock) 507 if (transformToBlock)
518 { 508 {
519 // FIXME: This will be wrongly indented because the for/while/dowhile is currently handling the unindent 509 // FIXME: This will be wrongly indented because the for/while/dowhile is currently handling the unindent
520 retstr += GenerateIndentedLine("}"); 510 GenerateIndentedLine("}", sb);
521 } 511 }
522
523 return retstr;
524 } 512 }
525 513
526 /// <summary> 514 /// <summary>
@@ -528,25 +516,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
528 /// </summary> 516 /// </summary>
529 /// <param name="a">The Assignment node.</param> 517 /// <param name="a">The Assignment node.</param>
530 /// <returns>String containing C# code for Assignment a.</returns> 518 /// <returns>String containing C# code for Assignment a.</returns>
531 private string GenerateAssignment(Assignment a) 519 private void GenerateAssignment(Assignment a, StringBuilder sb)
532 { 520 {
533 string retstr = String.Empty;
534
535 List<string> identifiers = new List<string>(); 521 List<string> identifiers = new List<string>();
536 checkForMultipleAssignments(identifiers, a); 522 checkForMultipleAssignments(identifiers, a);
537 523
538 retstr += GenerateNode(a, (SYMBOL) a.kids.Pop()); 524 GenerateNodeToSB(a, (SYMBOL) a.kids.Pop(), sb);
539 retstr += Generate(String.Format(" {0} ", a.AssignmentType), a); 525 Generate(String.Format(" {0} ", a.AssignmentType), a, sb);
540 foreach (SYMBOL kid in a.kids) 526 foreach (SYMBOL kid in a.kids)
541 retstr += GenerateNode(a, kid); 527 GenerateNodeToSB(a, kid, sb);
542
543 return retstr;
544 } 528 }
545 529
546 // This code checks for LSL of the following forms, and generates a 530 // This code checks for LSL of the following forms, and generates a
547 // warning if it finds them. 531 // warning if it finds them.
548 // 532 //
549 // list l = [ "foo" ]; 533 // list l = [ "foo" ];
550 // l = (l=[]) + l + ["bar"]; 534 // l = (l=[]) + l + ["bar"];
551 // (produces l=["foo","bar"] in SL but l=["bar"] in OS) 535 // (produces l=["foo","bar"] in SL but l=["bar"] in OS)
552 // 536 //
@@ -604,16 +588,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
604 /// </summary> 588 /// </summary>
605 /// <param name="rs">The ReturnStatement node.</param> 589 /// <param name="rs">The ReturnStatement node.</param>
606 /// <returns>String containing C# code for ReturnStatement rs.</returns> 590 /// <returns>String containing C# code for ReturnStatement rs.</returns>
607 private string GenerateReturnStatement(ReturnStatement rs) 591 private void GenerateReturnStatement(ReturnStatement rs, StringBuilder sb)
608 { 592 {
609 string retstr = String.Empty; 593 Generate("return ", rs, sb);
610
611 retstr += Generate("return ", rs);
612 594
613 foreach (SYMBOL kid in rs.kids) 595 foreach (SYMBOL kid in rs.kids)
614 retstr += GenerateNode(rs, kid); 596 GenerateNodeToSB(rs, kid, sb);
615
616 return retstr;
617 } 597 }
618 598
619 /// <summary> 599 /// <summary>
@@ -621,7 +601,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
621 /// </summary> 601 /// </summary>
622 /// <param name="jl">The JumpLabel node.</param> 602 /// <param name="jl">The JumpLabel node.</param>
623 /// <returns>String containing C# code for JumpLabel jl.</returns> 603 /// <returns>String containing C# code for JumpLabel jl.</returns>
624 private string GenerateJumpLabel(JumpLabel jl) 604 private void GenerateJumpLabel(JumpLabel jl, StringBuilder sb)
625 { 605 {
626 string labelStatement; 606 string labelStatement;
627 607
@@ -630,7 +610,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
630 else 610 else
631 labelStatement = "NoOp();"; 611 labelStatement = "NoOp();";
632 612
633 return GenerateLine(String.Format("{0}: {1}", CheckName(jl.LabelName), labelStatement), jl); 613 GenerateLine(String.Format("{0}: {1}", CheckName(jl.LabelName), labelStatement), jl, sb);
634 } 614 }
635 615
636 /// <summary> 616 /// <summary>
@@ -638,9 +618,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
638 /// </summary> 618 /// </summary>
639 /// <param name="js">The JumpStatement node.</param> 619 /// <param name="js">The JumpStatement node.</param>
640 /// <returns>String containing C# code for JumpStatement js.</returns> 620 /// <returns>String containing C# code for JumpStatement js.</returns>
641 private string GenerateJumpStatement(JumpStatement js) 621 private void GenerateJumpStatement(JumpStatement js, StringBuilder sb)
642 { 622 {
643 return Generate(String.Format("goto {0}", CheckName(js.TargetName)), js); 623 Generate(String.Format("goto {0}", CheckName(js.TargetName)), js, sb);
644 } 624 }
645 625
646 /// <summary> 626 /// <summary>
@@ -648,32 +628,28 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
648 /// </summary> 628 /// </summary>
649 /// <param name="ifs">The IfStatement node.</param> 629 /// <param name="ifs">The IfStatement node.</param>
650 /// <returns>String containing C# code for IfStatement ifs.</returns> 630 /// <returns>String containing C# code for IfStatement ifs.</returns>
651 private string GenerateIfStatement(IfStatement ifs) 631 private void GenerateIfStatement(IfStatement ifs, StringBuilder sb)
652 { 632 {
653 string retstr = String.Empty; 633 GenerateIndented("if (", ifs, sb);
654 634 GenerateNodeToSB(ifs, (SYMBOL) ifs.kids.Pop(), sb);
655 retstr += GenerateIndented("if (", ifs); 635 GenerateLine(")", sb);
656 retstr += GenerateNode(ifs, (SYMBOL) ifs.kids.Pop());
657 retstr += GenerateLine(")");
658 636
659 // CompoundStatement handles indentation itself but we need to do it 637 // CompoundStatement handles indentation itself but we need to do it
660 // otherwise. 638 // otherwise.
661 bool indentHere = ifs.kids.Top is Statement; 639 bool indentHere = ifs.kids.Top is Statement;
662 if (indentHere) m_braceCount++; 640 if (indentHere) m_braceCount++;
663 retstr += GenerateNode(ifs, (SYMBOL) ifs.kids.Pop()); 641 GenerateNodeToSB(ifs, (SYMBOL) ifs.kids.Pop(), sb);
664 if (indentHere) m_braceCount--; 642 if (indentHere) m_braceCount--;
665 643
666 if (0 < ifs.kids.Count) // do it again for an else 644 if (0 < ifs.kids.Count) // do it again for an else
667 { 645 {
668 retstr += GenerateIndentedLine("else", ifs); 646 GenerateIndentedLine("else", ifs, sb);
669 647
670 indentHere = ifs.kids.Top is Statement; 648 indentHere = ifs.kids.Top is Statement;
671 if (indentHere) m_braceCount++; 649 if (indentHere) m_braceCount++;
672 retstr += GenerateNode(ifs, (SYMBOL) ifs.kids.Pop()); 650 GenerateNodeToSB(ifs, (SYMBOL) ifs.kids.Pop(), sb);
673 if (indentHere) m_braceCount--; 651 if (indentHere) m_braceCount--;
674 } 652 }
675
676 return retstr;
677 } 653 }
678 654
679 /// <summary> 655 /// <summary>
@@ -681,9 +657,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
681 /// </summary> 657 /// </summary>
682 /// <param name="sc">The StateChange node.</param> 658 /// <param name="sc">The StateChange node.</param>
683 /// <returns>String containing C# code for StateChange sc.</returns> 659 /// <returns>String containing C# code for StateChange sc.</returns>
684 private string GenerateStateChange(StateChange sc) 660 private void GenerateStateChange(StateChange sc, StringBuilder sb)
685 { 661 {
686 return Generate(String.Format("state(\"{0}\")", sc.NewState), sc); 662 Generate(String.Format("state(\"{0}\")", sc.NewState), sc, sb);
687 } 663 }
688 664
689 /// <summary> 665 /// <summary>
@@ -691,22 +667,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
691 /// </summary> 667 /// </summary>
692 /// <param name="ws">The WhileStatement node.</param> 668 /// <param name="ws">The WhileStatement node.</param>
693 /// <returns>String containing C# code for WhileStatement ws.</returns> 669 /// <returns>String containing C# code for WhileStatement ws.</returns>
694 private string GenerateWhileStatement(WhileStatement ws) 670 private void GenerateWhileStatement(WhileStatement ws, StringBuilder sb)
695 { 671 {
696 string retstr = String.Empty; 672 GenerateIndented("while (", ws, sb);
697 673 GenerateNodeToSB(ws, (SYMBOL) ws.kids.Pop(), sb);
698 retstr += GenerateIndented("while (", ws); 674 GenerateLine(")", sb);
699 retstr += GenerateNode(ws, (SYMBOL) ws.kids.Pop());
700 retstr += GenerateLine(")");
701 675
702 // CompoundStatement handles indentation itself but we need to do it 676 // CompoundStatement handles indentation itself but we need to do it
703 // otherwise. 677 // otherwise.
704 bool indentHere = ws.kids.Top is Statement; 678 bool indentHere = ws.kids.Top is Statement;
705 if (indentHere) m_braceCount++; 679 if (indentHere) m_braceCount++;
706 retstr += GenerateNode(ws, (SYMBOL) ws.kids.Pop()); 680 GenerateNodeToSB(ws, (SYMBOL) ws.kids.Pop(), sb);
707 if (indentHere) m_braceCount--; 681 if (indentHere) m_braceCount--;
708
709 return retstr;
710 } 682 }
711 683
712 /// <summary> 684 /// <summary>
@@ -714,24 +686,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
714 /// </summary> 686 /// </summary>
715 /// <param name="dws">The DoWhileStatement node.</param> 687 /// <param name="dws">The DoWhileStatement node.</param>
716 /// <returns>String containing C# code for DoWhileStatement dws.</returns> 688 /// <returns>String containing C# code for DoWhileStatement dws.</returns>
717 private string GenerateDoWhileStatement(DoWhileStatement dws) 689 private void GenerateDoWhileStatement(DoWhileStatement dws, StringBuilder sb)
718 { 690 {
719 string retstr = String.Empty; 691 GenerateIndentedLine("do", dws, sb);
720
721 retstr += GenerateIndentedLine("do", dws);
722 692
723 // CompoundStatement handles indentation itself but we need to do it 693 // CompoundStatement handles indentation itself but we need to do it
724 // otherwise. 694 // otherwise.
725 bool indentHere = dws.kids.Top is Statement; 695 bool indentHere = dws.kids.Top is Statement;
726 if (indentHere) m_braceCount++; 696 if (indentHere) m_braceCount++;
727 retstr += GenerateNode(dws, (SYMBOL) dws.kids.Pop()); 697 GenerateNodeToSB(dws, (SYMBOL) dws.kids.Pop(), sb);
728 if (indentHere) m_braceCount--; 698 if (indentHere) m_braceCount--;
729 699
730 retstr += GenerateIndented("while (", dws); 700 GenerateIndented("while (", dws ,sb);
731 retstr += GenerateNode(dws, (SYMBOL) dws.kids.Pop()); 701 GenerateNodeToSB(dws, (SYMBOL) dws.kids.Pop(), sb);
732 retstr += GenerateLine(");"); 702 GenerateLine(");", sb);
733
734 return retstr;
735 } 703 }
736 704
737 /// <summary> 705 /// <summary>
@@ -739,11 +707,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
739 /// </summary> 707 /// </summary>
740 /// <param name="fl">The ForLoop node.</param> 708 /// <param name="fl">The ForLoop node.</param>
741 /// <returns>String containing C# code for ForLoop fl.</returns> 709 /// <returns>String containing C# code for ForLoop fl.</returns>
742 private string GenerateForLoop(ForLoop fl) 710 private void GenerateForLoop(ForLoop fl, StringBuilder sb)
743 { 711 {
744 string retstr = String.Empty; 712 GenerateIndented("for (", fl, sb);
745
746 retstr += GenerateIndented("for (", fl);
747 713
748 // It's possible that we don't have an assignment, in which case 714 // It's possible that we don't have an assignment, in which case
749 // the child will be null and we only print the semicolon. 715 // the child will be null and we only print the semicolon.
@@ -752,26 +718,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
752 ForLoopStatement s = (ForLoopStatement) fl.kids.Pop(); 718 ForLoopStatement s = (ForLoopStatement) fl.kids.Pop();
753 if (null != s) 719 if (null != s)
754 { 720 {
755 retstr += GenerateForLoopStatement(s); 721 GenerateForLoopStatement(s, sb);
756 } 722 }
757 retstr += Generate("; "); 723 Generate("; ", sb);
758 // for (x = 0; x < 10; x++) 724 // for (x = 0; x < 10; x++)
759 // ^^^^^^ 725 // ^^^^^^
760 retstr += GenerateNode(fl, (SYMBOL) fl.kids.Pop()); 726 GenerateNodeToSB(fl, (SYMBOL) fl.kids.Pop(), sb);
761 retstr += Generate("; "); 727 Generate("; ", sb);
762 // for (x = 0; x < 10; x++) 728 // for (x = 0; x < 10; x++)
763 // ^^^ 729 // ^^^
764 retstr += GenerateForLoopStatement((ForLoopStatement) fl.kids.Pop()); 730 GenerateForLoopStatement((ForLoopStatement) fl.kids.Pop(), sb);
765 retstr += GenerateLine(")"); 731 GenerateLine(")", sb);
766 732
767 // CompoundStatement handles indentation itself but we need to do it 733 // CompoundStatement handles indentation itself but we need to do it
768 // otherwise. 734 // otherwise.
769 bool indentHere = fl.kids.Top is Statement; 735 bool indentHere = fl.kids.Top is Statement;
770 if (indentHere) m_braceCount++; 736 if (indentHere) m_braceCount++;
771 retstr += GenerateNode(fl, (SYMBOL) fl.kids.Pop()); 737 GenerateNodeToSB(fl, (SYMBOL) fl.kids.Pop(), sb);
772 if (indentHere) m_braceCount--; 738 if (indentHere) m_braceCount--;
773
774 return retstr;
775 } 739 }
776 740
777 /// <summary> 741 /// <summary>
@@ -779,10 +743,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
779 /// </summary> 743 /// </summary>
780 /// <param name="fls">The ForLoopStatement node.</param> 744 /// <param name="fls">The ForLoopStatement node.</param>
781 /// <returns>String containing C# code for ForLoopStatement fls.</returns> 745 /// <returns>String containing C# code for ForLoopStatement fls.</returns>
782 private string GenerateForLoopStatement(ForLoopStatement fls) 746 private void GenerateForLoopStatement(ForLoopStatement fls, StringBuilder sb)
783 { 747 {
784 string retstr = String.Empty;
785
786 int comma = fls.kids.Count - 1; // tells us whether to print a comma 748 int comma = fls.kids.Count - 1; // tells us whether to print a comma
787 749
788 // It's possible that all we have is an empty Ident, for example: 750 // It's possible that all we have is an empty Ident, for example:
@@ -791,12 +753,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
791 // 753 //
792 // Which is illegal in C# (MONO). We'll skip it. 754 // Which is illegal in C# (MONO). We'll skip it.
793 if (fls.kids.Top is IdentExpression && 1 == fls.kids.Count) 755 if (fls.kids.Top is IdentExpression && 1 == fls.kids.Count)
794 return retstr; 756 return;
795 757
796 for (int i = 0; i < fls.kids.Count; i++) 758 for (int i = 0; i < fls.kids.Count; i++)
797 { 759 {
798 SYMBOL s = (SYMBOL)fls.kids[i]; 760 SYMBOL s = (SYMBOL)fls.kids[i];
799 761
800 // Statements surrounded by parentheses in for loops 762 // Statements surrounded by parentheses in for loops
801 // 763 //
802 // e.g. for ((i = 0), (j = 7); (i < 10); (++i)) 764 // e.g. for ((i = 0), (j = 7); (i < 10); (++i))
@@ -812,13 +774,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
812 // like it would be considerably more complicated to handle). 774 // like it would be considerably more complicated to handle).
813 while (s is ParenthesisExpression) 775 while (s is ParenthesisExpression)
814 s = (SYMBOL)s.kids.Pop(); 776 s = (SYMBOL)s.kids.Pop();
815 777
816 retstr += GenerateNode(fls, s); 778 GenerateNodeToSB(fls, s, sb);
817 if (0 < comma--) 779 if (0 < comma--)
818 retstr += Generate(", "); 780 Generate(", ", sb);
819 } 781 }
820
821 return retstr;
822 } 782 }
823 783
824 /// <summary> 784 /// <summary>
@@ -826,31 +786,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
826 /// </summary> 786 /// </summary>
827 /// <param name="be">The BinaryExpression node.</param> 787 /// <param name="be">The BinaryExpression node.</param>
828 /// <returns>String containing C# code for BinaryExpression be.</returns> 788 /// <returns>String containing C# code for BinaryExpression be.</returns>
829 private string GenerateBinaryExpression(BinaryExpression be) 789 private void GenerateBinaryExpression(BinaryExpression be, StringBuilder sb)
830 { 790 {
831 string retstr = String.Empty;
832
833 if (be.ExpressionSymbol.Equals("&&") || be.ExpressionSymbol.Equals("||")) 791 if (be.ExpressionSymbol.Equals("&&") || be.ExpressionSymbol.Equals("||"))
834 { 792 {
835 // special case handling for logical and/or, see Mantis 3174 793 // special case handling for logical and/or, see Mantis 3174
836 retstr += "((bool)("; 794 sb.Append("((bool)(");
837 retstr += GenerateNode(be, (SYMBOL)be.kids.Pop()); 795 GenerateNodeToSB(be, (SYMBOL)be.kids.Pop(), sb);
838 retstr += "))"; 796 sb.Append("))");
839 retstr += Generate(String.Format(" {0} ", be.ExpressionSymbol.Substring(0,1)), be); 797 Generate(String.Format(" {0} ", be.ExpressionSymbol.Substring(0,1)), be, sb);
840 retstr += "((bool)("; 798 sb.Append("((bool)(");
841 foreach (SYMBOL kid in be.kids) 799 foreach (SYMBOL kid in be.kids)
842 retstr += GenerateNode(be, kid); 800 GenerateNodeToSB(be, kid, sb);
843 retstr += "))"; 801 sb.Append("))");
844 } 802 }
845 else 803 else
846 { 804 {
847 retstr += GenerateNode(be, (SYMBOL)be.kids.Pop()); 805 GenerateNodeToSB(be, (SYMBOL)be.kids.Pop(), sb);
848 retstr += Generate(String.Format(" {0} ", be.ExpressionSymbol), be); 806 Generate(String.Format(" {0} ", be.ExpressionSymbol), be, sb);
849 foreach (SYMBOL kid in be.kids) 807 foreach (SYMBOL kid in be.kids)
850 retstr += GenerateNode(be, kid); 808 GenerateNodeToSB(be, kid, sb);
851 } 809 }
852
853 return retstr;
854 } 810 }
855 811
856 /// <summary> 812 /// <summary>
@@ -858,14 +814,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
858 /// </summary> 814 /// </summary>
859 /// <param name="ue">The UnaryExpression node.</param> 815 /// <param name="ue">The UnaryExpression node.</param>
860 /// <returns>String containing C# code for UnaryExpression ue.</returns> 816 /// <returns>String containing C# code for UnaryExpression ue.</returns>
861 private string GenerateUnaryExpression(UnaryExpression ue) 817 private void GenerateUnaryExpression(UnaryExpression ue, StringBuilder sb)
862 { 818 {
863 string retstr = String.Empty; 819 Generate(ue.UnarySymbol, ue, sb);
864 820 GenerateNodeToSB(ue, (SYMBOL) ue.kids.Pop(), sb);
865 retstr += Generate(ue.UnarySymbol, ue);
866 retstr += GenerateNode(ue, (SYMBOL) ue.kids.Pop());
867
868 return retstr;
869 } 821 }
870 822
871 /// <summary> 823 /// <summary>
@@ -873,16 +825,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
873 /// </summary> 825 /// </summary>
874 /// <param name="pe">The ParenthesisExpression node.</param> 826 /// <param name="pe">The ParenthesisExpression node.</param>
875 /// <returns>String containing C# code for ParenthesisExpression pe.</returns> 827 /// <returns>String containing C# code for ParenthesisExpression pe.</returns>
876 private string GenerateParenthesisExpression(ParenthesisExpression pe) 828 private void GenerateParenthesisExpression(ParenthesisExpression pe, StringBuilder sb)
877 { 829 {
878 string retstr = String.Empty; 830 string retstr = String.Empty;
879 831
880 retstr += Generate("("); 832 Generate("(", sb);
881 foreach (SYMBOL kid in pe.kids) 833 foreach (SYMBOL kid in pe.kids)
882 retstr += GenerateNode(pe, kid); 834 GenerateNodeToSB(pe, kid, sb);
883 retstr += Generate(")"); 835 Generate(")", sb);
884
885 return retstr;
886 } 836 }
887 837
888 /// <summary> 838 /// <summary>
@@ -890,19 +840,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
890 /// </summary> 840 /// </summary>
891 /// <param name="ide">The IncrementDecrementExpression node.</param> 841 /// <param name="ide">The IncrementDecrementExpression node.</param>
892 /// <returns>String containing C# code for IncrementDecrementExpression ide.</returns> 842 /// <returns>String containing C# code for IncrementDecrementExpression ide.</returns>
893 private string GenerateIncrementDecrementExpression(IncrementDecrementExpression ide) 843 private void GenerateIncrementDecrementExpression(IncrementDecrementExpression ide, StringBuilder sb)
894 { 844 {
895 string retstr = String.Empty;
896
897 if (0 < ide.kids.Count) 845 if (0 < ide.kids.Count)
898 { 846 {
899 IdentDotExpression dot = (IdentDotExpression) ide.kids.Top; 847 IdentDotExpression dot = (IdentDotExpression) ide.kids.Top;
900 retstr += Generate(String.Format("{0}", ide.PostOperation ? CheckName(dot.Name) + "." + dot.Member + ide.Operation : ide.Operation + CheckName(dot.Name) + "." + dot.Member), ide); 848 Generate(String.Format("{0}", ide.PostOperation ? CheckName(dot.Name) + "." + dot.Member + ide.Operation : ide.Operation + CheckName(dot.Name) + "." + dot.Member), ide, sb);
901 } 849 }
902 else 850 else
903 retstr += Generate(String.Format("{0}", ide.PostOperation ? CheckName(ide.Name) + ide.Operation : ide.Operation + CheckName(ide.Name)), ide); 851 Generate(String.Format("{0}", ide.PostOperation ? CheckName(ide.Name) + ide.Operation : ide.Operation + CheckName(ide.Name)), ide, sb);
904
905 return retstr;
906 } 852 }
907 853
908 /// <summary> 854 /// <summary>
@@ -910,16 +856,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
910 /// </summary> 856 /// </summary>
911 /// <param name="te">The TypecastExpression node.</param> 857 /// <param name="te">The TypecastExpression node.</param>
912 /// <returns>String containing C# code for TypecastExpression te.</returns> 858 /// <returns>String containing C# code for TypecastExpression te.</returns>
913 private string GenerateTypecastExpression(TypecastExpression te) 859 private void GenerateTypecastExpression(TypecastExpression te, StringBuilder sb)
914 { 860 {
915 string retstr = String.Empty;
916
917 // we wrap all typecasted statements in parentheses 861 // we wrap all typecasted statements in parentheses
918 retstr += Generate(String.Format("({0}) (", te.TypecastType), te); 862 Generate(String.Format("({0}) (", te.TypecastType), te, sb);
919 retstr += GenerateNode(te, (SYMBOL) te.kids.Pop()); 863 GenerateNodeToSB(te, (SYMBOL) te.kids.Pop(), sb);
920 retstr += Generate(")"); 864 Generate(")", sb);
921
922 return retstr;
923 } 865 }
924 866
925 /// <summary> 867 /// <summary>
@@ -928,7 +870,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
928 /// <param name="id">The symbol name</param> 870 /// <param name="id">The symbol name</param>
929 /// <param name="s">The Symbol node.</param> 871 /// <param name="s">The Symbol node.</param>
930 /// <returns>String containing C# code for identifier reference.</returns> 872 /// <returns>String containing C# code for identifier reference.</returns>
931 private string GenerateIdentifier(string id, SYMBOL s) 873 private void GenerateIdentifier(string id, SYMBOL s, StringBuilder sb)
932 { 874 {
933 if (m_comms != null) 875 if (m_comms != null)
934 { 876 {
@@ -949,12 +891,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
949 else if (value is OpenMetaverse.Quaternion) 891 else if (value is OpenMetaverse.Quaternion)
950 retval = String.Format("new LSL_Types.Quaternion(\"{0}\")",((OpenMetaverse.Quaternion)value).ToString()); 892 retval = String.Format("new LSL_Types.Quaternion(\"{0}\")",((OpenMetaverse.Quaternion)value).ToString());
951 else retval = id; 893 else retval = id;
952 894
953 return Generate(retval, s); 895 Generate(retval, s, sb);
896 return;
954 } 897 }
955 } 898 }
956 899
957 return Generate(CheckName(id), s); 900 Generate(CheckName(id), s, sb);
901 return;
958 } 902 }
959 903
960 /// <summary> 904 /// <summary>
@@ -962,35 +906,31 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
962 /// </summary> 906 /// </summary>
963 /// <param name="fc">The FunctionCall node.</param> 907 /// <param name="fc">The FunctionCall node.</param>
964 /// <returns>String containing C# code for FunctionCall fc.</returns> 908 /// <returns>String containing C# code for FunctionCall fc.</returns>
965 private string GenerateFunctionCall(FunctionCall fc) 909 private void GenerateFunctionCall(FunctionCall fc, StringBuilder sb)
966 { 910 {
967 string retstr = String.Empty;
968
969 string modinvoke = null; 911 string modinvoke = null;
970 if (m_comms != null) 912 if (m_comms != null)
971 modinvoke = m_comms.LookupModInvocation(fc.Id); 913 modinvoke = m_comms.LookupModInvocation(fc.Id);
972 914
973 if (modinvoke != null) 915 if (modinvoke != null)
974 { 916 {
975 if (fc.kids[0] is ArgumentList) 917 if (fc.kids[0] is ArgumentList)
976 { 918 {
977 if ((fc.kids[0] as ArgumentList).kids.Count == 0) 919 if ((fc.kids[0] as ArgumentList).kids.Count == 0)
978 retstr += Generate(String.Format("{0}(\"{1}\"",modinvoke,fc.Id), fc); 920 Generate(String.Format("{0}(\"{1}\"",modinvoke,fc.Id), fc, sb);
979 else 921 else
980 retstr += Generate(String.Format("{0}(\"{1}\",",modinvoke,fc.Id), fc); 922 Generate(String.Format("{0}(\"{1}\",",modinvoke,fc.Id), fc, sb);
981 } 923 }
982 } 924 }
983 else 925 else
984 { 926 {
985 retstr += Generate(String.Format("{0}(", CheckName(fc.Id)), fc); 927 Generate(String.Format("{0}(", CheckName(fc.Id)), fc, sb);
986 } 928 }
987
988 foreach (SYMBOL kid in fc.kids)
989 retstr += GenerateNode(fc, kid);
990 929
991 retstr += Generate(")"); 930 foreach (SYMBOL kid in fc.kids)
931 GenerateNodeToSB(fc, kid, sb);
992 932
993 return retstr; 933 Generate(")", sb);
994 } 934 }
995 935
996 /// <summary> 936 /// <summary>
@@ -998,10 +938,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
998 /// </summary> 938 /// </summary>
999 /// <param name="c">The Constant node.</param> 939 /// <param name="c">The Constant node.</param>
1000 /// <returns>String containing C# code for Constant c.</returns> 940 /// <returns>String containing C# code for Constant c.</returns>
1001 private string GenerateConstant(Constant c) 941 private void GenerateConstant(Constant c, StringBuilder sb)
1002 { 942 {
1003 string retstr = String.Empty;
1004
1005 // Supprt LSL's weird acceptance of floats with no trailing digits 943 // Supprt LSL's weird acceptance of floats with no trailing digits
1006 // after the period. Turn float x = 10.; into float x = 10.0; 944 // after the period. Turn float x = 10.; into float x = 10.0;
1007 if ("LSL_Types.LSLFloat" == c.Type) 945 if ("LSL_Types.LSLFloat" == c.Type)
@@ -1020,9 +958,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1020 c.Value = "new LSL_Types.LSLString(\""+c.Value+"\")"; 958 c.Value = "new LSL_Types.LSLString(\""+c.Value+"\")";
1021 } 959 }
1022 960
1023 retstr += Generate(c.Value, c); 961 Generate(c.Value, c, sb);
1024
1025 return retstr;
1026 } 962 }
1027 963
1028 /// <summary> 964 /// <summary>
@@ -1030,19 +966,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1030 /// </summary> 966 /// </summary>
1031 /// <param name="vc">The VectorConstant node.</param> 967 /// <param name="vc">The VectorConstant node.</param>
1032 /// <returns>String containing C# code for VectorConstant vc.</returns> 968 /// <returns>String containing C# code for VectorConstant vc.</returns>
1033 private string GenerateVectorConstant(VectorConstant vc) 969 private void GenerateVectorConstant(VectorConstant vc, StringBuilder sb)
1034 { 970 {
1035 string retstr = String.Empty; 971 Generate(String.Format("new {0}(", vc.Type), vc, sb);
1036 972 GenerateNodeToSB(vc, (SYMBOL) vc.kids.Pop(), sb);
1037 retstr += Generate(String.Format("new {0}(", vc.Type), vc); 973 Generate(", ", sb);
1038 retstr += GenerateNode(vc, (SYMBOL) vc.kids.Pop()); 974 GenerateNodeToSB(vc, (SYMBOL) vc.kids.Pop(), sb);
1039 retstr += Generate(", "); 975 Generate(", ", sb);
1040 retstr += GenerateNode(vc, (SYMBOL) vc.kids.Pop()); 976 GenerateNodeToSB(vc, (SYMBOL) vc.kids.Pop(), sb);
1041 retstr += Generate(", "); 977 Generate(")", sb);
1042 retstr += GenerateNode(vc, (SYMBOL) vc.kids.Pop());
1043 retstr += Generate(")");
1044
1045 return retstr;
1046 } 978 }
1047 979
1048 /// <summary> 980 /// <summary>
@@ -1050,21 +982,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1050 /// </summary> 982 /// </summary>
1051 /// <param name="rc">The RotationConstant node.</param> 983 /// <param name="rc">The RotationConstant node.</param>
1052 /// <returns>String containing C# code for RotationConstant rc.</returns> 984 /// <returns>String containing C# code for RotationConstant rc.</returns>
1053 private string GenerateRotationConstant(RotationConstant rc) 985 private void GenerateRotationConstant(RotationConstant rc, StringBuilder sb)
1054 { 986 {
1055 string retstr = String.Empty; 987 Generate(String.Format("new {0}(", rc.Type), rc, sb);
1056 988 GenerateNodeToSB(rc, (SYMBOL) rc.kids.Pop(), sb);
1057 retstr += Generate(String.Format("new {0}(", rc.Type), rc); 989 Generate(", ", sb);
1058 retstr += GenerateNode(rc, (SYMBOL) rc.kids.Pop()); 990 GenerateNodeToSB(rc, (SYMBOL) rc.kids.Pop(), sb);
1059 retstr += Generate(", "); 991 Generate(", ", sb);
1060 retstr += GenerateNode(rc, (SYMBOL) rc.kids.Pop()); 992 GenerateNodeToSB(rc, (SYMBOL) rc.kids.Pop(), sb);
1061 retstr += Generate(", "); 993 Generate(", ", sb);
1062 retstr += GenerateNode(rc, (SYMBOL) rc.kids.Pop()); 994 GenerateNodeToSB(rc, (SYMBOL) rc.kids.Pop(), sb);
1063 retstr += Generate(", "); 995 Generate(")", sb);
1064 retstr += GenerateNode(rc, (SYMBOL) rc.kids.Pop());
1065 retstr += Generate(")");
1066
1067 return retstr;
1068 } 996 }
1069 997
1070 /// <summary> 998 /// <summary>
@@ -1072,27 +1000,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1072 /// </summary> 1000 /// </summary>
1073 /// <param name="lc">The ListConstant node.</param> 1001 /// <param name="lc">The ListConstant node.</param>
1074 /// <returns>String containing C# code for ListConstant lc.</returns> 1002 /// <returns>String containing C# code for ListConstant lc.</returns>
1075 private string GenerateListConstant(ListConstant lc) 1003 private void GenerateListConstant(ListConstant lc, StringBuilder sb)
1076 { 1004 {
1077 string retstr = String.Empty; 1005 Generate(String.Format("new {0}(", lc.Type), lc, sb);
1078
1079 retstr += Generate(String.Format("new {0}(", lc.Type), lc);
1080 1006
1081 foreach (SYMBOL kid in lc.kids) 1007 foreach (SYMBOL kid in lc.kids)
1082 retstr += GenerateNode(lc, kid); 1008 GenerateNodeToSB(lc, kid, sb);
1083
1084 retstr += Generate(")");
1085 1009
1086 return retstr; 1010 Generate(")", sb);
1087 } 1011 }
1088 1012
1089 /// <summary> 1013 /// <summary>
1090 /// Prints a newline. 1014 /// Prints a newline.
1091 /// </summary> 1015 /// </summary>
1092 /// <returns>A newline.</returns> 1016 /// <returns>A newline.</returns>
1093 private string GenerateLine() 1017 private void GenerateLine(StringBuilder sb)
1094 { 1018 {
1095 return GenerateLine(""); 1019 sb.Append("\n");
1020 m_CSharpLine++;
1021 m_CSharpCol = 1;
1096 } 1022 }
1097 1023
1098 /// <summary> 1024 /// <summary>
@@ -1100,9 +1026,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1100 /// </summary> 1026 /// </summary>
1101 /// <param name="s">String of text to print.</param> 1027 /// <param name="s">String of text to print.</param>
1102 /// <returns>String s followed by newline.</returns> 1028 /// <returns>String s followed by newline.</returns>
1103 private string GenerateLine(string s) 1029 private void GenerateLine(string s, StringBuilder sb)
1104 { 1030 {
1105 return GenerateLine(s, null); 1031 sb.Append(s);
1032 sb.Append("\n");
1033 m_CSharpLine++;
1034 m_CSharpCol = 1;
1106 } 1035 }
1107 1036
1108 /// <summary> 1037 /// <summary>
@@ -1112,14 +1041,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1112 /// <param name="sym">Symbol being generated to extract original line 1041 /// <param name="sym">Symbol being generated to extract original line
1113 /// number and column from.</param> 1042 /// number and column from.</param>
1114 /// <returns>String s followed by newline.</returns> 1043 /// <returns>String s followed by newline.</returns>
1115 private string GenerateLine(string s, SYMBOL sym) 1044 private void GenerateLine(string s, SYMBOL sym, StringBuilder sb)
1116 { 1045 {
1117 string retstr = Generate(s, sym) + "\n"; 1046 Generate(s, sym, sb);
1047 sb.Append("\n");
1118 1048
1119 m_CSharpLine++; 1049 m_CSharpLine++;
1120 m_CSharpCol = 1; 1050 m_CSharpCol = 1;
1121
1122 return retstr;
1123 } 1051 }
1124 1052
1125 /// <summary> 1053 /// <summary>
@@ -1127,9 +1055,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1127 /// </summary> 1055 /// </summary>
1128 /// <param name="s">String of text to print.</param> 1056 /// <param name="s">String of text to print.</param>
1129 /// <returns>String s.</returns> 1057 /// <returns>String s.</returns>
1130 private string Generate(string s) 1058 private void Generate(string s, StringBuilder sb)
1131 { 1059 {
1132 return Generate(s, null); 1060 sb.Append(s);
1061 m_CSharpCol += s.Length;
1133 } 1062 }
1134 1063
1135 /// <summary> 1064 /// <summary>
@@ -1139,14 +1068,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1139 /// <param name="sym">Symbol being generated to extract original line 1068 /// <param name="sym">Symbol being generated to extract original line
1140 /// number and column from.</param> 1069 /// number and column from.</param>
1141 /// <returns>String s.</returns> 1070 /// <returns>String s.</returns>
1142 private string Generate(string s, SYMBOL sym) 1071 private void Generate(string s, SYMBOL sym, StringBuilder sb)
1143 { 1072 {
1073 sb.Append(s);
1144 if (null != sym) 1074 if (null != sym)
1145 m_positionMap.Add(new KeyValuePair<int, int>(m_CSharpLine, m_CSharpCol), new KeyValuePair<int, int>(sym.Line, sym.Position)); 1075 m_positionMap.Add(new KeyValuePair<int, int>(m_CSharpLine, m_CSharpCol), new KeyValuePair<int, int>(sym.Line, sym.Position));
1146 1076
1147 m_CSharpCol += s.Length; 1077 m_CSharpCol += s.Length;
1148
1149 return s;
1150 } 1078 }
1151 1079
1152 /// <summary> 1080 /// <summary>
@@ -1154,9 +1082,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1154 /// </summary> 1082 /// </summary>
1155 /// <param name="s">String of text to print.</param> 1083 /// <param name="s">String of text to print.</param>
1156 /// <returns>Properly indented string s followed by newline.</returns> 1084 /// <returns>Properly indented string s followed by newline.</returns>
1157 private string GenerateIndentedLine(string s) 1085 private void GenerateIndentedLine(string s, StringBuilder sb)
1158 { 1086 {
1159 return GenerateIndentedLine(s, null); 1087 GenerateIndentedLine(s, null, sb);
1160 } 1088 }
1161 1089
1162 /// <summary> 1090 /// <summary>
@@ -1166,14 +1094,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1166 /// <param name="sym">Symbol being generated to extract original line 1094 /// <param name="sym">Symbol being generated to extract original line
1167 /// number and column from.</param> 1095 /// number and column from.</param>
1168 /// <returns>Properly indented string s followed by newline.</returns> 1096 /// <returns>Properly indented string s followed by newline.</returns>
1169 private string GenerateIndentedLine(string s, SYMBOL sym) 1097 private void GenerateIndentedLine(string s, SYMBOL sym, StringBuilder sb)
1170 { 1098 {
1171 string retstr = GenerateIndented(s, sym) + "\n"; 1099 GenerateIndented(s, sym , sb );
1172 1100 sb.Append("\n");
1173 m_CSharpLine++; 1101 m_CSharpLine++;
1174 m_CSharpCol = 1; 1102 m_CSharpCol = 1;
1175
1176 return retstr;
1177 } 1103 }
1178 1104
1179 /// <summary> 1105 /// <summary>
@@ -1194,34 +1120,28 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
1194 /// <param name="sym">Symbol being generated to extract original line 1120 /// <param name="sym">Symbol being generated to extract original line
1195 /// number and column from.</param> 1121 /// number and column from.</param>
1196 /// <returns>Properly indented string s.</returns> 1122 /// <returns>Properly indented string s.</returns>
1197 private string GenerateIndented(string s, SYMBOL sym) 1123 private void GenerateIndented(string s, SYMBOL sym, StringBuilder sb)
1198 { 1124 {
1199 string retstr = Indent() + s; 1125 Indent(sb);
1126 sb.Append(s);
1200 1127
1201 if (null != sym) 1128 if (null != sym)
1202 m_positionMap.Add(new KeyValuePair<int, int>(m_CSharpLine, m_CSharpCol), new KeyValuePair<int, int>(sym.Line, sym.Position)); 1129 m_positionMap.Add(new KeyValuePair<int, int>(m_CSharpLine, m_CSharpCol), new KeyValuePair<int, int>(sym.Line, sym.Position));
1203 1130
1204 m_CSharpCol += s.Length; 1131 m_CSharpCol += s.Length;
1205
1206 return retstr;
1207 } 1132 }
1208 1133
1209 /// <summary> 1134 /// <summary>
1210 /// Prints correct indentation. 1135 /// Prints correct indentation.
1211 /// </summary> 1136 /// </summary>
1212 /// <returns>Indentation based on brace count.</returns> 1137 /// <returns>Indentation based on brace count.</returns>
1213 private string Indent() 1138 private void Indent(StringBuilder sb)
1214 { 1139 {
1215 string retstr = String.Empty;
1216
1217 for (int i = 0; i < m_braceCount; i++) 1140 for (int i = 0; i < m_braceCount; i++)
1218 for (int j = 0; j < m_indentWidth; j++) 1141 {
1219 { 1142 sb.Append(" ");
1220 retstr += " "; 1143 m_CSharpCol += 4;
1221 m_CSharpCol++; 1144 }
1222 }
1223
1224 return retstr;
1225 } 1145 }
1226 1146
1227 /// <summary> 1147 /// <summary>
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSReservedWords.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSReservedWords.cs
index 7a2a4a0..19a248f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSReservedWords.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSReservedWords.cs
@@ -84,7 +84,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
84 if (word.StartsWith("ll")) return false; 84 if (word.StartsWith("ll")) return false;
85 char first = word.ToCharArray(0,1)[0]; 85 char first = word.ToCharArray(0,1)[0];
86 if (first >= 'A' && first <= 'Z') return false; 86 if (first >= 'A' && first <= 'Z') return false;
87 87
88 return (reservedWords.BinarySearch(word) >= 0); 88 return (reservedWords.BinarySearch(word) >= 0);
89 } 89 }
90 } 90 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs
index af324bf..89211a5 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs
@@ -79,12 +79,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
79 79
80 private List<string> m_warnings = new List<string>(); 80 private List<string> m_warnings = new List<string>();
81 81
82 // private object m_syncy = new object();
83
84 private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider();
85 private static VBCodeProvider VBcodeProvider = new VBCodeProvider();
86
87 // private static int instanceID = new Random().Next(0, int.MaxValue); // Unique number to use on our compiled files
88 private static UInt64 scriptCompileCounter = 0; // And a counter 82 private static UInt64 scriptCompileCounter = 0; // And a counter
89 83
90 public IScriptEngine m_scriptEngine; 84 public IScriptEngine m_scriptEngine;
@@ -119,7 +113,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
119 { 113 {
120 in_startup = false; 114 in_startup = false;
121 CheckOrCreateScriptsDirectory(); 115 CheckOrCreateScriptsDirectory();
122 116
123 // First time we start? Delete old files 117 // First time we start? Delete old files
124 if (DeleteScriptsOnStartup) 118 if (DeleteScriptsOnStartup)
125 DeleteOldFiles(); 119 DeleteOldFiles();
@@ -251,23 +245,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
251 } 245 }
252 } 246 }
253 247
254 ////private ICodeCompiler icc = codeProvider.CreateCompiler();
255 //public string CompileFromFile(string LSOFileName)
256 //{
257 // switch (Path.GetExtension(LSOFileName).ToLower())
258 // {
259 // case ".txt":
260 // case ".lsl":
261 // Common.ScriptEngineBase.Shared.SendToDebug("Source code is LSL, converting to CS");
262 // return CompileFromLSLText(File.ReadAllText(LSOFileName));
263 // case ".cs":
264 // Common.ScriptEngineBase.Shared.SendToDebug("Source code is CS");
265 // return CompileFromCSText(File.ReadAllText(LSOFileName));
266 // default:
267 // throw new Exception("Unknown script type.");
268 // }
269 //}
270
271 public string GetCompilerOutput(string assetID) 248 public string GetCompilerOutput(string assetID)
272 { 249 {
273 return Path.Combine(ScriptEnginesPath, Path.Combine( 250 return Path.Combine(ScriptEnginesPath, Path.Combine(
@@ -310,9 +287,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
310 { 287 {
311// m_log.DebugFormat("[Compiler]: Found existing assembly {0} for asset {1} in {2}", assembly, asset, m_scriptEngine.World.Name); 288// m_log.DebugFormat("[Compiler]: Found existing assembly {0} for asset {1} in {2}", assembly, asset, m_scriptEngine.World.Name);
312 289
313 // If we have already read this linemap file, then it will be in our dictionary. 290 // If we have already read this linemap file, then it will be in our dictionary.
314 // Don't build another copy of the dictionary (saves memory) and certainly 291 // Don't build another copy of the dictionary (saves memory) and certainly
315 // don't keep reading the same file from disk multiple times. 292 // don't keep reading the same file from disk multiple times.
316 if (!m_lineMaps.ContainsKey(assembly)) 293 if (!m_lineMaps.ContainsKey(assembly))
317 m_lineMaps[assembly] = ReadMapFile(assembly + ".map"); 294 m_lineMaps[assembly] = ReadMapFile(assembly + ".map");
318 linemap = m_lineMaps[assembly]; 295 linemap = m_lineMaps[assembly];
@@ -356,14 +333,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
356 throw new Exception(errtext); 333 throw new Exception(errtext);
357 } 334 }
358 335
359 string compileScript = source; 336 string compileScript = string.Empty;
360 337
361 if (language == enumCompileType.lsl) 338 if (language == enumCompileType.lsl)
362 { 339 {
363 // Its LSL, convert it to C# 340 // Its LSL, convert it to C#
364 LSL_Converter = (ICodeConverter)new CSCodeGenerator(comms, m_insertCoopTerminationCalls);
365 compileScript = LSL_Converter.Convert(source);
366 341
342 StringBuilder sb = new StringBuilder(16394);
343
344 LSL_Converter = (ICodeConverter)new CSCodeGenerator(comms, m_insertCoopTerminationCalls);
345 AddCSScriptHeader(
346 m_scriptEngine.ScriptClassName,
347 m_scriptEngine.ScriptBaseClassName,
348 m_scriptEngine.ScriptBaseClassParameters,
349 sb);
350
351 LSL_Converter.Convert(source,sb);
352 AddCSScriptTail(sb);
353 compileScript = sb.ToString();
367 // copy converter warnings into our warnings. 354 // copy converter warnings into our warnings.
368 foreach (string warning in LSL_Converter.GetWarnings()) 355 foreach (string warning in LSL_Converter.GetWarnings())
369 { 356 {
@@ -371,25 +358,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
371 } 358 }
372 359
373 linemap = ((CSCodeGenerator)LSL_Converter).PositionMap; 360 linemap = ((CSCodeGenerator)LSL_Converter).PositionMap;
374 // Write the linemap to a file and save it in our dictionary for next time. 361 // Write the linemap to a file and save it in our dictionary for next time.
375 m_lineMaps[assembly] = linemap; 362 m_lineMaps[assembly] = linemap;
376 WriteMapFile(assembly + ".map", linemap); 363 WriteMapFile(assembly + ".map", linemap);
364 LSL_Converter.Clear();
377 } 365 }
378 366 else
379 switch (language)
380 { 367 {
381 case enumCompileType.cs: 368 switch (language)
382 case enumCompileType.lsl: 369 {
383 compileScript = CreateCSCompilerScript( 370 case enumCompileType.cs:
384 compileScript, 371 compileScript = CreateCSCompilerScript(
385 m_scriptEngine.ScriptClassName, 372 source,
386 m_scriptEngine.ScriptBaseClassName, 373 m_scriptEngine.ScriptClassName,
387 m_scriptEngine.ScriptBaseClassParameters); 374 m_scriptEngine.ScriptBaseClassName,
388 break; 375 m_scriptEngine.ScriptBaseClassParameters);
389 case enumCompileType.vb: 376 break;
390 compileScript = CreateVBCompilerScript( 377 case enumCompileType.vb:
391 compileScript, m_scriptEngine.ScriptClassName, m_scriptEngine.ScriptBaseClassName); 378 compileScript = CreateVBCompilerScript(
392 break; 379 source, m_scriptEngine.ScriptClassName, m_scriptEngine.ScriptBaseClassName);
380 break;
381 }
393 } 382 }
394 383
395 assembly = CompileFromDotNetText(compileScript, language, asset, assembly); 384 assembly = CompileFromDotNetText(compileScript, language, asset, assembly);
@@ -419,29 +408,57 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
419// return compileScript; 408// return compileScript;
420// } 409// }
421 410
411 public static void AddCSScriptHeader(string className, string baseClassName, ParameterInfo[] constructorParameters, StringBuilder sb)
412 {
413 sb.Append(string.Format(
414@"using OpenSim.Region.ScriptEngine.Shared;
415using System.Collections.Generic;
416
417namespace SecondLife
418{{
419 public class {0} : {1}
420 {{
421 public {0}({2}) : base({3}) {{}}
422",
423 className,
424 baseClassName,
425 constructorParameters != null
426 ? string.Join(", ", Array.ConvertAll<ParameterInfo, string>(constructorParameters, pi => pi.ToString()))
427 : "",
428 constructorParameters != null
429 ? string.Join(", ", Array.ConvertAll<ParameterInfo, string>(constructorParameters, pi => pi.Name))
430 : ""
431 ));
432 }
433
434 public static void AddCSScriptTail(StringBuilder sb)
435 {
436 sb.Append(string.Format(" }}\n}}\n"));
437 }
438
422 public static string CreateCSCompilerScript( 439 public static string CreateCSCompilerScript(
423 string compileScript, string className, string baseClassName, ParameterInfo[] constructorParameters) 440 string compileScript, string className, string baseClassName, ParameterInfo[] constructorParameters)
424 { 441 {
425 compileScript = string.Format( 442 compileScript = string.Format(
426@"using OpenSim.Region.ScriptEngine.Shared; 443@"using OpenSim.Region.ScriptEngine.Shared;
427using System.Collections.Generic; 444using System.Collections.Generic;
428 445
429namespace SecondLife 446namespace SecondLife
430{{ 447{{
431 public class {0} : {1} 448 public class {0} : {1}
432 {{ 449 {{
433 public {0}({2}) : base({3}) {{}} 450 public {0}({2}) : base({3}) {{}}
434{4} 451{4}
435 }} 452 }}
436}}", 453}}",
437 className, 454 className,
438 baseClassName, 455 baseClassName,
439 constructorParameters != null 456 constructorParameters != null
440 ? string.Join(", ", Array.ConvertAll<ParameterInfo, string>(constructorParameters, pi => pi.ToString())) 457 ? string.Join(", ", Array.ConvertAll<ParameterInfo, string>(constructorParameters, pi => pi.ToString()))
441 : "", 458 : "",
442 constructorParameters != null 459 constructorParameters != null
443 ? string.Join(", ", Array.ConvertAll<ParameterInfo, string>(constructorParameters, pi => pi.Name)) 460 ? string.Join(", ", Array.ConvertAll<ParameterInfo, string>(constructorParameters, pi => pi.Name))
444 : "", 461 : "",
445 compileScript); 462 compileScript);
446 463
447 return compileScript; 464 return compileScript;
@@ -468,7 +485,7 @@ namespace SecondLife
468 internal string CompileFromDotNetText(string Script, enumCompileType lang, string asset, string assembly) 485 internal string CompileFromDotNetText(string Script, enumCompileType lang, string asset, string assembly)
469 { 486 {
470// m_log.DebugFormat("[Compiler]: Compiling to assembly\n{0}", Script); 487// m_log.DebugFormat("[Compiler]: Compiling to assembly\n{0}", Script);
471 488
472 string ext = "." + lang.ToString(); 489 string ext = "." + lang.ToString();
473 490
474 // Output assembly name 491 // Output assembly name
@@ -511,8 +528,6 @@ namespace SecondLife
511 // Do actual compile 528 // Do actual compile
512 CompilerParameters parameters = new CompilerParameters(); 529 CompilerParameters parameters = new CompilerParameters();
513 530
514 parameters.IncludeDebugInformation = true;
515
516 string rootPath = AppDomain.CurrentDomain.BaseDirectory; 531 string rootPath = AppDomain.CurrentDomain.BaseDirectory;
517 532
518 parameters.ReferencedAssemblies.Add(Path.Combine(rootPath, 533 parameters.ReferencedAssemblies.Add(Path.Combine(rootPath,
@@ -524,7 +539,7 @@ namespace SecondLife
524 539
525 if (m_scriptEngine.ScriptReferencedAssemblies != null) 540 if (m_scriptEngine.ScriptReferencedAssemblies != null)
526 Array.ForEach<string>( 541 Array.ForEach<string>(
527 m_scriptEngine.ScriptReferencedAssemblies, 542 m_scriptEngine.ScriptReferencedAssemblies,
528 a => parameters.ReferencedAssemblies.Add(Path.Combine(rootPath, a))); 543 a => parameters.ReferencedAssemblies.Add(Path.Combine(rootPath, a)));
529 544
530 parameters.GenerateExecutable = false; 545 parameters.GenerateExecutable = false;
@@ -532,62 +547,62 @@ namespace SecondLife
532 parameters.IncludeDebugInformation = CompileWithDebugInformation; 547 parameters.IncludeDebugInformation = CompileWithDebugInformation;
533 //parameters.WarningLevel = 1; // Should be 4? 548 //parameters.WarningLevel = 1; // Should be 4?
534 parameters.TreatWarningsAsErrors = false; 549 parameters.TreatWarningsAsErrors = false;
550 parameters.GenerateInMemory = false;
551
552// this seems to cause issues on some windows servers
553// parameters.TempFiles = new TempFileCollection(Path.Combine(ScriptEnginesPath,
554// m_scriptEngine.World.RegionInfo.RegionID.ToString()), CompileWithDebugInformation);
535 555
536 CompilerResults results; 556 CompilerResults results;
557
558 CodeDomProvider provider;
537 switch (lang) 559 switch (lang)
538 { 560 {
539 case enumCompileType.vb: 561 case enumCompileType.vb:
540 results = VBcodeProvider.CompileAssemblyFromSource( 562 provider = CodeDomProvider.CreateProvider("VisualBasic");
541 parameters, Script);
542 break; 563 break;
543 case enumCompileType.cs: 564 case enumCompileType.cs:
544 case enumCompileType.lsl: 565 case enumCompileType.lsl:
545 bool complete = false; 566 provider = CodeDomProvider.CreateProvider("CSharp");
546 bool retried = false;
547 do
548 {
549 lock (CScodeProvider)
550 {
551 results = CScodeProvider.CompileAssemblyFromSource(
552 parameters, Script);
553 }
554
555 // Deal with an occasional segv in the compiler.
556 // Rarely, if ever, occurs twice in succession.
557 // Line # == 0 and no file name are indications that
558 // this is a native stack trace rather than a normal
559 // error log.
560 if (results.Errors.Count > 0)
561 {
562 if (!retried && string.IsNullOrEmpty(results.Errors[0].FileName) &&
563 results.Errors[0].Line == 0)
564 {
565 // System.Console.WriteLine("retrying failed compilation");
566 retried = true;
567 }
568 else
569 {
570 complete = true;
571 }
572 }
573 else
574 {
575 complete = true;
576 }
577 } while (!complete);
578 break; 567 break;
579 default: 568 default:
580 throw new Exception("Compiler is not able to recongnize " + 569 throw new Exception("Compiler is not able to recongnize " +
581 "language type \"" + lang.ToString() + "\""); 570 "language type \"" + lang.ToString() + "\"");
582 } 571 }
583 572
584// foreach (Type type in results.CompiledAssembly.GetTypes()) 573 if(provider == null)
585// { 574 throw new Exception("Compiler failed to load ");
586// foreach (MethodInfo method in type.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static)) 575
587// { 576 bool complete = false;
588// m_log.DebugFormat("[COMPILER]: {0}.{1}", type.FullName, method.Name); 577 bool retried = false;
589// } 578
590// } 579 do
580 {
581 results = provider.CompileAssemblyFromSource(
582 parameters, Script);
583 // Deal with an occasional segv in the compiler.
584 // Rarely, if ever, occurs twice in succession.
585 // Line # == 0 and no file name are indications that
586 // this is a native stack trace rather than a normal
587 // error log.
588 if (results.Errors.Count > 0)
589 {
590 if (!retried && string.IsNullOrEmpty(results.Errors[0].FileName) &&
591 results.Errors[0].Line == 0)
592 {
593 // System.Console.WriteLine("retrying failed compilation");
594 retried = true;
595 }
596 else
597 {
598 complete = true;
599 }
600 }
601 else
602 {
603 complete = true;
604 }
605 } while (!complete);
591 606
592 // 607 //
593 // WARNINGS AND ERRORS 608 // WARNINGS AND ERRORS
@@ -628,13 +643,15 @@ namespace SecondLife
628 } 643 }
629 } 644 }
630 645
646 provider.Dispose();
647
631 if (hadErrors) 648 if (hadErrors)
632 { 649 {
633 throw new Exception(errtext); 650 throw new Exception(errtext);
634 } 651 }
635 652
636 // On today's highly asynchronous systems, the result of 653 // On today's highly asynchronous systems, the result of
637 // the compile may not be immediately apparent. Wait a 654 // the compile may not be immediately apparent. Wait a
638 // reasonable amount of time before giving up on it. 655 // reasonable amount of time before giving up on it.
639 656
640 if (!File.Exists(assembly)) 657 if (!File.Exists(assembly))
@@ -785,15 +802,16 @@ namespace SecondLife
785 802
786 private static void WriteMapFile(string filename, Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> linemap) 803 private static void WriteMapFile(string filename, Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> linemap)
787 { 804 {
788 string mapstring = String.Empty; 805 StringBuilder mapbuilder = new StringBuilder(1024);
806
789 foreach (KeyValuePair<KeyValuePair<int, int>, KeyValuePair<int, int>> kvp in linemap) 807 foreach (KeyValuePair<KeyValuePair<int, int>, KeyValuePair<int, int>> kvp in linemap)
790 { 808 {
791 KeyValuePair<int, int> k = kvp.Key; 809 KeyValuePair<int, int> k = kvp.Key;
792 KeyValuePair<int, int> v = kvp.Value; 810 KeyValuePair<int, int> v = kvp.Value;
793 mapstring += String.Format("{0},{1},{2},{3}\n", k.Key, k.Value, v.Key, v.Value); 811 mapbuilder.Append(String.Format("{0},{1},{2},{3}\n", k.Key, k.Value, v.Key, v.Value));
794 } 812 }
795 813
796 Byte[] mapbytes = Encoding.ASCII.GetBytes(mapstring); 814 Byte[] mapbytes = Encoding.ASCII.GetBytes(mapbuilder.ToString());
797 815
798 using (FileStream mfs = File.Create(filename)) 816 using (FileStream mfs = File.Create(filename))
799 mfs.Write(mapbytes, 0, mapbytes.Length); 817 mfs.Write(mapbytes, 0, mapbytes.Length);
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/ICodeConverter.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/ICodeConverter.cs
index 84e8ab2..076caad 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/ICodeConverter.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/ICodeConverter.cs
@@ -27,12 +27,15 @@
27*/ 27*/
28 28
29using System; 29using System;
30using System.Text;
30 31
31namespace OpenSim.Region.ScriptEngine.Shared.CodeTools 32namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
32{ 33{
33 public interface ICodeConverter 34 public interface ICodeConverter
34 { 35 {
35 string Convert(string script); 36 string Convert(string script);
37 void Convert(string script, StringBuilder sb);
36 string[] GetWarnings(); 38 string[] GetWarnings();
39 void Clear();
37 } 40 }
38} 41}
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSCodeTransformer.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSCodeTransformer.cs
index 0fb3574..0585f8b 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSCodeTransformer.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSCodeTransformer.cs
@@ -191,7 +191,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
191 Constant rca = new Constant(p, "float", "0.0"); 191 Constant rca = new Constant(p, "float", "0.0");
192 Constant rcb = new Constant(p, "float", "0.0"); 192 Constant rcb = new Constant(p, "float", "0.0");
193 Constant rcc = new Constant(p, "float", "0.0"); 193 Constant rcc = new Constant(p, "float", "0.0");
194 Constant rcd = new Constant(p, "float", "0.0"); 194 Constant rcd = new Constant(p, "float", "1.0");
195 ConstantExpression rcea = new ConstantExpression(p, rca); 195 ConstantExpression rcea = new ConstantExpression(p, rca);
196 ConstantExpression rceb = new ConstantExpression(p, rcb); 196 ConstantExpression rceb = new ConstantExpression(p, rcb);
197 ConstantExpression rcec = new ConstantExpression(p, rcc); 197 ConstantExpression rcec = new ConstantExpression(p, rcc);
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Properties/AssemblyInfo.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Properties/AssemblyInfo.cs
index 0aece99..304cd81 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Properties/AssemblyInfo.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Properties/AssemblyInfo.cs
@@ -2,7 +2,7 @@
2using System.Runtime.CompilerServices; 2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices; 3using System.Runtime.InteropServices;
4 4
5// General Information about an assembly is controlled through the following 5// General Information about an assembly is controlled through the following
6// set of attributes. Change these attribute values to modify the information 6// set of attributes. Change these attribute values to modify the information
7// associated with an assembly. 7// associated with an assembly.
8[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared.CodeTools")] 8[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared.CodeTools")]
@@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
14[assembly: AssemblyTrademark("")] 14[assembly: AssemblyTrademark("")]
15[assembly: AssemblyCulture("")] 15[assembly: AssemblyCulture("")]
16 16
17// Setting ComVisible to false makes the types in this assembly not visible 17// Setting ComVisible to false makes the types in this assembly not visible
18// to COM components. If you need to access a type in this assembly from 18// to COM components. If you need to access a type in this assembly from
19// COM, set the ComVisible attribute to true on that type. 19// COM, set the ComVisible attribute to true on that type.
20[assembly: ComVisible(false)] 20[assembly: ComVisible(false)]
21 21
@@ -25,9 +25,9 @@ using System.Runtime.InteropServices;
25// Version information for an assembly consists of the following four values: 25// Version information for an assembly consists of the following four values:
26// 26//
27// Major Version 27// Major Version
28// Minor Version 28// Minor Version
29// Build Number 29// Build Number
30// Revision 30// Revision
31// 31//
32[assembly: AssemblyVersion("0.8.3.*")] 32[assembly: AssemblyVersion(OpenSim.VersionInfo.AssemblyVersionNumber)]
33 33
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs
index b92f3a3..a9f3283 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs
@@ -1388,7 +1388,7 @@ default
1388 "\n LSL_Types.list m = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger(2), new LSL_Types.LSLInteger(3));" + 1388 "\n LSL_Types.list m = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger(2), new LSL_Types.LSLInteger(3));" +
1389 "\n LSL_Types.Vector3 v = new LSL_Types.Vector3(new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0));" + 1389 "\n LSL_Types.Vector3 v = new LSL_Types.Vector3(new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0));" +
1390 "\n LSL_Types.Vector3 w = new LSL_Types.Vector3(new LSL_Types.LSLFloat(1.0), new LSL_Types.LSLFloat(0.1), new LSL_Types.LSLFloat(0.5));" + 1390 "\n LSL_Types.Vector3 w = new LSL_Types.Vector3(new LSL_Types.LSLFloat(1.0), new LSL_Types.LSLFloat(0.1), new LSL_Types.LSLFloat(0.5));" +
1391 "\n LSL_Types.Quaternion r = new LSL_Types.Quaternion(new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0));" + 1391 "\n LSL_Types.Quaternion r = new LSL_Types.Quaternion(new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(1.0));" +
1392 "\n LSL_Types.Quaternion u = new LSL_Types.Quaternion(new LSL_Types.LSLFloat(0.8), new LSL_Types.LSLFloat(0.7), new LSL_Types.LSLFloat(0.6), llSomeFunc());" + 1392 "\n LSL_Types.Quaternion u = new LSL_Types.Quaternion(new LSL_Types.LSLFloat(0.8), new LSL_Types.LSLFloat(0.7), new LSL_Types.LSLFloat(0.6), llSomeFunc());" +
1393 "\n LSL_Types.LSLString k = new LSL_Types.LSLString(\"\");" + 1393 "\n LSL_Types.LSLString k = new LSL_Types.LSLString(\"\");" +
1394 "\n LSL_Types.LSLString n = new LSL_Types.LSLString(\"ping\");" + 1394 "\n LSL_Types.LSLString n = new LSL_Types.LSLString(\"ping\");" +
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs
index b476e32..12ba4de 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs
@@ -37,6 +37,7 @@ using OpenSim.Tests.Common;
37 37
38namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests 38namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
39{ 39{
40
40 /// <summary> 41 /// <summary>
41 /// Tests the LSL compiler. Among other things, test that error messages 42 /// Tests the LSL compiler. Among other things, test that error messages
42 /// generated by the C# compiler can be mapped to prper lines/columns in 43 /// generated by the C# compiler can be mapped to prper lines/columns in
@@ -80,7 +81,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
80 m_resolveEventHandler = new ResolveEventHandler(AssemblyResolver.OnAssemblyResolve); 81 m_resolveEventHandler = new ResolveEventHandler(AssemblyResolver.OnAssemblyResolve);
81 82
82 System.AppDomain.CurrentDomain.AssemblyResolve += m_resolveEventHandler; 83 System.AppDomain.CurrentDomain.AssemblyResolve += m_resolveEventHandler;
83 84
84 m_compilerParameters.ReferencedAssemblies.Add(Path.Combine(rootPath, "OpenSim.Region.ScriptEngine.Shared.dll")); 85 m_compilerParameters.ReferencedAssemblies.Add(Path.Combine(rootPath, "OpenSim.Region.ScriptEngine.Shared.dll"));
85 m_compilerParameters.ReferencedAssemblies.Add(Path.Combine(rootPath, "OpenSim.Region.ScriptEngine.Shared.Api.Runtime.dll")); 86 m_compilerParameters.ReferencedAssemblies.Add(Path.Combine(rootPath, "OpenSim.Region.ScriptEngine.Shared.Api.Runtime.dll"));
86 m_compilerParameters.ReferencedAssemblies.Add(Path.Combine(rootPath, "OpenMetaverseTypes.dll")); 87 m_compilerParameters.ReferencedAssemblies.Add(Path.Combine(rootPath, "OpenMetaverseTypes.dll"));
@@ -111,7 +112,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
111 CSCodeGenerator cg = new CSCodeGenerator(); 112 CSCodeGenerator cg = new CSCodeGenerator();
112 string output = cg.Convert(input); 113 string output = cg.Convert(input);
113 114
114 output = Compiler.CreateCSCompilerScript(output, "script1", typeof(ScriptBaseClass).FullName, null); 115 output = Compiler.CreateCSCompilerScript(output, "script1", typeof(ScriptBaseClass).FullName, null);
115 // System.Console.WriteLine(output); 116 // System.Console.WriteLine(output);
116 117
117 positionMap = cg.PositionMap; 118 positionMap = cg.PositionMap;
@@ -132,7 +133,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
132 133
133 return compilerResults; 134 return compilerResults;
134 } 135 }
135 136/* test too depedent on counting lines and columns maping code generation changes
137erros position is better tested on viewers
136 /// <summary> 138 /// <summary>
137 /// Test that line number errors are resolved as expected when preceding code contains a jump. 139 /// Test that line number errors are resolved as expected when preceding code contains a jump.
138 /// </summary> 140 /// </summary>
@@ -152,13 +154,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
152 @l; 154 @l;
153 i = 1; 155 i = 1;
154 } 156 }
155}", out positionMap); 157}", out positionMap);
156 158
157 Assert.AreEqual( 159 Assert.AreEqual(
158 new KeyValuePair<int, int>(7, 9), 160 new KeyValuePair<int, int>(7, 9),
159 positionMap[new KeyValuePair<int, int>(compilerResults.Errors[0].Line, compilerResults.Errors[0].Column)]); 161 positionMap[new KeyValuePair<int, int>(compilerResults.Errors[0].Line, compilerResults.Errors[0].Column)]);
160 } 162 }
161 163
164
162 /// <summary> 165 /// <summary>
163 /// Test the C# compiler error message can be mapped to the correct 166 /// Test the C# compiler error message can be mapped to the correct
164 /// line/column in the LSL source when an undeclared variable is used. 167 /// line/column in the LSL source when an undeclared variable is used.
@@ -183,7 +186,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
183 new KeyValuePair<int, int>(5, 21), 186 new KeyValuePair<int, int>(5, 21),
184 positionMap[new KeyValuePair<int, int>(compilerResults.Errors[0].Line, compilerResults.Errors[0].Column)]); 187 positionMap[new KeyValuePair<int, int>(compilerResults.Errors[0].Line, compilerResults.Errors[0].Column)]);
185 } 188 }
186 189*/
187 /// <summary> 190 /// <summary>
188 /// Test that a string can be cast to string and another string 191 /// Test that a string can be cast to string and another string
189 /// concatenated. 192 /// concatenated.
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/LSL_EventTests.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/LSL_EventTests.cs
index 67ce10a..220ec72 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/LSL_EventTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/LSL_EventTests.cs
@@ -150,7 +150,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
150// TestHelpers.EnableLogging(); 150// TestHelpers.EnableLogging();
151 151
152 TestIntArgEvent("changed"); 152 TestIntArgEvent("changed");
153 } 153 }
154 154
155 [Test] 155 [Test]
156 public void TestCollisionEvent() 156 public void TestCollisionEvent()
@@ -159,7 +159,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
159// TestHelpers.EnableLogging(); 159// TestHelpers.EnableLogging();
160 160
161 TestIntArgEvent("collision"); 161 TestIntArgEvent("collision");
162 } 162 }
163 163
164 [Test] 164 [Test]
165 public void TestCollisionStartEvent() 165 public void TestCollisionStartEvent()
@@ -168,7 +168,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
168// TestHelpers.EnableLogging(); 168// TestHelpers.EnableLogging();
169 169
170 TestIntArgEvent("collision_start"); 170 TestIntArgEvent("collision_start");
171 } 171 }
172 172
173 [Test] 173 [Test]
174 public void TestCollisionEndEvent() 174 public void TestCollisionEndEvent()
@@ -177,7 +177,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
177// TestHelpers.EnableLogging(); 177// TestHelpers.EnableLogging();
178 178
179 TestIntArgEvent("collision_end"); 179 TestIntArgEvent("collision_end");
180 } 180 }
181 181
182 [Test] 182 [Test]
183 public void TestOnRezEvent() 183 public void TestOnRezEvent()
@@ -186,7 +186,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
186// TestHelpers.EnableLogging(); 186// TestHelpers.EnableLogging();
187 187
188 TestIntArgEvent("on_rez"); 188 TestIntArgEvent("on_rez");
189 } 189 }
190 190
191 [Test] 191 [Test]
192 public void TestRunTimePermissionsEvent() 192 public void TestRunTimePermissionsEvent()
@@ -195,7 +195,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
195// TestHelpers.EnableLogging(); 195// TestHelpers.EnableLogging();
196 196
197 TestIntArgEvent("run_time_permissions"); 197 TestIntArgEvent("run_time_permissions");
198 } 198 }
199 199
200 [Test] 200 [Test]
201 public void TestSensorEvent() 201 public void TestSensorEvent()
@@ -204,7 +204,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
204// TestHelpers.EnableLogging(); 204// TestHelpers.EnableLogging();
205 205
206 TestIntArgEvent("sensor"); 206 TestIntArgEvent("sensor");
207 } 207 }
208 208
209 [Test] 209 [Test]
210 public void TestTouchEvent() 210 public void TestTouchEvent()
@@ -213,7 +213,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
213// TestHelpers.EnableLogging(); 213// TestHelpers.EnableLogging();
214 214
215 TestIntArgEvent("touch"); 215 TestIntArgEvent("touch");
216 } 216 }
217 217
218 [Test] 218 [Test]
219 public void TestTouchStartEvent() 219 public void TestTouchStartEvent()
@@ -222,7 +222,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
222// TestHelpers.EnableLogging(); 222// TestHelpers.EnableLogging();
223 223
224 TestIntArgEvent("touch_start"); 224 TestIntArgEvent("touch_start");
225 } 225 }
226 226
227 [Test] 227 [Test]
228 public void TestTouchEndEvent() 228 public void TestTouchEndEvent()
@@ -231,7 +231,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
231// TestHelpers.EnableLogging(); 231// TestHelpers.EnableLogging();
232 232
233 TestIntArgEvent("touch_end"); 233 TestIntArgEvent("touch_end");
234 } 234 }
235 235
236 [Test] 236 [Test]
237 public void TestLandCollisionEvent() 237 public void TestLandCollisionEvent()
@@ -351,8 +351,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
351 } 351 }
352 352
353 Assert.That( 353 Assert.That(
354 gotException, 354 gotException,
355 Is.EqualTo(expectException), 355 Is.EqualTo(expectException),
356 "Failed on {0}, exception {1}", script, ge != null ? ge.ToString() : "n/a"); 356 "Failed on {0}, exception {1}", script, ge != null ? ge.ToString() : "n/a");
357 } 357 }
358 } 358 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.lexer.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.lexer.cs
index f87f446..9dc8d05 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.lexer.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.lexer.cs
@@ -379,7 +379,7 @@ public override int yynum { get { return 96; }}
379 public FLOAT_CONSTANT(Lexer yyl):base(yyl) {}} 379 public FLOAT_CONSTANT(Lexer yyl):base(yyl) {}}
380//%|LSLTokens 380//%|LSLTokens
381public class yyLSLTokens : YyLexer { 381public class yyLSLTokens : YyLexer {
382 public yyLSLTokens(ErrorHandler eh):base(eh) { arr = new int[] { 382 public yyLSLTokens(ErrorHandler eh):base(eh) { arr = new int[] {
383101,4,6,52,0, 383101,4,6,52,0,
38446,0,53,0,6, 38446,0,53,0,6,
385102,4,16,117,0, 385102,4,16,117,0,
@@ -19717,13 +19717,13 @@ public override TOKEN OldAction(Lexer yym,ref string yytext,int action, ref bool
19717 break; 19717 break;
19718 case 1063: ; 19718 case 1063: ;
19719 break; 19719 break;
19720 case 1076: ; 19720 case 1076: ;
19721 break; 19721 break;
19722 case 1032: { yym.yy_begin("YYINITIAL"); ((LSLTokens)yym).yytext = ((LSLTokens)yym).str; ((LSLTokens)yym).str = String.Empty; return new STRING_CONSTANT(yym); } 19722 case 1032: { yym.yy_begin("YYINITIAL"); ((LSLTokens)yym).yytext = ((LSLTokens)yym).str; ((LSLTokens)yym).str = String.Empty; return new STRING_CONSTANT(yym); }
19723 break; 19723// break;
19724 case 1067: ; 19724 case 1067: ;
19725 break; 19725 break;
19726 case 1072: ; 19726 case 1072: ;
19727 break; 19727 break;
19728 case 1003: { ((LSLTokens)yym).str += "\\\""; } 19728 case 1003: { ((LSLTokens)yym).str += "\\\""; }
19729 break; 19729 break;
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.parser.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.parser.cs
index 5fef83c..e4b5891 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.parser.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/lsl.parser.cs
@@ -886,1493 +886,1493 @@ public IncrementDecrementExpression(Parser yyp):base(yyp){}}
886 886
887public class LSLProgramRoot_1 : LSLProgramRoot { 887public class LSLProgramRoot_1 : LSLProgramRoot {
888 public LSLProgramRoot_1(Parser yyq):base(yyq, 888 public LSLProgramRoot_1(Parser yyq):base(yyq,
889 ((GlobalDefinitions)(yyq.StackAt(1).m_value)) 889 ((GlobalDefinitions)(yyq.StackAt(1).m_value))
890 , 890 ,
891 ((States)(yyq.StackAt(0).m_value)) 891 ((States)(yyq.StackAt(0).m_value))
892 ){}} 892 ){}}
893 893
894public class LSLProgramRoot_2 : LSLProgramRoot { 894public class LSLProgramRoot_2 : LSLProgramRoot {
895 public LSLProgramRoot_2(Parser yyq):base(yyq, 895 public LSLProgramRoot_2(Parser yyq):base(yyq,
896 ((States)(yyq.StackAt(0).m_value)) 896 ((States)(yyq.StackAt(0).m_value))
897 ){}} 897 ){}}
898 898
899public class GlobalDefinitions_1 : GlobalDefinitions { 899public class GlobalDefinitions_1 : GlobalDefinitions {
900 public GlobalDefinitions_1(Parser yyq):base(yyq, 900 public GlobalDefinitions_1(Parser yyq):base(yyq,
901 ((GlobalVariableDeclaration)(yyq.StackAt(0).m_value)) 901 ((GlobalVariableDeclaration)(yyq.StackAt(0).m_value))
902 ){}} 902 ){}}
903 903
904public class GlobalDefinitions_2 : GlobalDefinitions { 904public class GlobalDefinitions_2 : GlobalDefinitions {
905 public GlobalDefinitions_2(Parser yyq):base(yyq, 905 public GlobalDefinitions_2(Parser yyq):base(yyq,
906 ((GlobalDefinitions)(yyq.StackAt(1).m_value)) 906 ((GlobalDefinitions)(yyq.StackAt(1).m_value))
907 , 907 ,
908 ((GlobalVariableDeclaration)(yyq.StackAt(0).m_value)) 908 ((GlobalVariableDeclaration)(yyq.StackAt(0).m_value))
909 ){}} 909 ){}}
910 910
911public class GlobalDefinitions_3 : GlobalDefinitions { 911public class GlobalDefinitions_3 : GlobalDefinitions {
912 public GlobalDefinitions_3(Parser yyq):base(yyq, 912 public GlobalDefinitions_3(Parser yyq):base(yyq,
913 ((GlobalFunctionDefinition)(yyq.StackAt(0).m_value)) 913 ((GlobalFunctionDefinition)(yyq.StackAt(0).m_value))
914 ){}} 914 ){}}
915 915
916public class GlobalDefinitions_4 : GlobalDefinitions { 916public class GlobalDefinitions_4 : GlobalDefinitions {
917 public GlobalDefinitions_4(Parser yyq):base(yyq, 917 public GlobalDefinitions_4(Parser yyq):base(yyq,
918 ((GlobalDefinitions)(yyq.StackAt(1).m_value)) 918 ((GlobalDefinitions)(yyq.StackAt(1).m_value))
919 , 919 ,
920 ((GlobalFunctionDefinition)(yyq.StackAt(0).m_value)) 920 ((GlobalFunctionDefinition)(yyq.StackAt(0).m_value))
921 ){}} 921 ){}}
922 922
923public class GlobalVariableDeclaration_1 : GlobalVariableDeclaration { 923public class GlobalVariableDeclaration_1 : GlobalVariableDeclaration {
924 public GlobalVariableDeclaration_1(Parser yyq):base(yyq, 924 public GlobalVariableDeclaration_1(Parser yyq):base(yyq,
925 ((Declaration)(yyq.StackAt(1).m_value)) 925 ((Declaration)(yyq.StackAt(1).m_value))
926 ){}} 926 ){}}
927 927
928public class GlobalVariableDeclaration_2 : GlobalVariableDeclaration { 928public class GlobalVariableDeclaration_2 : GlobalVariableDeclaration {
929 public GlobalVariableDeclaration_2(Parser yyq):base(yyq,new Assignment(((LSLSyntax 929 public GlobalVariableDeclaration_2(Parser yyq):base(yyq,new Assignment(((LSLSyntax
930)yyq), 930)yyq),
931 ((Declaration)(yyq.StackAt(3).m_value)) 931 ((Declaration)(yyq.StackAt(3).m_value))
932 , 932 ,
933 ((Expression)(yyq.StackAt(1).m_value)) 933 ((Expression)(yyq.StackAt(1).m_value))
934 , 934 ,
935 ((EQUALS)(yyq.StackAt(2).m_value)) 935 ((EQUALS)(yyq.StackAt(2).m_value))
936 .yytext)){}} 936 .yytext)){}}
937 937
938public class GlobalFunctionDefinition_1 : GlobalFunctionDefinition { 938public class GlobalFunctionDefinition_1 : GlobalFunctionDefinition {
939 public GlobalFunctionDefinition_1(Parser yyq):base(yyq,"void", 939 public GlobalFunctionDefinition_1(Parser yyq):base(yyq,"void",
940 ((IDENT)(yyq.StackAt(4).m_value)) 940 ((IDENT)(yyq.StackAt(4).m_value))
941 .yytext, 941 .yytext,
942 ((ArgumentDeclarationList)(yyq.StackAt(2).m_value)) 942 ((ArgumentDeclarationList)(yyq.StackAt(2).m_value))
943 , 943 ,
944 ((CompoundStatement)(yyq.StackAt(0).m_value)) 944 ((CompoundStatement)(yyq.StackAt(0).m_value))
945 ){}} 945 ){}}
946 946
947public class GlobalFunctionDefinition_2 : GlobalFunctionDefinition { 947public class GlobalFunctionDefinition_2 : GlobalFunctionDefinition {
948 public GlobalFunctionDefinition_2(Parser yyq):base(yyq, 948 public GlobalFunctionDefinition_2(Parser yyq):base(yyq,
949 ((Typename)(yyq.StackAt(5).m_value)) 949 ((Typename)(yyq.StackAt(5).m_value))
950 .yytext, 950 .yytext,
951 ((IDENT)(yyq.StackAt(4).m_value)) 951 ((IDENT)(yyq.StackAt(4).m_value))
952 .yytext, 952 .yytext,
953 ((ArgumentDeclarationList)(yyq.StackAt(2).m_value)) 953 ((ArgumentDeclarationList)(yyq.StackAt(2).m_value))
954 , 954 ,
955 ((CompoundStatement)(yyq.StackAt(0).m_value)) 955 ((CompoundStatement)(yyq.StackAt(0).m_value))
956 ){}} 956 ){}}
957 957
958public class States_1 : States { 958public class States_1 : States {
959 public States_1(Parser yyq):base(yyq, 959 public States_1(Parser yyq):base(yyq,
960 ((State)(yyq.StackAt(0).m_value)) 960 ((State)(yyq.StackAt(0).m_value))
961 ){}} 961 ){}}
962 962
963public class States_2 : States { 963public class States_2 : States {
964 public States_2(Parser yyq):base(yyq, 964 public States_2(Parser yyq):base(yyq,
965 ((States)(yyq.StackAt(1).m_value)) 965 ((States)(yyq.StackAt(1).m_value))
966 , 966 ,
967 ((State)(yyq.StackAt(0).m_value)) 967 ((State)(yyq.StackAt(0).m_value))
968 ){}} 968 ){}}
969 969
970public class State_1 : State { 970public class State_1 : State {
971 public State_1(Parser yyq):base(yyq, 971 public State_1(Parser yyq):base(yyq,
972 ((DEFAULT_STATE)(yyq.StackAt(3).m_value)) 972 ((DEFAULT_STATE)(yyq.StackAt(3).m_value))
973 .yytext, 973 .yytext,
974 ((StateBody)(yyq.StackAt(1).m_value)) 974 ((StateBody)(yyq.StackAt(1).m_value))
975 ){}} 975 ){}}
976 976
977public class State_2 : State { 977public class State_2 : State {
978 public State_2(Parser yyq):base(yyq, 978 public State_2(Parser yyq):base(yyq,
979 ((IDENT)(yyq.StackAt(3).m_value)) 979 ((IDENT)(yyq.StackAt(3).m_value))
980 .yytext, 980 .yytext,
981 ((StateBody)(yyq.StackAt(1).m_value)) 981 ((StateBody)(yyq.StackAt(1).m_value))
982 ){}} 982 ){}}
983 983
984public class StateBody_1 : StateBody { 984public class StateBody_1 : StateBody {
985 public StateBody_1(Parser yyq):base(yyq, 985 public StateBody_1(Parser yyq):base(yyq,
986 ((StateEvent)(yyq.StackAt(0).m_value)) 986 ((StateEvent)(yyq.StackAt(0).m_value))
987 ){}} 987 ){}}
988 988
989public class StateBody_2 : StateBody { 989public class StateBody_2 : StateBody {
990 public StateBody_2(Parser yyq):base(yyq, 990 public StateBody_2(Parser yyq):base(yyq,
991 ((StateBody)(yyq.StackAt(1).m_value)) 991 ((StateBody)(yyq.StackAt(1).m_value))
992 , 992 ,
993 ((StateEvent)(yyq.StackAt(0).m_value)) 993 ((StateEvent)(yyq.StackAt(0).m_value))
994 ){}} 994 ){}}
995 995
996public class StateBody_3 : StateBody { 996public class StateBody_3 : StateBody {
997 public StateBody_3(Parser yyq):base(yyq, 997 public StateBody_3(Parser yyq):base(yyq,
998 ((VoidArgStateEvent)(yyq.StackAt(0).m_value)) 998 ((VoidArgStateEvent)(yyq.StackAt(0).m_value))
999 ){}} 999 ){}}
1000 1000
1001public class StateBody_4 : StateBody { 1001public class StateBody_4 : StateBody {
1002 public StateBody_4(Parser yyq):base(yyq, 1002 public StateBody_4(Parser yyq):base(yyq,
1003 ((StateBody)(yyq.StackAt(1).m_value)) 1003 ((StateBody)(yyq.StackAt(1).m_value))
1004 , 1004 ,
1005 ((VoidArgStateEvent)(yyq.StackAt(0).m_value)) 1005 ((VoidArgStateEvent)(yyq.StackAt(0).m_value))
1006 ){}} 1006 ){}}
1007 1007
1008public class StateBody_5 : StateBody { 1008public class StateBody_5 : StateBody {
1009 public StateBody_5(Parser yyq):base(yyq, 1009 public StateBody_5(Parser yyq):base(yyq,
1010 ((KeyArgStateEvent)(yyq.StackAt(0).m_value)) 1010 ((KeyArgStateEvent)(yyq.StackAt(0).m_value))
1011 ){}} 1011 ){}}
1012 1012
1013public class StateBody_6 : StateBody { 1013public class StateBody_6 : StateBody {
1014 public StateBody_6(Parser yyq):base(yyq, 1014 public StateBody_6(Parser yyq):base(yyq,
1015 ((StateBody)(yyq.StackAt(1).m_value)) 1015 ((StateBody)(yyq.StackAt(1).m_value))
1016 , 1016 ,
1017 ((KeyArgStateEvent)(yyq.StackAt(0).m_value)) 1017 ((KeyArgStateEvent)(yyq.StackAt(0).m_value))
1018 ){}} 1018 ){}}
1019 1019
1020public class StateBody_7 : StateBody { 1020public class StateBody_7 : StateBody {
1021 public StateBody_7(Parser yyq):base(yyq, 1021 public StateBody_7(Parser yyq):base(yyq,
1022 ((IntArgStateEvent)(yyq.StackAt(0).m_value)) 1022 ((IntArgStateEvent)(yyq.StackAt(0).m_value))
1023 ){}} 1023 ){}}
1024 1024
1025public class StateBody_8 : StateBody { 1025public class StateBody_8 : StateBody {
1026 public StateBody_8(Parser yyq):base(yyq, 1026 public StateBody_8(Parser yyq):base(yyq,
1027 ((StateBody)(yyq.StackAt(1).m_value)) 1027 ((StateBody)(yyq.StackAt(1).m_value))
1028 , 1028 ,
1029 ((IntArgStateEvent)(yyq.StackAt(0).m_value)) 1029 ((IntArgStateEvent)(yyq.StackAt(0).m_value))
1030 ){}} 1030 ){}}
1031 1031
1032public class StateBody_9 : StateBody { 1032public class StateBody_9 : StateBody {
1033 public StateBody_9(Parser yyq):base(yyq, 1033 public StateBody_9(Parser yyq):base(yyq,
1034 ((VectorArgStateEvent)(yyq.StackAt(0).m_value)) 1034 ((VectorArgStateEvent)(yyq.StackAt(0).m_value))
1035 ){}} 1035 ){}}
1036 1036
1037public class StateBody_10 : StateBody { 1037public class StateBody_10 : StateBody {
1038 public StateBody_10(Parser yyq):base(yyq, 1038 public StateBody_10(Parser yyq):base(yyq,
1039 ((StateBody)(yyq.StackAt(1).m_value)) 1039 ((StateBody)(yyq.StackAt(1).m_value))
1040 , 1040 ,
1041 ((VectorArgStateEvent)(yyq.StackAt(0).m_value)) 1041 ((VectorArgStateEvent)(yyq.StackAt(0).m_value))
1042 ){}} 1042 ){}}
1043 1043
1044public class StateBody_11 : StateBody { 1044public class StateBody_11 : StateBody {
1045 public StateBody_11(Parser yyq):base(yyq, 1045 public StateBody_11(Parser yyq):base(yyq,
1046 ((IntRotRotArgStateEvent)(yyq.StackAt(0).m_value)) 1046 ((IntRotRotArgStateEvent)(yyq.StackAt(0).m_value))
1047 ){}} 1047 ){}}
1048 1048
1049public class StateBody_12 : StateBody { 1049public class StateBody_12 : StateBody {
1050 public StateBody_12(Parser yyq):base(yyq, 1050 public StateBody_12(Parser yyq):base(yyq,
1051 ((StateBody)(yyq.StackAt(1).m_value)) 1051 ((StateBody)(yyq.StackAt(1).m_value))
1052 , 1052 ,
1053 ((IntRotRotArgStateEvent)(yyq.StackAt(0).m_value)) 1053 ((IntRotRotArgStateEvent)(yyq.StackAt(0).m_value))
1054 ){}} 1054 ){}}
1055 1055
1056public class StateBody_13 : StateBody { 1056public class StateBody_13 : StateBody {
1057 public StateBody_13(Parser yyq):base(yyq, 1057 public StateBody_13(Parser yyq):base(yyq,
1058 ((IntVecVecArgStateEvent)(yyq.StackAt(0).m_value)) 1058 ((IntVecVecArgStateEvent)(yyq.StackAt(0).m_value))
1059 ){}} 1059 ){}}
1060 1060
1061public class StateBody_14 : StateBody { 1061public class StateBody_14 : StateBody {
1062 public StateBody_14(Parser yyq):base(yyq, 1062 public StateBody_14(Parser yyq):base(yyq,
1063 ((StateBody)(yyq.StackAt(1).m_value)) 1063 ((StateBody)(yyq.StackAt(1).m_value))
1064 , 1064 ,
1065 ((IntVecVecArgStateEvent)(yyq.StackAt(0).m_value)) 1065 ((IntVecVecArgStateEvent)(yyq.StackAt(0).m_value))
1066 ){}} 1066 ){}}
1067 1067
1068public class StateBody_15 : StateBody { 1068public class StateBody_15 : StateBody {
1069 public StateBody_15(Parser yyq):base(yyq, 1069 public StateBody_15(Parser yyq):base(yyq,
1070 ((KeyIntIntArgStateEvent)(yyq.StackAt(0).m_value)) 1070 ((KeyIntIntArgStateEvent)(yyq.StackAt(0).m_value))
1071 ){}} 1071 ){}}
1072 1072
1073public class StateBody_16 : StateBody { 1073public class StateBody_16 : StateBody {
1074 public StateBody_16(Parser yyq):base(yyq, 1074 public StateBody_16(Parser yyq):base(yyq,
1075 ((StateBody)(yyq.StackAt(1).m_value)) 1075 ((StateBody)(yyq.StackAt(1).m_value))
1076 , 1076 ,
1077 ((KeyIntIntArgStateEvent)(yyq.StackAt(0).m_value)) 1077 ((KeyIntIntArgStateEvent)(yyq.StackAt(0).m_value))
1078 ){}} 1078 ){}}
1079 1079
1080public class StateEvent_1 : StateEvent { 1080public class StateEvent_1 : StateEvent {
1081 public StateEvent_1(Parser yyq):base(yyq, 1081 public StateEvent_1(Parser yyq):base(yyq,
1082 ((Event)(yyq.StackAt(4).m_value)) 1082 ((Event)(yyq.StackAt(4).m_value))
1083 .yytext, 1083 .yytext,
1084 ((ArgumentDeclarationList)(yyq.StackAt(2).m_value)) 1084 ((ArgumentDeclarationList)(yyq.StackAt(2).m_value))
1085 , 1085 ,
1086 ((CompoundStatement)(yyq.StackAt(0).m_value)) 1086 ((CompoundStatement)(yyq.StackAt(0).m_value))
1087 ){}} 1087 ){}}
1088 1088
1089public class VoidArgStateEvent_1 : VoidArgStateEvent { 1089public class VoidArgStateEvent_1 : VoidArgStateEvent {
1090 public VoidArgStateEvent_1(Parser yyq):base(yyq, 1090 public VoidArgStateEvent_1(Parser yyq):base(yyq,
1091 ((VoidArgEvent)(yyq.StackAt(3).m_value)) 1091 ((VoidArgEvent)(yyq.StackAt(3).m_value))
1092 .yytext, 1092 .yytext,
1093 ((CompoundStatement)(yyq.StackAt(0).m_value)) 1093 ((CompoundStatement)(yyq.StackAt(0).m_value))
1094 ){}} 1094 ){}}
1095 1095
1096public class KeyArgStateEvent_1 : KeyArgStateEvent { 1096public class KeyArgStateEvent_1 : KeyArgStateEvent {
1097 public KeyArgStateEvent_1(Parser yyq):base(yyq, 1097 public KeyArgStateEvent_1(Parser yyq):base(yyq,
1098 ((KeyArgEvent)(yyq.StackAt(4).m_value)) 1098 ((KeyArgEvent)(yyq.StackAt(4).m_value))
1099 .yytext, 1099 .yytext,
1100 ((KeyArgumentDeclarationList)(yyq.StackAt(2).m_value)) 1100 ((KeyArgumentDeclarationList)(yyq.StackAt(2).m_value))
1101 , 1101 ,
1102 ((CompoundStatement)(yyq.StackAt(0).m_value)) 1102 ((CompoundStatement)(yyq.StackAt(0).m_value))
1103 ){}} 1103 ){}}
1104 1104
1105public class IntArgStateEvent_1 : IntArgStateEvent { 1105public class IntArgStateEvent_1 : IntArgStateEvent {
1106 public IntArgStateEvent_1(Parser yyq):base(yyq, 1106 public IntArgStateEvent_1(Parser yyq):base(yyq,
1107 ((IntArgEvent)(yyq.StackAt(4).m_value)) 1107 ((IntArgEvent)(yyq.StackAt(4).m_value))
1108 .yytext, 1108 .yytext,
1109 ((IntArgumentDeclarationList)(yyq.StackAt(2).m_value)) 1109 ((IntArgumentDeclarationList)(yyq.StackAt(2).m_value))
1110 , 1110 ,
1111 ((CompoundStatement)(yyq.StackAt(0).m_value)) 1111 ((CompoundStatement)(yyq.StackAt(0).m_value))
1112 ){}} 1112 ){}}
1113 1113
1114public class VectorArgStateEvent_1 : VectorArgStateEvent { 1114public class VectorArgStateEvent_1 : VectorArgStateEvent {
1115 public VectorArgStateEvent_1(Parser yyq):base(yyq, 1115 public VectorArgStateEvent_1(Parser yyq):base(yyq,
1116 ((VectorArgEvent)(yyq.StackAt(4).m_value)) 1116 ((VectorArgEvent)(yyq.StackAt(4).m_value))
1117 .yytext, 1117 .yytext,
1118 ((VectorArgumentDeclarationList)(yyq.StackAt(2).m_value)) 1118 ((VectorArgumentDeclarationList)(yyq.StackAt(2).m_value))
1119 , 1119 ,
1120 ((CompoundStatement)(yyq.StackAt(0).m_value)) 1120 ((CompoundStatement)(yyq.StackAt(0).m_value))
1121 ){}} 1121 ){}}
1122 1122
1123public class IntRotRotArgStateEvent_1 : IntRotRotArgStateEvent { 1123public class IntRotRotArgStateEvent_1 : IntRotRotArgStateEvent {
1124 public IntRotRotArgStateEvent_1(Parser yyq):base(yyq, 1124 public IntRotRotArgStateEvent_1(Parser yyq):base(yyq,
1125 ((IntRotRotArgEvent)(yyq.StackAt(4).m_value)) 1125 ((IntRotRotArgEvent)(yyq.StackAt(4).m_value))
1126 .yytext, 1126 .yytext,
1127 ((IntRotRotArgumentDeclarationList)(yyq.StackAt(2).m_value)) 1127 ((IntRotRotArgumentDeclarationList)(yyq.StackAt(2).m_value))
1128 , 1128 ,
1129 ((CompoundStatement)(yyq.StackAt(0).m_value)) 1129 ((CompoundStatement)(yyq.StackAt(0).m_value))
1130 ){}} 1130 ){}}
1131 1131
1132public class IntVecVecArgStateEvent_1 : IntVecVecArgStateEvent { 1132public class IntVecVecArgStateEvent_1 : IntVecVecArgStateEvent {
1133 public IntVecVecArgStateEvent_1(Parser yyq):base(yyq, 1133 public IntVecVecArgStateEvent_1(Parser yyq):base(yyq,
1134 ((IntVecVecArgEvent)(yyq.StackAt(4).m_value)) 1134 ((IntVecVecArgEvent)(yyq.StackAt(4).m_value))
1135 .yytext, 1135 .yytext,
1136 ((IntVecVecArgumentDeclarationList)(yyq.StackAt(2).m_value)) 1136 ((IntVecVecArgumentDeclarationList)(yyq.StackAt(2).m_value))
1137 , 1137 ,
1138 ((CompoundStatement)(yyq.StackAt(0).m_value)) 1138 ((CompoundStatement)(yyq.StackAt(0).m_value))
1139 ){}} 1139 ){}}
1140 1140
1141public class KeyIntIntArgStateEvent_1 : KeyIntIntArgStateEvent { 1141public class KeyIntIntArgStateEvent_1 : KeyIntIntArgStateEvent {
1142 public KeyIntIntArgStateEvent_1(Parser yyq):base(yyq, 1142 public KeyIntIntArgStateEvent_1(Parser yyq):base(yyq,
1143 ((KeyIntIntArgEvent)(yyq.StackAt(4).m_value)) 1143 ((KeyIntIntArgEvent)(yyq.StackAt(4).m_value))
1144 .yytext, 1144 .yytext,
1145 ((KeyIntIntArgumentDeclarationList)(yyq.StackAt(2).m_value)) 1145 ((KeyIntIntArgumentDeclarationList)(yyq.StackAt(2).m_value))
1146 , 1146 ,
1147 ((CompoundStatement)(yyq.StackAt(0).m_value)) 1147 ((CompoundStatement)(yyq.StackAt(0).m_value))
1148 ){}} 1148 ){}}
1149 1149
1150public class ArgumentDeclarationList_1 : ArgumentDeclarationList { 1150public class ArgumentDeclarationList_1 : ArgumentDeclarationList {
1151 public ArgumentDeclarationList_1(Parser yyq):base(yyq, 1151 public ArgumentDeclarationList_1(Parser yyq):base(yyq,
1152 ((Declaration)(yyq.StackAt(0).m_value)) 1152 ((Declaration)(yyq.StackAt(0).m_value))
1153 ){}} 1153 ){}}
1154 1154
1155public class ArgumentDeclarationList_2 : ArgumentDeclarationList { 1155public class ArgumentDeclarationList_2 : ArgumentDeclarationList {
1156 public ArgumentDeclarationList_2(Parser yyq):base(yyq, 1156 public ArgumentDeclarationList_2(Parser yyq):base(yyq,
1157 ((ArgumentDeclarationList)(yyq.StackAt(2).m_value)) 1157 ((ArgumentDeclarationList)(yyq.StackAt(2).m_value))
1158 , 1158 ,
1159 ((Declaration)(yyq.StackAt(0).m_value)) 1159 ((Declaration)(yyq.StackAt(0).m_value))
1160 ){}} 1160 ){}}
1161 1161
1162public class KeyArgumentDeclarationList_1 : KeyArgumentDeclarationList { 1162public class KeyArgumentDeclarationList_1 : KeyArgumentDeclarationList {
1163 public KeyArgumentDeclarationList_1(Parser yyq):base(yyq, 1163 public KeyArgumentDeclarationList_1(Parser yyq):base(yyq,
1164 ((KeyDeclaration)(yyq.StackAt(0).m_value)) 1164 ((KeyDeclaration)(yyq.StackAt(0).m_value))
1165 ){}} 1165 ){}}
1166 1166
1167public class IntArgumentDeclarationList_1 : IntArgumentDeclarationList { 1167public class IntArgumentDeclarationList_1 : IntArgumentDeclarationList {
1168 public IntArgumentDeclarationList_1(Parser yyq):base(yyq, 1168 public IntArgumentDeclarationList_1(Parser yyq):base(yyq,
1169 ((IntDeclaration)(yyq.StackAt(0).m_value)) 1169 ((IntDeclaration)(yyq.StackAt(0).m_value))
1170 ){}} 1170 ){}}
1171 1171
1172public class VectorArgumentDeclarationList_1 : VectorArgumentDeclarationList { 1172public class VectorArgumentDeclarationList_1 : VectorArgumentDeclarationList {
1173 public VectorArgumentDeclarationList_1(Parser yyq):base(yyq, 1173 public VectorArgumentDeclarationList_1(Parser yyq):base(yyq,
1174 ((VecDeclaration)(yyq.StackAt(0).m_value)) 1174 ((VecDeclaration)(yyq.StackAt(0).m_value))
1175 ){}} 1175 ){}}
1176 1176
1177public class IntRotRotArgumentDeclarationList_1 : IntRotRotArgumentDeclarationList { 1177public class IntRotRotArgumentDeclarationList_1 : IntRotRotArgumentDeclarationList {
1178 public IntRotRotArgumentDeclarationList_1(Parser yyq):base(yyq, 1178 public IntRotRotArgumentDeclarationList_1(Parser yyq):base(yyq,
1179 ((IntDeclaration)(yyq.StackAt(4).m_value)) 1179 ((IntDeclaration)(yyq.StackAt(4).m_value))
1180 , 1180 ,
1181 ((RotDeclaration)(yyq.StackAt(2).m_value)) 1181 ((RotDeclaration)(yyq.StackAt(2).m_value))
1182 , 1182 ,
1183 ((RotDeclaration)(yyq.StackAt(0).m_value)) 1183 ((RotDeclaration)(yyq.StackAt(0).m_value))
1184 ){}} 1184 ){}}
1185 1185
1186public class IntVecVecArgumentDeclarationList_1 : IntVecVecArgumentDeclarationList { 1186public class IntVecVecArgumentDeclarationList_1 : IntVecVecArgumentDeclarationList {
1187 public IntVecVecArgumentDeclarationList_1(Parser yyq):base(yyq, 1187 public IntVecVecArgumentDeclarationList_1(Parser yyq):base(yyq,
1188 ((IntDeclaration)(yyq.StackAt(4).m_value)) 1188 ((IntDeclaration)(yyq.StackAt(4).m_value))
1189 , 1189 ,
1190 ((VecDeclaration)(yyq.StackAt(2).m_value)) 1190 ((VecDeclaration)(yyq.StackAt(2).m_value))
1191 , 1191 ,
1192 ((VecDeclaration)(yyq.StackAt(0).m_value)) 1192 ((VecDeclaration)(yyq.StackAt(0).m_value))
1193 ){}} 1193 ){}}
1194 1194
1195public class KeyIntIntArgumentDeclarationList_1 : KeyIntIntArgumentDeclarationList { 1195public class KeyIntIntArgumentDeclarationList_1 : KeyIntIntArgumentDeclarationList {
1196 public KeyIntIntArgumentDeclarationList_1(Parser yyq):base(yyq, 1196 public KeyIntIntArgumentDeclarationList_1(Parser yyq):base(yyq,
1197 ((KeyDeclaration)(yyq.StackAt(4).m_value)) 1197 ((KeyDeclaration)(yyq.StackAt(4).m_value))
1198 , 1198 ,
1199 ((IntDeclaration)(yyq.StackAt(2).m_value)) 1199 ((IntDeclaration)(yyq.StackAt(2).m_value))
1200 , 1200 ,
1201 ((IntDeclaration)(yyq.StackAt(0).m_value)) 1201 ((IntDeclaration)(yyq.StackAt(0).m_value))
1202 ){}} 1202 ){}}
1203 1203
1204public class Declaration_1 : Declaration { 1204public class Declaration_1 : Declaration {
1205 public Declaration_1(Parser yyq):base(yyq, 1205 public Declaration_1(Parser yyq):base(yyq,
1206 ((Typename)(yyq.StackAt(1).m_value)) 1206 ((Typename)(yyq.StackAt(1).m_value))
1207 .yytext, 1207 .yytext,
1208 ((IDENT)(yyq.StackAt(0).m_value)) 1208 ((IDENT)(yyq.StackAt(0).m_value))
1209 .yytext){}} 1209 .yytext){}}
1210 1210
1211public class KeyDeclaration_1 : KeyDeclaration { 1211public class KeyDeclaration_1 : KeyDeclaration {
1212 public KeyDeclaration_1(Parser yyq):base(yyq, 1212 public KeyDeclaration_1(Parser yyq):base(yyq,
1213 ((KEY_TYPE)(yyq.StackAt(1).m_value)) 1213 ((KEY_TYPE)(yyq.StackAt(1).m_value))
1214 .yytext, 1214 .yytext,
1215 ((IDENT)(yyq.StackAt(0).m_value)) 1215 ((IDENT)(yyq.StackAt(0).m_value))
1216 .yytext){}} 1216 .yytext){}}
1217 1217
1218public class IntDeclaration_1 : IntDeclaration { 1218public class IntDeclaration_1 : IntDeclaration {
1219 public IntDeclaration_1(Parser yyq):base(yyq, 1219 public IntDeclaration_1(Parser yyq):base(yyq,
1220 ((INTEGER_TYPE)(yyq.StackAt(1).m_value)) 1220 ((INTEGER_TYPE)(yyq.StackAt(1).m_value))
1221 .yytext, 1221 .yytext,
1222 ((IDENT)(yyq.StackAt(0).m_value)) 1222 ((IDENT)(yyq.StackAt(0).m_value))
1223 .yytext){}} 1223 .yytext){}}
1224 1224
1225public class VecDeclaration_1 : VecDeclaration { 1225public class VecDeclaration_1 : VecDeclaration {
1226 public VecDeclaration_1(Parser yyq):base(yyq, 1226 public VecDeclaration_1(Parser yyq):base(yyq,
1227 ((VECTOR_TYPE)(yyq.StackAt(1).m_value)) 1227 ((VECTOR_TYPE)(yyq.StackAt(1).m_value))
1228 .yytext, 1228 .yytext,
1229 ((IDENT)(yyq.StackAt(0).m_value)) 1229 ((IDENT)(yyq.StackAt(0).m_value))
1230 .yytext){}} 1230 .yytext){}}
1231 1231
1232public class RotDeclaration_1 : RotDeclaration { 1232public class RotDeclaration_1 : RotDeclaration {
1233 public RotDeclaration_1(Parser yyq):base(yyq, 1233 public RotDeclaration_1(Parser yyq):base(yyq,
1234 ((ROTATION_TYPE)(yyq.StackAt(1).m_value)) 1234 ((ROTATION_TYPE)(yyq.StackAt(1).m_value))
1235 .yytext, 1235 .yytext,
1236 ((IDENT)(yyq.StackAt(0).m_value)) 1236 ((IDENT)(yyq.StackAt(0).m_value))
1237 .yytext){}} 1237 .yytext){}}
1238 1238
1239public class CompoundStatement_1 : CompoundStatement { 1239public class CompoundStatement_1 : CompoundStatement {
1240 public CompoundStatement_1(Parser yyq):base(yyq){}} 1240 public CompoundStatement_1(Parser yyq):base(yyq){}}
1241 1241
1242public class CompoundStatement_2 : CompoundStatement { 1242public class CompoundStatement_2 : CompoundStatement {
1243 public CompoundStatement_2(Parser yyq):base(yyq, 1243 public CompoundStatement_2(Parser yyq):base(yyq,
1244 ((StatementList)(yyq.StackAt(1).m_value)) 1244 ((StatementList)(yyq.StackAt(1).m_value))
1245 ){}} 1245 ){}}
1246 1246
1247public class StatementList_1 : StatementList { 1247public class StatementList_1 : StatementList {
1248 public StatementList_1(Parser yyq):base(yyq, 1248 public StatementList_1(Parser yyq):base(yyq,
1249 ((Statement)(yyq.StackAt(0).m_value)) 1249 ((Statement)(yyq.StackAt(0).m_value))
1250 ){}} 1250 ){}}
1251 1251
1252public class StatementList_2 : StatementList { 1252public class StatementList_2 : StatementList {
1253 public StatementList_2(Parser yyq):base(yyq, 1253 public StatementList_2(Parser yyq):base(yyq,
1254 ((StatementList)(yyq.StackAt(1).m_value)) 1254 ((StatementList)(yyq.StackAt(1).m_value))
1255 , 1255 ,
1256 ((Statement)(yyq.StackAt(0).m_value)) 1256 ((Statement)(yyq.StackAt(0).m_value))
1257 ){}} 1257 ){}}
1258 1258
1259public class EmptyStatement_1 : EmptyStatement { 1259public class EmptyStatement_1 : EmptyStatement {
1260 public EmptyStatement_1(Parser yyq):base(yyq){}} 1260 public EmptyStatement_1(Parser yyq):base(yyq){}}
1261 1261
1262public class Statement_1 : Statement { 1262public class Statement_1 : Statement {
1263 public Statement_1(Parser yyq):base(yyq, 1263 public Statement_1(Parser yyq):base(yyq,
1264 ((EmptyStatement)(yyq.StackAt(1).m_value)) 1264 ((EmptyStatement)(yyq.StackAt(1).m_value))
1265 ){}} 1265 ){}}
1266 1266
1267public class Statement_2 : Statement { 1267public class Statement_2 : Statement {
1268 public Statement_2(Parser yyq):base(yyq, 1268 public Statement_2(Parser yyq):base(yyq,
1269 ((Declaration)(yyq.StackAt(1).m_value)) 1269 ((Declaration)(yyq.StackAt(1).m_value))
1270 ){}} 1270 ){}}
1271 1271
1272public class Statement_3 : Statement { 1272public class Statement_3 : Statement {
1273 public Statement_3(Parser yyq):base(yyq, 1273 public Statement_3(Parser yyq):base(yyq,
1274 ((Assignment)(yyq.StackAt(1).m_value)) 1274 ((Assignment)(yyq.StackAt(1).m_value))
1275 ){}} 1275 ){}}
1276 1276
1277public class Statement_4 : Statement { 1277public class Statement_4 : Statement {
1278 public Statement_4(Parser yyq):base(yyq, 1278 public Statement_4(Parser yyq):base(yyq,
1279 ((Expression)(yyq.StackAt(1).m_value)) 1279 ((Expression)(yyq.StackAt(1).m_value))
1280 ){}} 1280 ){}}
1281 1281
1282public class Statement_5 : Statement { 1282public class Statement_5 : Statement {
1283 public Statement_5(Parser yyq):base(yyq, 1283 public Statement_5(Parser yyq):base(yyq,
1284 ((ReturnStatement)(yyq.StackAt(1).m_value)) 1284 ((ReturnStatement)(yyq.StackAt(1).m_value))
1285 ){}} 1285 ){}}
1286 1286
1287public class Statement_6 : Statement { 1287public class Statement_6 : Statement {
1288 public Statement_6(Parser yyq):base(yyq, 1288 public Statement_6(Parser yyq):base(yyq,
1289 ((JumpLabel)(yyq.StackAt(1).m_value)) 1289 ((JumpLabel)(yyq.StackAt(1).m_value))
1290 ){}} 1290 ){}}
1291 1291
1292public class Statement_7 : Statement { 1292public class Statement_7 : Statement {
1293 public Statement_7(Parser yyq):base(yyq, 1293 public Statement_7(Parser yyq):base(yyq,
1294 ((JumpStatement)(yyq.StackAt(1).m_value)) 1294 ((JumpStatement)(yyq.StackAt(1).m_value))
1295 ){}} 1295 ){}}
1296 1296
1297public class Statement_8 : Statement { 1297public class Statement_8 : Statement {
1298 public Statement_8(Parser yyq):base(yyq, 1298 public Statement_8(Parser yyq):base(yyq,
1299 ((StateChange)(yyq.StackAt(1).m_value)) 1299 ((StateChange)(yyq.StackAt(1).m_value))
1300 ){}} 1300 ){}}
1301 1301
1302public class Statement_9 : Statement { 1302public class Statement_9 : Statement {
1303 public Statement_9(Parser yyq):base(yyq, 1303 public Statement_9(Parser yyq):base(yyq,
1304 ((IfStatement)(yyq.StackAt(0).m_value)) 1304 ((IfStatement)(yyq.StackAt(0).m_value))
1305 ){}} 1305 ){}}
1306 1306
1307public class Statement_10 : Statement { 1307public class Statement_10 : Statement {
1308 public Statement_10(Parser yyq):base(yyq, 1308 public Statement_10(Parser yyq):base(yyq,
1309 ((WhileStatement)(yyq.StackAt(0).m_value)) 1309 ((WhileStatement)(yyq.StackAt(0).m_value))
1310 ){}} 1310 ){}}
1311 1311
1312public class Statement_11 : Statement { 1312public class Statement_11 : Statement {
1313 public Statement_11(Parser yyq):base(yyq, 1313 public Statement_11(Parser yyq):base(yyq,
1314 ((DoWhileStatement)(yyq.StackAt(0).m_value)) 1314 ((DoWhileStatement)(yyq.StackAt(0).m_value))
1315 ){}} 1315 ){}}
1316 1316
1317public class Statement_12 : Statement { 1317public class Statement_12 : Statement {
1318 public Statement_12(Parser yyq):base(yyq, 1318 public Statement_12(Parser yyq):base(yyq,
1319 ((ForLoop)(yyq.StackAt(0).m_value)) 1319 ((ForLoop)(yyq.StackAt(0).m_value))
1320 ){}} 1320 ){}}
1321 1321
1322public class Statement_13 : Statement { 1322public class Statement_13 : Statement {
1323 public Statement_13(Parser yyq):base(yyq, 1323 public Statement_13(Parser yyq):base(yyq,
1324 ((CompoundStatement)(yyq.StackAt(0).m_value)) 1324 ((CompoundStatement)(yyq.StackAt(0).m_value))
1325 ){}} 1325 ){}}
1326 1326
1327public class JumpLabel_1 : JumpLabel { 1327public class JumpLabel_1 : JumpLabel {
1328 public JumpLabel_1(Parser yyq):base(yyq, 1328 public JumpLabel_1(Parser yyq):base(yyq,
1329 ((IDENT)(yyq.StackAt(0).m_value)) 1329 ((IDENT)(yyq.StackAt(0).m_value))
1330 .yytext){}} 1330 .yytext){}}
1331 1331
1332public class JumpStatement_1 : JumpStatement { 1332public class JumpStatement_1 : JumpStatement {
1333 public JumpStatement_1(Parser yyq):base(yyq, 1333 public JumpStatement_1(Parser yyq):base(yyq,
1334 ((IDENT)(yyq.StackAt(0).m_value)) 1334 ((IDENT)(yyq.StackAt(0).m_value))
1335 .yytext){}} 1335 .yytext){}}
1336 1336
1337public class StateChange_1 : StateChange { 1337public class StateChange_1 : StateChange {
1338 public StateChange_1(Parser yyq):base(yyq, 1338 public StateChange_1(Parser yyq):base(yyq,
1339 ((IDENT)(yyq.StackAt(0).m_value)) 1339 ((IDENT)(yyq.StackAt(0).m_value))
1340 .yytext){}} 1340 .yytext){}}
1341 1341
1342public class StateChange_2 : StateChange { 1342public class StateChange_2 : StateChange {
1343 public StateChange_2(Parser yyq):base(yyq, 1343 public StateChange_2(Parser yyq):base(yyq,
1344 ((DEFAULT_STATE)(yyq.StackAt(0).m_value)) 1344 ((DEFAULT_STATE)(yyq.StackAt(0).m_value))
1345 .yytext){}} 1345 .yytext){}}
1346 1346
1347public class IfStatement_1 : IfStatement { 1347public class IfStatement_1 : IfStatement {
1348 public IfStatement_1(Parser yyq):base(yyq, 1348 public IfStatement_1(Parser yyq):base(yyq,
1349 ((Expression)(yyq.StackAt(2).m_value)) 1349 ((Expression)(yyq.StackAt(2).m_value))
1350 , 1350 ,
1351 ((Statement)(yyq.StackAt(0).m_value)) 1351 ((Statement)(yyq.StackAt(0).m_value))
1352 ){}} 1352 ){}}
1353 1353
1354public class IfStatement_2 : IfStatement { 1354public class IfStatement_2 : IfStatement {
1355 public IfStatement_2(Parser yyq):base(yyq, 1355 public IfStatement_2(Parser yyq):base(yyq,
1356 ((Expression)(yyq.StackAt(4).m_value)) 1356 ((Expression)(yyq.StackAt(4).m_value))
1357 , 1357 ,
1358 ((Statement)(yyq.StackAt(2).m_value)) 1358 ((Statement)(yyq.StackAt(2).m_value))
1359 , 1359 ,
1360 ((Statement)(yyq.StackAt(0).m_value)) 1360 ((Statement)(yyq.StackAt(0).m_value))
1361 ){}} 1361 ){}}
1362 1362
1363public class IfStatement_3 : IfStatement { 1363public class IfStatement_3 : IfStatement {
1364 public IfStatement_3(Parser yyq):base(yyq, 1364 public IfStatement_3(Parser yyq):base(yyq,
1365 ((SimpleAssignment)(yyq.StackAt(2).m_value)) 1365 ((SimpleAssignment)(yyq.StackAt(2).m_value))
1366 , 1366 ,
1367 ((Statement)(yyq.StackAt(0).m_value)) 1367 ((Statement)(yyq.StackAt(0).m_value))
1368 ){}} 1368 ){}}
1369 1369
1370public class IfStatement_4 : IfStatement { 1370public class IfStatement_4 : IfStatement {
1371 public IfStatement_4(Parser yyq):base(yyq, 1371 public IfStatement_4(Parser yyq):base(yyq,
1372 ((SimpleAssignment)(yyq.StackAt(4).m_value)) 1372 ((SimpleAssignment)(yyq.StackAt(4).m_value))
1373 , 1373 ,
1374 ((Statement)(yyq.StackAt(2).m_value)) 1374 ((Statement)(yyq.StackAt(2).m_value))
1375 , 1375 ,
1376 ((Statement)(yyq.StackAt(0).m_value)) 1376 ((Statement)(yyq.StackAt(0).m_value))
1377 ){}} 1377 ){}}
1378 1378
1379public class WhileStatement_1 : WhileStatement { 1379public class WhileStatement_1 : WhileStatement {
1380 public WhileStatement_1(Parser yyq):base(yyq, 1380 public WhileStatement_1(Parser yyq):base(yyq,
1381 ((Expression)(yyq.StackAt(2).m_value)) 1381 ((Expression)(yyq.StackAt(2).m_value))
1382 , 1382 ,
1383 ((Statement)(yyq.StackAt(0).m_value)) 1383 ((Statement)(yyq.StackAt(0).m_value))
1384 ){}} 1384 ){}}
1385 1385
1386public class WhileStatement_2 : WhileStatement { 1386public class WhileStatement_2 : WhileStatement {
1387 public WhileStatement_2(Parser yyq):base(yyq, 1387 public WhileStatement_2(Parser yyq):base(yyq,
1388 ((SimpleAssignment)(yyq.StackAt(2).m_value)) 1388 ((SimpleAssignment)(yyq.StackAt(2).m_value))
1389 , 1389 ,
1390 ((Statement)(yyq.StackAt(0).m_value)) 1390 ((Statement)(yyq.StackAt(0).m_value))
1391 ){}} 1391 ){}}
1392 1392
1393public class DoWhileStatement_1 : DoWhileStatement { 1393public class DoWhileStatement_1 : DoWhileStatement {
1394 public DoWhileStatement_1(Parser yyq):base(yyq, 1394 public DoWhileStatement_1(Parser yyq):base(yyq,
1395 ((Expression)(yyq.StackAt(2).m_value)) 1395 ((Expression)(yyq.StackAt(2).m_value))
1396 , 1396 ,
1397 ((Statement)(yyq.StackAt(5).m_value)) 1397 ((Statement)(yyq.StackAt(5).m_value))
1398 ){}} 1398 ){}}
1399 1399
1400public class DoWhileStatement_2 : DoWhileStatement { 1400public class DoWhileStatement_2 : DoWhileStatement {
1401 public DoWhileStatement_2(Parser yyq):base(yyq, 1401 public DoWhileStatement_2(Parser yyq):base(yyq,
1402 ((SimpleAssignment)(yyq.StackAt(2).m_value)) 1402 ((SimpleAssignment)(yyq.StackAt(2).m_value))
1403 , 1403 ,
1404 ((Statement)(yyq.StackAt(5).m_value)) 1404 ((Statement)(yyq.StackAt(5).m_value))
1405 ){}} 1405 ){}}
1406 1406
1407public class ForLoop_1 : ForLoop { 1407public class ForLoop_1 : ForLoop {
1408 public ForLoop_1(Parser yyq):base(yyq, 1408 public ForLoop_1(Parser yyq):base(yyq,
1409 ((ForLoopStatement)(yyq.StackAt(6).m_value)) 1409 ((ForLoopStatement)(yyq.StackAt(6).m_value))
1410 , 1410 ,
1411 ((Expression)(yyq.StackAt(4).m_value)) 1411 ((Expression)(yyq.StackAt(4).m_value))
1412 , 1412 ,
1413 ((ForLoopStatement)(yyq.StackAt(2).m_value)) 1413 ((ForLoopStatement)(yyq.StackAt(2).m_value))
1414 , 1414 ,
1415 ((Statement)(yyq.StackAt(0).m_value)) 1415 ((Statement)(yyq.StackAt(0).m_value))
1416 ){}} 1416 ){}}
1417 1417
1418public class ForLoop_2 : ForLoop { 1418public class ForLoop_2 : ForLoop {
1419 public ForLoop_2(Parser yyq):base(yyq,null, 1419 public ForLoop_2(Parser yyq):base(yyq,null,
1420 ((Expression)(yyq.StackAt(4).m_value)) 1420 ((Expression)(yyq.StackAt(4).m_value))
1421 , 1421 ,
1422 ((ForLoopStatement)(yyq.StackAt(2).m_value)) 1422 ((ForLoopStatement)(yyq.StackAt(2).m_value))
1423 , 1423 ,
1424 ((Statement)(yyq.StackAt(0).m_value)) 1424 ((Statement)(yyq.StackAt(0).m_value))
1425 ){}} 1425 ){}}
1426 1426
1427public class ForLoopStatement_1 : ForLoopStatement { 1427public class ForLoopStatement_1 : ForLoopStatement {
1428 public ForLoopStatement_1(Parser yyq):base(yyq, 1428 public ForLoopStatement_1(Parser yyq):base(yyq,
1429 ((Expression)(yyq.StackAt(0).m_value)) 1429 ((Expression)(yyq.StackAt(0).m_value))
1430 ){}} 1430 ){}}
1431 1431
1432public class ForLoopStatement_2 : ForLoopStatement { 1432public class ForLoopStatement_2 : ForLoopStatement {
1433 public ForLoopStatement_2(Parser yyq):base(yyq, 1433 public ForLoopStatement_2(Parser yyq):base(yyq,
1434 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1434 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1435 ){}} 1435 ){}}
1436 1436
1437public class ForLoopStatement_3 : ForLoopStatement { 1437public class ForLoopStatement_3 : ForLoopStatement {
1438 public ForLoopStatement_3(Parser yyq):base(yyq, 1438 public ForLoopStatement_3(Parser yyq):base(yyq,
1439 ((ForLoopStatement)(yyq.StackAt(2).m_value)) 1439 ((ForLoopStatement)(yyq.StackAt(2).m_value))
1440 , 1440 ,
1441 ((Expression)(yyq.StackAt(0).m_value)) 1441 ((Expression)(yyq.StackAt(0).m_value))
1442 ){}} 1442 ){}}
1443 1443
1444public class ForLoopStatement_4 : ForLoopStatement { 1444public class ForLoopStatement_4 : ForLoopStatement {
1445 public ForLoopStatement_4(Parser yyq):base(yyq, 1445 public ForLoopStatement_4(Parser yyq):base(yyq,
1446 ((ForLoopStatement)(yyq.StackAt(2).m_value)) 1446 ((ForLoopStatement)(yyq.StackAt(2).m_value))
1447 , 1447 ,
1448 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1448 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1449 ){}} 1449 ){}}
1450 1450
1451public class Assignment_1 : Assignment { 1451public class Assignment_1 : Assignment {
1452 public Assignment_1(Parser yyq):base(yyq, 1452 public Assignment_1(Parser yyq):base(yyq,
1453 ((Declaration)(yyq.StackAt(2).m_value)) 1453 ((Declaration)(yyq.StackAt(2).m_value))
1454 , 1454 ,
1455 ((Expression)(yyq.StackAt(0).m_value)) 1455 ((Expression)(yyq.StackAt(0).m_value))
1456 , 1456 ,
1457 ((EQUALS)(yyq.StackAt(1).m_value)) 1457 ((EQUALS)(yyq.StackAt(1).m_value))
1458 .yytext){}} 1458 .yytext){}}
1459 1459
1460public class Assignment_2 : Assignment { 1460public class Assignment_2 : Assignment {
1461 public Assignment_2(Parser yyq):base(yyq, 1461 public Assignment_2(Parser yyq):base(yyq,
1462 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1462 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1463 ){}} 1463 ){}}
1464 1464
1465public class SimpleAssignment_1 : SimpleAssignment { 1465public class SimpleAssignment_1 : SimpleAssignment {
1466 public SimpleAssignment_1(Parser yyq):base(yyq, 1466 public SimpleAssignment_1(Parser yyq):base(yyq,
1467 ((IDENT)(yyq.StackAt(2).m_value)) 1467 ((IDENT)(yyq.StackAt(2).m_value))
1468 , 1468 ,
1469 ((Expression)(yyq.StackAt(0).m_value)) 1469 ((Expression)(yyq.StackAt(0).m_value))
1470 , 1470 ,
1471 ((EQUALS)(yyq.StackAt(1).m_value)) 1471 ((EQUALS)(yyq.StackAt(1).m_value))
1472 .yytext){}} 1472 .yytext){}}
1473 1473
1474public class SimpleAssignment_2 : SimpleAssignment { 1474public class SimpleAssignment_2 : SimpleAssignment {
1475 public SimpleAssignment_2(Parser yyq):base(yyq, 1475 public SimpleAssignment_2(Parser yyq):base(yyq,
1476 ((IDENT)(yyq.StackAt(2).m_value)) 1476 ((IDENT)(yyq.StackAt(2).m_value))
1477 , 1477 ,
1478 ((Expression)(yyq.StackAt(0).m_value)) 1478 ((Expression)(yyq.StackAt(0).m_value))
1479 , 1479 ,
1480 ((PLUS_EQUALS)(yyq.StackAt(1).m_value)) 1480 ((PLUS_EQUALS)(yyq.StackAt(1).m_value))
1481 .yytext){}} 1481 .yytext){}}
1482 1482
1483public class SimpleAssignment_3 : SimpleAssignment { 1483public class SimpleAssignment_3 : SimpleAssignment {
1484 public SimpleAssignment_3(Parser yyq):base(yyq, 1484 public SimpleAssignment_3(Parser yyq):base(yyq,
1485 ((IDENT)(yyq.StackAt(2).m_value)) 1485 ((IDENT)(yyq.StackAt(2).m_value))
1486 , 1486 ,
1487 ((Expression)(yyq.StackAt(0).m_value)) 1487 ((Expression)(yyq.StackAt(0).m_value))
1488 , 1488 ,
1489 ((MINUS_EQUALS)(yyq.StackAt(1).m_value)) 1489 ((MINUS_EQUALS)(yyq.StackAt(1).m_value))
1490 .yytext){}} 1490 .yytext){}}
1491 1491
1492public class SimpleAssignment_4 : SimpleAssignment { 1492public class SimpleAssignment_4 : SimpleAssignment {
1493 public SimpleAssignment_4(Parser yyq):base(yyq, 1493 public SimpleAssignment_4(Parser yyq):base(yyq,
1494 ((IDENT)(yyq.StackAt(2).m_value)) 1494 ((IDENT)(yyq.StackAt(2).m_value))
1495 , 1495 ,
1496 ((Expression)(yyq.StackAt(0).m_value)) 1496 ((Expression)(yyq.StackAt(0).m_value))
1497 , 1497 ,
1498 ((STAR_EQUALS)(yyq.StackAt(1).m_value)) 1498 ((STAR_EQUALS)(yyq.StackAt(1).m_value))
1499 .yytext){}} 1499 .yytext){}}
1500 1500
1501public class SimpleAssignment_5 : SimpleAssignment { 1501public class SimpleAssignment_5 : SimpleAssignment {
1502 public SimpleAssignment_5(Parser yyq):base(yyq, 1502 public SimpleAssignment_5(Parser yyq):base(yyq,
1503 ((IDENT)(yyq.StackAt(2).m_value)) 1503 ((IDENT)(yyq.StackAt(2).m_value))
1504 , 1504 ,
1505 ((Expression)(yyq.StackAt(0).m_value)) 1505 ((Expression)(yyq.StackAt(0).m_value))
1506 , 1506 ,
1507 ((SLASH_EQUALS)(yyq.StackAt(1).m_value)) 1507 ((SLASH_EQUALS)(yyq.StackAt(1).m_value))
1508 .yytext){}} 1508 .yytext){}}
1509 1509
1510public class SimpleAssignment_6 : SimpleAssignment { 1510public class SimpleAssignment_6 : SimpleAssignment {
1511 public SimpleAssignment_6(Parser yyq):base(yyq, 1511 public SimpleAssignment_6(Parser yyq):base(yyq,
1512 ((IDENT)(yyq.StackAt(2).m_value)) 1512 ((IDENT)(yyq.StackAt(2).m_value))
1513 , 1513 ,
1514 ((Expression)(yyq.StackAt(0).m_value)) 1514 ((Expression)(yyq.StackAt(0).m_value))
1515 , 1515 ,
1516 ((PERCENT_EQUALS)(yyq.StackAt(1).m_value)) 1516 ((PERCENT_EQUALS)(yyq.StackAt(1).m_value))
1517 .yytext){}} 1517 .yytext){}}
1518 1518
1519public class SimpleAssignment_7 : SimpleAssignment { 1519public class SimpleAssignment_7 : SimpleAssignment {
1520 public SimpleAssignment_7(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1520 public SimpleAssignment_7(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1521)yyq), 1521)yyq),
1522 ((IDENT)(yyq.StackAt(4).m_value)) 1522 ((IDENT)(yyq.StackAt(4).m_value))
1523 .yytext, 1523 .yytext,
1524 ((IDENT)(yyq.StackAt(2).m_value)) 1524 ((IDENT)(yyq.StackAt(2).m_value))
1525 .yytext), 1525 .yytext),
1526 ((Expression)(yyq.StackAt(0).m_value)) 1526 ((Expression)(yyq.StackAt(0).m_value))
1527 , 1527 ,
1528 ((EQUALS)(yyq.StackAt(1).m_value)) 1528 ((EQUALS)(yyq.StackAt(1).m_value))
1529 .yytext){}} 1529 .yytext){}}
1530 1530
1531public class SimpleAssignment_8 : SimpleAssignment { 1531public class SimpleAssignment_8 : SimpleAssignment {
1532 public SimpleAssignment_8(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1532 public SimpleAssignment_8(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1533)yyq), 1533)yyq),
1534 ((IDENT)(yyq.StackAt(4).m_value)) 1534 ((IDENT)(yyq.StackAt(4).m_value))
1535 .yytext, 1535 .yytext,
1536 ((IDENT)(yyq.StackAt(2).m_value)) 1536 ((IDENT)(yyq.StackAt(2).m_value))
1537 .yytext), 1537 .yytext),
1538 ((Expression)(yyq.StackAt(0).m_value)) 1538 ((Expression)(yyq.StackAt(0).m_value))
1539 , 1539 ,
1540 ((PLUS_EQUALS)(yyq.StackAt(1).m_value)) 1540 ((PLUS_EQUALS)(yyq.StackAt(1).m_value))
1541 .yytext){}} 1541 .yytext){}}
1542 1542
1543public class SimpleAssignment_9 : SimpleAssignment { 1543public class SimpleAssignment_9 : SimpleAssignment {
1544 public SimpleAssignment_9(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1544 public SimpleAssignment_9(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1545)yyq), 1545)yyq),
1546 ((IDENT)(yyq.StackAt(4).m_value)) 1546 ((IDENT)(yyq.StackAt(4).m_value))
1547 .yytext, 1547 .yytext,
1548 ((IDENT)(yyq.StackAt(2).m_value)) 1548 ((IDENT)(yyq.StackAt(2).m_value))
1549 .yytext), 1549 .yytext),
1550 ((Expression)(yyq.StackAt(0).m_value)) 1550 ((Expression)(yyq.StackAt(0).m_value))
1551 , 1551 ,
1552 ((MINUS_EQUALS)(yyq.StackAt(1).m_value)) 1552 ((MINUS_EQUALS)(yyq.StackAt(1).m_value))
1553 .yytext){}} 1553 .yytext){}}
1554 1554
1555public class SimpleAssignment_10 : SimpleAssignment { 1555public class SimpleAssignment_10 : SimpleAssignment {
1556 public SimpleAssignment_10(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1556 public SimpleAssignment_10(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1557)yyq), 1557)yyq),
1558 ((IDENT)(yyq.StackAt(4).m_value)) 1558 ((IDENT)(yyq.StackAt(4).m_value))
1559 .yytext, 1559 .yytext,
1560 ((IDENT)(yyq.StackAt(2).m_value)) 1560 ((IDENT)(yyq.StackAt(2).m_value))
1561 .yytext), 1561 .yytext),
1562 ((Expression)(yyq.StackAt(0).m_value)) 1562 ((Expression)(yyq.StackAt(0).m_value))
1563 , 1563 ,
1564 ((STAR_EQUALS)(yyq.StackAt(1).m_value)) 1564 ((STAR_EQUALS)(yyq.StackAt(1).m_value))
1565 .yytext){}} 1565 .yytext){}}
1566 1566
1567public class SimpleAssignment_11 : SimpleAssignment { 1567public class SimpleAssignment_11 : SimpleAssignment {
1568 public SimpleAssignment_11(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1568 public SimpleAssignment_11(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1569)yyq), 1569)yyq),
1570 ((IDENT)(yyq.StackAt(4).m_value)) 1570 ((IDENT)(yyq.StackAt(4).m_value))
1571 .yytext, 1571 .yytext,
1572 ((IDENT)(yyq.StackAt(2).m_value)) 1572 ((IDENT)(yyq.StackAt(2).m_value))
1573 .yytext), 1573 .yytext),
1574 ((Expression)(yyq.StackAt(0).m_value)) 1574 ((Expression)(yyq.StackAt(0).m_value))
1575 , 1575 ,
1576 ((SLASH_EQUALS)(yyq.StackAt(1).m_value)) 1576 ((SLASH_EQUALS)(yyq.StackAt(1).m_value))
1577 .yytext){}} 1577 .yytext){}}
1578 1578
1579public class SimpleAssignment_12 : SimpleAssignment { 1579public class SimpleAssignment_12 : SimpleAssignment {
1580 public SimpleAssignment_12(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1580 public SimpleAssignment_12(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1581)yyq), 1581)yyq),
1582 ((IDENT)(yyq.StackAt(4).m_value)) 1582 ((IDENT)(yyq.StackAt(4).m_value))
1583 .yytext, 1583 .yytext,
1584 ((IDENT)(yyq.StackAt(2).m_value)) 1584 ((IDENT)(yyq.StackAt(2).m_value))
1585 .yytext), 1585 .yytext),
1586 ((Expression)(yyq.StackAt(0).m_value)) 1586 ((Expression)(yyq.StackAt(0).m_value))
1587 , 1587 ,
1588 ((PERCENT_EQUALS)(yyq.StackAt(1).m_value)) 1588 ((PERCENT_EQUALS)(yyq.StackAt(1).m_value))
1589 .yytext){}} 1589 .yytext){}}
1590 1590
1591public class SimpleAssignment_13 : SimpleAssignment { 1591public class SimpleAssignment_13 : SimpleAssignment {
1592 public SimpleAssignment_13(Parser yyq):base(yyq, 1592 public SimpleAssignment_13(Parser yyq):base(yyq,
1593 ((IDENT)(yyq.StackAt(2).m_value)) 1593 ((IDENT)(yyq.StackAt(2).m_value))
1594 , 1594 ,
1595 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1595 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1596 , 1596 ,
1597 ((EQUALS)(yyq.StackAt(1).m_value)) 1597 ((EQUALS)(yyq.StackAt(1).m_value))
1598 .yytext){}} 1598 .yytext){}}
1599 1599
1600public class SimpleAssignment_14 : SimpleAssignment { 1600public class SimpleAssignment_14 : SimpleAssignment {
1601 public SimpleAssignment_14(Parser yyq):base(yyq, 1601 public SimpleAssignment_14(Parser yyq):base(yyq,
1602 ((IDENT)(yyq.StackAt(2).m_value)) 1602 ((IDENT)(yyq.StackAt(2).m_value))
1603 , 1603 ,
1604 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1604 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1605 , 1605 ,
1606 ((PLUS_EQUALS)(yyq.StackAt(1).m_value)) 1606 ((PLUS_EQUALS)(yyq.StackAt(1).m_value))
1607 .yytext){}} 1607 .yytext){}}
1608 1608
1609public class SimpleAssignment_15 : SimpleAssignment { 1609public class SimpleAssignment_15 : SimpleAssignment {
1610 public SimpleAssignment_15(Parser yyq):base(yyq, 1610 public SimpleAssignment_15(Parser yyq):base(yyq,
1611 ((IDENT)(yyq.StackAt(2).m_value)) 1611 ((IDENT)(yyq.StackAt(2).m_value))
1612 , 1612 ,
1613 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1613 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1614 , 1614 ,
1615 ((MINUS_EQUALS)(yyq.StackAt(1).m_value)) 1615 ((MINUS_EQUALS)(yyq.StackAt(1).m_value))
1616 .yytext){}} 1616 .yytext){}}
1617 1617
1618public class SimpleAssignment_16 : SimpleAssignment { 1618public class SimpleAssignment_16 : SimpleAssignment {
1619 public SimpleAssignment_16(Parser yyq):base(yyq, 1619 public SimpleAssignment_16(Parser yyq):base(yyq,
1620 ((IDENT)(yyq.StackAt(2).m_value)) 1620 ((IDENT)(yyq.StackAt(2).m_value))
1621 , 1621 ,
1622 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1622 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1623 , 1623 ,
1624 ((STAR_EQUALS)(yyq.StackAt(1).m_value)) 1624 ((STAR_EQUALS)(yyq.StackAt(1).m_value))
1625 .yytext){}} 1625 .yytext){}}
1626 1626
1627public class SimpleAssignment_17 : SimpleAssignment { 1627public class SimpleAssignment_17 : SimpleAssignment {
1628 public SimpleAssignment_17(Parser yyq):base(yyq, 1628 public SimpleAssignment_17(Parser yyq):base(yyq,
1629 ((IDENT)(yyq.StackAt(2).m_value)) 1629 ((IDENT)(yyq.StackAt(2).m_value))
1630 , 1630 ,
1631 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1631 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1632 , 1632 ,
1633 ((SLASH_EQUALS)(yyq.StackAt(1).m_value)) 1633 ((SLASH_EQUALS)(yyq.StackAt(1).m_value))
1634 .yytext){}} 1634 .yytext){}}
1635 1635
1636public class SimpleAssignment_18 : SimpleAssignment { 1636public class SimpleAssignment_18 : SimpleAssignment {
1637 public SimpleAssignment_18(Parser yyq):base(yyq, 1637 public SimpleAssignment_18(Parser yyq):base(yyq,
1638 ((IDENT)(yyq.StackAt(2).m_value)) 1638 ((IDENT)(yyq.StackAt(2).m_value))
1639 , 1639 ,
1640 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1640 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1641 , 1641 ,
1642 ((PERCENT_EQUALS)(yyq.StackAt(1).m_value)) 1642 ((PERCENT_EQUALS)(yyq.StackAt(1).m_value))
1643 .yytext){}} 1643 .yytext){}}
1644 1644
1645public class SimpleAssignment_19 : SimpleAssignment { 1645public class SimpleAssignment_19 : SimpleAssignment {
1646 public SimpleAssignment_19(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1646 public SimpleAssignment_19(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1647)yyq), 1647)yyq),
1648 ((IDENT)(yyq.StackAt(4).m_value)) 1648 ((IDENT)(yyq.StackAt(4).m_value))
1649 .yytext, 1649 .yytext,
1650 ((IDENT)(yyq.StackAt(2).m_value)) 1650 ((IDENT)(yyq.StackAt(2).m_value))
1651 .yytext), 1651 .yytext),
1652 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1652 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1653 , 1653 ,
1654 ((EQUALS)(yyq.StackAt(1).m_value)) 1654 ((EQUALS)(yyq.StackAt(1).m_value))
1655 .yytext){}} 1655 .yytext){}}
1656 1656
1657public class SimpleAssignment_20 : SimpleAssignment { 1657public class SimpleAssignment_20 : SimpleAssignment {
1658 public SimpleAssignment_20(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1658 public SimpleAssignment_20(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1659)yyq), 1659)yyq),
1660 ((IDENT)(yyq.StackAt(4).m_value)) 1660 ((IDENT)(yyq.StackAt(4).m_value))
1661 .yytext, 1661 .yytext,
1662 ((IDENT)(yyq.StackAt(2).m_value)) 1662 ((IDENT)(yyq.StackAt(2).m_value))
1663 .yytext), 1663 .yytext),
1664 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1664 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1665 , 1665 ,
1666 ((PLUS_EQUALS)(yyq.StackAt(1).m_value)) 1666 ((PLUS_EQUALS)(yyq.StackAt(1).m_value))
1667 .yytext){}} 1667 .yytext){}}
1668 1668
1669public class SimpleAssignment_21 : SimpleAssignment { 1669public class SimpleAssignment_21 : SimpleAssignment {
1670 public SimpleAssignment_21(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1670 public SimpleAssignment_21(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1671)yyq), 1671)yyq),
1672 ((IDENT)(yyq.StackAt(4).m_value)) 1672 ((IDENT)(yyq.StackAt(4).m_value))
1673 .yytext, 1673 .yytext,
1674 ((IDENT)(yyq.StackAt(2).m_value)) 1674 ((IDENT)(yyq.StackAt(2).m_value))
1675 .yytext), 1675 .yytext),
1676 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1676 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1677 , 1677 ,
1678 ((MINUS_EQUALS)(yyq.StackAt(1).m_value)) 1678 ((MINUS_EQUALS)(yyq.StackAt(1).m_value))
1679 .yytext){}} 1679 .yytext){}}
1680 1680
1681public class SimpleAssignment_22 : SimpleAssignment { 1681public class SimpleAssignment_22 : SimpleAssignment {
1682 public SimpleAssignment_22(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1682 public SimpleAssignment_22(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1683)yyq), 1683)yyq),
1684 ((IDENT)(yyq.StackAt(4).m_value)) 1684 ((IDENT)(yyq.StackAt(4).m_value))
1685 .yytext, 1685 .yytext,
1686 ((IDENT)(yyq.StackAt(2).m_value)) 1686 ((IDENT)(yyq.StackAt(2).m_value))
1687 .yytext), 1687 .yytext),
1688 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1688 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1689 , 1689 ,
1690 ((STAR_EQUALS)(yyq.StackAt(1).m_value)) 1690 ((STAR_EQUALS)(yyq.StackAt(1).m_value))
1691 .yytext){}} 1691 .yytext){}}
1692 1692
1693public class SimpleAssignment_23 : SimpleAssignment { 1693public class SimpleAssignment_23 : SimpleAssignment {
1694 public SimpleAssignment_23(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1694 public SimpleAssignment_23(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1695)yyq), 1695)yyq),
1696 ((IDENT)(yyq.StackAt(4).m_value)) 1696 ((IDENT)(yyq.StackAt(4).m_value))
1697 .yytext, 1697 .yytext,
1698 ((IDENT)(yyq.StackAt(2).m_value)) 1698 ((IDENT)(yyq.StackAt(2).m_value))
1699 .yytext), 1699 .yytext),
1700 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1700 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1701 , 1701 ,
1702 ((SLASH_EQUALS)(yyq.StackAt(1).m_value)) 1702 ((SLASH_EQUALS)(yyq.StackAt(1).m_value))
1703 .yytext){}} 1703 .yytext){}}
1704 1704
1705public class SimpleAssignment_24 : SimpleAssignment { 1705public class SimpleAssignment_24 : SimpleAssignment {
1706 public SimpleAssignment_24(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1706 public SimpleAssignment_24(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1707)yyq), 1707)yyq),
1708 ((IDENT)(yyq.StackAt(4).m_value)) 1708 ((IDENT)(yyq.StackAt(4).m_value))
1709 .yytext, 1709 .yytext,
1710 ((IDENT)(yyq.StackAt(2).m_value)) 1710 ((IDENT)(yyq.StackAt(2).m_value))
1711 .yytext), 1711 .yytext),
1712 ((SimpleAssignment)(yyq.StackAt(0).m_value)) 1712 ((SimpleAssignment)(yyq.StackAt(0).m_value))
1713 , 1713 ,
1714 ((PERCENT_EQUALS)(yyq.StackAt(1).m_value)) 1714 ((PERCENT_EQUALS)(yyq.StackAt(1).m_value))
1715 .yytext){}} 1715 .yytext){}}
1716 1716
1717public class ReturnStatement_1 : ReturnStatement { 1717public class ReturnStatement_1 : ReturnStatement {
1718 public ReturnStatement_1(Parser yyq):base(yyq, 1718 public ReturnStatement_1(Parser yyq):base(yyq,
1719 ((Expression)(yyq.StackAt(0).m_value)) 1719 ((Expression)(yyq.StackAt(0).m_value))
1720 ){}} 1720 ){}}
1721 1721
1722public class ReturnStatement_2 : ReturnStatement { 1722public class ReturnStatement_2 : ReturnStatement {
1723 public ReturnStatement_2(Parser yyq):base(yyq){}} 1723 public ReturnStatement_2(Parser yyq):base(yyq){}}
1724 1724
1725public class Constant_1 : Constant { 1725public class Constant_1 : Constant {
1726 public Constant_1(Parser yyq):base(yyq,"integer", 1726 public Constant_1(Parser yyq):base(yyq,"integer",
1727 ((INTEGER_CONSTANT)(yyq.StackAt(0).m_value)) 1727 ((INTEGER_CONSTANT)(yyq.StackAt(0).m_value))
1728 .yytext){}} 1728 .yytext){}}
1729 1729
1730public class Constant_2 : Constant { 1730public class Constant_2 : Constant {
1731 public Constant_2(Parser yyq):base(yyq,"integer", 1731 public Constant_2(Parser yyq):base(yyq,"integer",
1732 ((HEX_INTEGER_CONSTANT)(yyq.StackAt(0).m_value)) 1732 ((HEX_INTEGER_CONSTANT)(yyq.StackAt(0).m_value))
1733 .yytext){}} 1733 .yytext){}}
1734 1734
1735public class Constant_3 : Constant { 1735public class Constant_3 : Constant {
1736 public Constant_3(Parser yyq):base(yyq,"float", 1736 public Constant_3(Parser yyq):base(yyq,"float",
1737 ((FLOAT_CONSTANT)(yyq.StackAt(0).m_value)) 1737 ((FLOAT_CONSTANT)(yyq.StackAt(0).m_value))
1738 .yytext){}} 1738 .yytext){}}
1739 1739
1740public class Constant_4 : Constant { 1740public class Constant_4 : Constant {
1741 public Constant_4(Parser yyq):base(yyq,"string", 1741 public Constant_4(Parser yyq):base(yyq,"string",
1742 ((STRING_CONSTANT)(yyq.StackAt(0).m_value)) 1742 ((STRING_CONSTANT)(yyq.StackAt(0).m_value))
1743 .yytext){}} 1743 .yytext){}}
1744 1744
1745public class ListConstant_1 : ListConstant { 1745public class ListConstant_1 : ListConstant {
1746 public ListConstant_1(Parser yyq):base(yyq, 1746 public ListConstant_1(Parser yyq):base(yyq,
1747 ((ArgumentList)(yyq.StackAt(1).m_value)) 1747 ((ArgumentList)(yyq.StackAt(1).m_value))
1748 ){}} 1748 ){}}
1749 1749
1750public class VectorConstant_1 : VectorConstant { 1750public class VectorConstant_1 : VectorConstant {
1751 public VectorConstant_1(Parser yyq):base(yyq, 1751 public VectorConstant_1(Parser yyq):base(yyq,
1752 ((Expression)(yyq.StackAt(5).m_value)) 1752 ((Expression)(yyq.StackAt(5).m_value))
1753 , 1753 ,
1754 ((Expression)(yyq.StackAt(3).m_value)) 1754 ((Expression)(yyq.StackAt(3).m_value))
1755 , 1755 ,
1756 ((Expression)(yyq.StackAt(1).m_value)) 1756 ((Expression)(yyq.StackAt(1).m_value))
1757 ){}} 1757 ){}}
1758 1758
1759public class RotationConstant_1 : RotationConstant { 1759public class RotationConstant_1 : RotationConstant {
1760 public RotationConstant_1(Parser yyq):base(yyq, 1760 public RotationConstant_1(Parser yyq):base(yyq,
1761 ((Expression)(yyq.StackAt(7).m_value)) 1761 ((Expression)(yyq.StackAt(7).m_value))
1762 , 1762 ,
1763 ((Expression)(yyq.StackAt(5).m_value)) 1763 ((Expression)(yyq.StackAt(5).m_value))
1764 , 1764 ,
1765 ((Expression)(yyq.StackAt(3).m_value)) 1765 ((Expression)(yyq.StackAt(3).m_value))
1766 , 1766 ,
1767 ((Expression)(yyq.StackAt(1).m_value)) 1767 ((Expression)(yyq.StackAt(1).m_value))
1768 ){}} 1768 ){}}
1769 1769
1770public class ConstantExpression_1 : ConstantExpression { 1770public class ConstantExpression_1 : ConstantExpression {
1771 public ConstantExpression_1(Parser yyq):base(yyq, 1771 public ConstantExpression_1(Parser yyq):base(yyq,
1772 ((Constant)(yyq.StackAt(0).m_value)) 1772 ((Constant)(yyq.StackAt(0).m_value))
1773 ){}} 1773 ){}}
1774 1774
1775public class IdentExpression_1 : IdentExpression { 1775public class IdentExpression_1 : IdentExpression {
1776 public IdentExpression_1(Parser yyq):base(yyq, 1776 public IdentExpression_1(Parser yyq):base(yyq,
1777 ((IDENT)(yyq.StackAt(0).m_value)) 1777 ((IDENT)(yyq.StackAt(0).m_value))
1778 .yytext){}} 1778 .yytext){}}
1779 1779
1780public class IdentDotExpression_1 : IdentDotExpression { 1780public class IdentDotExpression_1 : IdentDotExpression {
1781 public IdentDotExpression_1(Parser yyq):base(yyq, 1781 public IdentDotExpression_1(Parser yyq):base(yyq,
1782 ((IDENT)(yyq.StackAt(2).m_value)) 1782 ((IDENT)(yyq.StackAt(2).m_value))
1783 .yytext, 1783 .yytext,
1784 ((IDENT)(yyq.StackAt(0).m_value)) 1784 ((IDENT)(yyq.StackAt(0).m_value))
1785 .yytext){}} 1785 .yytext){}}
1786 1786
1787public class IncrementDecrementExpression_1 : IncrementDecrementExpression { 1787public class IncrementDecrementExpression_1 : IncrementDecrementExpression {
1788 public IncrementDecrementExpression_1(Parser yyq):base(yyq, 1788 public IncrementDecrementExpression_1(Parser yyq):base(yyq,
1789 ((IDENT)(yyq.StackAt(1).m_value)) 1789 ((IDENT)(yyq.StackAt(1).m_value))
1790 .yytext, 1790 .yytext,
1791 ((INCREMENT)(yyq.StackAt(0).m_value)) 1791 ((INCREMENT)(yyq.StackAt(0).m_value))
1792 .yytext, true){}} 1792 .yytext, true){}}
1793 1793
1794public class IncrementDecrementExpression_2 : IncrementDecrementExpression { 1794public class IncrementDecrementExpression_2 : IncrementDecrementExpression {
1795 public IncrementDecrementExpression_2(Parser yyq):base(yyq, 1795 public IncrementDecrementExpression_2(Parser yyq):base(yyq,
1796 ((IDENT)(yyq.StackAt(1).m_value)) 1796 ((IDENT)(yyq.StackAt(1).m_value))
1797 .yytext, 1797 .yytext,
1798 ((DECREMENT)(yyq.StackAt(0).m_value)) 1798 ((DECREMENT)(yyq.StackAt(0).m_value))
1799 .yytext, true){}} 1799 .yytext, true){}}
1800 1800
1801public class IncrementDecrementExpression_3 : IncrementDecrementExpression { 1801public class IncrementDecrementExpression_3 : IncrementDecrementExpression {
1802 public IncrementDecrementExpression_3(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1802 public IncrementDecrementExpression_3(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1803)yyq), 1803)yyq),
1804 ((IDENT)(yyq.StackAt(3).m_value)) 1804 ((IDENT)(yyq.StackAt(3).m_value))
1805 .yytext, 1805 .yytext,
1806 ((IDENT)(yyq.StackAt(1).m_value)) 1806 ((IDENT)(yyq.StackAt(1).m_value))
1807 .yytext), 1807 .yytext),
1808 ((INCREMENT)(yyq.StackAt(0).m_value)) 1808 ((INCREMENT)(yyq.StackAt(0).m_value))
1809 .yytext, true){}} 1809 .yytext, true){}}
1810 1810
1811public class IncrementDecrementExpression_4 : IncrementDecrementExpression { 1811public class IncrementDecrementExpression_4 : IncrementDecrementExpression {
1812 public IncrementDecrementExpression_4(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1812 public IncrementDecrementExpression_4(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1813)yyq), 1813)yyq),
1814 ((IDENT)(yyq.StackAt(3).m_value)) 1814 ((IDENT)(yyq.StackAt(3).m_value))
1815 .yytext, 1815 .yytext,
1816 ((IDENT)(yyq.StackAt(1).m_value)) 1816 ((IDENT)(yyq.StackAt(1).m_value))
1817 .yytext), 1817 .yytext),
1818 ((DECREMENT)(yyq.StackAt(0).m_value)) 1818 ((DECREMENT)(yyq.StackAt(0).m_value))
1819 .yytext, true){}} 1819 .yytext, true){}}
1820 1820
1821public class IncrementDecrementExpression_5 : IncrementDecrementExpression { 1821public class IncrementDecrementExpression_5 : IncrementDecrementExpression {
1822 public IncrementDecrementExpression_5(Parser yyq):base(yyq, 1822 public IncrementDecrementExpression_5(Parser yyq):base(yyq,
1823 ((IDENT)(yyq.StackAt(0).m_value)) 1823 ((IDENT)(yyq.StackAt(0).m_value))
1824 .yytext, 1824 .yytext,
1825 ((INCREMENT)(yyq.StackAt(1).m_value)) 1825 ((INCREMENT)(yyq.StackAt(1).m_value))
1826 .yytext, false){}} 1826 .yytext, false){}}
1827 1827
1828public class IncrementDecrementExpression_6 : IncrementDecrementExpression { 1828public class IncrementDecrementExpression_6 : IncrementDecrementExpression {
1829 public IncrementDecrementExpression_6(Parser yyq):base(yyq, 1829 public IncrementDecrementExpression_6(Parser yyq):base(yyq,
1830 ((IDENT)(yyq.StackAt(0).m_value)) 1830 ((IDENT)(yyq.StackAt(0).m_value))
1831 .yytext, 1831 .yytext,
1832 ((DECREMENT)(yyq.StackAt(1).m_value)) 1832 ((DECREMENT)(yyq.StackAt(1).m_value))
1833 .yytext, false){}} 1833 .yytext, false){}}
1834 1834
1835public class IncrementDecrementExpression_7 : IncrementDecrementExpression { 1835public class IncrementDecrementExpression_7 : IncrementDecrementExpression {
1836 public IncrementDecrementExpression_7(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1836 public IncrementDecrementExpression_7(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1837)yyq), 1837)yyq),
1838 ((IDENT)(yyq.StackAt(2).m_value)) 1838 ((IDENT)(yyq.StackAt(2).m_value))
1839 .yytext, 1839 .yytext,
1840 ((IDENT)(yyq.StackAt(0).m_value)) 1840 ((IDENT)(yyq.StackAt(0).m_value))
1841 .yytext), 1841 .yytext),
1842 ((INCREMENT)(yyq.StackAt(3).m_value)) 1842 ((INCREMENT)(yyq.StackAt(3).m_value))
1843 .yytext, false){}} 1843 .yytext, false){}}
1844 1844
1845public class IncrementDecrementExpression_8 : IncrementDecrementExpression { 1845public class IncrementDecrementExpression_8 : IncrementDecrementExpression {
1846 public IncrementDecrementExpression_8(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax 1846 public IncrementDecrementExpression_8(Parser yyq):base(yyq,new IdentDotExpression(((LSLSyntax
1847)yyq), 1847)yyq),
1848 ((IDENT)(yyq.StackAt(2).m_value)) 1848 ((IDENT)(yyq.StackAt(2).m_value))
1849 .yytext, 1849 .yytext,
1850 ((IDENT)(yyq.StackAt(0).m_value)) 1850 ((IDENT)(yyq.StackAt(0).m_value))
1851 .yytext), 1851 .yytext),
1852 ((DECREMENT)(yyq.StackAt(3).m_value)) 1852 ((DECREMENT)(yyq.StackAt(3).m_value))
1853 .yytext, false){}} 1853 .yytext, false){}}
1854 1854
1855public class FunctionCallExpression_1 : FunctionCallExpression { 1855public class FunctionCallExpression_1 : FunctionCallExpression {
1856 public FunctionCallExpression_1(Parser yyq):base(yyq, 1856 public FunctionCallExpression_1(Parser yyq):base(yyq,
1857 ((FunctionCall)(yyq.StackAt(0).m_value)) 1857 ((FunctionCall)(yyq.StackAt(0).m_value))
1858 ){}} 1858 ){}}
1859 1859
1860public class BinaryExpression_1 : BinaryExpression { 1860public class BinaryExpression_1 : BinaryExpression {
1861 public BinaryExpression_1(Parser yyq):base(yyq, 1861 public BinaryExpression_1(Parser yyq):base(yyq,
1862 ((Expression)(yyq.StackAt(2).m_value)) 1862 ((Expression)(yyq.StackAt(2).m_value))
1863 , 1863 ,
1864 ((Expression)(yyq.StackAt(0).m_value)) 1864 ((Expression)(yyq.StackAt(0).m_value))
1865 , 1865 ,
1866 ((PLUS)(yyq.StackAt(1).m_value)) 1866 ((PLUS)(yyq.StackAt(1).m_value))
1867 .yytext){}} 1867 .yytext){}}
1868 1868
1869public class BinaryExpression_2 : BinaryExpression { 1869public class BinaryExpression_2 : BinaryExpression {
1870 public BinaryExpression_2(Parser yyq):base(yyq, 1870 public BinaryExpression_2(Parser yyq):base(yyq,
1871 ((Expression)(yyq.StackAt(2).m_value)) 1871 ((Expression)(yyq.StackAt(2).m_value))
1872 , 1872 ,
1873 ((Expression)(yyq.StackAt(0).m_value)) 1873 ((Expression)(yyq.StackAt(0).m_value))
1874 , 1874 ,
1875 ((MINUS)(yyq.StackAt(1).m_value)) 1875 ((MINUS)(yyq.StackAt(1).m_value))
1876 .yytext){}} 1876 .yytext){}}
1877 1877
1878public class BinaryExpression_3 : BinaryExpression { 1878public class BinaryExpression_3 : BinaryExpression {
1879 public BinaryExpression_3(Parser yyq):base(yyq, 1879 public BinaryExpression_3(Parser yyq):base(yyq,
1880 ((Expression)(yyq.StackAt(2).m_value)) 1880 ((Expression)(yyq.StackAt(2).m_value))
1881 , 1881 ,
1882 ((Expression)(yyq.StackAt(0).m_value)) 1882 ((Expression)(yyq.StackAt(0).m_value))
1883 , 1883 ,
1884 ((STAR)(yyq.StackAt(1).m_value)) 1884 ((STAR)(yyq.StackAt(1).m_value))
1885 .yytext){}} 1885 .yytext){}}
1886 1886
1887public class BinaryExpression_4 : BinaryExpression { 1887public class BinaryExpression_4 : BinaryExpression {
1888 public BinaryExpression_4(Parser yyq):base(yyq, 1888 public BinaryExpression_4(Parser yyq):base(yyq,
1889 ((Expression)(yyq.StackAt(2).m_value)) 1889 ((Expression)(yyq.StackAt(2).m_value))
1890 , 1890 ,
1891 ((Expression)(yyq.StackAt(0).m_value)) 1891 ((Expression)(yyq.StackAt(0).m_value))
1892 , 1892 ,
1893 ((SLASH)(yyq.StackAt(1).m_value)) 1893 ((SLASH)(yyq.StackAt(1).m_value))
1894 .yytext){}} 1894 .yytext){}}
1895 1895
1896public class BinaryExpression_5 : BinaryExpression { 1896public class BinaryExpression_5 : BinaryExpression {
1897 public BinaryExpression_5(Parser yyq):base(yyq, 1897 public BinaryExpression_5(Parser yyq):base(yyq,
1898 ((Expression)(yyq.StackAt(2).m_value)) 1898 ((Expression)(yyq.StackAt(2).m_value))
1899 , 1899 ,
1900 ((Expression)(yyq.StackAt(0).m_value)) 1900 ((Expression)(yyq.StackAt(0).m_value))
1901 , 1901 ,
1902 ((PERCENT)(yyq.StackAt(1).m_value)) 1902 ((PERCENT)(yyq.StackAt(1).m_value))
1903 .yytext){}} 1903 .yytext){}}
1904 1904
1905public class BinaryExpression_6 : BinaryExpression { 1905public class BinaryExpression_6 : BinaryExpression {
1906 public BinaryExpression_6(Parser yyq):base(yyq, 1906 public BinaryExpression_6(Parser yyq):base(yyq,
1907 ((Expression)(yyq.StackAt(2).m_value)) 1907 ((Expression)(yyq.StackAt(2).m_value))
1908 , 1908 ,
1909 ((Expression)(yyq.StackAt(0).m_value)) 1909 ((Expression)(yyq.StackAt(0).m_value))
1910 , 1910 ,
1911 ((AMP)(yyq.StackAt(1).m_value)) 1911 ((AMP)(yyq.StackAt(1).m_value))
1912 .yytext){}} 1912 .yytext){}}
1913 1913
1914public class BinaryExpression_7 : BinaryExpression { 1914public class BinaryExpression_7 : BinaryExpression {
1915 public BinaryExpression_7(Parser yyq):base(yyq, 1915 public BinaryExpression_7(Parser yyq):base(yyq,
1916 ((Expression)(yyq.StackAt(2).m_value)) 1916 ((Expression)(yyq.StackAt(2).m_value))
1917 , 1917 ,
1918 ((Expression)(yyq.StackAt(0).m_value)) 1918 ((Expression)(yyq.StackAt(0).m_value))
1919 , 1919 ,
1920 ((STROKE)(yyq.StackAt(1).m_value)) 1920 ((STROKE)(yyq.StackAt(1).m_value))
1921 .yytext){}} 1921 .yytext){}}
1922 1922
1923public class BinaryExpression_8 : BinaryExpression { 1923public class BinaryExpression_8 : BinaryExpression {
1924 public BinaryExpression_8(Parser yyq):base(yyq, 1924 public BinaryExpression_8(Parser yyq):base(yyq,
1925 ((Expression)(yyq.StackAt(2).m_value)) 1925 ((Expression)(yyq.StackAt(2).m_value))
1926 , 1926 ,
1927 ((Expression)(yyq.StackAt(0).m_value)) 1927 ((Expression)(yyq.StackAt(0).m_value))
1928 , 1928 ,
1929 ((CARET)(yyq.StackAt(1).m_value)) 1929 ((CARET)(yyq.StackAt(1).m_value))
1930 .yytext){}} 1930 .yytext){}}
1931 1931
1932public class BinaryExpression_9 : BinaryExpression { 1932public class BinaryExpression_9 : BinaryExpression {
1933 public BinaryExpression_9(Parser yyq):base(yyq, 1933 public BinaryExpression_9(Parser yyq):base(yyq,
1934 ((Expression)(yyq.StackAt(2).m_value)) 1934 ((Expression)(yyq.StackAt(2).m_value))
1935 , 1935 ,
1936 ((Expression)(yyq.StackAt(0).m_value)) 1936 ((Expression)(yyq.StackAt(0).m_value))
1937 , 1937 ,
1938 ((RIGHT_ANGLE)(yyq.StackAt(1).m_value)) 1938 ((RIGHT_ANGLE)(yyq.StackAt(1).m_value))
1939 .yytext){}} 1939 .yytext){}}
1940 1940
1941public class BinaryExpression_10 : BinaryExpression { 1941public class BinaryExpression_10 : BinaryExpression {
1942 public BinaryExpression_10(Parser yyq):base(yyq, 1942 public BinaryExpression_10(Parser yyq):base(yyq,
1943 ((Expression)(yyq.StackAt(2).m_value)) 1943 ((Expression)(yyq.StackAt(2).m_value))
1944 , 1944 ,
1945 ((Expression)(yyq.StackAt(0).m_value)) 1945 ((Expression)(yyq.StackAt(0).m_value))
1946 , 1946 ,
1947 ((LEFT_ANGLE)(yyq.StackAt(1).m_value)) 1947 ((LEFT_ANGLE)(yyq.StackAt(1).m_value))
1948 .yytext){}} 1948 .yytext){}}
1949 1949
1950public class BinaryExpression_11 : BinaryExpression { 1950public class BinaryExpression_11 : BinaryExpression {
1951 public BinaryExpression_11(Parser yyq):base(yyq, 1951 public BinaryExpression_11(Parser yyq):base(yyq,
1952 ((Expression)(yyq.StackAt(2).m_value)) 1952 ((Expression)(yyq.StackAt(2).m_value))
1953 , 1953 ,
1954 ((Expression)(yyq.StackAt(0).m_value)) 1954 ((Expression)(yyq.StackAt(0).m_value))
1955 , 1955 ,
1956 ((EQUALS_EQUALS)(yyq.StackAt(1).m_value)) 1956 ((EQUALS_EQUALS)(yyq.StackAt(1).m_value))
1957 .yytext){}} 1957 .yytext){}}
1958 1958
1959public class BinaryExpression_12 : BinaryExpression { 1959public class BinaryExpression_12 : BinaryExpression {
1960 public BinaryExpression_12(Parser yyq):base(yyq, 1960 public BinaryExpression_12(Parser yyq):base(yyq,
1961 ((Expression)(yyq.StackAt(2).m_value)) 1961 ((Expression)(yyq.StackAt(2).m_value))
1962 , 1962 ,
1963 ((Expression)(yyq.StackAt(0).m_value)) 1963 ((Expression)(yyq.StackAt(0).m_value))
1964 , 1964 ,
1965 ((EXCLAMATION_EQUALS)(yyq.StackAt(1).m_value)) 1965 ((EXCLAMATION_EQUALS)(yyq.StackAt(1).m_value))
1966 .yytext){}} 1966 .yytext){}}
1967 1967
1968public class BinaryExpression_13 : BinaryExpression { 1968public class BinaryExpression_13 : BinaryExpression {
1969 public BinaryExpression_13(Parser yyq):base(yyq, 1969 public BinaryExpression_13(Parser yyq):base(yyq,
1970 ((Expression)(yyq.StackAt(2).m_value)) 1970 ((Expression)(yyq.StackAt(2).m_value))
1971 , 1971 ,
1972 ((Expression)(yyq.StackAt(0).m_value)) 1972 ((Expression)(yyq.StackAt(0).m_value))
1973 , 1973 ,
1974 ((LESS_EQUALS)(yyq.StackAt(1).m_value)) 1974 ((LESS_EQUALS)(yyq.StackAt(1).m_value))
1975 .yytext){}} 1975 .yytext){}}
1976 1976
1977public class BinaryExpression_14 : BinaryExpression { 1977public class BinaryExpression_14 : BinaryExpression {
1978 public BinaryExpression_14(Parser yyq):base(yyq, 1978 public BinaryExpression_14(Parser yyq):base(yyq,
1979 ((Expression)(yyq.StackAt(2).m_value)) 1979 ((Expression)(yyq.StackAt(2).m_value))
1980 , 1980 ,
1981 ((Expression)(yyq.StackAt(0).m_value)) 1981 ((Expression)(yyq.StackAt(0).m_value))
1982 , 1982 ,
1983 ((GREATER_EQUALS)(yyq.StackAt(1).m_value)) 1983 ((GREATER_EQUALS)(yyq.StackAt(1).m_value))
1984 .yytext){}} 1984 .yytext){}}
1985 1985
1986public class BinaryExpression_15 : BinaryExpression { 1986public class BinaryExpression_15 : BinaryExpression {
1987 public BinaryExpression_15(Parser yyq):base(yyq, 1987 public BinaryExpression_15(Parser yyq):base(yyq,
1988 ((Expression)(yyq.StackAt(2).m_value)) 1988 ((Expression)(yyq.StackAt(2).m_value))
1989 , 1989 ,
1990 ((Expression)(yyq.StackAt(0).m_value)) 1990 ((Expression)(yyq.StackAt(0).m_value))
1991 , 1991 ,
1992 ((AMP_AMP)(yyq.StackAt(1).m_value)) 1992 ((AMP_AMP)(yyq.StackAt(1).m_value))
1993 .yytext){}} 1993 .yytext){}}
1994 1994
1995public class BinaryExpression_16 : BinaryExpression { 1995public class BinaryExpression_16 : BinaryExpression {
1996 public BinaryExpression_16(Parser yyq):base(yyq, 1996 public BinaryExpression_16(Parser yyq):base(yyq,
1997 ((Expression)(yyq.StackAt(2).m_value)) 1997 ((Expression)(yyq.StackAt(2).m_value))
1998 , 1998 ,
1999 ((Expression)(yyq.StackAt(0).m_value)) 1999 ((Expression)(yyq.StackAt(0).m_value))
2000 , 2000 ,
2001 ((STROKE_STROKE)(yyq.StackAt(1).m_value)) 2001 ((STROKE_STROKE)(yyq.StackAt(1).m_value))
2002 .yytext){}} 2002 .yytext){}}
2003 2003
2004public class BinaryExpression_17 : BinaryExpression { 2004public class BinaryExpression_17 : BinaryExpression {
2005 public BinaryExpression_17(Parser yyq):base(yyq, 2005 public BinaryExpression_17(Parser yyq):base(yyq,
2006 ((Expression)(yyq.StackAt(2).m_value)) 2006 ((Expression)(yyq.StackAt(2).m_value))
2007 , 2007 ,
2008 ((Expression)(yyq.StackAt(0).m_value)) 2008 ((Expression)(yyq.StackAt(0).m_value))
2009 , 2009 ,
2010 ((LEFT_SHIFT)(yyq.StackAt(1).m_value)) 2010 ((LEFT_SHIFT)(yyq.StackAt(1).m_value))
2011 .yytext){}} 2011 .yytext){}}
2012 2012
2013public class BinaryExpression_18 : BinaryExpression { 2013public class BinaryExpression_18 : BinaryExpression {
2014 public BinaryExpression_18(Parser yyq):base(yyq, 2014 public BinaryExpression_18(Parser yyq):base(yyq,
2015 ((Expression)(yyq.StackAt(2).m_value)) 2015 ((Expression)(yyq.StackAt(2).m_value))
2016 , 2016 ,
2017 ((Expression)(yyq.StackAt(0).m_value)) 2017 ((Expression)(yyq.StackAt(0).m_value))
2018 , 2018 ,
2019 ((RIGHT_SHIFT)(yyq.StackAt(1).m_value)) 2019 ((RIGHT_SHIFT)(yyq.StackAt(1).m_value))
2020 .yytext){}} 2020 .yytext){}}
2021 2021
2022public class UnaryExpression_1 : UnaryExpression { 2022public class UnaryExpression_1 : UnaryExpression {
2023 public UnaryExpression_1(Parser yyq):base(yyq, 2023 public UnaryExpression_1(Parser yyq):base(yyq,
2024 ((EXCLAMATION)(yyq.StackAt(1).m_value)) 2024 ((EXCLAMATION)(yyq.StackAt(1).m_value))
2025 .yytext, 2025 .yytext,
2026 ((Expression)(yyq.StackAt(0).m_value)) 2026 ((Expression)(yyq.StackAt(0).m_value))
2027 ){}} 2027 ){}}
2028 2028
2029public class UnaryExpression_2 : UnaryExpression { 2029public class UnaryExpression_2 : UnaryExpression {
2030 public UnaryExpression_2(Parser yyq):base(yyq, 2030 public UnaryExpression_2(Parser yyq):base(yyq,
2031 ((MINUS)(yyq.StackAt(1).m_value)) 2031 ((MINUS)(yyq.StackAt(1).m_value))
2032 .yytext, 2032 .yytext,
2033 ((Expression)(yyq.StackAt(0).m_value)) 2033 ((Expression)(yyq.StackAt(0).m_value))
2034 ){}} 2034 ){}}
2035 2035
2036public class UnaryExpression_3 : UnaryExpression { 2036public class UnaryExpression_3 : UnaryExpression {
2037 public UnaryExpression_3(Parser yyq):base(yyq, 2037 public UnaryExpression_3(Parser yyq):base(yyq,
2038 ((TILDE)(yyq.StackAt(1).m_value)) 2038 ((TILDE)(yyq.StackAt(1).m_value))
2039 .yytext, 2039 .yytext,
2040 ((Expression)(yyq.StackAt(0).m_value)) 2040 ((Expression)(yyq.StackAt(0).m_value))
2041 ){}} 2041 ){}}
2042 2042
2043public class ParenthesisExpression_1 : ParenthesisExpression { 2043public class ParenthesisExpression_1 : ParenthesisExpression {
2044 public ParenthesisExpression_1(Parser yyq):base(yyq, 2044 public ParenthesisExpression_1(Parser yyq):base(yyq,
2045 ((Expression)(yyq.StackAt(1).m_value)) 2045 ((Expression)(yyq.StackAt(1).m_value))
2046 ){}} 2046 ){}}
2047 2047
2048public class ParenthesisExpression_2 : ParenthesisExpression { 2048public class ParenthesisExpression_2 : ParenthesisExpression {
2049 public ParenthesisExpression_2(Parser yyq):base(yyq, 2049 public ParenthesisExpression_2(Parser yyq):base(yyq,
2050 ((SimpleAssignment)(yyq.StackAt(1).m_value)) 2050 ((SimpleAssignment)(yyq.StackAt(1).m_value))
2051 ){}} 2051 ){}}
2052 2052
2053public class TypecastExpression_1 : TypecastExpression { 2053public class TypecastExpression_1 : TypecastExpression {
2054 public TypecastExpression_1(Parser yyq):base(yyq, 2054 public TypecastExpression_1(Parser yyq):base(yyq,
2055 ((Typename)(yyq.StackAt(2).m_value)) 2055 ((Typename)(yyq.StackAt(2).m_value))
2056 .yytext, 2056 .yytext,
2057 ((Constant)(yyq.StackAt(0).m_value)) 2057 ((Constant)(yyq.StackAt(0).m_value))
2058 ){}} 2058 ){}}
2059 2059
2060public class TypecastExpression_2 : TypecastExpression { 2060public class TypecastExpression_2 : TypecastExpression {
2061 public TypecastExpression_2(Parser yyq):base(yyq, 2061 public TypecastExpression_2(Parser yyq):base(yyq,
2062 ((Typename)(yyq.StackAt(2).m_value)) 2062 ((Typename)(yyq.StackAt(2).m_value))
2063 .yytext, new IdentExpression(((LSLSyntax 2063 .yytext, new IdentExpression(((LSLSyntax
2064)yyq), 2064)yyq),
2065 ((IDENT)(yyq.StackAt(0).m_value)) 2065 ((IDENT)(yyq.StackAt(0).m_value))
2066 .yytext)){}} 2066 .yytext)){}}
2067 2067
2068public class TypecastExpression_3 : TypecastExpression { 2068public class TypecastExpression_3 : TypecastExpression {
2069 public TypecastExpression_3(Parser yyq):base(yyq, 2069 public TypecastExpression_3(Parser yyq):base(yyq,
2070 ((Typename)(yyq.StackAt(4).m_value)) 2070 ((Typename)(yyq.StackAt(4).m_value))
2071 .yytext, new IdentDotExpression(((LSLSyntax 2071 .yytext, new IdentDotExpression(((LSLSyntax
2072)yyq), 2072)yyq),
2073 ((IDENT)(yyq.StackAt(2).m_value)) 2073 ((IDENT)(yyq.StackAt(2).m_value))
2074 .yytext, 2074 .yytext,
2075 ((IDENT)(yyq.StackAt(0).m_value)) 2075 ((IDENT)(yyq.StackAt(0).m_value))
2076 .yytext)){}} 2076 .yytext)){}}
2077 2077
2078public class TypecastExpression_4 : TypecastExpression { 2078public class TypecastExpression_4 : TypecastExpression {
2079 public TypecastExpression_4(Parser yyq):base(yyq, 2079 public TypecastExpression_4(Parser yyq):base(yyq,
2080 ((Typename)(yyq.StackAt(3).m_value)) 2080 ((Typename)(yyq.StackAt(3).m_value))
2081 .yytext, new IncrementDecrementExpression(((LSLSyntax 2081 .yytext, new IncrementDecrementExpression(((LSLSyntax
2082)yyq), 2082)yyq),
2083 ((IDENT)(yyq.StackAt(1).m_value)) 2083 ((IDENT)(yyq.StackAt(1).m_value))
2084 .yytext, 2084 .yytext,
2085 ((INCREMENT)(yyq.StackAt(0).m_value)) 2085 ((INCREMENT)(yyq.StackAt(0).m_value))
2086 .yytext, true)){}} 2086 .yytext, true)){}}
2087 2087
2088public class TypecastExpression_5 : TypecastExpression { 2088public class TypecastExpression_5 : TypecastExpression {
2089 public TypecastExpression_5(Parser yyq):base(yyq, 2089 public TypecastExpression_5(Parser yyq):base(yyq,
2090 ((Typename)(yyq.StackAt(5).m_value)) 2090 ((Typename)(yyq.StackAt(5).m_value))
2091 .yytext, new IncrementDecrementExpression(((LSLSyntax 2091 .yytext, new IncrementDecrementExpression(((LSLSyntax
2092)yyq), new IdentDotExpression(((LSLSyntax 2092)yyq), new IdentDotExpression(((LSLSyntax
2093)yyq), 2093)yyq),
2094 ((IDENT)(yyq.StackAt(3).m_value)) 2094 ((IDENT)(yyq.StackAt(3).m_value))
2095 .yytext, 2095 .yytext,
2096 ((IDENT)(yyq.StackAt(1).m_value)) 2096 ((IDENT)(yyq.StackAt(1).m_value))
2097 .yytext), 2097 .yytext),
2098 ((INCREMENT)(yyq.StackAt(0).m_value)) 2098 ((INCREMENT)(yyq.StackAt(0).m_value))
2099 .yytext, true)){}} 2099 .yytext, true)){}}
2100 2100
2101public class TypecastExpression_6 : TypecastExpression { 2101public class TypecastExpression_6 : TypecastExpression {
2102 public TypecastExpression_6(Parser yyq):base(yyq, 2102 public TypecastExpression_6(Parser yyq):base(yyq,
2103 ((Typename)(yyq.StackAt(3).m_value)) 2103 ((Typename)(yyq.StackAt(3).m_value))
2104 .yytext, new IncrementDecrementExpression(((LSLSyntax 2104 .yytext, new IncrementDecrementExpression(((LSLSyntax
2105)yyq), 2105)yyq),
2106 ((IDENT)(yyq.StackAt(1).m_value)) 2106 ((IDENT)(yyq.StackAt(1).m_value))
2107 .yytext, 2107 .yytext,
2108 ((DECREMENT)(yyq.StackAt(0).m_value)) 2108 ((DECREMENT)(yyq.StackAt(0).m_value))
2109 .yytext, true)){}} 2109 .yytext, true)){}}
2110 2110
2111public class TypecastExpression_7 : TypecastExpression { 2111public class TypecastExpression_7 : TypecastExpression {
2112 public TypecastExpression_7(Parser yyq):base(yyq, 2112 public TypecastExpression_7(Parser yyq):base(yyq,
2113 ((Typename)(yyq.StackAt(5).m_value)) 2113 ((Typename)(yyq.StackAt(5).m_value))
2114 .yytext, new IncrementDecrementExpression(((LSLSyntax 2114 .yytext, new IncrementDecrementExpression(((LSLSyntax
2115)yyq), new IdentDotExpression(((LSLSyntax 2115)yyq), new IdentDotExpression(((LSLSyntax
2116)yyq), 2116)yyq),
2117 ((IDENT)(yyq.StackAt(3).m_value)) 2117 ((IDENT)(yyq.StackAt(3).m_value))
2118 .yytext, 2118 .yytext,
2119 ((IDENT)(yyq.StackAt(1).m_value)) 2119 ((IDENT)(yyq.StackAt(1).m_value))
2120 .yytext), 2120 .yytext),
2121 ((DECREMENT)(yyq.StackAt(0).m_value)) 2121 ((DECREMENT)(yyq.StackAt(0).m_value))
2122 .yytext, true)){}} 2122 .yytext, true)){}}
2123 2123
2124public class TypecastExpression_8 : TypecastExpression { 2124public class TypecastExpression_8 : TypecastExpression {
2125 public TypecastExpression_8(Parser yyq):base(yyq, 2125 public TypecastExpression_8(Parser yyq):base(yyq,
2126 ((Typename)(yyq.StackAt(2).m_value)) 2126 ((Typename)(yyq.StackAt(2).m_value))
2127 .yytext, 2127 .yytext,
2128 ((FunctionCall)(yyq.StackAt(0).m_value)) 2128 ((FunctionCall)(yyq.StackAt(0).m_value))
2129 ){}} 2129 ){}}
2130 2130
2131public class TypecastExpression_9 : TypecastExpression { 2131public class TypecastExpression_9 : TypecastExpression {
2132 public TypecastExpression_9(Parser yyq):base(yyq, 2132 public TypecastExpression_9(Parser yyq):base(yyq,
2133 ((Typename)(yyq.StackAt(4).m_value)) 2133 ((Typename)(yyq.StackAt(4).m_value))
2134 .yytext, 2134 .yytext,
2135 ((Expression)(yyq.StackAt(1).m_value)) 2135 ((Expression)(yyq.StackAt(1).m_value))
2136 ){}} 2136 ){}}
2137 2137
2138public class FunctionCall_1 : FunctionCall { 2138public class FunctionCall_1 : FunctionCall {
2139 public FunctionCall_1(Parser yyq):base(yyq, 2139 public FunctionCall_1(Parser yyq):base(yyq,
2140 ((IDENT)(yyq.StackAt(3).m_value)) 2140 ((IDENT)(yyq.StackAt(3).m_value))
2141 .yytext, 2141 .yytext,
2142 ((ArgumentList)(yyq.StackAt(1).m_value)) 2142 ((ArgumentList)(yyq.StackAt(1).m_value))
2143 ){}} 2143 ){}}
2144 2144
2145public class ArgumentList_1 : ArgumentList { 2145public class ArgumentList_1 : ArgumentList {
2146 public ArgumentList_1(Parser yyq):base(yyq, 2146 public ArgumentList_1(Parser yyq):base(yyq,
2147 ((Argument)(yyq.StackAt(0).m_value)) 2147 ((Argument)(yyq.StackAt(0).m_value))
2148 ){}} 2148 ){}}
2149 2149
2150public class ArgumentList_2 : ArgumentList { 2150public class ArgumentList_2 : ArgumentList {
2151 public ArgumentList_2(Parser yyq):base(yyq, 2151 public ArgumentList_2(Parser yyq):base(yyq,
2152 ((ArgumentList)(yyq.StackAt(2).m_value)) 2152 ((ArgumentList)(yyq.StackAt(2).m_value))
2153 , 2153 ,
2154 ((Argument)(yyq.StackAt(0).m_value)) 2154 ((Argument)(yyq.StackAt(0).m_value))
2155 ){}} 2155 ){}}
2156 2156
2157public class ExpressionArgument_1 : ExpressionArgument { 2157public class ExpressionArgument_1 : ExpressionArgument {
2158 public ExpressionArgument_1(Parser yyq):base(yyq, 2158 public ExpressionArgument_1(Parser yyq):base(yyq,
2159 ((Expression)(yyq.StackAt(0).m_value)) 2159 ((Expression)(yyq.StackAt(0).m_value))
2160 ){}} 2160 ){}}
2161 2161
2162public class Typename_1 : Typename { 2162public class Typename_1 : Typename {
2163 public Typename_1(Parser yyq):base(yyq, 2163 public Typename_1(Parser yyq):base(yyq,
2164 ((INTEGER_TYPE)(yyq.StackAt(0).m_value)) 2164 ((INTEGER_TYPE)(yyq.StackAt(0).m_value))
2165 .yytext){}} 2165 .yytext){}}
2166 2166
2167public class Typename_2 : Typename { 2167public class Typename_2 : Typename {
2168 public Typename_2(Parser yyq):base(yyq, 2168 public Typename_2(Parser yyq):base(yyq,
2169 ((FLOAT_TYPE)(yyq.StackAt(0).m_value)) 2169 ((FLOAT_TYPE)(yyq.StackAt(0).m_value))
2170 .yytext){}} 2170 .yytext){}}
2171 2171
2172public class Typename_3 : Typename { 2172public class Typename_3 : Typename {
2173 public Typename_3(Parser yyq):base(yyq, 2173 public Typename_3(Parser yyq):base(yyq,
2174 ((STRING_TYPE)(yyq.StackAt(0).m_value)) 2174 ((STRING_TYPE)(yyq.StackAt(0).m_value))
2175 .yytext){}} 2175 .yytext){}}
2176 2176
2177public class Typename_4 : Typename { 2177public class Typename_4 : Typename {
2178 public Typename_4(Parser yyq):base(yyq, 2178 public Typename_4(Parser yyq):base(yyq,
2179 ((KEY_TYPE)(yyq.StackAt(0).m_value)) 2179 ((KEY_TYPE)(yyq.StackAt(0).m_value))
2180 .yytext){}} 2180 .yytext){}}
2181 2181
2182public class Typename_5 : Typename { 2182public class Typename_5 : Typename {
2183 public Typename_5(Parser yyq):base(yyq, 2183 public Typename_5(Parser yyq):base(yyq,
2184 ((VECTOR_TYPE)(yyq.StackAt(0).m_value)) 2184 ((VECTOR_TYPE)(yyq.StackAt(0).m_value))
2185 .yytext){}} 2185 .yytext){}}
2186 2186
2187public class Typename_6 : Typename { 2187public class Typename_6 : Typename {
2188 public Typename_6(Parser yyq):base(yyq, 2188 public Typename_6(Parser yyq):base(yyq,
2189 ((ROTATION_TYPE)(yyq.StackAt(0).m_value)) 2189 ((ROTATION_TYPE)(yyq.StackAt(0).m_value))
2190 .yytext){}} 2190 .yytext){}}
2191 2191
2192public class Typename_7 : Typename { 2192public class Typename_7 : Typename {
2193 public Typename_7(Parser yyq):base(yyq, 2193 public Typename_7(Parser yyq):base(yyq,
2194 ((LIST_TYPE)(yyq.StackAt(0).m_value)) 2194 ((LIST_TYPE)(yyq.StackAt(0).m_value))
2195 .yytext){}} 2195 .yytext){}}
2196 2196
2197public class Event_1 : Event { 2197public class Event_1 : Event {
2198 public Event_1(Parser yyq):base(yyq, 2198 public Event_1(Parser yyq):base(yyq,
2199 ((DATASERVER_EVENT)(yyq.StackAt(0).m_value)) 2199 ((DATASERVER_EVENT)(yyq.StackAt(0).m_value))
2200 .yytext){}} 2200 .yytext){}}
2201 2201
2202public class Event_2 : Event { 2202public class Event_2 : Event {
2203 public Event_2(Parser yyq):base(yyq, 2203 public Event_2(Parser yyq):base(yyq,
2204 ((EMAIL_EVENT)(yyq.StackAt(0).m_value)) 2204 ((EMAIL_EVENT)(yyq.StackAt(0).m_value))
2205 .yytext){}} 2205 .yytext){}}
2206 2206
2207public class Event_3 : Event { 2207public class Event_3 : Event {
2208 public Event_3(Parser yyq):base(yyq, 2208 public Event_3(Parser yyq):base(yyq,
2209 ((HTTP_RESPONSE_EVENT)(yyq.StackAt(0).m_value)) 2209 ((HTTP_RESPONSE_EVENT)(yyq.StackAt(0).m_value))
2210 .yytext){}} 2210 .yytext){}}
2211 2211
2212public class Event_4 : Event { 2212public class Event_4 : Event {
2213 public Event_4(Parser yyq):base(yyq, 2213 public Event_4(Parser yyq):base(yyq,
2214 ((LINK_MESSAGE_EVENT)(yyq.StackAt(0).m_value)) 2214 ((LINK_MESSAGE_EVENT)(yyq.StackAt(0).m_value))
2215 .yytext){}} 2215 .yytext){}}
2216 2216
2217public class Event_5 : Event { 2217public class Event_5 : Event {
2218 public Event_5(Parser yyq):base(yyq, 2218 public Event_5(Parser yyq):base(yyq,
2219 ((LISTEN_EVENT)(yyq.StackAt(0).m_value)) 2219 ((LISTEN_EVENT)(yyq.StackAt(0).m_value))
2220 .yytext){}} 2220 .yytext){}}
2221 2221
2222public class Event_6 : Event { 2222public class Event_6 : Event {
2223 public Event_6(Parser yyq):base(yyq, 2223 public Event_6(Parser yyq):base(yyq,
2224 ((MONEY_EVENT)(yyq.StackAt(0).m_value)) 2224 ((MONEY_EVENT)(yyq.StackAt(0).m_value))
2225 .yytext){}} 2225 .yytext){}}
2226 2226
2227public class Event_7 : Event { 2227public class Event_7 : Event {
2228 public Event_7(Parser yyq):base(yyq, 2228 public Event_7(Parser yyq):base(yyq,
2229 ((REMOTE_DATA_EVENT)(yyq.StackAt(0).m_value)) 2229 ((REMOTE_DATA_EVENT)(yyq.StackAt(0).m_value))
2230 .yytext){}} 2230 .yytext){}}
2231 2231
2232public class Event_8 : Event { 2232public class Event_8 : Event {
2233 public Event_8(Parser yyq):base(yyq, 2233 public Event_8(Parser yyq):base(yyq,
2234 ((HTTP_REQUEST_EVENT)(yyq.StackAt(0).m_value)) 2234 ((HTTP_REQUEST_EVENT)(yyq.StackAt(0).m_value))
2235 .yytext){}} 2235 .yytext){}}
2236 2236
2237public class Event_9 : Event { 2237public class Event_9 : Event {
2238 public Event_9(Parser yyq):base(yyq, 2238 public Event_9(Parser yyq):base(yyq,
2239 ((TRANSACTION_RESULT_EVENT)(yyq.StackAt(0).m_value)) 2239 ((TRANSACTION_RESULT_EVENT)(yyq.StackAt(0).m_value))
2240 .yytext){}} 2240 .yytext){}}
2241 2241
2242public class VoidArgEvent_1 : VoidArgEvent { 2242public class VoidArgEvent_1 : VoidArgEvent {
2243 public VoidArgEvent_1(Parser yyq):base(yyq, 2243 public VoidArgEvent_1(Parser yyq):base(yyq,
2244 ((STATE_ENTRY_EVENT)(yyq.StackAt(0).m_value)) 2244 ((STATE_ENTRY_EVENT)(yyq.StackAt(0).m_value))
2245 .yytext){}} 2245 .yytext){}}
2246 2246
2247public class VoidArgEvent_2 : VoidArgEvent { 2247public class VoidArgEvent_2 : VoidArgEvent {
2248 public VoidArgEvent_2(Parser yyq):base(yyq, 2248 public VoidArgEvent_2(Parser yyq):base(yyq,
2249 ((STATE_EXIT_EVENT)(yyq.StackAt(0).m_value)) 2249 ((STATE_EXIT_EVENT)(yyq.StackAt(0).m_value))
2250 .yytext){}} 2250 .yytext){}}
2251 2251
2252public class VoidArgEvent_3 : VoidArgEvent { 2252public class VoidArgEvent_3 : VoidArgEvent {
2253 public VoidArgEvent_3(Parser yyq):base(yyq, 2253 public VoidArgEvent_3(Parser yyq):base(yyq,
2254 ((MOVING_END_EVENT)(yyq.StackAt(0).m_value)) 2254 ((MOVING_END_EVENT)(yyq.StackAt(0).m_value))
2255 .yytext){}} 2255 .yytext){}}
2256 2256
2257public class VoidArgEvent_4 : VoidArgEvent { 2257public class VoidArgEvent_4 : VoidArgEvent {
2258 public VoidArgEvent_4(Parser yyq):base(yyq, 2258 public VoidArgEvent_4(Parser yyq):base(yyq,
2259 ((MOVING_START_EVENT)(yyq.StackAt(0).m_value)) 2259 ((MOVING_START_EVENT)(yyq.StackAt(0).m_value))
2260 .yytext){}} 2260 .yytext){}}
2261 2261
2262public class VoidArgEvent_5 : VoidArgEvent { 2262public class VoidArgEvent_5 : VoidArgEvent {
2263 public VoidArgEvent_5(Parser yyq):base(yyq, 2263 public VoidArgEvent_5(Parser yyq):base(yyq,
2264 ((NO_SENSOR_EVENT)(yyq.StackAt(0).m_value)) 2264 ((NO_SENSOR_EVENT)(yyq.StackAt(0).m_value))
2265 .yytext){}} 2265 .yytext){}}
2266 2266
2267public class VoidArgEvent_6 : VoidArgEvent { 2267public class VoidArgEvent_6 : VoidArgEvent {
2268 public VoidArgEvent_6(Parser yyq):base(yyq, 2268 public VoidArgEvent_6(Parser yyq):base(yyq,
2269 ((NOT_AT_ROT_TARGET_EVENT)(yyq.StackAt(0).m_value)) 2269 ((NOT_AT_ROT_TARGET_EVENT)(yyq.StackAt(0).m_value))
2270 .yytext){}} 2270 .yytext){}}
2271 2271
2272public class VoidArgEvent_7 : VoidArgEvent { 2272public class VoidArgEvent_7 : VoidArgEvent {
2273 public VoidArgEvent_7(Parser yyq):base(yyq, 2273 public VoidArgEvent_7(Parser yyq):base(yyq,
2274 ((NOT_AT_TARGET_EVENT)(yyq.StackAt(0).m_value)) 2274 ((NOT_AT_TARGET_EVENT)(yyq.StackAt(0).m_value))
2275 .yytext){}} 2275 .yytext){}}
2276 2276
2277public class VoidArgEvent_8 : VoidArgEvent { 2277public class VoidArgEvent_8 : VoidArgEvent {
2278 public VoidArgEvent_8(Parser yyq):base(yyq, 2278 public VoidArgEvent_8(Parser yyq):base(yyq,
2279 ((TIMER_EVENT)(yyq.StackAt(0).m_value)) 2279 ((TIMER_EVENT)(yyq.StackAt(0).m_value))
2280 .yytext){}} 2280 .yytext){}}
2281 2281
2282public class KeyArgEvent_1 : KeyArgEvent { 2282public class KeyArgEvent_1 : KeyArgEvent {
2283 public KeyArgEvent_1(Parser yyq):base(yyq, 2283 public KeyArgEvent_1(Parser yyq):base(yyq,
2284 ((ATTACH_EVENT)(yyq.StackAt(0).m_value)) 2284 ((ATTACH_EVENT)(yyq.StackAt(0).m_value))
2285 .yytext){}} 2285 .yytext){}}
2286 2286
2287public class KeyArgEvent_2 : KeyArgEvent { 2287public class KeyArgEvent_2 : KeyArgEvent {
2288 public KeyArgEvent_2(Parser yyq):base(yyq, 2288 public KeyArgEvent_2(Parser yyq):base(yyq,
2289 ((OBJECT_REZ_EVENT)(yyq.StackAt(0).m_value)) 2289 ((OBJECT_REZ_EVENT)(yyq.StackAt(0).m_value))
2290 .yytext){}} 2290 .yytext){}}
2291 2291
2292public class IntArgEvent_1 : IntArgEvent { 2292public class IntArgEvent_1 : IntArgEvent {
2293 public IntArgEvent_1(Parser yyq):base(yyq, 2293 public IntArgEvent_1(Parser yyq):base(yyq,
2294 ((CHANGED_EVENT)(yyq.StackAt(0).m_value)) 2294 ((CHANGED_EVENT)(yyq.StackAt(0).m_value))
2295 .yytext){}} 2295 .yytext){}}
2296 2296
2297public class IntArgEvent_2 : IntArgEvent { 2297public class IntArgEvent_2 : IntArgEvent {
2298 public IntArgEvent_2(Parser yyq):base(yyq, 2298 public IntArgEvent_2(Parser yyq):base(yyq,
2299 ((COLLISION_EVENT)(yyq.StackAt(0).m_value)) 2299 ((COLLISION_EVENT)(yyq.StackAt(0).m_value))
2300 .yytext){}} 2300 .yytext){}}
2301 2301
2302public class IntArgEvent_3 : IntArgEvent { 2302public class IntArgEvent_3 : IntArgEvent {
2303 public IntArgEvent_3(Parser yyq):base(yyq, 2303 public IntArgEvent_3(Parser yyq):base(yyq,
2304 ((COLLISION_END_EVENT)(yyq.StackAt(0).m_value)) 2304 ((COLLISION_END_EVENT)(yyq.StackAt(0).m_value))
2305 .yytext){}} 2305 .yytext){}}
2306 2306
2307public class IntArgEvent_4 : IntArgEvent { 2307public class IntArgEvent_4 : IntArgEvent {
2308 public IntArgEvent_4(Parser yyq):base(yyq, 2308 public IntArgEvent_4(Parser yyq):base(yyq,
2309 ((COLLISION_START_EVENT)(yyq.StackAt(0).m_value)) 2309 ((COLLISION_START_EVENT)(yyq.StackAt(0).m_value))
2310 .yytext){}} 2310 .yytext){}}
2311 2311
2312public class IntArgEvent_5 : IntArgEvent { 2312public class IntArgEvent_5 : IntArgEvent {
2313 public IntArgEvent_5(Parser yyq):base(yyq, 2313 public IntArgEvent_5(Parser yyq):base(yyq,
2314 ((ON_REZ_EVENT)(yyq.StackAt(0).m_value)) 2314 ((ON_REZ_EVENT)(yyq.StackAt(0).m_value))
2315 .yytext){}} 2315 .yytext){}}
2316 2316
2317public class IntArgEvent_6 : IntArgEvent { 2317public class IntArgEvent_6 : IntArgEvent {
2318 public IntArgEvent_6(Parser yyq):base(yyq, 2318 public IntArgEvent_6(Parser yyq):base(yyq,
2319 ((RUN_TIME_PERMISSIONS_EVENT)(yyq.StackAt(0).m_value)) 2319 ((RUN_TIME_PERMISSIONS_EVENT)(yyq.StackAt(0).m_value))
2320 .yytext){}} 2320 .yytext){}}
2321 2321
2322public class IntArgEvent_7 : IntArgEvent { 2322public class IntArgEvent_7 : IntArgEvent {
2323 public IntArgEvent_7(Parser yyq):base(yyq, 2323 public IntArgEvent_7(Parser yyq):base(yyq,
2324 ((SENSOR_EVENT)(yyq.StackAt(0).m_value)) 2324 ((SENSOR_EVENT)(yyq.StackAt(0).m_value))
2325 .yytext){}} 2325 .yytext){}}
2326 2326
2327public class IntArgEvent_8 : IntArgEvent { 2327public class IntArgEvent_8 : IntArgEvent {
2328 public IntArgEvent_8(Parser yyq):base(yyq, 2328 public IntArgEvent_8(Parser yyq):base(yyq,
2329 ((TOUCH_EVENT)(yyq.StackAt(0).m_value)) 2329 ((TOUCH_EVENT)(yyq.StackAt(0).m_value))
2330 .yytext){}} 2330 .yytext){}}
2331 2331
2332public class IntArgEvent_9 : IntArgEvent { 2332public class IntArgEvent_9 : IntArgEvent {
2333 public IntArgEvent_9(Parser yyq):base(yyq, 2333 public IntArgEvent_9(Parser yyq):base(yyq,
2334 ((TOUCH_END_EVENT)(yyq.StackAt(0).m_value)) 2334 ((TOUCH_END_EVENT)(yyq.StackAt(0).m_value))
2335 .yytext){}} 2335 .yytext){}}
2336 2336
2337public class IntArgEvent_10 : IntArgEvent { 2337public class IntArgEvent_10 : IntArgEvent {
2338 public IntArgEvent_10(Parser yyq):base(yyq, 2338 public IntArgEvent_10(Parser yyq):base(yyq,
2339 ((TOUCH_START_EVENT)(yyq.StackAt(0).m_value)) 2339 ((TOUCH_START_EVENT)(yyq.StackAt(0).m_value))
2340 .yytext){}} 2340 .yytext){}}
2341 2341
2342public class VectorArgEvent_1 : VectorArgEvent { 2342public class VectorArgEvent_1 : VectorArgEvent {
2343 public VectorArgEvent_1(Parser yyq):base(yyq, 2343 public VectorArgEvent_1(Parser yyq):base(yyq,
2344 ((LAND_COLLISION_EVENT)(yyq.StackAt(0).m_value)) 2344 ((LAND_COLLISION_EVENT)(yyq.StackAt(0).m_value))
2345 .yytext){}} 2345 .yytext){}}
2346 2346
2347public class VectorArgEvent_2 : VectorArgEvent { 2347public class VectorArgEvent_2 : VectorArgEvent {
2348 public VectorArgEvent_2(Parser yyq):base(yyq, 2348 public VectorArgEvent_2(Parser yyq):base(yyq,
2349 ((LAND_COLLISION_END_EVENT)(yyq.StackAt(0).m_value)) 2349 ((LAND_COLLISION_END_EVENT)(yyq.StackAt(0).m_value))
2350 .yytext){}} 2350 .yytext){}}
2351 2351
2352public class VectorArgEvent_3 : VectorArgEvent { 2352public class VectorArgEvent_3 : VectorArgEvent {
2353 public VectorArgEvent_3(Parser yyq):base(yyq, 2353 public VectorArgEvent_3(Parser yyq):base(yyq,
2354 ((LAND_COLLISION_START_EVENT)(yyq.StackAt(0).m_value)) 2354 ((LAND_COLLISION_START_EVENT)(yyq.StackAt(0).m_value))
2355 .yytext){}} 2355 .yytext){}}
2356 2356
2357public class IntRotRotArgEvent_1 : IntRotRotArgEvent { 2357public class IntRotRotArgEvent_1 : IntRotRotArgEvent {
2358 public IntRotRotArgEvent_1(Parser yyq):base(yyq, 2358 public IntRotRotArgEvent_1(Parser yyq):base(yyq,
2359 ((AT_ROT_TARGET_EVENT)(yyq.StackAt(0).m_value)) 2359 ((AT_ROT_TARGET_EVENT)(yyq.StackAt(0).m_value))
2360 .yytext){}} 2360 .yytext){}}
2361 2361
2362public class IntVecVecArgEvent_1 : IntVecVecArgEvent { 2362public class IntVecVecArgEvent_1 : IntVecVecArgEvent {
2363 public IntVecVecArgEvent_1(Parser yyq):base(yyq, 2363 public IntVecVecArgEvent_1(Parser yyq):base(yyq,
2364 ((AT_TARGET_EVENT)(yyq.StackAt(0).m_value)) 2364 ((AT_TARGET_EVENT)(yyq.StackAt(0).m_value))
2365 .yytext){}} 2365 .yytext){}}
2366 2366
2367public class KeyIntIntArgEvent_1 : KeyIntIntArgEvent { 2367public class KeyIntIntArgEvent_1 : KeyIntIntArgEvent {
2368 public KeyIntIntArgEvent_1(Parser yyq):base(yyq, 2368 public KeyIntIntArgEvent_1(Parser yyq):base(yyq,
2369 ((CONTROL_EVENT)(yyq.StackAt(0).m_value)) 2369 ((CONTROL_EVENT)(yyq.StackAt(0).m_value))
2370 .yytext){}} 2370 .yytext){}}
2371public class yyLSLSyntax 2371public class yyLSLSyntax
2372: YyParser { 2372: YyParser {
2373 public override object Action(Parser yyq,SYMBOL yysym, int yyact) { 2373 public override object Action(Parser yyq,SYMBOL yysym, int yyact) {
2374 switch(yyact) { 2374 switch(yyact) {
2375 case -1: break; //// keep compiler happy 2375 case -1: break; //// keep compiler happy
2376} return null; } 2376} return null; }
2377 2377
2378public class ArgumentDeclarationList_3 : ArgumentDeclarationList { 2378public class ArgumentDeclarationList_3 : ArgumentDeclarationList {
@@ -2390,7 +2390,7 @@ public class ArgumentDeclarationList_4 : ArgumentDeclarationList {
2390public class ArgumentDeclarationList_5 : ArgumentDeclarationList { 2390public class ArgumentDeclarationList_5 : ArgumentDeclarationList {
2391 public ArgumentDeclarationList_5(Parser yyq):base(yyq){}} 2391 public ArgumentDeclarationList_5(Parser yyq):base(yyq){}}
2392public yyLSLSyntax 2392public yyLSLSyntax
2393():base() { arr = new int[] { 2393():base() { arr = new int[] {
2394101,4,6,52,0, 2394101,4,6,52,0,
239546,0,53,0,102, 239546,0,53,0,102,
239620,103,4,28,76, 239620,103,4,28,76,