diff options
Diffstat (limited to 'Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements')
13 files changed, 78 insertions, 1 deletions
diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ArrayAssignment.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ArrayAssignment.java index 005685b..7d45e90 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ArrayAssignment.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ArrayAssignment.java @@ -9,6 +9,7 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public class ArrayAssignment extends Expression { + private static final long serialVersionUID = 5675142957845934390L; private String identifier; private Expression index; private Expression value; diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ArrayVariable.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ArrayVariable.java index 65c7438..37ff015 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ArrayVariable.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ArrayVariable.java @@ -9,6 +9,7 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public class ArrayVariable extends Expression { + private static final long serialVersionUID = 7616065946751354435L; private String identifier; private Expression index; diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Assignment.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Assignment.java index 3536750..0976812 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Assignment.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Assignment.java @@ -6,6 +6,7 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public class Assignment extends Expression { + private static final long serialVersionUID = 7206490732056473577L; private String identifier; private Expression value; diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ConditionalStatement.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ConditionalStatement.java index 9f8b1a2..c33f268 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ConditionalStatement.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ConditionalStatement.java @@ -7,7 +7,8 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public abstract class ConditionalStatement extends Expression { - + private static final long serialVersionUID = 6177224116883281628L; + boolean boolify (Expression expr, VarTable vars, Program program) { Value val = expr.evaluate(vars, program); if (val instanceof BoolValue) { diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ForLoop.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ForLoop.java index c18c630..ffe6b37 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ForLoop.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/ForLoop.java @@ -5,6 +5,7 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public class ForLoop extends ConditionalStatement { + private static final long serialVersionUID = 4620309283857707757L; private Expression initializer; private Expression condition; private Expression iterator; diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/FunctionCall.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/FunctionCall.java index 2fa2d5a..4be6184 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/FunctionCall.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/FunctionCall.java @@ -8,6 +8,7 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public class FunctionCall extends Expression { + private static final long serialVersionUID = -5711425379993291311L; private String identifier; private ArrayList<Expression> arguments; diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Group.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Group.java index 8381b16..72d9ff0 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Group.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Group.java @@ -7,6 +7,7 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public class Group extends Expression { + private static final long serialVersionUID = -9092529908335757782L; private ArrayList<Expression> items; public Group (ArrayList<Expression> items) { diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/If.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/If.java index 2eca149..e152fcd 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/If.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/If.java @@ -6,6 +6,7 @@ import org.archphantom.shenanigans.elements.variables.VarTable; public class If extends ConditionalStatement { + private static final long serialVersionUID = -8033692342706309763L; private Expression condition; private Expression evaluate; diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/IfElse.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/IfElse.java index 980ec19..c99edf9 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/IfElse.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/IfElse.java @@ -5,6 +5,7 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public class IfElse extends ConditionalStatement { + private static final long serialVersionUID = 5036859013313773084L; private Expression condition; private Expression evalTrue; private Expression evalFalse; diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/NamespaceCall.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/NamespaceCall.java new file mode 100644 index 0000000..f875fbc --- /dev/null +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/NamespaceCall.java @@ -0,0 +1,24 @@ +package org.archphantom.shenanigans.elements.expressions.statements; +import org.archphantom.shenanigans.elements.Program; +import org.archphantom.shenanigans.elements.expressions.Expression; +import org.archphantom.shenanigans.elements.values.Namespace; +import org.archphantom.shenanigans.elements.values.Value; +import org.archphantom.shenanigans.elements.variables.VarTable; + +public class NamespaceCall extends Expression { + private static final long serialVersionUID = 660496406878146378L; + private String identifier; + + public NamespaceCall (String identifier) { + this.identifier = identifier; + } + + public Value evaluate (VarTable vars, Program program) { + Namespace ns = program.getNamespace(identifier.toLowerCase()); + if (ns == null) { + throw new RuntimeException("Not Implemented"); + } + return ns.getValue(program.getGlobalVars(), program); + } + +} diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Print.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Print.java index a4c02ed..fae74a5 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Print.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Print.java @@ -8,6 +8,7 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public class Print extends Expression { + private static final long serialVersionUID = -6703606908464950567L; private Expression data; public Print (Expression data) { diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/PrintLn.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/PrintLn.java new file mode 100644 index 0000000..7901ddc --- /dev/null +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/PrintLn.java @@ -0,0 +1,42 @@ +package org.archphantom.shenanigans.elements.expressions.statements; +import java.math.BigInteger; +import org.archphantom.shenanigans.elements.Program; +import org.archphantom.shenanigans.elements.expressions.Expression; +import org.archphantom.shenanigans.elements.values.Array; +import org.archphantom.shenanigans.elements.values.IntValue; +import org.archphantom.shenanigans.elements.values.Value; +import org.archphantom.shenanigans.elements.variables.VarTable; + +public class PrintLn extends Expression { + private static final long serialVersionUID = 2521386078966318842L; + private Expression data; + + public PrintLn (Expression data) { + this.data = data; + } + + public Value evaluate(VarTable vars, Program program) { + Value vdata = data.evaluate(vars, program); + if (vdata instanceof Array) { + System.out.print('['); + Array arr = (Array) vdata; + for (int i = 0; i < arr.size(); i++) { + Value val = arr.getElement(new IntValue(BigInteger.valueOf(i)), vars, program).evaluate(vars, program); + if (val instanceof Array) { + new PrintLn ((Array) val).evaluate(vars, program); + } else { + System.out.print(val.getValue(vars, program).toString()); + } + if (i < arr.size()-1) { + System.out.print(", "); + } + } + System.out.print(']'); + } else { + System.out.print(vdata.getValue(vars, program).toString()); + } + System.out.print('\n'); + return vdata; + } + +} diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/WhileLoop.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/WhileLoop.java index 956a7a4..9a8bb1e 100644 --- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/WhileLoop.java +++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/WhileLoop.java @@ -5,6 +5,7 @@ import org.archphantom.shenanigans.elements.values.Value; import org.archphantom.shenanigans.elements.variables.VarTable; public class WhileLoop extends ConditionalStatement { + private static final long serialVersionUID = 2550160732857284210L; private Expression condition; private Expression evaluate; |
