summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--vala/valagenieparser.vala7
2 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3c33cfa63..ab3d5bbc1 100644
--- 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:
diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala
index 9bbee34f2..e7602218e 100644
--- a/vala/valagenieparser.vala
+++ b/vala/valagenieparser.vala
@@ -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);