{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-} module BNFC.Backend.Txt2Tags where import BNFC.Backend.CommonInterface.Backend import BNFC.Backend.Txt2Tags.InitState import BNFC.Backend.Txt2Tags.Makefile import BNFC.Backend.Txt2Tags.Options import BNFC.Backend.Txt2Tags.State import BNFC.Backend.Txt2Tags.Txt2Tags import BNFC.CF import BNFC.Prelude import BNFC.Options.GlobalOptions import BNFC.Options.Target import Control.Monad.Except import Control.Monad.State import Options.Applicative instance Backend 'TargetTxt2Tags where type BackendOptions 'TargetTxt2Tags = Txt2TagsBackendOptions type BackendState 'TargetTxt2Tags = Txt2TagsBackendState parseOpts :: Parser Txt2TagsBackendOptions parseOpts = txt2tagsOptionsParser initState :: LBNF -> GlobalOptions -> BackendOptions 'TargetTxt2Tags -> Except String (BackendState 'TargetTxt2Tags) initState _ globalOpts txtopts = txt2tagsInitState globalOpts txtopts abstractSyntax :: LBNF -> State (BackendState 'TargetTxt2Tags) Result abstractSyntax = txt2tags printer :: LBNF -> State (BackendState 'TargetTxt2Tags) Result printer _ = return [] lexer :: LBNF -> State (BackendState 'TargetTxt2Tags) Result lexer _ = return [] parser :: LBNF -> State (BackendState 'TargetTxt2Tags) Result parser _ = return [] parserTest :: LBNF -> State (BackendState 'TargetTxt2Tags) Result parserTest _ = return [] makefile :: LBNF -> State (BackendState 'TargetTxt2Tags) Result makefile = txt2tagsmakefile