diff --git a/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc b/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc index c8d7e5dc05f..86c31be56a3 100644 --- a/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc +++ b/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc @@ -672,7 +672,7 @@ default str v2i(value v) { case \item(p:prod(Symbol u,_,_), int i) : return "._"; case \label(str _x, Symbol u) : return v2i(u); case \layouts(str _) : return "$anylayout$"; - case \conditional(Symbol s,_) : return v2i(s); + case \conditional(Symbol s, set[Condition] cs) : return "_"; case \alt(set[Symbol] alts) : return "alt__<}>"[..-1]; case \iter-seps(Symbol s, [_]) : return "_iter_seps_"; case \iter-star-seps(Symbol s, [Symbol sep]) : return "_iter_star_seps__"; diff --git a/src/org/rascalmpl/library/lang/rascal/tests/concrete/Issue2938.rsc b/src/org/rascalmpl/library/lang/rascal/tests/concrete/Issue2938.rsc new file mode 100644 index 00000000000..6f1218ec56b --- /dev/null +++ b/src/org/rascalmpl/library/lang/rascal/tests/concrete/Issue2938.rsc @@ -0,0 +1,15 @@ +module lang::rascal::tests::concrete::Issue2938 + +import ParseTree; + +layout L = [\ ]* !>> [\ ]; + +syntax Expr = id: [a-z]+ !>> [a-z] | paren: "(" Expr ")"; + +syntax L1 = {Expr ","}+; + +syntax L2 = "[" {Expr!paren ","}+ "]"; + +start syntax S = L1 | L2; + +test bool tryParser() = Expr _ := parse(#Expr, "(a)"); \ No newline at end of file