import system.io inductive token | eof : token | plus : token | var : string -> token open token open option def to_token : string → option token | [] := none | (c :: cs) := let t : option token := match c with | #"x" := some (var "x") | #"y" := some (var "y") | #"+" := some plus | _ := none end in t