2
module Main (main) where
14
code _ _ inp len cont (sc,frags) = cont (sc,frag:frags)
16
frag = take (len-4) (drop 2 inp)
18
ide _ _ inp len cont st = Ide (take len inp):cont st
20
skip _ _ inp len cont st = cont st
22
data Token = Ide String | Eof String | Err deriving Show
24
stop_act _ _ "" (_,frags) = [Eof (unlines(reverse frags))]
25
stop_act _ _ _ _ = [Err]
27
tokens:: String -> [Token]
28
tokens inp = alexGScan stop_act [] inp
31
main = interact (show.tokens)