From c561978dbc9612c3726ef02b8c08ec296e05e23d Mon Sep 17 00:00:00 2001 From: jantuomi Date: Mon, 29 Aug 2016 15:10:02 +0300 Subject: Rename ObjectDefinition to ObjectPrototype --- .../core/parser/ast/ObjectDefinitionNode.java | 43 ----------------- .../core/parser/ast/ObjectPrototypeNode.java | 43 +++++++++++++++++ .../tunkki/core/parser/tokenizer/Tokenizer.java | 2 +- .../tunkki/core/parser/tokenizer/token/Token.java | 2 +- .../core/parser/tokenizer/token/TokenFactory.java | 4 +- .../token/types/ObjectDefinitionToken.java | 56 ---------------------- .../token/types/ObjectPrototypeToken.java | 56 ++++++++++++++++++++++ 7 files changed, 103 insertions(+), 103 deletions(-) delete mode 100644 src/main/com/jantuomi/tunkki/core/parser/ast/ObjectDefinitionNode.java create mode 100644 src/main/com/jantuomi/tunkki/core/parser/ast/ObjectPrototypeNode.java delete mode 100644 src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectDefinitionToken.java create mode 100644 src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectPrototypeToken.java diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/ObjectDefinitionNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/ObjectDefinitionNode.java deleted file mode 100644 index d02fb0c..0000000 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/ObjectDefinitionNode.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.jantuomi.tunkki.core.parser.ast; - -import com.jantuomi.tunkki.core.parser.datatype.CallableDatatype; -import com.jantuomi.tunkki.core.parser.datatype.Datatype; -import com.jantuomi.tunkki.core.parser.datatype.ObjectPrototypeDatatype; -import com.jantuomi.tunkki.core.parser.tokenizer.token.Token; -import com.jantuomi.tunkki.core.runtime.Function; -import com.jantuomi.tunkki.core.runtime.State; -import com.jantuomi.tunkki.exception.types.TunkkiError; - -import java.util.Collections; - -/** - * Created by jan on 8.8.2016. - */ -public class ObjectDefinitionNode extends NullaryOperatorNode { - public ObjectDefinitionNode(Token token, String name, CallableDatatype constructor) { - super(token); - this.name = name; - this.constructor = constructor; - } - - private String name; - private CallableDatatype constructor; - - public void setName(String name) { - this.name = name; - } - - @Override - public Datatype evaluate() throws TunkkiError { - ObjectPrototypeDatatype prototype = new ObjectPrototypeDatatype(); - - State state = new State(); - constructor.call(Collections.emptyList()); - Function func = constructor.getData(); - func.setState(state); - - prototype.setData(func); - State.getGlobalState().addSymbolToScope(name); - return prototype; - } -} diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/ObjectPrototypeNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/ObjectPrototypeNode.java new file mode 100644 index 0000000..abffba4 --- /dev/null +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/ObjectPrototypeNode.java @@ -0,0 +1,43 @@ +package com.jantuomi.tunkki.core.parser.ast; + +import com.jantuomi.tunkki.core.parser.datatype.CallableDatatype; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.ObjectPrototypeDatatype; +import com.jantuomi.tunkki.core.parser.tokenizer.token.Token; +import com.jantuomi.tunkki.core.runtime.Function; +import com.jantuomi.tunkki.core.runtime.State; +import com.jantuomi.tunkki.exception.types.TunkkiError; + +import java.util.Collections; + +/** + * Created by jan on 8.8.2016. + */ +public class ObjectPrototypeNode extends NullaryOperatorNode { + public ObjectPrototypeNode(Token token, String name, CallableDatatype constructor) { + super(token); + this.name = name; + this.constructor = constructor; + } + + private String name; + private CallableDatatype constructor; + + public void setName(String name) { + this.name = name; + } + + @Override + public Datatype evaluate() throws TunkkiError { + ObjectPrototypeDatatype prototype = new ObjectPrototypeDatatype(); + + State state = new State(); + constructor.call(Collections.emptyList()); + Function func = constructor.getData(); + func.setState(state); + + prototype.setData(func); + State.getGlobalState().addSymbolToScope(name); + return prototype; + } +} diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/Tokenizer.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/Tokenizer.java index 9515abf..1cd5a2f 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/Tokenizer.java +++ b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/Tokenizer.java @@ -61,7 +61,7 @@ public class Tokenizer { tokenRegexes.put(Token.Type.NegationToken, "^(not)\\b"); tokenRegexes.put(Token.Type.DeclarationToken, "^(decl)\\b"); - tokenRegexes.put(Token.Type.ObjectDefinitionToken, "^(obj)\\b"); + tokenRegexes.put(Token.Type.ObjectPrototypeToken, "^(obj)\\b"); tokenRegexes.put(Token.Type.CallToken, "^([a-öA-Ö]+\\w*)\\?[\\s|\\!]"); tokenRegexes.put(Token.Type.ObjectMemberToken, "^([a-öA-Ö]+)\\:"); tokenRegexes.put(Token.Type.SymbolToken, "^([a-öA-Ö]+\\w*)\\b"); diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/Token.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/Token.java index 21ccbaf..83a6712 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/Token.java +++ b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/Token.java @@ -70,7 +70,7 @@ abstract public class Token { DeclareAssignToken, ObjectMemberToken, - ObjectDefinitionToken, + ObjectPrototypeToken, NotAToken } diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/TokenFactory.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/TokenFactory.java index 326958d..fd3102c 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/TokenFactory.java +++ b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/TokenFactory.java @@ -56,8 +56,8 @@ public class TokenFactory { return new SymbolToken(text); case CallToken: return new CallToken(text, rawText); - case ObjectDefinitionToken: - return new ObjectDefinitionToken(); + case ObjectPrototypeToken: + return new ObjectPrototypeToken(); case BlockEndToken: return new BlockEndToken(); case ObjectMemberToken: diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectDefinitionToken.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectDefinitionToken.java deleted file mode 100644 index 8215c26..0000000 --- a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectDefinitionToken.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.jantuomi.tunkki.core.parser.tokenizer.token.types; - -import com.jantuomi.tunkki.core.parser.ast.ASTNode; -import com.jantuomi.tunkki.core.parser.ast.FunctionDefineNode; -import com.jantuomi.tunkki.core.parser.ast.ObjectDefinitionNode; -import com.jantuomi.tunkki.core.parser.ast.SymbolNode; -import com.jantuomi.tunkki.core.parser.datatype.CallableDatatype; -import com.jantuomi.tunkki.core.parser.tokenizer.token.Token; -import com.jantuomi.tunkki.exception.types.ExpectedDifferentTokenTunkkiError; -import com.jantuomi.tunkki.exception.types.TunkkiError; - -/** - * Created by jan on 8.8.2016. - */ -public class ObjectDefinitionToken extends VarargOperatorToken { - public ObjectDefinitionToken() { - super(Type.ObjectDefinitionToken, "obj"); - } - - @Override - public ASTNode generateNode() throws TunkkiError { - if (args.size() < 2 || args.size() > 3) { - throw new ExpectedDifferentTokenTunkkiError(getLine(), getText()); - } - - Token arg1 = args.get(0); - if (!(arg1 instanceof SymbolToken)) { - throw new ExpectedDifferentTokenTunkkiError(getLine(), getText()); - } - - Token funcArg; - if (args.size() == 2) { - funcArg = args.get(1); - } else { - funcArg = args.get(2); - } - - if (!(funcArg instanceof FunctionDefineToken)) { - throw new ExpectedDifferentTokenTunkkiError(getLine(), getText()); - } - - SymbolNode symbol = (SymbolNode) arg1.generateNode(); - String name = symbol.getName(); - - FunctionDefineNode constructor = (FunctionDefineNode) funcArg.generateNode(); - CallableDatatype constructorCallable = (CallableDatatype) constructor.evaluate(); - ObjectDefinitionNode node = new ObjectDefinitionNode(this, name, constructorCallable); - node.setName(name); - return node; - } - - @Override - public Type getTerminatorTokenType() { - return Type.FunctionDefineToken; - } -} diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectPrototypeToken.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectPrototypeToken.java new file mode 100644 index 0000000..6b54f52 --- /dev/null +++ b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectPrototypeToken.java @@ -0,0 +1,56 @@ +package com.jantuomi.tunkki.core.parser.tokenizer.token.types; + +import com.jantuomi.tunkki.core.parser.ast.ASTNode; +import com.jantuomi.tunkki.core.parser.ast.FunctionDefineNode; +import com.jantuomi.tunkki.core.parser.ast.ObjectPrototypeNode; +import com.jantuomi.tunkki.core.parser.ast.SymbolNode; +import com.jantuomi.tunkki.core.parser.datatype.CallableDatatype; +import com.jantuomi.tunkki.core.parser.tokenizer.token.Token; +import com.jantuomi.tunkki.exception.types.ExpectedDifferentTokenTunkkiError; +import com.jantuomi.tunkki.exception.types.TunkkiError; + +/** + * Created by jan on 8.8.2016. + */ +public class ObjectPrototypeToken extends VarargOperatorToken { + public ObjectPrototypeToken() { + super(Type.ObjectPrototypeToken, "obj"); + } + + @Override + public ASTNode generateNode() throws TunkkiError { + if (args.size() < 2 || args.size() > 3) { + throw new ExpectedDifferentTokenTunkkiError(getLine(), getText()); + } + + Token arg1 = args.get(0); + if (!(arg1 instanceof SymbolToken)) { + throw new ExpectedDifferentTokenTunkkiError(getLine(), getText()); + } + + Token funcArg; + if (args.size() == 2) { + funcArg = args.get(1); + } else { + funcArg = args.get(2); + } + + if (!(funcArg instanceof FunctionDefineToken)) { + throw new ExpectedDifferentTokenTunkkiError(getLine(), getText()); + } + + SymbolNode symbol = (SymbolNode) arg1.generateNode(); + String name = symbol.getName(); + + FunctionDefineNode constructor = (FunctionDefineNode) funcArg.generateNode(); + CallableDatatype constructorCallable = (CallableDatatype) constructor.evaluate(); + ObjectPrototypeNode node = new ObjectPrototypeNode(this, name, constructorCallable); + node.setName(name); + return node; + } + + @Override + public Type getTerminatorTokenType() { + return Type.FunctionDefineToken; + } +} -- cgit v1.3