LNode AssignExpr()
{
TT la0;
#line 100 "StageOneParserGrammar.ecs"
Token op;
#line default
var a = PrefixExpr();
// Line 102: (TT.Bang)*
for (;;) {
la0 = (TT) LA0;
if (la0 == TT.Bang) {
op = MatchAny();
#line 102 "StageOneParserGrammar.ecs"
a = F.Call(_SufBang, a, a.Range.StartIndex, op.EndIndex);
#line default
} else
break;
}
// Line 103: ((TT.Assignment|TT.Colon|TT.HostOperator) AssignExpr)?
la0 = (TT) LA0;
if (la0 == TT.Assignment || la0 == TT.Colon || la0 == TT.HostOperator) {
switch ((TT) LA(1)) {
case TT.And:
case TT.AndNot:
case TT.Any:
case TT.Id:
case TT.In:
case TT.InvertSet:
case TT.LBrace:
case TT.LBrack:
case TT.Literal:
case TT.LParen:
case TT.Minus:
{
op = MatchAny();
var b = AssignExpr();
#line 103 "StageOneParserGrammar.ecs"
Infix(ref a, (Symbol) op.Value, b);
#line default
}
break;
}
}
#line 104 "StageOneParserGrammar.ecs"
return a;
#line default
}
LNode PrefixExpr()