From 12eeefcdba1ee392f033f51e6b9826eaae3c4de6 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Mon, 13 Jun 2016 23:16:54 +0300 Subject: Add tokenizer, parser and support for certain operations --- main/Main.java | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 main/Main.java (limited to 'main/Main.java') diff --git a/main/Main.java b/main/Main.java new file mode 100644 index 0000000..488b9fd --- /dev/null +++ b/main/Main.java @@ -0,0 +1,37 @@ +package com.jantuomi.interpreter.main; + +import com.jantuomi.interpreter.main.core.CommandLineArgumentContainer; +import com.jantuomi.interpreter.main.core.parser.Parser; +import com.jantuomi.interpreter.main.core.tokenizer.Tokenizer; +import org.kohsuke.args4j.CmdLineException; +import org.kohsuke.args4j.CmdLineParser; + +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."); + } + + String sourceFileContents = CommandLineArgumentContainer.getInstance().getSourceFileContents(); + Tokenizer tokenizer = Tokenizer.getInstance(); + tokenizer.tokenize(sourceFileContents); + Parser.getInstance().parse(tokenizer.getTokens()); + } + + 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; + } +} -- cgit v1.3