diff options
| author | bringert <bringert@cs.chalmers.se> | 2005-12-08 16:01:13 +0000 |
|---|---|---|
| committer | bringert <bringert@cs.chalmers.se> | 2005-12-08 16:01:13 +0000 |
| commit | cb18297acef067f0072ff290bedbb2f11f703eb8 (patch) | |
| tree | 3110c155a29b3cc2286836b8a669f9a1258b7064 /src/GF/Speech/PrSLF.hs | |
| parent | 913a15a083b71c0144d9b8c02dca8c8d3eb7e332 (diff) | |
SLF generation: make sure that there is only one final node, and that it is actually final.
Diffstat (limited to 'src/GF/Speech/PrSLF.hs')
| -rw-r--r-- | src/GF/Speech/PrSLF.hs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/GF/Speech/PrSLF.hs b/src/GF/Speech/PrSLF.hs index eba50a7e8..1e614d140 100644 --- a/src/GF/Speech/PrSLF.hs +++ b/src/GF/Speech/PrSLF.hs @@ -48,12 +48,16 @@ data SLFEdge = SLFEdge { eId :: Int, eStart :: Int, eEnd :: Int } slfPrinter :: Ident -- ^ Grammar name -> Options -> CGrammar -> String -slfPrinter name opts cfg = prSLF (automatonToSLF $ moveLabelsToNodes $ dfa2nfa $ cfgToFA name opts cfg) "" +slfPrinter name opts cfg = prSLF (automatonToSLF $ mkSLFFA name opts cfg) "" slfGraphvizPrinter :: Ident -- ^ Grammar name -> Options -> CGrammar -> String slfGraphvizPrinter name opts cfg = - prFAGraphviz $ mapStates (fromMaybe "") $ mapTransitions (const "") $ moveLabelsToNodes $ dfa2nfa $ cfgToFA name opts cfg + prFAGraphviz $ mapStates (fromMaybe "") $ mapTransitions (const "") $ mkSLFFA name opts cfg + +mkSLFFA :: Ident -- ^ Grammar name + -> Options -> CGrammar -> FA State (Maybe String) () +mkSLFFA name opts cfg = oneFinalState Nothing () $ moveLabelsToNodes $ dfa2nfa $ cfgToFA name opts cfg automatonToSLF :: FA State (Maybe String) () -> SLF automatonToSLF fa = |
