// genexpr_if: "if" old_test private IfStatement ParseGenExprIf() { var start = GetStart(); Eat(TokenKind.KeywordIf); Expression expr = ParseOldExpression(); IfStatementTest ist = new IfStatementTest(expr, null); var end = GetEnd(); ist.HeaderIndex = end; ist.SetLoc(_globalParent, start, end); IfStatement gei = new IfStatement(new IfStatementTest[] { ist }, null); gei.SetLoc(_globalParent, start, end); return gei; }
// genexpr_if: "if" old_test private IfStatement ParseGenExprIf() { SourceLocation start = GetStart(); Eat(TokenKind.KeywordIf); Expression expr = ParseOldExpression(); IfStatementTest ist = new IfStatementTest(expr, null); SourceLocation end = GetEnd(); ist.Header = end; ist.SetLoc(start, end); IfStatement gei = new IfStatement(new IfStatementTest[] { ist }, null); gei.SetLoc(start, end); return gei; }
// if_stmt: 'if' expression ':' suite ('elif' expression ':' suite)* ['else' ':' suite] private IfStatement ParseIfStmt() { Eat(TokenKind.KeywordIf); var start = GetStart(); List<IfStatementTest> l = new List<IfStatementTest>(); l.Add(ParseIfStmtTest()); while (MaybeEat(TokenKind.KeywordElseIf)) { l.Add(ParseIfStmtTest()); } Statement else_ = null; if (MaybeEat(TokenKind.KeywordElse)) { else_ = ParseSuite(); } IfStatementTest[] tests = l.ToArray(); IfStatement ret = new IfStatement(tests, else_); ret.SetLoc(_globalParent, start, GetEnd()); return ret; }
// Python 2.5 -> genexpr_if ::= "if" old_test private IfStatement ParseGenExprIf() { Location start = GetStart(); Eat(TokenKind.KeywordIf); Expression test = ParseOldTest(); IfStatementTest ist = new IfStatementTest(test, null); Location end = GetEnd(); ist.Header = end; ist.SetLoc(GetExternal(), start, end); IfStatement gei = new IfStatement(new IfStatementTest[] { ist }, null); gei.SetLoc(GetExternal(), start, end); return gei; }