definition module Sil.Parse from StdOverloaded import class ==, class toString from Data.Error import :: MaybeError from Sil.Parse.Parser import class name from Sil.Syntax import :: Program, :: Literal :: Token = TParenOpen //* ( | TParenClose //* ) | TBraceOpen //* { | TBraceClose //* } | TComma //* , | TSemicolon //* ; | TAssign //* := | TLit Literal //* True; False; integers | TIf //* if | TWhile //* while | TReturn //* return | TName String //* a string instance == Token instance toString Token instance name Token :: ParseError = E.a: Invalid String a & toString a | Expected String | UnknownError instance toString ParseError tokenise :: [Char] -> MaybeError ParseError [Token] parse :: ([Token] -> MaybeError ParseError Program)