Esempio n. 1
0
        public StmtForeach(StmtForeachRaw raw, Stmt parentStmt)
        {
            Raw        = raw;
            ParentStmt = parentStmt;

            StmtBody = new StmtBlock(this, raw.Body);
        }
Esempio n. 2
0
        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);
        }