//
// This software is now distributed according to
// the Lesser Gnu Public License. Please see
// http://www.gnu.org/copyleft/lesser.txt for
// the details.
// -- Happy Computing!
//
package com.stevesoft.pat;
import java.util.Hashtable;
/** Simple custom patterns. See
deriv2.java
and deriv3.java
in the test directory.
@see com.stevesoft.pat.CustomEndpoint
*/
class Custom extends PatternSub {
String select;
Validator v;
int start;
Custom(String s) {
select = s;
v = (Validator)Regex.validators.get(s);
}
public int matchInternal(int pos,Pthings pt) {
start = pos;
return sub.matchInternal(pos,pt);
}
public String toString() {
String a = v.argsave == null ? "" : ":"+v.argsave;
return "(??"+select+a+")"+nextString();
}
public patInt minChars() { return v.minChars(); }
public patInt maxChars() { return v.maxChars(); }
Pattern clone1(Hashtable h) {
Custom c = new Custom(select);
h.put(c,c);
h.put(this,c);
c.sub = sub.clone(h);
return c;
}
}