From eef386427863e27a40cb22a424ddb5ceeb6c7a56 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Thu, 31 Jul 2008 01:27:33 +0000 Subject: Fix issue 1860; exception thrown in the parser on if/if-else/for/while/do-while statements with no body. --- .../ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs') diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs index 3bdad4d..2226673 100644 --- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs +++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs @@ -388,14 +388,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools private string GenerateStatement(Statement s) { string retstr = String.Empty; - - // Jump label prints its own colon, we don't need a semicolon. - bool printSemicolon = !(s.kids.Top is JumpLabel); + bool printSemicolon = true; retstr += Indent(); - foreach (SYMBOL kid in s.kids) - retstr += GenerateNode(kid); + if (0 < s.kids.Count) + { + // Jump label prints its own colon, we don't need a semicolon. + printSemicolon = !(s.kids.Top is JumpLabel); + + foreach (SYMBOL kid in s.kids) + retstr += GenerateNode(kid); + } if (printSemicolon) retstr += GenerateLine(";"); -- cgit v1.1