public final Expression createOneOrMore( Expression child ) { if( child == Expression.epsilon || child == Expression.anyString || child == Expression.nullSet || child instanceof OneOrMoreExp ) return child; return unify(new OneOrMoreExp(child)); }
public final Expression createMixed( Expression body ) { if( body==Expression.nullSet ) return Expression.nullSet; if( body==Expression.epsilon ) return Expression.anyString; return unify( new MixedExp(body) ); }
public final Expression createAttribute( NameClass nameClass ) { return unify(new AttributeExp(nameClass,Expression.anyString)); } public final Expression createAttribute( NameClass nameClass, Expression content ) {
public final Expression createList( Expression exp ) { if(exp==Expression.nullSet) return exp; return unify( new ListExp(exp) ); }
public final Expression createData( Datatype dt, StringPair typeName, Expression except ) { return unify( new DataExp(dt,typeName,except) ); }
public final Expression createOneOrMore( Expression child ) { if( child == Expression.epsilon || child == Expression.anyString || child == Expression.nullSet || child instanceof OneOrMoreExp ) return child; return unify(new OneOrMoreExp(child)); }
public final Expression createMixed( Expression body ) { if( body==Expression.nullSet ) return Expression.nullSet; if( body==Expression.epsilon ) return Expression.anyString; return unify( new MixedExp(body) ); }
public final Expression createOneOrMore( Expression child ) { if( child == Expression.epsilon || child == Expression.anyString || child == Expression.nullSet || child instanceof OneOrMoreExp ) return child; return unify(new OneOrMoreExp(child)); }
public final Expression createMixed( Expression body ) { if( body==Expression.nullSet ) return Expression.nullSet; if( body==Expression.epsilon ) return Expression.anyString; return unify( new MixedExp(body) ); }
public final Expression createList( Expression exp ) { if(exp==Expression.nullSet) return exp; return unify( new ListExp(exp) ); }
public final Expression createAttribute( NameClass nameClass ) { return unify(new AttributeExp(nameClass,Expression.anyString)); } public final Expression createAttribute( NameClass nameClass, Expression content ) {
public final Expression createList( Expression exp ) { if(exp==Expression.nullSet) return exp; return unify( new ListExp(exp) ); }
public final Expression createAttribute( NameClass nameClass ) { return unify(new AttributeExp(nameClass,Expression.anyString)); } public final Expression createAttribute( NameClass nameClass, Expression content ) {
public final Expression createValue( Datatype dt, StringPair typeName, Object value ) { return unify( new ValueExp(dt,typeName,value) ); }
public final Expression createOneOrMore( Expression child ) { if( child == Expression.epsilon || child == Expression.anyString || child == Expression.nullSet || child instanceof OneOrMoreExp ) return child; return unify(new OneOrMoreExp(child)); }
public final Expression createMixed( Expression body ) { if( body==Expression.nullSet ) return Expression.nullSet; if( body==Expression.epsilon ) return Expression.anyString; return unify( new MixedExp(body) ); }
public final Expression createAttribute( NameClass nameClass, Expression content, String defaultValue) { if(content==Expression.nullSet) { return content; } AttributeExp exp = new AttributeExp(nameClass,content); exp.setDefaultValue(defaultValue); return unify(exp); }
public final Expression createInterleave( Expression left, Expression right ) { if( left == Expression.epsilon ) return right; if( right== Expression.epsilon ) return left; if( left == Expression.nullSet || right== Expression.nullSet ) return Expression.nullSet; // associative operators are grouped to the left if( right instanceof InterleaveExp ) { final InterleaveExp i = (InterleaveExp)right; return createInterleave( createInterleave(left, i.exp1), i.exp2 ); } return unify(new InterleaveExp(left,right)); }
public final Expression createInterleave( Expression left, Expression right ) { if( left == Expression.epsilon ) return right; if( right== Expression.epsilon ) return left; if( left == Expression.nullSet || right== Expression.nullSet ) return Expression.nullSet; // associative operators are grouped to the left if( right instanceof InterleaveExp ) { final InterleaveExp i = (InterleaveExp)right; return createInterleave( createInterleave(left, i.exp1), i.exp2 ); } return unify(new InterleaveExp(left,right)); }
public final Expression createInterleave( Expression left, Expression right ) { if( left == Expression.epsilon ) return right; if( right== Expression.epsilon ) return left; if( left == Expression.nullSet || right== Expression.nullSet ) return Expression.nullSet; // associative operators are grouped to the left if( right instanceof InterleaveExp ) { final InterleaveExp i = (InterleaveExp)right; return createInterleave( createInterleave(left, i.exp1), i.exp2 ); } return unify(new InterleaveExp(left,right)); }