summaryrefslogtreecommitdiff
path: root/dice-lang/src/main/java/bjc/dicelang/ast/nodes/OperatorDiceNode.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-10 21:39:05 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-10 21:39:05 -0400
commit05c17c6e0e8e5e9015da4d1396587c4af0ea09d3 (patch)
tree3a2685040342447c22605f4d71b50d3e0fa3d185 /dice-lang/src/main/java/bjc/dicelang/ast/nodes/OperatorDiceNode.java
parentbf726639e1bc70b30dc5e5ae2cf349a5bbdfb0ae (diff)
Removed old code that wasn't being used
Diffstat (limited to 'dice-lang/src/main/java/bjc/dicelang/ast/nodes/OperatorDiceNode.java')
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/nodes/OperatorDiceNode.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/dice-lang/src/main/java/bjc/dicelang/ast/nodes/OperatorDiceNode.java b/dice-lang/src/main/java/bjc/dicelang/ast/nodes/OperatorDiceNode.java
new file mode 100644
index 0000000..d034943
--- /dev/null
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/nodes/OperatorDiceNode.java
@@ -0,0 +1,100 @@
+package bjc.dicelang.ast.nodes;
+
+import static bjc.dicelang.ast.nodes.DiceOperatorType.*;
+
+// The following classes need to be changed upon addition of a new operator
+// 1. DiceASTExpression
+// 2. DiceASTFlattener
+// 3. DiceASTParser
+/**
+ * A node that represents an operator
+ *
+ * @author ben
+ *
+ */
+public enum OperatorDiceNode implements IDiceASTNode {
+ /**
+ * Represents adding two nodes
+ */
+ ADD(MATH),
+ /**
+ * Represents assigning one node to another
+ */
+ ASSIGN(EXPRESSION),
+ /**
+ * Representings combining two node values together
+ */
+ COMPOUND(DICE),
+ /**
+ * Represents dividing two nodes
+ */
+ DIVIDE(MATH),
+ /**
+ * Represents using one node a variable number of times
+ */
+ GROUP(DICE),
+ /**
+ * Represents multiplying two nodes
+ */
+ MULTIPLY(MATH),
+ /**
+ * Represents subtracting two nodes
+ */
+ SUBTRACT(MATH);
+
+ /**
+ * Represents the group of operator this operator is sorted into.
+ *
+ */
+ public final DiceOperatorType type;
+
+ private OperatorDiceNode(DiceOperatorType ty) {
+ type = ty;
+ }
+
+ /**
+ * Create a operator node from a string
+ *
+ * @param s
+ * The string to convert to a node
+ * @return The operator corresponding to the node
+ */
+ public static OperatorDiceNode fromString(String s) {
+ switch (s) {
+ case ":=":
+ return ASSIGN;
+ case "+":
+ return ADD;
+ case "-":
+ return SUBTRACT;
+ case "*":
+ return MULTIPLY;
+ case "/":
+ return DIVIDE;
+ case "d":
+ case "group":
+ return GROUP;
+ case "c":
+ case "compound":
+ return COMPOUND;
+ default:
+ throw new IllegalArgumentException(
+ s + " is not a valid operator node");
+ }
+ }
+
+ @Override
+ public DiceASTType getType() {
+ return DiceASTType.OPERATOR;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see bjc.utils.dice.ast.IDiceASTNode#isOperator()
+ */
+ @Override
+ public boolean isOperator() {
+ return true;
+ }
+}