diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2016-06-21 21:23:34 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2016-07-26 19:47:05 +0300 |
| commit | 885fb97dae384112110eb2980d80f45937637896 (patch) | |
| tree | e24e3916fda9ce29360b5a01069339a10f41aff2 /main/core/parser | |
| parent | eff296cc2c354f311dfe7696184f0313a6f04713 (diff) | |
Add boolean literals 'true' and 'false'
Diffstat (limited to 'main/core/parser')
| -rw-r--r-- | main/core/parser/ast/BooleanLiteralNode.java | 30 | ||||
| -rw-r--r-- | main/core/parser/datatype/BooleanDataContainer.java | 5 | ||||
| -rw-r--r-- | main/core/parser/datatype/IntegerDataContainer.java | 10 | ||||
| -rw-r--r-- | main/core/parser/datatype/StringDataContainer.java | 14 |
4 files changed, 45 insertions, 14 deletions
diff --git a/main/core/parser/ast/BooleanLiteralNode.java b/main/core/parser/ast/BooleanLiteralNode.java new file mode 100644 index 0000000..0d9c505 --- /dev/null +++ b/main/core/parser/ast/BooleanLiteralNode.java @@ -0,0 +1,30 @@ +package com.jantuomi.interpreter.main.core.parser.ast; + +import com.jantuomi.interpreter.main.core.parser.datatype.BooleanDataContainer; +import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; +import com.jantuomi.interpreter.main.core.tokenizer.token.Token; + +import java.util.Arrays; +import java.util.List; + +/** + * Created by jan on 16.6.2016. + */ +public class BooleanLiteralNode extends ASTNode { + private BooleanDataContainer value; + + public BooleanLiteralNode(Token token) { + super(token); + value = new BooleanDataContainer(Boolean.parseBoolean(token.getText())); + } + + @Override + public DataContainer evaluate() { + return value; + } + + @Override + List<ASTNode> getChildren() { + return Arrays.asList(); + } +} diff --git a/main/core/parser/datatype/BooleanDataContainer.java b/main/core/parser/datatype/BooleanDataContainer.java index 1536fca..af814bb 100644 --- a/main/core/parser/datatype/BooleanDataContainer.java +++ b/main/core/parser/datatype/BooleanDataContainer.java @@ -8,15 +8,14 @@ import com.jantuomi.interpreter.main.exception.InterpreterException; */ public class BooleanDataContainer extends DataContainer<Boolean> { - private boolean value; public BooleanDataContainer(boolean value) { - this.value = value; + setData(value); } @Override public String toString() { - return Boolean.toString(value); + return Boolean.toString(getData()); } @Override diff --git a/main/core/parser/datatype/IntegerDataContainer.java b/main/core/parser/datatype/IntegerDataContainer.java index 650db5c..1999131 100644 --- a/main/core/parser/datatype/IntegerDataContainer.java +++ b/main/core/parser/datatype/IntegerDataContainer.java @@ -5,28 +5,26 @@ package com.jantuomi.interpreter.main.core.parser.datatype; */ public class IntegerDataContainer extends DataContainer<Integer> { - private int value; - public IntegerDataContainer(int value) { - this.value = value; + setData(value); } @Override public String toString() { - return Integer.toString(value); + return Integer.toString(getData()); } @Override public DataContainer<Integer> add(DataContainer<Integer> other) { return new IntegerDataContainer( - this.value + ((IntegerDataContainer) other).value + this.getData() + other.getData() ); } @Override public DataContainer<Integer> subtract(DataContainer<Integer> other) { return new IntegerDataContainer( - this.value - ((IntegerDataContainer) other).value + this.getData() - other.getData() ); } } diff --git a/main/core/parser/datatype/StringDataContainer.java b/main/core/parser/datatype/StringDataContainer.java index 9916f77..bbc9b29 100644 --- a/main/core/parser/datatype/StringDataContainer.java +++ b/main/core/parser/datatype/StringDataContainer.java @@ -1,29 +1,33 @@ package com.jantuomi.interpreter.main.core.parser.datatype; +import com.jantuomi.interpreter.main.exception.ExceptionManager; +import com.jantuomi.interpreter.main.exception.InterpreterException; + /** * Created by jan on 16.6.2016. */ public class StringDataContainer extends DataContainer<String> { - private String value; + public StringDataContainer(String text) { - this.value = text; + setData(text); } @Override public String toString() { - return value; + return getData(); } @Override public DataContainer<String> add(DataContainer<String> other) { return new StringDataContainer( - value + ((StringDataContainer) other).value + getData() + other.getData() ); } @Override - public DataContainer<String> subtract(DataContainer<String> other) { + public DataContainer<String> subtract(DataContainer<String> other) throws InterpreterException { + ExceptionManager.raise(InterpreterException.ExceptionType.TypeError, -1, "string", "string"); return null; } } |
