LNode AddWords(LNode stmt, bool partialIsWA = true) { return stmt.PlusAttrs(@public, @new, partialIsWA ? partialWA : partial, @static); }
LNode AddWords(LNode stmt, bool partialIsWA = true) { return(stmt.PlusAttrs(@public, @new, partialIsWA ? partialWA : partial, @static)); }
protected LNode TopExpr() { TT la0, la1; Token at = default(Token); VList <LNode> attrs = default(VList <LNode>); LNode e = default(LNode); Token t = default(Token); // Line 91: greedy((TT.At)? TT.LBrack ExprList TT.RBrack)? do { la0 = (TT)LA0; if (la0 == TT.At) { la1 = (TT)LA(1); if (la1 == TT.LBrack) { goto match1; } } else if (la0 == TT.LBrack) { switch ((TT)LA(1)) { case TT.Assignment: case TT.At: case TT.BQString: case TT.Colon: case TT.Comma: case TT.Dot: case TT.Id: case TT.LBrace: case TT.LBrack: case TT.Literal: case TT.LParen: case TT.NormalOp: case TT.Not: case TT.PrefixOp: case TT.PreOrSufOp: case TT.RBrack: case TT.Semicolon: case TT.SpaceLParen: goto match1; } } break; match1: { // Line 91: (TT.At)? la0 = (TT)LA0; if (la0 == TT.At) { at = MatchAny(); } // line 92 if (at.Type() == default(TT)) { ErrorSink.Write(Severity.Warning, LaIndexToSourcePos(0), "Attribute: expected '@['"); } t = Match((int)TT.LBrack); attrs = ExprList(); Match((int)TT.RBrack); } } while (false); // Line 95: (Expr / TT.Id Expr (Particle)*) do { switch ((TT)LA0) { case TT.Assignment: case TT.BQString: case TT.Dot: case TT.NormalOp: case TT.Not: case TT.PrefixOp: case TT.PreOrSufOp: e = Expr(StartStmt); break; case TT.Id: { switch ((TT)LA(1)) { case TT.Assignment: case TT.BQString: case TT.Dot: case TT.NormalOp: e = Expr(StartStmt); break; case TT.Colon: { if (LA(1 + 1) != (int)TT.Indent) { e = Expr(StartStmt); } else { goto match2; } } break; case EOF: case TT.Comma: case TT.Dedent: case TT.LBrack: case TT.LParen: case TT.Not: case TT.PreOrSufOp: case TT.RBrace: case TT.RBrack: case TT.RParen: case TT.Semicolon: e = Expr(StartStmt); break; default: goto match2; } } break; default: e = Expr(StartStmt); break; } break; match2: { var id = MatchAny(); // line 98 var args = VList <LNode> .Empty; args.Add(Expr(P.SuperExpr)); // Line 100: (Particle)* for (;;) { switch ((TT)LA0) { case TT.At: case TT.Colon: case TT.Id: case TT.LBrace: case TT.LBrack: case TT.Literal: case TT.LParen: case TT.SpaceLParen: { // line 101 if (((TT)LA0 == TT.LParen)) { var loc = args[args.Count - 2, args.Last].Range.End; Error(0, "Expected a space before '(' (possibly missing ';' or ',' at {0})", loc); } args.Add(Particle()); } break; default: goto stop; } } stop :; // line 108 e = MarkSpecial(F.Call(id, args, id.StartIndex, args.Last.Range.EndIndex)); } } while (false); if ((t.TypeInt != 0)) { e = e.WithRange(t.StartIndex, e.Range.EndIndex); } return(e.PlusAttrs(attrs)); }
protected LNode TopExpr() { TT la0; RVList <LNode> attrs = default(RVList <LNode>); LNode e = default(LNode); Token t = default(Token); // Line 90: (TT.LBrack ExprList TT.RBrack)? la0 = (TT)LA0; if (la0 == TT.LBrack) { t = MatchAny(); attrs = ExprList(); Match((int)TT.RBrack); } // Line 92: (Expr / TT.Id Expr (Particle)*) do { switch ((TT)LA0) { case TT.Assignment: case TT.BQString: case TT.Dot: case TT.NormalOp: case TT.Not: case TT.PrefixOp: case TT.PreOrSufOp: e = Expr(StartStmt); break; case TT.Id: { switch ((TT)LA(1)) { case TT.Assignment: case TT.BQString: case TT.Dot: case TT.NormalOp: e = Expr(StartStmt); break; case TT.Colon: { if (LA(1 + 1) != (int)TT.Indent) { e = Expr(StartStmt); } else { goto match2; } } break; case EOF: case TT.Comma: case TT.Dedent: case TT.LBrack: case TT.LParen: case TT.Not: case TT.PreOrSufOp: case TT.RBrace: case TT.RBrack: case TT.RParen: case TT.Semicolon: e = Expr(StartStmt); break; default: goto match2; } } break; default: e = Expr(StartStmt); break; } break; match2: { var id = MatchAny(); // line 95 var args = RVList <LNode> .Empty; args.Add(Expr(P.SuperExpr)); // Line 97: (Particle)* for (;;) { switch ((TT)LA0) { case TT.At: case TT.Colon: case TT.Id: case TT.LBrace: case TT.LParen: case TT.Number: case TT.OtherLit: case TT.SpaceLParen: case TT.String: { // line 98 if (((TT)LA0 == TT.LParen)) { var loc = args[args.Count - 2, args.Last].Range.End; Error(0, "Expected a space before '(' (possibly missing ';' or ',' at {0})", loc); } args.Add(Particle()); } break; default: goto stop; } } stop :; // line 105 e = MarkSpecial(F.Call((Symbol)id.Value, args, id.StartIndex, args.Last.Range.EndIndex)); } } while (false); if ((t.TypeInt != 0)) { e = e.WithRange(t.StartIndex, e.Range.EndIndex); } return(e.PlusAttrs(attrs)); }