From 68a2ebd34fc94488e89ffb82b359ec6e7e152ae9 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Thu, 8 Jul 2021 00:14:31 -0700 Subject: Restructure project to make room for clox --- src/com/craftinginterpreters/lox/Lox.java | 93 ------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 src/com/craftinginterpreters/lox/Lox.java (limited to 'src/com/craftinginterpreters/lox/Lox.java') diff --git a/src/com/craftinginterpreters/lox/Lox.java b/src/com/craftinginterpreters/lox/Lox.java deleted file mode 100644 index 6115f8f..0000000 --- a/src/com/craftinginterpreters/lox/Lox.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.craftinginterpreters.lox; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; - -public class Lox { - private static final Interpreter interpreter = new Interpreter(); - public static boolean hadError = false; - public static boolean hadRuntimeError = false; - - public static void main(String[] args) throws IOException { - if (args.length > 1) { - System.out.println("Usage: jlox [script]"); - System.exit(64); - } else if (args.length == 1) { - runFile(args[0]); - } else { - runPrompt(); - } - } - - private static void runFile(String path) throws IOException { - byte[] bytes = Files.readAllBytes(Paths.get(path)); - run(new String(bytes, Charset.defaultCharset())); - - // Indicate an error in the exit code. - if (hadError) - System.exit(65); - if (hadRuntimeError) - System.exit(70); - } - - private static void runPrompt() throws IOException { - InputStreamReader input = new InputStreamReader(System.in); - BufferedReader reader = new BufferedReader(input); - - for (;;) { - System.out.print("> "); - String line = reader.readLine(); - if (line == null) - break; - run(line); - hadError = false; - } - } - - private static void run(String source) { - Scanner scanner = new Scanner(source); - List tokens = scanner.scanTokens(); - Parser parser = new Parser(tokens); - List statements = parser.parse(); - - // Stop if there was a syntax error - if (hadError) - return; - - Resolver resolver = new Resolver(interpreter); - resolver.resolve(statements); - - // Stop if there was a resolution error - if (hadError) - return; - - interpreter.interpret(statements); - } - - public static void error(int line, String message) { - report(line, "", message); - } - - private static void report(int line, String where, String message) { - System.err.println("[line " + line + "] Error" + where + ": " + message); - hadError = true; - } - - public static void error(Token token, String message) { - if (token.type == TokenType.EOF) { - report(token.line, " at end", message); - } else { - report(token.line, " at '" + token.lexeme + "'", message); - } - } - - public static void runtimeError(RuntimeError error) { - System.err.println(error.getMessage() + "\n[line " + error.token.line + "]"); - hadRuntimeError = true; - } -} -- cgit v1.2.3-54-g00ecf