X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Ftib%2FTib.java;h=3c3e1844a37990859868303205f21e08961ae705;hp=b2383ac99b6f306137d3465b3fe0128e1b60e31f;hb=fc1e5069ec5401c425dd29b77b04285916b62d10;hpb=c7af09d552a9cf2d53a72baa975c9a73384813ea diff --git a/src/edu/berkeley/sbp/tib/Tib.java b/src/edu/berkeley/sbp/tib/Tib.java index b2383ac..3c3e184 100644 --- a/src/edu/berkeley/sbp/tib/Tib.java +++ b/src/edu/berkeley/sbp/tib/Tib.java @@ -55,9 +55,9 @@ public class Tib implements Input { private ArrayList istack = new ArrayList(); public Character next(int numstates, int resets, int waits) throws IOException { Character ret = nextc(numstates, resets); - if (ret==left) System.out.print("\033[31m{\033[0m"); + if (ret==null) return null; + else if (ret==left) System.out.print("\033[31m{\033[0m"); else if (ret==right) System.out.print("\033[31m}\033[0m"); - else if (ret==null) return null; else System.out.print(ret); return ret; } @@ -137,29 +137,25 @@ public class Tib implements Input { public static class Grammar extends MetaGrammar { private int anon = 0; - private final Element ws = Repeat.maximal0(nonTerminal("w")); + private final Element ws = Repeat.maximal0(getNonTerminal("w")); public Grammar() { dropAll.add(ws); } public Object walk(Tree tree) { String head = tree.head(); if (tree.numChildren()==0) return super.walk(tree); if ("{".equals(head)) { - String s = "braced"+(anon++); - Union u = nonTerminal(s); + Union u = new Union("???"); Union u2 = ((PreSequence)walk(tree, 0)).sparse(ws).buildUnion(); u2.add(Sequence.singleton(new Element[] { u }, 0, null, null)); - return nonTerminal(s, - new PreSequence[][] { - new PreSequence[] { - new PreSequence(new Element[] { CharRange.leftBrace, - ws, - u2, - ws, - CharRange.rightBrace - }) - } - }, - false, - false); + return anonymousNonTerminal(new PreSequence[][] { + new PreSequence[] { + new PreSequence(new Element[] { CharRange.leftBrace, + ws, + u2, + ws, + CharRange.rightBrace + }) + } + }); } return super.walk(tree); }