sclass MMOPattern { srecord Phrase(S phrase, bool quoted) > MMOPattern {} srecord And(L l) > MMOPattern {} srecord Or(L l) > MMOPattern {} srecord Not(MMOPattern p) > MMOPattern {} // v2 patterns srecord Weighted(double weight, MMOPattern p) > MMOPattern {} srecord StartOfLine(MMOPattern p) > MMOPattern {} srecord EndOfLine(MMOPattern p) > MMOPattern {} }