OMetaでは先ほどの記事の通りではうまくいきません。MTestのスーパークラスをOMetaにした上で、
(MTest onString: 'a') apply: #test
とやると同じことができるようになります。
MMetaでは、
boolean ::= ‘true’ | ‘false’
のように文字列を直接書くことができていたのですが、OMetaではtokenを定めないとうまくいきません。
token :xs ::= <spaces> <seq xs>
というのをOMetaParserあたりからもらってきて、
boolean ::= <token 'true'> | <token 'false'>
とします。