From 33918524d7faab0146a0a92c13eaaef46cdbea8a Mon Sep 17 00:00:00 2001 From: bjculkin Date: Fri, 24 Mar 2017 10:53:59 -0400 Subject: Update Pratt parser. --- .../bjc/utils/parserutils/pratt/LeftCommands.java | 11 +++++---- .../bjc/utils/parserutils/pratt/StringToken.java | 27 ++++++++++++++-------- 2 files changed, 24 insertions(+), 14 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt') diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/LeftCommands.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/LeftCommands.java index 30f3af8..5844c49 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/LeftCommands.java +++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/LeftCommands.java @@ -130,8 +130,11 @@ public class LeftCommands { private boolean nonassoc; - public TernaryCommand(int leftPower, K terminator, Token mark, boolean isNonassoc) { + public TernaryCommand(int leftPower, K terminator, Token marker, boolean isNonassoc) { super(leftPower); + + term = terminator; + mark = marker; nonassoc = isNonassoc; } @@ -150,10 +153,10 @@ public class LeftCommands { @Override public int nextBinding() { - if(nonassoc) { + if (nonassoc) { return leftBinding() - 1; } else { - return super.nextBinding(); + return leftBinding(); } } } @@ -177,7 +180,7 @@ public class LeftCommands { ITree> res = new Tree<>(operator, operand, tree); - if(chainWith.contains(ctx.tokens.current().getKey())) { + if (chainWith.contains(ctx.tokens.current().getKey())) { Token tok = ctx.tokens.current(); ctx.tokens.next(); diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/StringToken.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/StringToken.java index 957e6fa..74f9c63 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/StringToken.java +++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/StringToken.java @@ -47,25 +47,32 @@ public class StringToken implements Token { @Override public boolean equals(Object obj) { - if(this == obj) return true; - if(obj == null) return false; - if(!(obj instanceof StringToken)) return false; + if (this == obj) + return true; + if (obj == null) + return false; + if (!(obj instanceof StringToken)) + return false; StringToken other = (StringToken) obj; - if(key == null) { - if(other.key != null) return false; - } else if(!key.equals(other.key)) return false; + if (key == null) { + if (other.key != null) + return false; + } else if (!key.equals(other.key)) + return false; - if(val == null) { - if(other.val != null) return false; - } else if(!val.equals(other.val)) return false; + if (val == null) { + if (other.val != null) + return false; + } else if (!val.equals(other.val)) + return false; return true; } @Override public String toString() { - return String.format("StringToken [key=%s, val=%s]", key, val); + return String.format("StringToken [key='%s', val='%s']", key, val); } } -- cgit v1.2.3