Skip to content
Snippets Groups Projects
Commit f5beef74 authored by Paweł Kędzia's avatar Paweł Kędzia
Browse files

Fixed the conditional operators grammar. Added RBRACKET token to rules.

parent 28bb7435
No related branches found
No related tags found
No related merge requests found
......@@ -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 = "'@'";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment