LNode RangeExpr()
{
TT la0;
var a = PrimaryExpr();
// Line 120: (TT.DotDotDot PrimaryExpr)?
la0 = (TT) LA0;
if (la0 == TT.DotDotDot) {
switch ((TT) LA(1)) {
case TT.Any:
case TT.Id:
case TT.In:
case TT.LBrace:
case TT.LBrack:
case TT.Literal:
case TT.LParen:
case TT.Minus:
{
var op = MatchAny();
var b = PrimaryExpr();
#line 120 "StageOneParserGrammar.ecs"
Infix(ref a, (Symbol) op.Value, b);
#line default
}
break;
}
}
#line 121 "StageOneParserGrammar.ecs"
return a;
#line default
}
static readonly HashSet<int> PrimaryExpr_set0 = NewSet((int) EOF, (int) TT.Alt, (int) TT.And, (int) TT.AndNot, (int) TT.Any, (int) TT.Arrow, (int) TT.Assignment, (int) TT.Bang, (int) TT.Colon, (int) TT.Comma, (int) TT.Default, (int) TT.DotDotDot, (int) TT.Error, (int) TT.Greedy, (int) TT.HostOperator, (int) TT.Id, (int) TT.In, (int) TT.InvertSet, (int) TT.LBrace, (int) TT.LBrack, (int) TT.Literal, (int) TT.LParen, (int) TT.Minus, (int) TT.Nongreedy, (int) TT.Plus, (int) TT.QMark, (int) TT.Slash, (int) TT.Star);