aboutsummaryrefslogtreecommitdiffstats
path: root/main/Main.java
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2016-06-28 21:09:43 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2016-07-26 19:47:12 +0300
commit8f84c00978dc05007873a9fe1de6a18511dc3cf8 (patch)
tree39fead540e22addee40b95b68db08cbea620745b /main/Main.java
parent48dcd488054024d98fe1e659a4029630130d1d35 (diff)
Restructure project for use with maven
Diffstat (limited to 'main/Main.java')
-rw-r--r--main/Main.java86
1 files changed, 0 insertions, 86 deletions
diff --git a/main/Main.java b/main/Main.java
deleted file mode 100644
index 77c2f51..0000000
--- a/main/Main.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.jantuomi.interpreter.main;
-
-import com.jantuomi.interpreter.main.core.CommandLineArgumentContainer;
-import com.jantuomi.interpreter.main.core.parser.ASTGenerator;
-import com.jantuomi.interpreter.main.core.parser.Parser;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.runtime.Interpreter;
-import com.jantuomi.interpreter.main.core.tokenizer.Tokenizer;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
-import org.kohsuke.args4j.CmdLineException;
-import org.kohsuke.args4j.CmdLineParser;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Scanner;
-
-public class Main {
-
- public static void main(String[] args) throws Exception {
- boolean parseSuccess = parseArguments(args);
- if (!parseSuccess) {
- throw new Exception("Argument files could not be parsed successfully.");
- }
-
- if (CommandLineArgumentContainer.getInstance().isInteractive()) {
- repl();
- } else {
- String sourceFileContents = CommandLineArgumentContainer.getInstance().getSourceFileContents();
- run(sourceFileContents);
- }
- }
-
- public static void repl() {
- Scanner scanner = new Scanner(System.in);
- String input;
- while (true) {
- System.out.print(">> ");
- input = scanner.nextLine();
-
- try {
- run(input);
- } catch (InterpreterException e) {
- e.printStackTrace();
- }
- }
- }
-
- public static void run(String input) throws InterpreterException {
- Tokenizer tokenizer = Tokenizer.getInstance();
- List<Token> sequence = tokenizer.tokenize(input);
-
- Collections.reverse(sequence);
-
- List<Token> trees = Parser.getInstance().parse(sequence);
- if (CommandLineArgumentContainer.getInstance().isDebugModeActive()) {
- Parser.getInstance().printAllTrees(trees);
- }
-
- List<ASTNode> nodes = ASTGenerator.getInstance().generate(trees);
- if (CommandLineArgumentContainer.getInstance().isDebugModeActive()) {
- ASTGenerator.getInstance().printAllTrees(nodes);
- }
-
- String output = Interpreter.execute(nodes);
-
- if (output.trim().length() > 0) {
- System.out.println(output);
- }
- }
-
- public static boolean parseArguments(String[] args) {
- CommandLineArgumentContainer container = CommandLineArgumentContainer.getInstance();
- CmdLineParser parser = new CmdLineParser(container);
-
- try {
- parser.parseArgument(args);
- } catch (CmdLineException e) {
- System.err.println(e.getMessage());
- parser.printUsage(System.err);
- return false;
- }
-
- return true;
- }
-}