aboutsummaryrefslogtreecommitdiffstats
path: root/main/core/CommandLineArgumentContainer.java
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2016-06-13 23:16:54 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2016-07-26 19:46:50 +0300
commit12eeefcdba1ee392f033f51e6b9826eaae3c4de6 (patch)
tree061f3472bfc924dfa05b46f3aeab76b788b86914 /main/core/CommandLineArgumentContainer.java
parent560e490ea44970edca22181cc2726f0b2ebb82c9 (diff)
Add tokenizer, parser and support for certain operations
Diffstat (limited to 'main/core/CommandLineArgumentContainer.java')
-rw-r--r--main/core/CommandLineArgumentContainer.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/main/core/CommandLineArgumentContainer.java b/main/core/CommandLineArgumentContainer.java
new file mode 100644
index 0000000..9ca0b5e
--- /dev/null
+++ b/main/core/CommandLineArgumentContainer.java
@@ -0,0 +1,56 @@
+package com.jantuomi.interpreter.main.core;
+
+import org.kohsuke.args4j.Option;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+/**
+ * Created by jan on 10.6.2016.
+ */
+
+public class CommandLineArgumentContainer {
+
+ private CommandLineArgumentContainer() {}
+
+ private static final CommandLineArgumentContainer instance = new CommandLineArgumentContainer();
+ private File srcFile;
+
+ @Option(name="-f", usage="Execute script in file FILE.")
+ public void setFile(File file) {
+ this.srcFile = file;
+ }
+
+ public static CommandLineArgumentContainer getInstance() {
+ return instance;
+ }
+
+ public String getSourceFileContents() {
+ if (srcFile == null) {
+ return null;
+ }
+
+ BufferedReader br;
+ String contents = null;
+ try {
+ br = new BufferedReader(new FileReader(srcFile));
+ StringBuilder sb = new StringBuilder();
+ String line = br.readLine();
+
+ while (line != null) {
+ sb.append(line);
+ sb.append(System.lineSeparator());
+ line = br.readLine();
+ }
+ contents = sb.toString();
+ } catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ } finally {
+ // Add a newline at the end for comment rows to terminate nicely
+ return contents + "\n";
+ }
+ }
+}