From f5beef74669e772ffe2a865cca0ac077c892ce13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20K=C4=99dzia?= <pawel.kedzia@pwr.wroc.pl> Date: Thu, 25 Nov 2010 19:15:02 +0100 Subject: [PATCH] Fixed the conditional operators grammar. Added RBRACKET token to rules. --- libwccl/parser/grammar.g | 45 ++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g index 1ba11ff..5d2e454 100644 --- a/libwccl/parser/grammar.g +++ b/libwccl/parser/grammar.g @@ -224,7 +224,9 @@ sym_set_literal t_set.reset(new Wccl::TSet()); } : LCURLY RCURLY - | LCURLY sym_set_elem[tagset, t_set] (COMMA sym_set_elem[tagset, t_set]) * + | LCURLY + sym_set_elem[tagset, t_set] (COMMA sym_set_elem[tagset, t_set]) * + RCURLY ; // Constant symbol set // Returns boost::shared_ptr<Wccl::Constant<Wccl::TSet> > @@ -519,7 +521,7 @@ condit_sym : "if" LPAREN test = logical_predicates [tagset, vars] COMMA p_true = sym_set_operators [tagset, vars] (COMMA p_false = sym_set_operators [tagset, vars])? - { + RPAREN { if (p_false) { op.reset(new Wccl::Conditional<Wccl::TSet>(test, p_true, p_false)); } @@ -528,9 +530,11 @@ condit_sym } } | Q_MARK - (p_true = sym_set_operators [tagset, vars] | p_true = condit_sym [tagset, vars]) + (p_true = sym_set_operators [tagset, vars] | + p_true = condit_sym [tagset, vars]) Q_MARK - (test = logical_predicates [tagset, vars] | test = condit_bool [tagset, vars]) + (test = logical_predicates [tagset, vars] | + test = condit_bool [tagset, vars]) { op.reset(new Wccl::Conditional<Wccl::TSet>(test, p_true)); } @@ -622,7 +626,9 @@ op_affix { boost::shared_ptr<Wccl::Function<Wccl::StrSet> > o_ret; } - : "affix" LPAREN o_ret = string_operators[tagset, vars] COMMA offset: INT RPAREN { + : "affix" LPAREN + o_ret = string_operators[tagset, vars] COMMA + offset: INT RPAREN { ret.reset(new Wccl::Affix(o_ret, token_ref_to_int(offset))); } ; @@ -646,7 +652,7 @@ condit_str : "if" LPAREN test = logical_predicates [tagset, vars] COMMA p_true = string_operators [tagset, vars] (COMMA p_false = string_operators [tagset, vars])? - { + RPAREN { if (p_false) { op.reset(new Wccl::Conditional<Wccl::StrSet>(test, p_true, p_false)); } @@ -655,9 +661,11 @@ condit_str } } | Q_MARK - (p_true = string_operators [tagset, vars] | p_true = condit_str [tagset, vars]) + (p_true = string_operators [tagset, vars] | + p_true = condit_str [tagset, vars]) Q_MARK - (test = logical_predicates [tagset, vars] | test = condit_bool [tagset, vars]) + (test = logical_predicates [tagset, vars] | + test = condit_bool [tagset, vars]) { op.reset(new Wccl::Conditional<Wccl::StrSet>(test, p_true)); } @@ -852,7 +860,7 @@ condit_bool : "if" LPAREN test = logical_predicates [tagset, vars] COMMA p_true = logical_predicates [tagset, vars] (COMMA p_false = logical_predicates [tagset, vars])? - { + RPAREN { if (p_false) { op.reset(new Wccl::Conditional<Wccl::Bool>(test, p_true, p_false)); } @@ -861,9 +869,11 @@ condit_bool } } | Q_MARK - (p_true = logical_predicates [tagset, vars] | p_true = condit_bool [tagset, vars]) + (p_true = logical_predicates [tagset, vars] | + p_true = condit_bool [tagset, vars]) Q_MARK - (test = logical_predicates [tagset, vars] | test = condit_bool [tagset, vars]) + (test = logical_predicates [tagset, vars] | + test = condit_bool [tagset, vars]) { op.reset(new Wccl::Conditional<Wccl::Bool>(test, p_true)); } @@ -878,8 +888,7 @@ class ANTLRLexer extends Lexer; options { exportVocab = ANTLRExpr; charVocabulary = '\3'..'\377'; -// testLiterals = false; - k = 4; + k = 3; } STRING @@ -1018,16 +1027,6 @@ options { : '}' ; -/* -DOLLAR -options { - paraphrase = "'$'"; - testLiterals = true; -} - : '$' -; -*/ - AT_MARK options { paraphrase = "'@'"; -- GitLab