public object visitExprLiteralExpr(ExprLiteral expr) { if (expr.eValue == null) { return("Nil"); } return(expr.eValue.ToString()); }
Stmt forStatement() { consume(TokenType.LEFT_PAREN, "Expected '(' after 'for'."); Stmt initStmt; if (match(TokenType.SEMICOLON)) { initStmt = null; } else if (match(TokenType.VAR)) { initStmt = varDeclaration(); } else { initStmt = exprStatement(); } Expr condition = null; if (!check(TokenType.SEMICOLON)) { condition = expression(); } consume(TokenType.SEMICOLON, "Expected ';' after loop condition"); Expr increment = null; if (!check(TokenType.RIGHT_PAREN)) { increment = expression(); } consume(TokenType.RIGHT_PAREN, "Expected ')' after for clauses"); Stmt body = statement(); if (increment != null) { body = new StmtBlock(new List <Stmt>() { body, new StmtExpression(increment) }); } if (condition == null) { condition = new ExprLiteral(true); } body = new StmtWhile(condition, body); if (initStmt != null) { body = new StmtBlock(new List <Stmt>() { initStmt, body }); } return(body); }
public object visitExprLiteralExpr(ExprLiteral expr) { return(null); }
public object visitExprLiteralExpr(ExprLiteral expr) { return(expr.eValue); }