From fe17683d277f0ae16adfff12ca71ce4a29c9e476 Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 21 Dec 2020 20:36:48 -0700 Subject: [PATCH] cleanup, refactor, remove logging --- .../terra/api/structures/parser/Parser.java | 15 +++++------- .../terra/api/structures/tokenizer/Token.java | 23 +++++++++++++++---- .../api/structures/tokenizer/Tokenizer.java | 4 ++-- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/common/src/main/java/com/dfsek/terra/api/structures/parser/Parser.java b/common/src/main/java/com/dfsek/terra/api/structures/parser/Parser.java index f87e44611..2e01ee82e 100644 --- a/common/src/main/java/com/dfsek/terra/api/structures/parser/Parser.java +++ b/common/src/main/java/com/dfsek/terra/api/structures/parser/Parser.java @@ -85,12 +85,12 @@ public class Parser { Keyword k = null; if(identifier.getContent().equals("if")) { - checkType(tokens.remove(0), Token.Type.BODY_BEGIN); + checkType(tokens.remove(0), Token.Type.GROUP_BEGIN); Returnable comparator = parseExpression(tokens, true); checkReturnType(comparator, Returnable.ReturnType.BOOLEAN); - checkType(tokens.remove(0), Token.Type.BODY_END); + checkType(tokens.remove(0), Token.Type.GROUP_END); checkType(tokens.remove(0), Token.Type.BLOCK_BEGIN); @@ -104,7 +104,7 @@ public class Parser { private Returnable parseExpression(List tokens, boolean full) throws ParseException { System.out.println(tokens.get(0)); Token first = tokens.get(0); - checkType(first, Token.Type.IDENTIFIER, Token.Type.BOOLEAN, Token.Type.STRING, Token.Type.NUMBER, Token.Type.BOOLEAN_NOT, Token.Type.BODY_BEGIN); + checkType(first, Token.Type.IDENTIFIER, Token.Type.BOOLEAN, Token.Type.STRING, Token.Type.NUMBER, Token.Type.BOOLEAN_NOT, Token.Type.GROUP_BEGIN); boolean not = false; if(first.getType().equals(Token.Type.BOOLEAN_NOT)) { @@ -152,12 +152,9 @@ public class Parser { Returnable right = parseExpression(tokens, false); Token other = tokens.get(0); - System.out.println("other: " + other); if(other.isBinaryOperator() && (other.getType().equals(Token.Type.MULTIPLICATION_OPERATOR) || other.getType().equals(Token.Type.DIVISION_OPERATOR))) { - System.out.println("using left"); return assemble(left, parseBinaryOperation(right, tokens), binaryOperator); } else if(other.isBinaryOperator()) { - System.out.println("using right"); return parseBinaryOperation(assemble(left, right, binaryOperator), tokens); } return assemble(left, right, binaryOperator); @@ -232,7 +229,7 @@ public class Parser { if(!functions.containsKey(identifier.getContent())) throw new ParseException("No such function " + identifier.getContent() + ": " + identifier.getPosition()); - checkType(tokens.remove(0), Token.Type.BODY_BEGIN); // Second is body begin + checkType(tokens.remove(0), Token.Type.GROUP_BEGIN); // Second is body begin List> args = getArgs(tokens); // Extract arguments, consume the rest. @@ -251,9 +248,9 @@ public class Parser { private List> getArgs(List tokens) throws ParseException { List> args = new GlueList<>(); - while(!tokens.get(0).getType().equals(Token.Type.BODY_END)) { + while(!tokens.get(0).getType().equals(Token.Type.GROUP_END)) { args.add(parseExpression(tokens, true)); - checkType(tokens.get(0), Token.Type.SEPARATOR, Token.Type.BODY_END); + checkType(tokens.get(0), Token.Type.SEPARATOR, Token.Type.GROUP_END); if(tokens.get(0).getType().equals(Token.Type.SEPARATOR)) tokens.remove(0); } return args; diff --git a/common/src/main/java/com/dfsek/terra/api/structures/tokenizer/Token.java b/common/src/main/java/com/dfsek/terra/api/structures/tokenizer/Token.java index 2fd66fc4a..1e09aa6bd 100644 --- a/common/src/main/java/com/dfsek/terra/api/structures/tokenizer/Token.java +++ b/common/src/main/java/com/dfsek/terra/api/structures/tokenizer/Token.java @@ -78,13 +78,13 @@ public class Token { */ BOOLEAN, /** - * Beginning of function body + * Beginning of group */ - BODY_BEGIN, + GROUP_BEGIN, /** - * Ending of function body + * Ending of group */ - BODY_END, + GROUP_END, /** * End of statement */ @@ -109,10 +109,25 @@ public class Token { * Boolean equals operator */ EQUALS_OPERATOR, + /** + * Boolean not equals operator + */ NOT_EQUALS_OPERATOR, + /** + * Boolean greater than operator + */ GREATER_THAN_OPERATOR, + /** + * Boolean less than operator + */ LESS_THAN_OPERATOR, + /** + * Boolean greater than or equal to operator + */ GREATER_THAN_OR_EQUALS_OPERATOR, + /** + * Boolean less than or equal to operator + */ LESS_THAN_OR_EQUALS_OPERATOR, /** * Addition/concatenation operator diff --git a/common/src/main/java/com/dfsek/terra/api/structures/tokenizer/Tokenizer.java b/common/src/main/java/com/dfsek/terra/api/structures/tokenizer/Tokenizer.java index 790ccf0f4..e886ca509 100644 --- a/common/src/main/java/com/dfsek/terra/api/structures/tokenizer/Tokenizer.java +++ b/common/src/main/java/com/dfsek/terra/api/structures/tokenizer/Tokenizer.java @@ -80,9 +80,9 @@ public class Tokenizer { } if(reader.current().is('(')) - return new Token(reader.consume().toString(), Token.Type.BODY_BEGIN, new Position(reader.getLine(), reader.getIndex())); + return new Token(reader.consume().toString(), Token.Type.GROUP_BEGIN, new Position(reader.getLine(), reader.getIndex())); if(reader.current().is(')')) - return new Token(reader.consume().toString(), Token.Type.BODY_END, new Position(reader.getLine(), reader.getIndex())); + return new Token(reader.consume().toString(), Token.Type.GROUP_END, new Position(reader.getLine(), reader.getIndex())); if(reader.current().is(';')) return new Token(reader.consume().toString(), Token.Type.STATEMENT_END, new Position(reader.getLine(), reader.getIndex())); if(reader.current().is(','))