public void ProcessUpdateableIteration(ForStatement node) { Expression expression = node.get_Iterator(); MethodInvocationExpression expression2 = this.get_CodeBuilder().CreateMethodInvocation(this._UnityRuntimeServices_GetEnumerator, node.get_Iterator()); expression2.set_LexicalInfo(new LexicalInfo(node.get_Iterator().get_LexicalInfo())); node.set_Iterator(expression2); this.ProcessDeclarationForIterator(node.get_Declarations().get_Item(0), this.GetEnumeratorItemType(this.GetExpressionType(expression))); this.VisitForStatementBlock(node); this.TransformIteration(node); }
public Statement for_in(Block container) { Statement stmt = null; try { Declaration declaration2; Block block; int num = this.LA(1); switch (num) { case 12: case 0x10: case 0x21: case 0x3b: { IToken token = this.identifier(); if (base.inputState.guessing == 0) { Declaration declaration; Declaration declaration1 = declaration = new Declaration(ToLexicalInfo(token)); declaration.set_Name(token.getText()); declaration2 = declaration; } break; } default: if (num != 0x2d) { throw new NoViableAltException(this.LT(1), this.getFilename()); } declaration2 = this.declaration(); if (base.inputState.guessing == 0) { DeclarationAnnotations.ForceNewVariable(declaration2); } break; } this.match(0x18); Expression expression = this.expression(); if (base.inputState.guessing == 0) { ForStatement statement2; ForStatement statement1 = statement2 = new ForStatement(); statement2.set_Iterator(expression); ForStatement statement3 = statement2; statement3.get_Declarations().Add(declaration2); block = statement3.get_Block(); stmt = statement3; container.Add(stmt); this.EnterLoop(stmt); } this.match(0x40); this.compound_or_single_stmt(block); if (base.inputState.guessing == 0) { this.LeaveLoop(stmt); } } catch (RecognitionException exception) { if (base.inputState.guessing != 0) { throw; } this.reportError(exception); this.recover(exception, tokenSet_15_); return stmt; } return stmt; }
public void ProcessNormalIteration(ForStatement node) { node.set_Iterator(this.ProcessIterator(node.get_Iterator(), node.get_Declarations())); this.VisitForStatementBlock(node); }