somme ex2 and ex3 text
[tt2015.git] / a3 / code / Gast / Graphviz.dcl
diff --git a/a3/code/Gast/Graphviz.dcl b/a3/code/Gast/Graphviz.dcl
deleted file mode 100644 (file)
index ea12a6a..0000000
+++ /dev/null
@@ -1,371 +0,0 @@
-// Péter Diviánszky, 2007\r
-// Code extended and adapted by Peter Achten, 2007\r
-\r
-definition module Graphviz\r
-\r
-//from   StdOverloaded import class ==, class toString\r
-from   StdOverloaded import class toString\r
-import StdMaybe\r
-import ESMSpec\r
-import GenEq\r
-\r
-// A digraph contains a title and a list of node definitions\r
-:: Digraph \r
-    = Digraph String [GraphAttribute] [NodeDef] (Maybe SelectedItem)\r
-:: SelectedItem\r
-       = Node Int\r
-\r
-digraphTitle           :: !Digraph -> String\r
-digraphAtts                    :: !Digraph -> [GraphAttribute]\r
-digraphNodes           :: !Digraph -> [NodeDef]\r
-digraphSelectedItem    :: !Digraph -> Maybe SelectedItem\r
-\r
-// A node definition contains a unique identifier (an integer), a list of node attributes and a list of edge definitions.\r
-// An edge definition contains an identifier (the id of the end node and edge attributes).\r
-:: NodeDef \r
-    = NodeDef !Int ![NodeState] ![NodeAttribute] [EdgeDef]\r
-:: EdgeDef\r
-    :== (!Int,![EdgeAttribute])\r
-:: NodeState\r
-       = NStAllEdgesFound !Bool                // all edges of this node are known\r
-\r
-// Convert digraph into list of strings.\r
-// The strings are lines of the graphviz representation of the graph.\r
-printDigraph :: !Digraph -> [String]\r
-\r
-:: GraphAttribute\r
-       = GAtt_Damping        Real\r
-       | GAtt_K              Real\r
-       | GAtt_URL            String\r
-       | GAtt_bb             Rect\r
-       | GAtt_bgcolor        Color\r
-       | GAtt_center         Bool\r
-       | GAtt_charset        String\r
-       | GAtt_clusterrank    ClusterMode\r
-       | GAtt_colorscheme    String\r
-       | GAtt_comment        String\r
-       | GAtt_compound       Bool\r
-       | GAtt_concentrate    Bool\r
-       | GAtt_defaultdist    Real\r
-       | GAtt_dim            Int\r
-//     | GAtt_diredgeconstraints ... PA: ignored, neato only\r
-       | GAtt_dpi            Real\r
-       | GAtt_epsilon        Real\r
-       | GAtt_esep           Real\r
-       | GAtt_fontcolor      Color\r
-       | GAtt_fontname       String\r
-       | GAtt_fontnames      String\r
-       | GAtt_fontpath       String\r
-       | GAtt_fontsize       Real\r
-       | GAtt_label          String\r
-       | GAtt_labeljust      String\r
-       | GAtt_labelloc       String\r
-       | GAtt_landscape      Bool\r
-       | GAtt_layers         LayerList\r
-       | GAtt_layersep       String\r
-       | GAtt_levelsgap      Real\r
-       | GAtt_lp             DotPoint\r
-       | GAtt_margin         Margin\r
-       | GAtt_maxiter        Int\r
-       | GAtt_mclimit        Real\r
-       | GAtt_mindist        Real\r
-       | GAtt_mode           String\r
-       | GAtt_model          String\r
-       | GAtt_mosek          Bool\r
-       | GAtt_nodesep        Real\r
-       | GAtt_nojustify      Bool\r
-       | GAtt_normalize      Bool\r
-       | GAtt_nslimit        Real\r
-       | GAtt_nslimit1       Real\r
-       | GAtt_ordering       String\r
-       | GAtt_orientation    String\r
-       | GAtt_outputorder    OutputMode\r
-       | GAtt_pad            Pad\r
-       | GAtt_page           Pointf\r
-       | GAtt_pagedir        PageDir\r
-       | GAtt_quantum        Real\r
-       | GAtt_rank           RankType\r
-       | GAtt_rankdir        RankDir\r
-       | GAtt_ranksep        Real\r
-       | GAtt_ratio          Ratio\r
-       | GAtt_remincross     Bool\r
-       | GAtt_resolution     Real\r
-       | GAtt_root           String\r
-       | GAtt_rotate         Int\r
-       | GAtt_searchsize     Int\r
-       | GAtt_showboxes      Int\r
-       | GAtt_size           Sizef //Pointf            // PA++\r
-//     | GAtt_splines        PA: skipped for the time being\r
-       | GAtt_start          StartType\r
-       | GAtt_stylesheet     String\r
-       | GAtt_target         String\r
-       | GAtt_truecolor      Bool\r
-       | GAtt_viewport       ViewPort\r
-       | GAtt_voro_margin    Real\r
-:: NodeAttribute\r
-    = NAtt_URL            String\r
-    | NAtt_color          Color\r
-    | NAtt_colorscheme    String\r
-    | NAtt_comment        String\r
-    | NAtt_distortion     Real\r
-    | NAtt_fillcolor      Color\r
-    | NAtt_fixedsize      Bool\r
-    | NAtt_fontcolor      Color\r
-    | NAtt_fontname       String\r
-    | NAtt_fontsize       Real\r
-    | NAtt_group          String\r
-    | NAtt_height         Real\r
-    | NAtt_label          String\r
-    | NAtt_layer          LayerRange\r
-    | NAtt_margin         Margin\r
-    | NAtt_nojustify      Bool\r
-    | NAtt_orientation    Real\r
-    | NAtt_peripheries    Int\r
-    | NAtt_pin            Bool\r
-//  | NAtt_pos ...        PA: ignored for the time being\r
-    | NAtt_rects          Rect\r
-    | NAtt_regular        Bool\r
-    | NAtt_samplepoints   Int\r
-    | NAtt_shape          NodeShape\r
-    | NAtt_shapefile      String\r
-    | NAtt_showboxes      Int\r
-    | NAtt_sides          Int\r
-    | NAtt_skew           Real\r
-    | NAtt_style          NodeStyle\r
-    | NAtt_target         String\r
-    | NAtt_tooltip        String\r
-    | NAtt_width          Real\r
-    | NAtt_z              Real\r
-:: EdgeAttribute\r
-    = EAtt_URL            String\r
-    | EAtt_arrowhead      ArrowType\r
-    | EAtt_arrowsize      Real\r
-    | EAtt_arrowtail      ArrowType\r
-    | EAtt_color          Color\r
-    | EAtt_colorscheme    String\r
-    | EAtt_comment        String\r
-    | EAtt_constraint     Bool\r
-    | EAtt_decorate       Bool\r
-    | EAtt_dir            DirType\r
-    | EAtt_edgeURL        String\r
-    | EAtt_edgehref       String\r
-    | EAtt_edgetarget     String\r
-    | EAtt_edgetooltip    String\r
-    | EAtt_fontcolor      Color\r
-    | EAtt_fontname       String\r
-    | EAtt_fontsize       Real\r
-    | EAtt_headURL        String\r
-    | EAtt_headclip       Bool\r
-    | EAtt_headhref       String\r
-    | EAtt_headlabel      String\r
-    | EAtt_headport       PortPos\r
-    | EAtt_headtarget     String\r
-    | EAtt_headtooltip    String\r
-    | EAtt_href           String\r
-    | EAtt_label          String\r
-    | EAtt_labelURL       String\r
-    | EAtt_labelangle     Real\r
-    | EAtt_labeldistance  Real\r
-    | EAtt_labelfloat     Bool\r
-    | EAtt_labelfontcolor Color\r
-    | EAtt_labelfontname  String\r
-    | EAtt_labelfontsize  Real\r
-    | EAtt_labelhref      String\r
-    | EAtt_labeltarget    String\r
-    | EAtt_labeltooltip   String\r
-    | EAtt_layer          LayerRange\r
-    | EAtt_len            Real\r
-    | EAtt_lhead          String\r
-    | EAtt_lp             DotPoint\r
-    | EAtt_ltail          String\r
-    | EAtt_minlen         Int\r
-    | EAtt_nojustify      Bool\r
-//  | EAtt_pos                 PA: ignored for the time being\r
-       | EAtt_samehead       String\r
-       | EAtt_sametail       String\r
-       | EAtt_showboxes      Int\r
-       | EAtt_style          EdgeStyle\r
-       | EAtt_tailURL        String\r
-       | EAtt_tailclip       Bool\r
-       | EAtt_tailhref       String\r
-       | EAtt_taillabel      String\r
-       | EAtt_tailport       PortPos\r
-       | EAtt_tailtarget     String\r
-       | EAtt_tailtooltip    String\r
-       | EAtt_target         String\r
-       | EAtt_tooltip        String\r
-       | EAtt_weight         Real\r
-:: ClusterMode\r
-       = CM_local | CM_global | CM_none\r
-:: CompassPoint\r
-       = CP_n | CP_ne | CP_e | CP_se | CP_s | CP_sw | CP_w | CP_nw\r
-:: DotPoint\r
-       = DotPoint Real Real Bool\r
-:: LayerId\r
-    = LayerAll\r
-    | LayerNr   Int\r
-    | LayerName String\r
-:: LayerList\r
-       = LayerList [String]\r
-:: LayerRange\r
-    = LayerRange LayerId [LayerId]\r
-:: Margin\r
-    = SingleMargin Real\r
-    | DoubleMargin Real Real\r
-:: OutputMode\r
-       = OM_breadthfirst | OM_nodesfirst | OM_edgesfirst\r
-:: Pad\r
-       = SinglePad Real\r
-       | DoublePad Real Real\r
-:: PageDir\r
-       = PD_BL | PD_BR | PD_TL | PD_TR | PD_RB | PD_RT | PD_LB | PD_LT\r
-:: Pointf\r
-       = Pointf Real Real\r
-:: PortPos                             // PA: for now only compass points are supported\r
-       :== CompassPoint\r
-:: RankDir\r
-       = RD_TB | RD_LR | RD_BT | RD_RL\r
-:: RankType\r
-       = RT_same | RT_min | RT_source | RT_max | RT_sink\r
-:: Ratio\r
-       = AspectRatio Real\r
-       | R_fill\r
-       | R_compress\r
-       | R_expand\r
-       | R_auto\r
-:: Rect\r
-    = {llx :: Int,lly :: Int, urx :: Int, ury :: Int}\r
-:: Sizef               // PA++\r
-       = Sizef Real Real Bool\r
-:: StartStyle\r
-       = SS_regular | SS_self | SS_random\r
-:: StartType\r
-       = { startStyle :: Maybe StartStyle\r
-         , startSeed  :: Maybe Int\r
-         }\r
-:: ViewPort\r
-       = { vp_W       :: Real\r
-         , vp_H       :: Real\r
-         , vp_Z       :: Maybe Real\r
-         , vp_xy      :: Maybe Pointf\r
-         }\r
-\r
-pointNode           :: [NodeAttribute] // attributes of a point-shaped node\r
-hiddenNode          :: [NodeAttribute] // attributes of a hidden node\r
-\r
-\r
-:: NodeShape \r
-    = NShape_box\r
-    | NShape_circle \r
-    | NShape_diamond\r
-    | NShape_doublecircle\r
-    | NShape_doubleoctagon\r
-    | NShape_egg\r
-    | NShape_ellipse \r
-    | NShape_hexagon\r
-    | NShape_house\r
-    | NShape_invtriangle\r
-    | NShape_invtrapezium\r
-    | NShape_invhouse\r
-    | NShape_octagon\r
-    | NShape_Mdiamond\r
-    | NShape_Msquare\r
-    | NShape_Mcircle\r
-    | NShape_parallelogram \r
-    | NShape_pentagon\r
-    | NShape_plainText\r
-    | NShape_polygon\r
-    | NShape_point \r
-    | NShape_rect\r
-    | NShape_rectangle\r
-    | NShape_septagon\r
-    | NShape_trapezium\r
-    | NShape_triangle\r
-    | NShape_tripleoctagon\r
-    | NShape_none\r
-instance toString NodeShape\r
-instance ==       NodeShape\r
-derive gEq NodeShape // PK++\r
-\r
-::  NodeStyle\r
-    = NStyle_filled\r
-    | NStyle_invis\r
-    | NStyle_diagonals\r
-    | NStyle_rounded\r
-    | NStyle_dashed\r
-    | NStyle_dotted\r
-    | NStyle_solid\r
-    | NStyle_bold\r
-instance toString NodeStyle\r
-instance ==       NodeStyle\r
-derive gEq NodeStyle // PK++\r
-\r
-:: EdgeStyle \r
-    = EStyle_solid \r
-    | EStyle_bold\r
-    | EStyle_dashed\r
-    | EStyle_dotted\r
-    | EStyle_invis\r
-instance toString EdgeStyle\r
-instance ==       EdgeStyle\r
-derive gEq EdgeStyle // PK++\r
-\r
-:: Color \r
-    = RGB   Int  Int  Int\r
-    | HSV   Real Real Real\r
-    | Color String          // X11 1.2 color names; see rgb.txt\r
-\r
-C_black   :== Color "black"\r
-C_white   :== Color "white"\r
-C_gray    :== Color "gray"\r
-C_red     :== Color "red"\r
-C_green   :== Color "green"\r
-C_blue    :== Color "blue"\r
-C_yellow  :== Color "yellow"\r
-\r
-instance toString Color\r
-instance ==       Color\r
-derive gEq Color // PK++\r
-\r
-:: ArrowType =\r
-    { closest       :: Arrow\r
-    , furthest      :: Maybe Arrow\r
-    }\r
-:: Arrow =\r
-    { open          :: Bool\r
-    , side          :: Maybe Side\r
-    , shape         :: ArrowShape\r
-    }\r
-:: Side\r
-    = Side_l\r
-    | Side_r\r
-:: ArrowShape\r
-    = AShape_box\r
-    | AShape_crow\r
-    | AShape_diamond\r
-    | AShape_dot\r
-    | AShape_inv\r
-    | AShape_none\r
-    | AShape_normal\r
-    | AShape_tee\r
-    | AShape_vee\r
-instance toString ArrowType\r
-instance ==       ArrowType\r
-derive gEq ArrowType // PK++\r
-\r
-\r
-// direction of the edge\r
-:: DirType\r
-    = DT_forward \r
-    | DT_back \r
-    | DT_both \r
-    | DT_none\r
-instance toString DirType\r
-instance ==       DirType\r
-derive gEq DirType // PK++\r
-\r
-layersep :== ":\t"\r
-\r
-mkDigraph :: String (KnownAutomaton s i o,s,[s],[s],[SeenTrans s i o],[SeenTrans s i o]) -> Digraph | render, gEq{|*|} s \r
-                                                                                                                                                                                                       & render, gEq{|*|} i \r
-                                                                                                                                                                                                       & render, gEq{|*|} o\r