public StmtForeach(StmtForeachRaw raw, Stmt parentStmt) { Raw = raw; ParentStmt = parentStmt; StmtBody = new StmtBlock(this, raw.Body); }
private StmtRaw ParseForeach() //例:循环每一个(子弹管理器的子弹群,ZD) { StmtForeachRaw foreachStmt = new StmtForeachRaw(); foreachStmt.LoopToken = (LexTokenText)currLineTokenTape.Current; currLineTokenTape.MoveNext(); foreachStmt.EachToken = (LexTokenText)currLineTokenTape.Current; currLineTokenTape.MoveNext(); currLineTokenTape.Match(TokenKindSymbol.LBS); foreachStmt.ListExp = ParseRawExpLineComma(); currLineTokenTape.Match(TokenKindSymbol.Comma); foreachStmt.ItemToken = (LexTokenText)currLineTokenTape.Current; currLineTokenTape.MoveNext(); currLineTokenTape.Match(TokenKindSymbol.RBS); TapeMoveNext(); foreachStmt.Body = ParseStmtBlockRaw(foreachStmt.LoopToken.Position.Col); return(foreachStmt); }