summaryrefslogblamecommitdiff
path: root/paper/While/WhileLexer.dcl
blob: d4cdc22ec52b52dfb1d5e3c3124e9b9a717ac0ab (plain) (tree)
























                                                                    
definition module WhileLexer

from StdOverloaded import class ==
from GenEq import generic gEq
import WhileCommon

:: Token = SkipToken
         | IfToken | ThenToken | ElseToken
         | WhileToken | DoToken
         | CompToken
         | AssToken

         | EqToken | NeToken | LtToken | LeToken | GtToken | GeToken
         | OrToken | AndToken | NotToken
         | AddToken | SubToken | MulToken | DivToken

         | VarToken Var
         | LiteralToken Int
         | BoolToken Bool

         | ParenOpen | ParenClose

derive gEq Token
instance == Token

lex :: [Char] -> Either Error [Token]