diff --git a/src/main/java/org/jcnc/snow/compiler/parser/statement/BlockStatementParser.java b/src/main/java/org/jcnc/snow/compiler/parser/statement/BlockStatementParser.java deleted file mode 100644 index 6ff8201..0000000 --- a/src/main/java/org/jcnc/snow/compiler/parser/statement/BlockStatementParser.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.jcnc.snow.compiler.parser.statement; - -import org.jcnc.snow.compiler.lexer.token.Token; -import org.jcnc.snow.compiler.lexer.token.TokenType; -import org.jcnc.snow.compiler.parser.ast.base.StatementNode; -import org.jcnc.snow.compiler.parser.context.ParserContext; -import org.jcnc.snow.compiler.parser.factory.StatementParserFactory; - -import java.util.ArrayList; -import java.util.List; - -public class BlockStatementParser { - - public List parse(ParserContext ctx, String endKeyword, String endSubKeyword) { - List statements = new ArrayList<>(); - - while (!isAtEnd(ctx, endKeyword, endSubKeyword)) { - Token token = ctx.getTokens().peek(); - String keyword = (token.getType() == TokenType.KEYWORD) ? token.getLexeme() : ""; - - StatementParser parser = StatementParserFactory.get(keyword); - statements.add(parser.parse(ctx)); - } - - return statements; - } - - private boolean isAtEnd(ParserContext ctx, String kw1, String kw2) { - if (ctx.getTokens().isAtEnd()) return true; - Token t1 = ctx.getTokens().peek(); - Token t2 = ctx.getTokens().peek(1); - return t1.getType() == TokenType.KEYWORD && - t1.getLexeme().equals(kw1) && - t2 != null && - t2.getType() == TokenType.KEYWORD && - t2.getLexeme().equals(kw2); - } -}