module BNFC.Backend.Agda.State where

import BNFC.CF

import BNFC.Prelude

import BNFC.Options.GlobalOptions

import BNFC.Backend.Agda.Options

import BNFC.Backend.Haskell.Utilities.Utils

data AgdaBackendState = AgdaSt
  { AgdaBackendState -> GlobalOptions
globalOpt :: GlobalOptions
  , AgdaBackendState -> AgdaBackendOptions
agdaOpts :: AgdaBackendOptions
  , AgdaBackendState -> [Token]
lexerParserTokens :: [Token]
  , AgdaBackendState -> [(Type, [(Label, ([Type], (Integer, ARHS)))])]
hsAstRules :: [(Type, [(Label, ([Type], (Integer, ARHS)))])]
  , AgdaBackendState -> [(Type, [(Label, [Type])])]
agdaAstRules :: [(Type, [(Label, [Type])])]
  , AgdaBackendState -> [(Cat, Map RHS RuleLabel)]
parserRules :: [(Cat, Map RHS RuleLabel)]
  , AgdaBackendState -> [(LabelName, Function)]
hsFunctions :: [(LabelName,Function)]
  , AgdaBackendState -> [(LabelName, Function)]
agdaFunctions :: [(LabelName,Function)]
  , AgdaBackendState -> [(LabelName, TokenDef)]
tokens :: [(CatName,TokenDef)]
  }