!7 sclass Parser { new StringTree2 tree; L tok(S s) { ret javaTok(s); } L tokC(S s) { ret javaTokC(s); } void register(S text, O action) { addToStringTree(tree, tokC(text), action); } Parsing parse(S text) { ret nu(Parsing, parser := this, it := tokC(text).iterator(), treesInFlight := tree); } } sclass Parsing { Parser parser; Iterator it; new L treesInFlight; void step { } } p { new Parser p; p.register("I am here", "I-am-here"); Parsing pp = p.parse(); }