Возможность вывода простых значений без оператора print

This commit is contained in:
Victor 2018-03-09 15:38:36 +02:00
parent a89b02ee8d
commit d58bf6f271

View File

@ -10,6 +10,7 @@ import com.annimon.ownlang.lib.Variables;
import com.annimon.ownlang.parser.Lexer;
import com.annimon.ownlang.parser.Parser;
import com.annimon.ownlang.parser.Token;
import com.annimon.ownlang.parser.TokenType;
import com.annimon.ownlang.parser.ast.BlockStatement;
import com.annimon.ownlang.parser.ast.Statement;
import com.annimon.ownlang.parser.visitors.PrintVisitor;
@ -35,6 +36,8 @@ public final class Repl {
RESET = ":reset",
EXIT = ":exit";
private static final Token PRINTLN_TOKEN = new Token(TokenType.PRINTLN, "", 0, 0);
public static void main(String[] args) {
System.out.println("Welcome to OwnLang " + Main.VERSION + " REPL");
printHelp(false);
@ -73,8 +76,16 @@ public final class Repl {
final Parser parser = new Parser(tokens);
program = parser.parse();
if (parser.getParseErrors().hasErrors()) {
// Try to print value
List<Token> tokens2 = new ArrayList<>();
tokens2.add(PRINTLN_TOKEN);
tokens2.addAll(tokens);
Parser parser2 = new Parser(tokens2);
program = parser2.parse();
if (parser2.getParseErrors().hasErrors()) {
continue;
}
}
program.execute();
} catch (LexerException lex) {
continue;