Suppose we had a WOM source file,
which contained just two WOM elements and nothing else:
<TextField size=10 value="0"> <TextField size=11 value="1">Then the compiler would translate it into a class of the form
::class example subclass Page public ::method init expose contents contents = .list~of(, .TextField~new()~~setsize(10)~~setvalue("0"),, .TextField~new()~~setsize(11)~~setvalue("1"), ) return ::method emit expose contents use arg output_stream do item over contents item~emit( output_stream ) end return
The idea is that when an instance of the page is created, it
initialises itself with a list containing one instance of each
TextField. When the page instance is asked to emit itself,
it runs over its contents asking these fields to do the same.