diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2016-06-13 23:16:54 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2016-07-26 19:46:50 +0300 |
| commit | 12eeefcdba1ee392f033f51e6b9826eaae3c4de6 (patch) | |
| tree | 061f3472bfc924dfa05b46f3aeab76b788b86914 /main/Main.java | |
| parent | 560e490ea44970edca22181cc2726f0b2ebb82c9 (diff) | |
Add tokenizer, parser and support for certain operations
Diffstat (limited to 'main/Main.java')
| -rw-r--r-- | main/Main.java | 37 |
1 files changed, 37 insertions, 0 deletions
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; + } +} |
