From 42990231fee502552b769b9af4c04ac0dcaeb195 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Sat, 25 Mar 2017 19:13:42 -0400 Subject: Update Pratt parser --- .../pratt/commands/DelimitedCommand.java | 65 ---------------------- 1 file changed, 65 deletions(-) delete mode 100644 BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/DelimitedCommand.java (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/DelimitedCommand.java') diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/DelimitedCommand.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/DelimitedCommand.java deleted file mode 100644 index 090b2f4..0000000 --- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/DelimitedCommand.java +++ /dev/null @@ -1,65 +0,0 @@ -package bjc.utils.parserutils.pratt.commands; - -import bjc.utils.data.ITree; -import bjc.utils.data.Tree; -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.funcdata.IList; -import bjc.utils.parserutils.ParserException; -import bjc.utils.parserutils.pratt.ParserContext; -import bjc.utils.parserutils.pratt.Token; - -import java.util.function.UnaryOperator; - -public class DelimitedCommand extends AbstractInitialCommand { - private int inner; - - private K delim; - private K mark; - - private Token term; - - private UnaryOperator onEnter; - private UnaryOperator onDelim; - private UnaryOperator onExit; - - private boolean statement; - - public DelimitedCommand(int inner, K delim, K mark, Token term, UnaryOperator onEnter, - UnaryOperator onDelim, UnaryOperator onExit, boolean statement) { - this.inner = inner; - this.delim = delim; - this.mark = mark; - this.term = term; - this.onEnter = onEnter; - this.onDelim = onDelim; - this.onExit = onExit; - this.statement = statement; - } - - @SuppressWarnings("unchecked") - @Override - protected ITree> intNullDenotation(Token operator, ParserContext ctx) - throws ParserException { - C newState = onEnter.apply(ctx.state); - - IList>> kids = new FunctionalList<>(); - - while(true) { - ITree> kid = ctx.parse.parseExpression(inner, ctx.tokens, newState, - statement); - kids.add(kid); - - Token tok = ctx.tokens.current(); - - ctx.tokens.expect(delim, mark); - - if(tok.getKey().equals(mark)) break; - - newState = onDelim.apply(newState); - } - - ctx.state = onExit.apply(newState); - - return new Tree<>(term, kids); - } -} \ No newline at end of file -- cgit v1.2.3