From f7dd5161bc35306b2ff8ad12e4d8a5e16f32c773 Mon Sep 17 00:00:00 2001 From: Steven Oliver Date: Mon, 9 Sep 2013 17:17:22 -0400 Subject: [PATCH] [Genie] Add coalescing function --- vala/valagenieparser.vala | 11 +++++++++++ vala/valagenietokentype.vala | 1 + 2 files changed, 12 insertions(+) diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala index f479905..ad84415 100644 --- a/vala/valagenieparser.vala +++ b/vala/valagenieparser.vala @@ -1520,6 +1520,17 @@ public class Vala.Genie.Parser : CodeVisitor { return left; } + Expression parse_coalescing_expression () throws ParseError { + var begin = get_location (); + var left = parse_conditional_or_expression (); + if (accept (TokenType.OP_COALESCING)) { + var right = parse_coalescing_expression (); + return new BinaryExpression (BinaryOperator.COALESCE, left, right, get_src (begin)); + } else { + return left; + } + } + Expression parse_conditional_or_expression () throws ParseError { var begin = get_location (); var left = parse_conditional_and_expression (); diff --git a/vala/valagenietokentype.vala b/vala/valagenietokentype.vala index 920a96a..df78e22 100644 --- a/vala/valagenietokentype.vala +++ b/vala/valagenietokentype.vala @@ -107,6 +107,7 @@ public enum Vala.Genie.TokenType { OF, OUT, OP_AND, + OP_COALESCING, OP_DEC, OP_EQ, OP_GE, -- 1.8.3.1