diff options
Diffstat (limited to 'Shenanigans/src/org/archphantom/shenanigans/examples')
7 files changed, 125 insertions, 19 deletions
diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/AddIt.java b/Shenanigans/src/org/archphantom/shenanigans/examples/AddIt.java index d898bd4..ec6b300 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/examples/AddIt.java +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/AddIt.java @@ -16,7 +16,7 @@ import org.archphantom.shenanigans.elements.variables.VarTable; public class AddIt { - public static void main (String[] args) { + public static Program buildExample () { ArrayList<Expression> list = new ArrayList<Expression>(); ArrayList<String> argnames = new ArrayList<String>(); argnames.add("x"); @@ -34,10 +34,11 @@ public class AddIt { Namespace main = new Namespace("main", group, new VarTable()); Hashtable<String, Namespace> namespaces = new Hashtable<String, Namespace>(); namespaces.put("main", main); - Program p = new Program(namespaces); - System.out.println("Running..."); - p.run(); - System.out.println("Ran..."); + return new Program(namespaces); + } + + public static void main (String[] args) { + buildExample().run(); } } diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/CheckIt.java b/Shenanigans/src/org/archphantom/shenanigans/examples/CheckIt.java index 8506584..f7c89d3 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/examples/CheckIt.java +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/CheckIt.java @@ -19,7 +19,7 @@ import org.archphantom.shenanigans.elements.variables.VarTable; public class CheckIt { - public static void main (String[] args) { + public static Program buildExample () { ArrayList<Expression> list = new ArrayList<Expression>(); ArrayList<String> argnames = new ArrayList<String>(); argnames.add("x"); @@ -35,10 +35,11 @@ public class CheckIt { Namespace main = new Namespace("main", group, new VarTable()); Hashtable<String, Namespace> namespaces = new Hashtable<String, Namespace>(); namespaces.put("main", main); - Program p = new Program(namespaces); - System.out.println("Running..."); - p.run(); - System.out.println("Ran..."); + return new Program(namespaces); + } + + public static void main (String[] args) { + buildExample().run(); } } diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/Exporter.java b/Shenanigans/src/org/archphantom/shenanigans/examples/Exporter.java new file mode 100644 index 0000000..25659de --- /dev/null +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/Exporter.java @@ -0,0 +1,44 @@ +package org.archphantom.shenanigans.examples; +import java.io.FileOutputStream; +import java.io.ObjectOutputStream; +import java.util.Scanner; + +import org.archphantom.shenanigans.elements.Program; + +public class Exporter { + + public static void main (String[] args) { + Program addit = AddIt.buildExample(); + Program checkit = CheckIt.buildExample(); + Program factorial = Factorial.buildExample(); + Program factorialz = FactorialZ.buildExample(); + Program nsaccess = NamespaceAccess.buildExample(); + Program shiftit = ShiftIt.buildExample(); + Scanner s = new Scanner(System.in); + System.out.println("Export AddIt To:"); + writeToFile(addit, s.nextLine()); + System.out.println("Export CheckIt To:"); + writeToFile(checkit, s.nextLine()); + System.out.println("Export Factorial To:"); + writeToFile(factorial, s.nextLine()); + System.out.println("Export FactorialZ To:"); + writeToFile(factorialz, s.nextLine()); + System.out.println("Export NamespaceAccess To:"); + writeToFile(nsaccess, s.nextLine()); + System.out.println("Export ShiftIt To:"); + writeToFile(shiftit, s.nextLine()); + s.close(); + System.out.println("Export complete."); + } + + public static void writeToFile (Program program, String filename) { + try { + ObjectOutputStream stream = new ObjectOutputStream(new FileOutputStream(filename)); + stream.writeObject(program); + stream.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/Factorial.java b/Shenanigans/src/org/archphantom/shenanigans/examples/Factorial.java index 06bf9b4..47053ba 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/examples/Factorial.java +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/Factorial.java @@ -19,7 +19,7 @@ import org.archphantom.shenanigans.elements.variables.VarTable; public class Factorial { - public static void main (String[] args) { + public static Program buildExample () { ArrayList<Expression> list = new ArrayList<Expression>(); ArrayList<String> argnames = new ArrayList<String>(); argnames.add("n"); @@ -37,8 +37,11 @@ public class Factorial { Namespace main = new Namespace("main", group, new VarTable()); Hashtable<String, Namespace> namespaces = new Hashtable<String, Namespace>(); namespaces.put("main", main); - Program p = new Program(namespaces); - p.run(); + return new Program(namespaces); + } + + public static void main (String[] args) { + buildExample().run(); } } diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/FactorialZ.java b/Shenanigans/src/org/archphantom/shenanigans/examples/FactorialZ.java index f6ae70a..889d68f 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/examples/FactorialZ.java +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/FactorialZ.java @@ -19,7 +19,7 @@ import org.archphantom.shenanigans.elements.variables.VarTable; public class FactorialZ { - public static void main (String[] args) { + public static Program buildExample () { ArrayList<Expression> list = new ArrayList<Expression>(); ArrayList<String> argnames = new ArrayList<String>(); argnames.add("n"); @@ -40,8 +40,11 @@ public class FactorialZ { Namespace main = new Namespace("main", group, new VarTable()); Hashtable<String, Namespace> namespaces = new Hashtable<String, Namespace>(); namespaces.put("main", main); - Program p = new Program(namespaces); - p.run(); + return new Program(namespaces); + } + + public static void main (String[] args) { + buildExample().run(); } } diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/NamespaceAccess.java b/Shenanigans/src/org/archphantom/shenanigans/examples/NamespaceAccess.java new file mode 100644 index 0000000..208d958 --- /dev/null +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/NamespaceAccess.java @@ -0,0 +1,51 @@ +package org.archphantom.shenanigans.examples; +import java.util.ArrayList; +import java.util.Hashtable; +import org.archphantom.shenanigans.elements.Program; +import org.archphantom.shenanigans.elements.expressions.Expression; +import org.archphantom.shenanigans.elements.expressions.Variable; +import org.archphantom.shenanigans.elements.expressions.operations.Addition; +import org.archphantom.shenanigans.elements.expressions.statements.Assignment; +import org.archphantom.shenanigans.elements.expressions.statements.FunctionCall; +import org.archphantom.shenanigans.elements.expressions.statements.Group; +import org.archphantom.shenanigans.elements.expressions.statements.NamespaceCall; +import org.archphantom.shenanigans.elements.expressions.statements.PrintLn; +import org.archphantom.shenanigans.elements.values.Function; +import org.archphantom.shenanigans.elements.values.IntValue; +import org.archphantom.shenanigans.elements.values.Namespace; +import org.archphantom.shenanigans.elements.variables.VarTable; + +public class NamespaceAccess { + + public static Program buildExample () { + ArrayList<Expression> foo_body = new ArrayList<Expression>(); + Namespace foo = new Namespace("foo", new Group(foo_body), new VarTable()); + foo_body.add(new Assignment("x", new IntValue("0"))); + ArrayList<String> argNames1 = new ArrayList<String>(1); + argNames1.add("y"); + foo_body.add(new Assignment("set", new Function(argNames1, new Assignment("foo.x", new Variable("y"))))); + ArrayList<String> argNames2 = new ArrayList<String>(2); + argNames2.add("n"); + foo_body.add(new Assignment("inc", new Function(argNames2, new Assignment("foo.x", new Addition(new Variable("foo.x"), new Variable("n")))))); + foo_body.add(new Assignment("show", new Function(new ArrayList<String>(0), new PrintLn(new Variable("foo.x"))))); + ArrayList<Expression> main_body = new ArrayList<Expression>(); + main_body.add(new NamespaceCall("foo")); + ArrayList<Expression> arguments1 = new ArrayList<Expression>(1); + arguments1.add(new IntValue("0")); + main_body.add(new FunctionCall("foo.set", arguments1)); + ArrayList<Expression> arguments2 = new ArrayList<Expression>(1); + arguments2.add(new IntValue("4")); + main_body.add(new FunctionCall("foo.inc", arguments2)); + main_body.add(new FunctionCall("foo.show", new ArrayList<Expression>())); + Namespace main = new Namespace("main", new Group(main_body), new VarTable()); + Hashtable<String, Namespace> namespaces = new Hashtable<String, Namespace>(2); + namespaces.put("foo", foo); + namespaces.put("main", main); + return new Program(namespaces); + } + + public static void main (String[] args) { + buildExample().run(); + } + +} diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/ShiftIt.java b/Shenanigans/src/org/archphantom/shenanigans/examples/ShiftIt.java index 1d56397..783dd9f 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/examples/ShiftIt.java +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/ShiftIt.java @@ -25,7 +25,7 @@ import org.archphantom.shenanigans.elements.variables.VarTable; public class ShiftIt { - public static void main (String[] args) { + public static Program buildExample () { ArrayList<Expression> list = new ArrayList<Expression>(); ArrayList<String> argnames = new ArrayList<String>(); argnames.add("a"); @@ -52,8 +52,11 @@ public class ShiftIt { Namespace main = new Namespace("main", group, new VarTable()); Hashtable<String, Namespace> namespaces = new Hashtable<String, Namespace>(); namespaces.put("main", main); - Program p = new Program(namespaces); - p.run(); + return new Program(namespaces); + } + + public static void main (String[] args) { + buildExample().run(); } } |
