diff --git a/repl/nbactions.xml b/repl/nbactions.xml deleted file mode 100644 index 869e1cf..0000000 --- a/repl/nbactions.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - run - - jar - - - process-classes - org.codehaus.mojo:exec-maven-plugin:3.0.0:exec - - - - ${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs} - - icu.bengal.repl.REPL - java - - - diff --git a/repl/pom.xml b/repl/pom.xml deleted file mode 100644 index 4e17913..0000000 --- a/repl/pom.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - 4.0.0 - - icu.bengal - project - 0.0.1-SNAPSHOT - - bengal-repl - jar - Bengal - REPL - - - org.antlr - antlr4-runtime - ${antlr.version} - - - org.junit.jupiter - junit-jupiter-api - 5.6.0 - test - - - org.junit.jupiter - junit-jupiter-params - 5.6.0 - test - - - org.junit.jupiter - junit-jupiter-engine - 5.6.0 - test - - - - - - org.antlr - antlr4-maven-plugin - ${antlr.version} - - - - antlr4 - - - - - - org.apache.maven.plugins - maven-dependency-plugin - ${maven-dependency-plugin.version} - - - copy-dependencies - package - - copy-dependencies - - - ${project.build.directory} - - - - - - org.apache.maven.plugins - maven-jar-plugin - ${maven-jar-plugin.version} - - - - true - icu.bengal.repl.REPL - - - - - - - - - graalvm - - - - org.graalvm.nativeimage - native-image-maven-plugin - ${graalvm.version} - - - - native-image - - package - - - - -H:-CheckToolchain --no-fallback --install-exit-handlers - bengal-repl - icu.bengal.repl.REPL - false - - - - - - - org.graalvm.sdk - graal-sdk - ${graalvm.version} - provided - - - - - diff --git a/repl/src/main/antlr4/Bengal.g4 b/repl/src/main/antlr4/Bengal.g4 deleted file mode 100644 index e1ba31e..0000000 --- a/repl/src/main/antlr4/Bengal.g4 +++ /dev/null @@ -1,24 +0,0 @@ -grammar Bengal; - -@header { - package icu.bengal.parser; -} - -source: statement; -statement: assignment || boolean_expression || delete_statement || class_definition; -assignment: ID WS* '=' WS* method_call ';'; -boolean_false: 'false'; -boolean_true: 'true'; -boolean_expression: boolean_false || boolean_true; -delete_statement: 'delete' WS* ID; -if_then_else_statement: 'if' WS* '(' WS* boolean_expression WS* ')' WS* 'then' WS* '{' '}' (WS* 'else' WS* '{' '}')?; -class_definition: 'class' WS* ID '{' WS* '}'; -new_instance: 'new' WS+ ID; -method_call: ID '.' ID '()'; -method_definition: 'method' WS+ ID '('')' WS* '{' WS* '}'; -while_statement: 'while' WS* '(' boolean_expression ')' WS* '{''}'; -do_while_statement: 'do' WS* '{' '}' WS* 'while' WS* '(' boolean_expression ')' WS*; -for_statement: 'for' WS* '(' WS* ';' WS* boolean_expression WS* ';' WS* ')' '{' '}'; - -ID: [a-zA-Z]+; -WS: [ \t\r\n]+ -> skip; diff --git a/repl/src/main/bengal/Repl.b1 b/repl/src/main/bengal/Repl.b1 deleted file mode 100644 index e50bee5..0000000 --- a/repl/src/main/bengal/Repl.b1 +++ /dev/null @@ -1,7 +0,0 @@ -class Bengal { - - method exit() { - Java java = new Java(); - java.callStaticMethod("java.lang.System.exit"); - } -} diff --git a/repl/src/main/java/icu/bengal/repl/BengalClass.java b/repl/src/main/java/icu/bengal/repl/BengalClass.java deleted file mode 100644 index 7c4c6de..0000000 --- a/repl/src/main/java/icu/bengal/repl/BengalClass.java +++ /dev/null @@ -1,32 +0,0 @@ -package icu.bengal.repl; - -/** - * A class in the Bengal ecosystem. - * - * @author Manfred Riem (mriem@manorrock.com) - */ -public class BengalClass { - - /** - * Stores the name. - */ - private String name; - - /** - * Get the name. - * - * @return the name. - */ - public String getName() { - return name; - } - - /** - * Set the name. - * - * @param name the name. - */ - public void setName(String name) { - this.name = name; - } -} diff --git a/repl/src/main/java/icu/bengal/repl/BengalMethod.java b/repl/src/main/java/icu/bengal/repl/BengalMethod.java deleted file mode 100644 index d4775b3..0000000 --- a/repl/src/main/java/icu/bengal/repl/BengalMethod.java +++ /dev/null @@ -1,32 +0,0 @@ -package icu.bengal.repl; - -/** - * A method in the Bengal ecosystem. - * - * @author Manfred Riem (mriem@manorrock.com) - */ -public class BengalMethod { - - /** - * Stores the name. - */ - private String name; - - /** - * Get the name. - * - * @return the name. - */ - public String getName() { - return name; - } - - /** - * Set the name. - * - * @param name the name. - */ - public void setName(String name) { - this.name = name; - } -} diff --git a/repl/src/main/java/icu/bengal/repl/BengalStack.java b/repl/src/main/java/icu/bengal/repl/BengalStack.java deleted file mode 100644 index c995720..0000000 --- a/repl/src/main/java/icu/bengal/repl/BengalStack.java +++ /dev/null @@ -1,9 +0,0 @@ -package icu.bengal.repl; - -/** - * A stack in the Bengal ecosystem. - * - * @author Manfred Riem (mriem@manorrock.com) - */ -public class BengalStack { -} diff --git a/repl/src/main/java/icu/bengal/repl/REPL.java b/repl/src/main/java/icu/bengal/repl/REPL.java deleted file mode 100644 index bca2265..0000000 --- a/repl/src/main/java/icu/bengal/repl/REPL.java +++ /dev/null @@ -1,121 +0,0 @@ -package icu.bengal.repl; - -import icu.bengal.parser.BengalLexer; -import icu.bengal.parser.BengalParser; -import java.util.Scanner; -import org.antlr.v4.runtime.CharStreams; -import org.antlr.v4.runtime.CommonTokenStream; - -/** - * The main entry point. - * - * @author Manfred Riem (manfred@bengal.icu) - */ -public class REPL { - - /** - * Stores the done flag. - */ - private boolean done; - - /** - * Stores the line(s). - */ - private final StringBuilder lines = new StringBuilder(); - - /** - * Stores the scanner. - */ - private Scanner scanner; - - /** - * Stores the result. - */ - private String result; - - /** - * Show the banner. - */ - private void banner() { - System.out.println( - """ -------------------------------------------------------------------------------- - Bengal REPL - Enjoy! --------------------------------------------------------------------------------"""); - } - - /** - * Evaluate. - */ - private void eval() { - BengalLexer lexer = new BengalLexer(CharStreams.fromString(lines.toString())); - CommonTokenStream tokenStream = new CommonTokenStream(lexer); - BengalParser parser = new BengalParser(tokenStream); - result = parser.source().toStringTree(); - } - - /** - * Print - */ - private void print() { - System.out.println(result); - } - - /** - * Prompt - */ - private void prompt() { - System.out.print("$ "); - } - - /** - * Read. - */ - private void read() { - lines.setLength(0); - String line = scanner.nextLine(); - while (scanner.hasNext()) { - lines.append(line).append("\n"); - if (!line.contains("/exit")) { - line = scanner.nextLine(); - } else { - lines.setLength(0); - System.exit(0); - } - } - } - - /** - * REPL loop. - */ - private void run() { - setup(); - banner(); - while (!done) { - prompt(); - read(); - eval(); - print(); - if (lines.isEmpty()) { - done = true; - } - } - } - - /** - * The main method. - * - * @param arguments the command line arguments - */ - public static void main(String[] arguments) { - REPL repl = new REPL(); - repl.run(); - } - - /** - * Setup the REPL. - */ - private void setup() { - scanner = new Scanner(System.in); - } -}