definition module Sil.Parse from StdOverloaded import class ==, class toString from Data.Error import :: MaybeError from Sil.Error import :: Error from Sil.Syntax import :: Program, :: Literal from Sil.Util.Parser import class name :: Token = TParenOpen //* ( | TParenClose //* ) | TBrackOpen //* [ | TBrackClose //* ] | TBraceOpen //* { | TBraceClose //* } | TComma //* , | TColon //* : | TSemicolon //* ; | TField String //* . and field name | TAssign //* := | TTilde //* ~ | TExclamation //* ! | TPlus //* + | TMinus //* - | TStar //* * | TSlash //* / | TPercent //* % | TEquals //* == | TUnequals //* <> | TLe //* <= | TGe //* >= | TLt //* < | TGt //* > | TDoubleBar //* || | TDoubleAmpersand //* && | TLit Literal //* True; False; integers | TIf //* if | TElse //* else | TWhile //* while | TReturn //* return | TMachineCode String //* |~ machine code | TName String //* a string instance == Token instance toString Token instance name Token tokenise :: [Char] -> MaybeError Error [Token] parse :: ([Token] -> MaybeError Error Program)