From eb05c2dd956b7e991f52eb5c7f03a0f11b7f1f33 Mon Sep 17 00:00:00 2001 From: GeonoTRON2000 Date: Tue, 29 Apr 2014 07:13:20 -0700 Subject: Pushed existing work --- .../archphantom/shenanigans/examples/ShiftIt.java | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Shenanigans/src/org/archphantom/shenanigans/examples/ShiftIt.java (limited to 'Shenanigans/src/org/archphantom/shenanigans/examples/ShiftIt.java') 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 list = new ArrayList(); + ArrayList argnames = new ArrayList(); + argnames.add("a"); + ArrayList shiftit_expr_body = new ArrayList(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 arguments = new ArrayList(1); + ArrayList elements = new ArrayList(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 to_print = new ArrayList(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 namespaces = new Hashtable(); + namespaces.put("main", main); + Program p = new Program(namespaces); + p.run(); + } + +} -- cgit v1.2.3