]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix else if parsing, fixes bug 562632
authorJürg Billeter <j@bitron.ch>
Thu, 12 Feb 2009 13:37:49 +0000 (13:37 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Thu, 12 Feb 2009 13:37:49 +0000 (13:37 +0000)
2009-02-12  Jürg Billeter  <j@bitron.ch>

* vala/valagenieparser.vala:

Fix else if parsing, fixes bug 562632

svn path=/trunk/; revision=2433

ChangeLog
vala/valagenieparser.vala

index 3c33cfa6334296dffe396f92eb5a48c042084c5b..ab3d5bbc163be398cc2304cf3c83e28dcbc63bf1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-02-12  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valagenieparser.vala:
+
+       Fix else if parsing, fixes bug 562632
+
 2009-02-12  Ryan Lortie  <desrt@desrt.ca>
 
        * gobject/valagasyncmodule.vala:
index 9bbee34f2b80a9a010b11da6e88a3b081f3977ee..e7602218ed01df1c07576596dc6c6e48f318873a 100644 (file)
@@ -1775,6 +1775,13 @@ public class Vala.Genie.Parser : CodeVisitor {
                var true_stmt = parse_embedded_statement ();
                Block false_stmt = null;
                if (accept (TokenType.ELSE)) {
+                       // allow `else if' on the same line without `do'
+                       if (!accept (TokenType.DO) && current () != TokenType.IF) {
+                               expect (TokenType.EOL);
+                       } else {
+                               accept (TokenType.EOL);
+                       }
+
                        false_stmt = parse_embedded_statement ();
                }
                return new IfStatement (condition, true_stmt, false_stmt, src);