aboutsummaryrefslogtreecommitdiffstats
path: root/main/core/parser/ast/FunctionDefineNode.java
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2016-06-28 21:09:43 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2016-07-26 19:47:12 +0300
commit8f84c00978dc05007873a9fe1de6a18511dc3cf8 (patch)
tree39fead540e22addee40b95b68db08cbea620745b /main/core/parser/ast/FunctionDefineNode.java
parent48dcd488054024d98fe1e659a4029630130d1d35 (diff)
Restructure project for use with maven
Diffstat (limited to 'main/core/parser/ast/FunctionDefineNode.java')
-rw-r--r--main/core/parser/ast/FunctionDefineNode.java73
1 files changed, 0 insertions, 73 deletions
diff --git a/main/core/parser/ast/FunctionDefineNode.java b/main/core/parser/ast/FunctionDefineNode.java
deleted file mode 100644
index 39a775a..0000000
--- a/main/core/parser/ast/FunctionDefineNode.java
+++ /dev/null
@@ -1,73 +0,0 @@
-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.Function;
-import com.jantuomi.interpreter.main.core.runtime.State;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by jan on 17.6.2016.
- */
-public class FunctionDefineNode extends VarargOperatorNode {
-
- private String name;
-
- public void setBody(ASTNode body) {
- this.body = body;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- private ASTNode body;
-
- public FunctionDefineNode(Token token) {
- super(token);
- }
-
- @Override
- public DataContainer evaluate() {
- List<String> argumentNames = new ArrayList<>();
- for (ASTNode arg : args) {
- SymbolNode argSym = (SymbolNode) arg;
- argumentNames.add(argSym.getName());
- }
- Function function = new Function(argumentNames, (BlockBodyNode) body);
- function.setName(name);
- State.getInstance().addFunctionToScope(name, function);
-
- return new StringDataContainer("function " + name);
- }
-
- @Override
- public void print(int indent) {
-
- for (int i = 0; i < indent; i++) {
- System.out.print("\t");
- }
-
- System.out.println(String.format("Function %s", name));
-
- for (int i = 0; i < indent + 1; i++) {
- System.out.print("\t");
- }
-
- System.out.println(String.format("Arguments: "));
-
- for (ASTNode node : args) {
- node.print(indent + 2);
- }
-
- for (int i = 0; i < indent + 1; i++) {
- System.out.print("\t");
- }
-
- System.out.println(String.format("Body statements: "));
- body.print(indent + 2);
- }
-}