From 8001ea8ea02a711cef261657ad69513a162b3e1d Mon Sep 17 00:00:00 2001 From: bjorn Date: Thu, 25 Sep 2008 11:49:00 +0000 Subject: [PATCH] Added --output-format=regular. --- src/GF/Compile/Export.hs | 1 + src/GF/Infra/Option.hs | 2 ++ src/GF/Speech/PGFToCFG.hs | 5 ++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/GF/Compile/Export.hs b/src/GF/Compile/Export.hs index f0a0ae689..36a001c51 100644 --- a/src/GF/Compile/Export.hs +++ b/src/GF/Compile/Export.hs @@ -37,6 +37,7 @@ exportPGF opts fmt pgf = FmtProlog -> multi "pl" grammar2prolog FmtProlog_Abs -> multi "pl" grammar2prolog_abs FmtBNF -> single "bnf" bnfPrinter + FmtRegular -> single "bnf" regularPrinter FmtFCFG -> single "fcfg" fcfgPrinter FmtSRGS_XML -> single "grxml" (srgsXmlPrinter sisr) FmtSRGS_XML_NonRec -> single "grxml" srgsXmlNonRecursivePrinter diff --git a/src/GF/Infra/Option.hs b/src/GF/Infra/Option.hs index 8d296b281..b6c25a8fe 100644 --- a/src/GF/Infra/Option.hs +++ b/src/GF/Infra/Option.hs @@ -87,6 +87,7 @@ data OutputFormat = FmtPGF | FmtProlog | FmtProlog_Abs | FmtBNF + | FmtRegular | FmtFCFG | FmtSRGS_XML | FmtSRGS_XML_NonRec @@ -456,6 +457,7 @@ outputFormats = ("prolog", FmtProlog), ("prolog_abs", FmtProlog_Abs), ("bnf", FmtBNF), + ("regular", FmtRegular), ("fcfg", FmtFCFG), ("srgs_xml", FmtSRGS_XML), ("srgs_xml_nonrec", FmtSRGS_XML_NonRec), diff --git a/src/GF/Speech/PGFToCFG.hs b/src/GF/Speech/PGFToCFG.hs index e455f6869..d52c8807c 100644 --- a/src/GF/Speech/PGFToCFG.hs +++ b/src/GF/Speech/PGFToCFG.hs @@ -4,7 +4,7 @@ -- -- Approximates PGF grammars with context-free grammars. ---------------------------------------------------------------------- -module GF.Speech.PGFToCFG (bnfPrinter, fcfgPrinter, pgfToCFG) where +module GF.Speech.PGFToCFG (bnfPrinter, regularPrinter, fcfgPrinter, pgfToCFG) where import PGF.CId import PGF.Data as PGF @@ -23,6 +23,9 @@ import qualified Data.Set as Set bnfPrinter :: PGF -> CId -> String bnfPrinter pgf cnc = prCFG $ pgfToCFG pgf cnc +regularPrinter :: PGF -> CId -> String +regularPrinter pgf cnc = prCFG $ makeSimpleRegular $ pgfToCFG pgf cnc + -- FIXME: move this somewhere else fcfgPrinter :: PGF -> CId -> String fcfgPrinter pgf cnc = unlines (map showRule rules)