-- UUAGC 0.9.52.1 (src/GLL/Types/Abstract.ag) module GLL.Types.Abstract where {-# LINE 1 "src/GLL/Types/Abstract.ag" #-} import qualified Data.Map as M import qualified Data.Set as S import Data.List (delete, (\\), elemIndices, findIndices) import GLL.Common {-# LINE 12 "dist/build/GLL/Types/Abstract.hs" #-} -- Alt --------------------------------------------------------- data Alt = Alt (Nt) (Symbols) -- Alts -------------------------------------------------------- type Alts = [Alt] -- Grammar ----------------------------------------------------- data Grammar = Grammar (Nt) (([(String,String)])) (Rules) -- Rule -------------------------------------------------------- data Rule = Rule (Nt) (Alts) (([Pid])) -- Rules ------------------------------------------------------- type Rules = [Rule] -- Slot -------------------------------------------------------- data Slot = Slot (Nt) (([Symbol])) (([Symbol])) -- Symbol ------------------------------------------------------ data Symbol = Nt (String) | Term (Token) | Error (Token) (Token) -- Symbols ----------------------------------------------------- type Symbols = [Symbol] -- Token ------------------------------------------------------- data Token = Char (Char) | EOS | Epsilon | Int (((Maybe Int))) | Bool (((Maybe Bool))) | String (((Maybe String))) | Token (String) (((Maybe String))) -- Tokens ------------------------------------------------------ type Tokens = [Token]