Loyc.Ecs.Parser.EcsParser.ForEachStmt C# (CSharp) Method

ForEachStmt() private method

private ForEachStmt ( int startIndex ) : LNode
startIndex int
return LNode
		LNode ForEachStmt(int startIndex)
		{
			TokenType la1;
			LNode @var = default(LNode);
			var kw = MatchAny();
			var p = Match((int) TT.LParen);
			Match((int) TT.RParen);
			var block = Stmt();
			// line 1970
			Down(p);
			// Line 1971: (&(VarIn) VarIn)?
			switch (LA0) {
			case TT.ContextualKeyword: case TT.Id: case TT.Operator: case TT.Substitute:
			case TT.TypeKeyword:
				{
					if (Try_Scan_VarIn(0)) {
						la1 = LA(1);
						if (ForEachStmt_set0.Contains((int) la1))
							@var = VarIn();
					}
				}
				break;
			}
			var expr = ExprStart(false);
			// line 1975
			var parts = LNode.List(@var ?? F.Missing, expr, block);
			return Up(F.Call(kw, parts, startIndex, block.Range.EndIndex));
		}
	
EcsParser