summaryrefslogtreecommitdiff
path: root/src/GF/Shell.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Shell.hs')
-rw-r--r--src/GF/Shell.hs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/GF/Shell.hs b/src/GF/Shell.hs
index c98adfb66..1874bc4d5 100644
--- a/src/GF/Shell.hs
+++ b/src/GF/Shell.hs
@@ -30,6 +30,7 @@ import GetTree
import ShellCommands
+import VisualizeGrammar (visualizeCanonGrammar, visualizeSourceGrammar)
import API
import IOGrammar
import Compile
@@ -244,6 +245,13 @@ execC co@(comm, opts0) sa@((st,(h,_)),a) = checkOptions st co >> case comm of
CPrintMultiGrammar -> do
sa' <- changeState purgeShellState sa
returnArg (AString (optPrintMultiGrammar opts cgr)) sa'
+ CShowGrammarGraph -> do
+ ---- sa' <- changeState purgeShellState sa
+ let g0 = writeFile "grphtmp.dot" $ visualizeCanonGrammar cgr
+ g1 = system "dot -Tps grphtmp.dot >grphtmp.ps"
+ g2 = system "gv grphtmp.ps &"
+ g3 = return () ---- system "rm -f grphtmp.*"
+ justOutput opts (g0 >> g1 >> g2 >> g3 >> return ()) sa
CPrintSourceGrammar ->
returnArg (AString (visualizeSourceGrammar src)) sa