scanner DataScanner from GumpScanner.'class' lex <[ \t\n]+> skip end lex <"{"|"}"|","|"false"|"true"> A in {self getAtom(A)} {self putToken1(A)} end lex <\'[^\']*\'> S1 S2 in {self getString(S1)} S2={Reverse {Reverse S1.2}.2} {self putToken('atom' {String.toAtom S2})} end lex <[0-9]+> S in {self getString(S)} {self putToken('int' {String.toInt S})} end lex <<EOF>> {self putToken1('EOF')} end lex <.> raise unexpectedChar end end end