From 45a2b88d584fc8bdee1fbaf0def1d9b55ba26eff Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 21 Jun 2016 20:07:32 +0300 Subject: Added scopes, variables and functions --- main/core/parser/ast/VariableDeclareNode.java | 32 +++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 main/core/parser/ast/VariableDeclareNode.java (limited to 'main/core/parser/ast/VariableDeclareNode.java') diff --git a/main/core/parser/ast/VariableDeclareNode.java b/main/core/parser/ast/VariableDeclareNode.java new file mode 100644 index 0000000..185edda --- /dev/null +++ b/main/core/parser/ast/VariableDeclareNode.java @@ -0,0 +1,32 @@ +package com.jantuomi.interpreter.main.core.parser.ast; + +import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; +import com.jantuomi.interpreter.main.core.parser.datatype.StringDataContainer; +import com.jantuomi.interpreter.main.core.runtime.State; +import com.jantuomi.interpreter.main.core.tokenizer.token.Token; + +import java.util.Arrays; +import java.util.List; + +/** + * Created by jan on 20.6.2016. + */ +public class VariableDeclareNode extends ASTNode { + private SymbolNode variable; + + public VariableDeclareNode(Token source, SymbolNode variable) { + super(source); + this.variable = variable; + } + + @Override + public DataContainer evaluate() { + State.getInstance().addSymbolToScope(variable.getName()); + return new StringDataContainer(variable.getName()); + } + + @Override + List getChildren() { + return Arrays.asList(); + } +} -- cgit v1.3