From b3552d74adab93ce7910569579069d249debafc8 Mon Sep 17 00:00:00 2001 From: adam Date: Sat, 8 Mar 2008 22:53:02 -0400 Subject: [PATCH] rename Context darcs-hash:20080309025302-5007d-8fea8f65b3619b37678ae462999395aa7818bda4.gz --- src/edu/berkeley/sbp/meta/GrammarAST.java | 72 ++++++++++++++--------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/edu/berkeley/sbp/meta/GrammarAST.java b/src/edu/berkeley/sbp/meta/GrammarAST.java index 66e8323..0085ea5 100644 --- a/src/edu/berkeley/sbp/meta/GrammarAST.java +++ b/src/edu/berkeley/sbp/meta/GrammarAST.java @@ -205,7 +205,7 @@ public class GrammarAST { return ret + " ]"; } public Union build(String rootNonterminal) { - Context cx = new Context(this); + BuildContext cx = new BuildContext(this); Union u = null; for(GrammarAST.NonTerminalNode nt : values()) if (nt.name.equals(rootNonterminal)) @@ -226,8 +226,8 @@ public class GrammarAST { this.unionNode = new UnionNode(sequences, rep, sep==null?null:(prefix + sep)); this.elementNode = alwaysDrop ? new DropNode(unionNode) : unionNode; } - public boolean isDropped(Context cx) { return alwaysDrop; } - public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { return cx.get(name); } + public boolean isDropped(BuildContext cx) { return alwaysDrop; } + public Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall) { return cx.get(name); } public ElementNode getElementNode() { return elementNode; } public UnionNode getUnionNode() { return unionNode; } } @@ -245,7 +245,7 @@ public class GrammarAST { /** negative conjuncts */ HashSet not = new HashSet(); public boolean alwaysDrop = false; - public boolean isDropped(Context cx) { + public boolean isDropped(BuildContext cx) { if (alwaysDrop) return true; if (tag!=null) return false; for(int i=0; i, **, ++, or a similar character-class"+ " operator on a [potentially] multicharacter production"); @@ -301,14 +301,14 @@ public class GrammarAST { this.elements = elements; return this; } - public Sequence build(Context cx, Union u, NonTerminalNode cnt, boolean dropall) { + public Sequence build(BuildContext cx, Union u, NonTerminalNode cnt, boolean dropall) { Sequence ret = build0(cx, cnt, dropall); for(Seq s : and) ret = ret.and(s.build(cx, null, cnt, true)); for(Seq s : not) ret = ret.andnot(s.build(cx, null, cnt, true)); if (u!=null) u.add(ret); return ret; } - public Sequence build0(Context cx, NonTerminalNode cnt, boolean dropall) { + public Sequence build0(BuildContext cx, NonTerminalNode cnt, boolean dropall) { boolean[] drops = new boolean[elements.length]; Element[] els = new Element[elements.length]; dropall |= isDropped(cx); @@ -360,9 +360,9 @@ public class GrammarAST { /** the field name to be used when synthesizing AST classes; null if none suggested */ public String getFieldName() { return null; } public boolean isLifted() { return false; } - public boolean isDropped(Context cx) { return false; } - public Atom toAtom(Context cx) { throw new Error("can't convert a " + this.getClass().getName() + " to an atom: " + this); } - public abstract Element build(Context cx, NonTerminalNode cnt, boolean dropall); + public boolean isDropped(BuildContext cx) { return false; } + public Atom toAtom(BuildContext cx) { throw new Error("can't convert a " + this.getClass().getName() + " to an atom: " + this); } + public abstract Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall); } /** a union, produced by a ( .. | .. | .. ) construct */ @@ -386,14 +386,14 @@ public class GrammarAST { } public String getFieldName() { return null; } public boolean isLifted() { return false; } - public boolean isDropped(Context cx) { + public boolean isDropped(BuildContext cx) { for(Seq[] seqs : sequences) for(Seq seq : seqs) if (!seq.isDropped(cx)) return false; return true; } - public Atom toAtom(Context cx) { + public Atom toAtom(BuildContext cx) { Atom ret = null; for(Seq[] ss : sequences) for(Seq s : ss) @@ -401,9 +401,9 @@ public class GrammarAST { return ret; } - public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { + public Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall) { return buildIntoPreallocatedUnion(cx, cnt, dropall, new Union(null, false)); } - public Element buildIntoPreallocatedUnion(Context cx, NonTerminalNode cnt, boolean dropall, Union u) { + public Element buildIntoPreallocatedUnion(BuildContext cx, NonTerminalNode cnt, boolean dropall, Union u) { Union urep = null; if (rep) { urep = new Union(null, false); @@ -449,18 +449,18 @@ public class GrammarAST { this.nonTerminal = nonTerminal.indexOf('.')==-1 ? (prefix + nonTerminal) : nonTerminal; this.parenthesized = parenthesized; } - public NonTerminalNode resolve(Context cx) { + public NonTerminalNode resolve(BuildContext cx) { NonTerminalNode ret = cx.grammar.get(nonTerminal); if (ret==null) throw new RuntimeException("undefined nonterminal: " + nonTerminal); return ret; } - public Atom toAtom(Context cx) { + public Atom toAtom(BuildContext cx) { ElementNode ret = cx.grammar.get(nonTerminal).getElementNode(); if (ret == null) throw new RuntimeException("unknown nonterminal \""+nonTerminal+"\""); return ret.toAtom(cx); } - public boolean isDropped(Context cx) { return resolve(cx).isDropped(cx); } - public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { + public boolean isDropped(BuildContext cx) { return resolve(cx).isDropped(cx); } + public Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall) { Element ret = cx.get(nonTerminal); if (ret == null) throw new RuntimeException("unknown nonterminal \""+nonTerminal+"\""); return ret; @@ -480,14 +480,14 @@ public class GrammarAST { } public String getLiteralTag() { return caret ? thePrefix+string : null; } public String toString() { return "\""+string+"\""; } - public boolean isDropped(Context cx) { return true; } - public Atom toAtom(Context cx) { + public boolean isDropped(BuildContext cx) { return true; } + public Atom toAtom(BuildContext cx) { if (string.length()!=1) return super.toAtom(cx); Range.Set set = new Range.Set(); set.add(string.charAt(0), string.charAt(0)); return CharAtom.set(set); } - public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { return CharAtom.string(string); } + public Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall) { return CharAtom.string(string); } } /** an atom (usually a character class) */ @@ -496,8 +496,8 @@ public class GrammarAST { public AtomNode() { this(new char[0][]); } public AtomNode(char[][] ranges) { this.ranges = ranges; } public AtomNode(char[] range) { this.ranges = new char[][] { range }; } - public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { return toAtom(cx); } - public Atom toAtom(Context cx) { + public Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall) { return toAtom(cx); } + public Atom toAtom(BuildContext cx) { Range.Set set = new Range.Set(); for(char[] r : ranges) set.add(r[0], r[1]); return CharAtom.set(set); @@ -511,9 +511,9 @@ public class GrammarAST { public RepeatNode(ElementNode e, ElementNode sep, boolean zero, boolean many, boolean max) { this.e = e; this.sep = sep; this.zero = zero; this.many = many; this.max = max; } - public Atom toAtom(Context cx) { return sep==null ? e.toAtom(cx) : super.toAtom(cx); } - public boolean isDropped(Context cx) { return e.isDropped(cx); } - public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { + public Atom toAtom(BuildContext cx) { return sep==null ? e.toAtom(cx) : super.toAtom(cx); } + public boolean isDropped(BuildContext cx) { return e.isDropped(cx); } + public Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall) { Element ret = build(cx, cnt, dropall, illegalTag); String must = "must be tagged unless they appear within a dropped expression or their contents are dropped: "; if (!dropall && !isDropped(cx) && !e.isDropped(cx)) @@ -522,7 +522,7 @@ public class GrammarAST { else throw new RuntimeException("one-or-more repetitions (+) " + must + ret); return ret; } - public Element build(Context cx, NonTerminalNode cnt, boolean dropall, Object repeatTag) { + public Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall, Object repeatTag) { return (!max) ? Repeat.repeat(e.build(cx, null, dropall), zero, many, sep==null ? null : sep.build(cx, null, dropall), repeatTag) : sep==null @@ -535,9 +535,9 @@ public class GrammarAST { private abstract class ElementNodeWrapper extends ElementNode { protected ElementNode _e; public ElementNodeWrapper(ElementNode e) { this._e = e; } - public boolean isDropped(Context cx) { return _e.isDropped(cx); } - public Atom toAtom(Context cx) { return _e.toAtom(cx); } - public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { return _e.build(cx, cnt, dropall); } + public boolean isDropped(BuildContext cx) { return _e.isDropped(cx); } + public Atom toAtom(BuildContext cx) { return _e.toAtom(cx); } + public Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall) { return _e.build(cx, cnt, dropall); } public String getFieldName() { return _e.getFieldName(); } } @@ -550,13 +550,13 @@ public class GrammarAST { /** negation */ private class TildeNode extends ElementNodeWrapper { public TildeNode(ElementNode e) { super(e); } - public Atom toAtom(Context cx) { return (Atom)((Topology)_e.toAtom(cx).complement()); } - public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { return toAtom(cx); } + public Atom toAtom(BuildContext cx) { return (Atom)((Topology)_e.toAtom(cx).complement()); } + public Element build(BuildContext cx, NonTerminalNode cnt, boolean dropall) { return toAtom(cx); } } private class DropNode extends ElementNodeWrapper { public DropNode(ElementNode e) { super(e); } - public boolean isDropped(Context cx) { return true; } + public boolean isDropped(BuildContext cx) { return true; } } /** provides a label on the fields of a Seq */ @@ -568,11 +568,11 @@ public class GrammarAST { ////////////////////////////////////////////////////////////////////////////// - public class Context { + public class BuildContext { public HashMap map = new HashMap(); public GrammarNode grammar; - public Context(Tree t) { } - public Context(GrammarNode g) { this.grammar = g; } + public BuildContext(Tree t) { } + public BuildContext(GrammarNode g) { this.grammar = g; } public Union build() { Union ret = null; for(NonTerminalNode nt : grammar.values()) { -- 1.7.10.4