public FuncLit(BlockStmt body, FuncType ft) { TypeInfo = ft; Body = body; BuildRelation(); }
public FileNode(BlockStmt block, List <ImportStmt> imports) { Block = block; Imports = imports; BuildRelation(); }
public WhileStmt(Expr con, TokenPos defpos, Scope s, BlockStmt body) { Condition = con; Pos = defpos; ScopeInfo = s; Body = body; BuildRelation(); }
public IfStmt(Expr con, BlockStmt body, BlockStmt elsebody, TokenPos ifpos) { Condition = con; Body = body; ElseBody = elsebody; IfPos = ifpos; BuildRelation(); }
public ForStmt(Stmt init, Expr con, Stmt post, TokenPos defpos, Scope s, BlockStmt body) { Condition = con; Init = init; Post = post; Pos = defpos; ScopeInfo = s; Body = body; BuildRelation(); }
public ForRangeStmt(Ident key, Ident value, Expr x, TokenPos inpos, TokenPos defpos, Scope s, BlockStmt body) { Key = key; Value = value; X = x; InPos = inpos; Pos = defpos; ScopeInfo = s; Body = body; BuildRelation(); }
IfStmt ParseIfStmt() { var defpos = CurrTokenPos; Expect(TokenType.If); var condition = ParseRHS(); var body = ParseBlockStmt(); BlockStmt elseBody; if (CurrTokenType == TokenType.Else) { Next(); elseBody = ParseBlockStmt(); } else { elseBody = new BlockStmt(CurrTokenPos, CurrTokenPos); } return(new IfStmt(condition, body, elseBody, defpos)); }