summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbjorn <bjorn@bringert.net>2008-09-25 11:49:00 +0000
committerbjorn <bjorn@bringert.net>2008-09-25 11:49:00 +0000
commit13191ac15504efc3a45777fb28d594106582f827 (patch)
tree143297f2d3d5701fb2bfaefc155c08101a76a804 /src
parent7a5e2a15bd725306e8d08a94026aef18436195bb (diff)
Added --output-format=regular.
Diffstat (limited to 'src')
-rw-r--r--src/GF/Compile/Export.hs1
-rw-r--r--src/GF/Infra/Option.hs2
-rw-r--r--src/GF/Speech/PGFToCFG.hs5
3 files changed, 7 insertions, 1 deletions
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)