diff --git a/src/jrr1g18/boring/nodes/IdentifierNode.java b/src/jrr1g18/boring/nodes/IdentifierNode.java index 3611baee65aae6cf29ff12bf4cf9246388fa7f87..60eff6e36894173c0f2fe217d3f5e4b763605768 100644 --- a/src/jrr1g18/boring/nodes/IdentifierNode.java +++ b/src/jrr1g18/boring/nodes/IdentifierNode.java @@ -17,4 +17,9 @@ public class IdentifierNode extends ASTNode { this.m_name = name; } + @Override + public boolean isValidType(NodeType type) { + return type == NodeType.IDENTIFIER; + } + } diff --git a/src/jrr1g18/boring/nodes/UnaryOperationNode.java b/src/jrr1g18/boring/nodes/UnaryOperationNode.java index 0787bc3694d7a86cde711c9c3b1441c9c6a07096..4b2c683d478e6e910edb43f96f8338b77d4c970f 100644 --- a/src/jrr1g18/boring/nodes/UnaryOperationNode.java +++ b/src/jrr1g18/boring/nodes/UnaryOperationNode.java @@ -1,8 +1,20 @@ package jrr1g18.boring.nodes; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + public class UnaryOperationNode extends ASTNode { private ASTNode m_operand; + private static final List<NodeType> VALID_NODES; + static { + List<NodeType> nodes = new ArrayList<>(); + nodes.add(NodeType.UNARYMINUS); + nodes.add(NodeType.UNARYPLUS); + VALID_NODES = Collections.unmodifiableList(nodes); + } + public UnaryOperationNode(NodeType type, ASTNode operand) { super(type); m_operand = operand; @@ -12,4 +24,9 @@ public class UnaryOperationNode extends ASTNode { return m_operand; } + @Override + public boolean isValidType(NodeType type) { + return VALID_NODES.contains(type); + } + } diff --git a/src/jrr1g18/boring/nodes/ValueNode.java b/src/jrr1g18/boring/nodes/ValueNode.java index 8ae54f89c5f749222b10063c13c2737c4727c6bf..ead07038bd2856f941f9c06b48cc9ffb5c616269 100644 --- a/src/jrr1g18/boring/nodes/ValueNode.java +++ b/src/jrr1g18/boring/nodes/ValueNode.java @@ -12,4 +12,9 @@ public class ValueNode extends ASTNode { public Integer getValue() { return m_value; } + + @Override + public boolean isValidType(NodeType type) { + return type == NodeType.INTEGER; + } }