From 48bc2f3a4299390538efeb1c0bd97424cfa1ea28 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Sun, 7 Jun 2009 10:22:41 +0000 Subject: Allow empty assignment in for-loop For loops with no assignment are no longer syntax errors. For example, this is now valid: for ( ; i < 10; i++) { ... } Corresponding changes to lsl.{lexer,parser} in r99 in opensim-libs. Fixes Mantis #2501. Fixes Mantis #2884. --- .../Shared/CodeTools/Tests/CSCodeGeneratorTest.cs | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests') diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs index c482422..a7d4fa9 100644 --- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs +++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs @@ -1516,6 +1516,31 @@ default } [Test] + public void TestForLoopWithNoAssignment() + { + string input = @"default +{ + state_entry() + { + integer x = 4; + for (; 1<0; x += 2); + } +}"; + + string expected = + "\n public void default_event_state_entry()" + + "\n {" + + "\n LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(4);" + + "\n for (; new LSL_Types.LSLInteger(1) < new LSL_Types.LSLInteger(0); x += new LSL_Types.LSLInteger(2))" + + "\n ;" + + "\n }\n"; + + CSCodeGenerator cg = new CSCodeGenerator(); + string output = cg.Convert(input); + Assert.AreEqual(expected, output); + } + + [Test] public void TestAssignmentInIfWhileDoWhile() { string input = @"default -- cgit v1.1