diff options
Diffstat (limited to 'Shenanigans/src/org/archphantom/shenanigans/examples')
5 files changed, 249 insertions, 0 deletions
diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/AddIt.java b/Shenanigans/src/org/archphantom/shenanigans/examples/AddIt.java new file mode 100644 index 0000000..158f9d4 --- /dev/null +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/AddIt.java @@ -0,0 +1,48 @@ +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.Print; +import org.archphantom.shenanigans.elements.values.Array; +import org.archphantom.shenanigans.elements.values.CharValue; +import org.archphantom.shenanigans.elements.values.DecimalValue; +import org.archphantom.shenanigans.elements.values.Function; +import org.archphantom.shenanigans.elements.values.Namespace; +import org.archphantom.shenanigans.elements.variables.VarTable; + +public class AddIt { + + public static void main (String[] args) { + ArrayList<Expression> list = new ArrayList<Expression>(); + ArrayList<String> argnames = new ArrayList<String>(); + argnames.add("x"); + argnames.add("y"); + ArrayList<Expression> addit_expr_body = new ArrayList<Expression>(); + ArrayList<Expression> to_print = new ArrayList<Expression>(); + to_print.add(new Addition(new Variable("x"), new Variable("y"))); + to_print.add(new CharValue('\n')); + addit_expr_body.add(new Print(new Array(to_print))); + Group addit_body = new Group(addit_expr_body); + Function addit = new Function(argnames, addit_body); + list.add(new Assignment("add_it", addit)); + ArrayList<Expression> arguments = new ArrayList<Expression>(); + arguments.add(new DecimalValue("2.6789553890921339210")); + arguments.add(new DecimalValue("-1.8888888888888888888")); + list.add(new FunctionCall("add_it", arguments)); + Group group = new Group(list); + 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..."); + } + +} diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/CheckIt.java b/Shenanigans/src/org/archphantom/shenanigans/examples/CheckIt.java new file mode 100644 index 0000000..8506584 --- /dev/null +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/CheckIt.java @@ -0,0 +1,44 @@ +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.comparators.BoolGreater; +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.IfElse; +import org.archphantom.shenanigans.elements.expressions.statements.Print; +import org.archphantom.shenanigans.elements.values.Array; +import org.archphantom.shenanigans.elements.values.DecimalValue; +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 CheckIt { + + public static void main (String[] args) { + ArrayList<Expression> list = new ArrayList<Expression>(); + ArrayList<String> argnames = new ArrayList<String>(); + argnames.add("x"); + ArrayList<Expression> checkit_expr_body = new ArrayList<Expression>(); + checkit_expr_body.add(new IfElse(new BoolGreater(new Variable("x"), new IntValue("0")), new Print(new Array("True\n")), new Print(new Array("False\n")))); + Group checkit_body = new Group(checkit_expr_body); + Function checkit = new Function(argnames, checkit_body); + list.add(new Assignment("checkit", checkit)); + ArrayList<Expression> arguments = new ArrayList<Expression>(); + arguments.add(new DecimalValue("298")); + list.add(new FunctionCall("checkit", arguments)); + Group group = new Group(list); + 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..."); + } + +} diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/Factorial.java b/Shenanigans/src/org/archphantom/shenanigans/examples/Factorial.java new file mode 100644 index 0000000..931438b --- /dev/null +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/Factorial.java @@ -0,0 +1,49 @@ +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.comparators.BoolEqual; +import org.archphantom.shenanigans.elements.expressions.operations.Multiplication; +import org.archphantom.shenanigans.elements.expressions.operations.Subtraction; +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.IfElse; +import org.archphantom.shenanigans.elements.expressions.statements.Print; +import org.archphantom.shenanigans.elements.values.Array; +import org.archphantom.shenanigans.elements.values.CharValue; +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 Factorial { + + public static void main (String[] args) { + ArrayList<Expression> list = new ArrayList<Expression>(); + ArrayList<String> argnames = new ArrayList<String>(); + argnames.add("n"); + ArrayList<Expression> factorial_expr_body = new ArrayList<Expression>(); + ArrayList<Expression> recursionargs = new ArrayList<Expression>(); + recursionargs.add(new Subtraction(new Variable("n"), new IntValue("1"))); + factorial_expr_body.add(new IfElse(new BoolEqual(new Variable("n"), new IntValue("0")), new IntValue("1"), new Multiplication(new FunctionCall("main.factorial", recursionargs), new Variable("n")))); + Group factorial_body = new Group(factorial_expr_body); + Function factorial = new Function(argnames, factorial_body); + list.add(new Assignment("factorial", factorial)); + ArrayList<Expression> arguments = new ArrayList<Expression>(); + arguments.add(new IntValue("10")); + ArrayList<Expression> to_print = new ArrayList<Expression>(); + to_print.add(new FunctionCall("factorial", arguments)); + to_print.add(new CharValue('\n')); + list.add(new Print(new Array(to_print))); + Group group = new Group(list); + 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(); + } + +} diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/FactorialZ.java b/Shenanigans/src/org/archphantom/shenanigans/examples/FactorialZ.java new file mode 100644 index 0000000..158bfc0 --- /dev/null +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/FactorialZ.java @@ -0,0 +1,52 @@ +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.comparators.BoolGreater; +import org.archphantom.shenanigans.elements.expressions.operations.Multiplication; +import org.archphantom.shenanigans.elements.expressions.operations.Subtraction; +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.Print; +import org.archphantom.shenanigans.elements.expressions.statements.WhileLoop; +import org.archphantom.shenanigans.elements.values.Array; +import org.archphantom.shenanigans.elements.values.CharValue; +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 FactorialZ { + + public static void main (String[] args) { + ArrayList<Expression> list = new ArrayList<Expression>(); + ArrayList<String> argnames = new ArrayList<String>(); + argnames.add("n"); + ArrayList<Expression> factorialz_expr_body = new ArrayList<Expression>(); + factorialz_expr_body.add(new Assignment("res", new IntValue("1"))); + ArrayList<Expression> loop_body = new ArrayList<Expression>(); + loop_body.add(new Assignment("res", new Multiplication(new Variable("res"), new Variable("n")))); + loop_body.add(new Assignment("n", new Subtraction(new Variable("n"), new IntValue("1")))); + factorialz_expr_body.add(new WhileLoop(new BoolGreater(new Variable("n"), new IntValue("0")), new Group(loop_body))); + factorialz_expr_body.add(new Variable("res")); + Group factorialz_body = new Group(factorialz_expr_body); + Function factorialz = new Function(argnames, factorialz_body); + list.add(new Assignment("factorialz", factorialz)); + ArrayList<Expression> arguments = new ArrayList<Expression>(); + arguments.add(new IntValue("10")); + ArrayList<Expression> to_print = new ArrayList<Expression>(); + to_print.add(new FunctionCall("factorialz", arguments)); + to_print.add(new CharValue('\n')); + list.add(new Print(new Array(to_print))); + Group group = new Group(list); + 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(); + } + +} diff --git a/Shenanigans/src/org/archphantom/shenanigans/examples/ShiftIt.java b/Shenanigans/src/org/archphantom/shenanigans/examples/ShiftIt.java new file mode 100644 index 0000000..71c9e98 --- /dev/null +++ b/Shenanigans/src/org/archphantom/shenanigans/examples/ShiftIt.java @@ -0,0 +1,56 @@ +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.comparators.BoolLess; +import org.archphantom.shenanigans.elements.expressions.comparators.Count; +import org.archphantom.shenanigans.elements.expressions.operations.Addition; +import org.archphantom.shenanigans.elements.expressions.operations.Subtraction; +import org.archphantom.shenanigans.elements.expressions.statements.ArrayAssignment; +import org.archphantom.shenanigans.elements.expressions.statements.ArrayVariable; +import org.archphantom.shenanigans.elements.expressions.statements.Assignment; +import org.archphantom.shenanigans.elements.expressions.statements.ForLoop; +import org.archphantom.shenanigans.elements.expressions.statements.FunctionCall; +import org.archphantom.shenanigans.elements.expressions.statements.Group; +import org.archphantom.shenanigans.elements.expressions.statements.Print; +import org.archphantom.shenanigans.elements.values.Array; +import org.archphantom.shenanigans.elements.values.CharValue; +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 ShiftIt { + + public static void main (String[] args) { + ArrayList<Expression> list = new ArrayList<Expression>(); + ArrayList<String> argnames = new ArrayList<String>(); + argnames.add("a"); + ArrayList<Expression> shiftit_expr_body = new ArrayList<Expression>(3); + shiftit_expr_body.add(new ForLoop(new Assignment("l", new IntValue("0")), new BoolLess(new Variable("l"), new Subtraction(new Count(new Variable("a")), new IntValue("1"))), new Assignment("l", new Addition(new Variable("l"), new IntValue("1"))), new ArrayAssignment("a", new Variable("l"), new Addition(new ArrayVariable("a", new Variable("l")), new IntValue("1"))))); + shiftit_expr_body.add(new Variable("a")); + Group shiftit_body = new Group(shiftit_expr_body); + Function shiftit = new Function(argnames, shiftit_body); + list.add(new Assignment("shiftit", shiftit)); + ArrayList<Expression> arguments = new ArrayList<Expression>(1); + ArrayList<Expression> elements = new ArrayList<Expression>(4); + elements.add(new IntValue("3")); + elements.add(new IntValue("6")); + elements.add(new IntValue("9")); + elements.add(new IntValue("12")); + arguments.add(new Array(elements)); + ArrayList<Expression> to_print = new ArrayList<Expression>(2); + to_print.add(new FunctionCall("shiftit", arguments)); + to_print.add(new CharValue('\n')); + list.add(new Print(new Array(to_print))); + Group group = new Group(list); + 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(); + } + +} |
