X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Ftib%2FTib.java;h=f802ab0a44a663a84ed0951d3fcdfbd82c49a0d3;hb=2177e4743ea680e24f0cc0525185e8f95d0dd41b;hp=3c3e1844a37990859868303205f21e08961ae705;hpb=fc1e5069ec5401c425dd29b77b04285916b62d10;p=sbp.git diff --git a/src/edu/berkeley/sbp/tib/Tib.java b/src/edu/berkeley/sbp/tib/Tib.java index 3c3e184..f802ab0 100644 --- a/src/edu/berkeley/sbp/tib/Tib.java +++ b/src/edu/berkeley/sbp/tib/Tib.java @@ -83,9 +83,9 @@ public class Tib implements Input { return null; } c = (char)i; + if (c=='\n') { _row++; _col=0; } + else _col++; } - if (c=='\n') { _row++; _col=0; } - else _col++; if (indenting) { if (c==' ') { indentation++; return done(c); } if (c=='\n') { indentation = 0; if (blank) return nextc(numstates, resets); blank = true; waiting = true; waitingChar='\n'; return '\n'; } @@ -135,25 +135,25 @@ public class Tib implements Input { // Grammar ////////////////////////////////////////////////////////////////////////////// - public static class Grammar extends MetaGrammar { + public static class Grammar extends ReflectiveGrammar { private int anon = 0; private final Element ws = Repeat.maximal0(getNonTerminal("w")); - public Grammar() { dropAll.add(ws); } + public Grammar(Class c) { super(c); dropAll.add(ws); } public Object walk(Tree tree) { String head = tree.head(); if (tree.numChildren()==0) return super.walk(tree); if ("{".equals(head)) { Union u = new Union("???"); Union u2 = ((PreSequence)walk(tree, 0)).sparse(ws).buildUnion(); - u2.add(Sequence.singleton(new Element[] { u }, 0, null, null)); - return anonymousNonTerminal(new PreSequence[][] { - new PreSequence[] { - new PreSequence(new Element[] { CharRange.leftBrace, - ws, - u2, - ws, - CharRange.rightBrace - }) + u2.add(Sequence.singleton(new Element[] { u }, 0)); + return anonymousNonTerminal(new Sequence[][] { + new Sequence[] { + Sequence.singleton(new Element[] { CharRange.leftBrace, + ws, + u2, + ws, + CharRange.rightBrace + }, 2) } }); }