[vala] girparser: accept empty tuple for parameters without initializer



commit f0c5b620301b970f37a5fc87dc0ffd4d01a32673
Author: Jürg Billeter <j bitron ch>
Date:   Wed Aug 28 17:07:11 2013 +0200

    girparser: accept empty tuple for parameters without initializer

 vala/valagirparser.vala |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index fde6b68..3ad7335 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -427,6 +427,14 @@ public class Vala.GirParser : CodeVisitor {
                                        expr = new MemberAccess (expr, get_string (), get_current_src ());
                                }
                                return expr;
+                       case TokenType.OPEN_PARENS:
+                               // empty tuple => no expression
+                               if (next () != TokenType.CLOSE_PARENS) {
+                                       Report.error (get_current_src (), "expected `)', got %s".printf 
(current.to_string ()));
+                                       break;
+                               }
+                               expr = new Tuple (src);
+                               break;
                        default:
                                Report.error (src, "expected literal or symbol got %s".printf 
(current.to_string ()));
                                break;
@@ -2278,6 +2286,11 @@ public class Vala.GirParser : CodeVisitor {
                                }
                        }
                        param.initializer = metadata.get_expression (ArgumentType.DEFAULT);
+
+                       // empty tuple used for parameters without initializer
+                       if (param.initializer is Tuple) {
+                               param.initializer = null;
+                       }
                }
                end_element ("parameter");
                return param;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]