class matcher {
var str;
public proc create(s) {
str = s;
}
operator ~= (rhs) {
match (str) {
case rhs :
return oadl::matchvec();
default :
return nil;
}
}
operator \~= (lhs) {
return (lhs ~= str) ? {lhs} : nil;
}
}
proc main()
{
var m = new matcher("123 foo");
match (m) {
case "([0-9]*)" :
"PASS! - ?0 = ", ?0, '\n';
default :
"FAIL!\n";
}
}