From d58bf6f2715ac02115b466acb46df0ecb4faf974 Mon Sep 17 00:00:00 2001 From: Victor Date: Fri, 9 Mar 2018 15:38:36 +0200 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D1=81=D1=82=D1=8B=D1=85=20=D0=B7=D0=BD?= =?UTF-8?q?=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B1=D0=B5=D0=B7=20?= =?UTF-8?q?=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=B0=20print?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/annimon/ownlang/utils/Repl.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/annimon/ownlang/utils/Repl.java b/src/main/java/com/annimon/ownlang/utils/Repl.java index 551bc1e..e56e0ac 100644 --- a/src/main/java/com/annimon/ownlang/utils/Repl.java +++ b/src/main/java/com/annimon/ownlang/utils/Repl.java @@ -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,7 +76,15 @@ public final class Repl { final Parser parser = new Parser(tokens); program = parser.parse(); if (parser.getParseErrors().hasErrors()) { - continue; + // Try to print value + List 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) {