From 194048eb4194d9b07f9b6b2e022cefe68f15e4d3 Mon Sep 17 00:00:00 2001 From: Joseph Rowlands <jrr1g18@soton.ac.uk> Date: Fri, 9 Nov 2018 16:57:31 +0000 Subject: [PATCH] Added more checks --- src/jrr1g18/boring/nodes/IdentifierNode.java | 5 +++++ .../boring/nodes/UnaryOperationNode.java | 17 +++++++++++++++++ src/jrr1g18/boring/nodes/ValueNode.java | 5 +++++ 3 files changed, 27 insertions(+) diff --git a/src/jrr1g18/boring/nodes/IdentifierNode.java b/src/jrr1g18/boring/nodes/IdentifierNode.java index 3611bae..60eff6e 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 0787bc3..4b2c683 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 8ae54f8..ead0703 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; + } } -- GitLab