From d745f000d6d60b9cdf0ba40dbf80660c1aa6bc61 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Mon, 20 Jun 2016 20:55:22 +0300 Subject: Implemented general enhancements --- main/core/parser/ast/FunctionDefineNode.java | 59 ++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 main/core/parser/ast/FunctionDefineNode.java (limited to 'main/core/parser/ast/FunctionDefineNode.java') diff --git a/main/core/parser/ast/FunctionDefineNode.java b/main/core/parser/ast/FunctionDefineNode.java new file mode 100644 index 0000000..e867f78 --- /dev/null +++ b/main/core/parser/ast/FunctionDefineNode.java @@ -0,0 +1,59 @@ +package com.jantuomi.interpreter.main.core.parser.ast; + +import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; +import com.jantuomi.interpreter.main.core.tokenizer.token.Token; + +/** + * 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() { + // TODO add function in State + return null; + } + + @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); + } +} -- cgit v1.3