Pattern makeOneOrMore(Pattern p) { if (p == empty || p == notAllowed || p instanceof OneOrMorePattern) return p; Pattern p1 = new OneOrMorePattern(p); return interner.intern(p1); }
Pattern makeList(Pattern p, Locator loc) { if (p == notAllowed) return p; Pattern p1 = new ListPattern(p, loc); return schemaInterner.intern(p1); }
Pattern makeAttribute(NameClass nameClass, Pattern value, Locator loc) { if (value == notAllowed) return value; Pattern p = new AttributePattern(nameClass, value, loc); return schemaInterner.intern(p); }
Pattern makeOneOrMore(Pattern p) { if (p == empty || p == notAllowed || p instanceof OneOrMorePattern) return p; Pattern p1 = new OneOrMorePattern(p); return interner.intern(p1); }
Pattern makeAttribute(NameClass nameClass, Pattern value, Locator loc) { if (value == notAllowed) return value; Pattern p = new AttributePattern(nameClass, value, loc); return schemaInterner.intern(p); }
Pattern makeError() { Pattern p = new ErrorPattern(); return schemaInterner.intern(p); }
Pattern makeList(Pattern p, Locator loc) { if (p == notAllowed) return p; Pattern p1 = new ListPattern(p, loc); return schemaInterner.intern(p1); }
Pattern makeElement(NameClass nameClass, Pattern content, Locator loc) { Pattern p = new ElementPattern(nameClass, content, loc); return schemaInterner.intern(p); }
Pattern makeElement(NameClass nameClass, Pattern content, Locator loc) { Pattern p = new ElementPattern(nameClass, content, loc); return schemaInterner.intern(p); }
Pattern makeError() { Pattern p = new ErrorPattern(); return schemaInterner.intern(p); }
Pattern makeGroup(Pattern p1, Pattern p2) { if (p1 == empty) return p2; if (p2 == empty) return p1; if (p1 == notAllowed || p2 == notAllowed) return notAllowed; if (false && p1 instanceof GroupPattern) { GroupPattern sp = (GroupPattern)p1; return makeGroup(sp.p1, makeGroup(sp.p2, p2)); } Pattern p = new GroupPattern(p1, p2); return interner.intern(p); }
Pattern makeGroup(Pattern p1, Pattern p2) { if (p1 == empty) return p2; if (p2 == empty) return p1; if (p1 == notAllowed || p2 == notAllowed) return notAllowed; if (false && p1 instanceof GroupPattern) { GroupPattern sp = (GroupPattern)p1; return makeGroup(sp.p1, makeGroup(sp.p2, p2)); } Pattern p = new GroupPattern(p1, p2); return interner.intern(p); }
Pattern makeValue(Datatype dt, Object obj) { noteDatatype(dt); Pattern p = new ValuePattern(dt, obj); return schemaInterner.intern(p); }
Pattern makeValue(Datatype dt, Object obj) { noteDatatype(dt); Pattern p = new ValuePattern(dt, obj); return schemaInterner.intern(p); }
Pattern makeDataExcept(Datatype dt, Pattern except, Locator loc) { noteDatatype(dt); Pattern p = new DataExceptPattern(dt, except, loc); return schemaInterner.intern(p); }
Pattern makeDataExcept(Datatype dt, Pattern except, Locator loc) { noteDatatype(dt); Pattern p = new DataExceptPattern(dt, except, loc); return schemaInterner.intern(p); }
Pattern makeData(Datatype dt) { noteDatatype(dt); Pattern p = new DataPattern(dt); return schemaInterner.intern(p); }
Pattern makeData(Datatype dt) { noteDatatype(dt); Pattern p = new DataPattern(dt); return schemaInterner.intern(p); }
Pattern makeChoice(Pattern p1, Pattern p2) { if (p1 == empty && p2.isNullable()) return p2; if (p2 == empty && p1.isNullable()) return p1; Pattern p = new ChoicePattern(p1, p2); return interner.intern(p); }
Pattern makeChoice(Pattern p1, Pattern p2) { if (p1 == empty && p2.isNullable()) return p2; if (p2 == empty && p1.isNullable()) return p1; Pattern p = new ChoicePattern(p1, p2); return interner.intern(p); }