Commit 99d6fe39 authored by Bas Lijnse's avatar Bas Lijnse

Organized libraries into a hierarchy to prevent namespace conflicts

parent da52aaef
definition module ESMVizTool definition module ESMVizTool
import ESMSpec import ESMVizTool.ESMSpec
import iTasks import iTasks
class all a | iTask, render, gEq{|*|} a class all a | iTask, render, gEq{|*|} a
......
implementation module ESMVizTool implementation module ESMVizTool
import iTasks import iTasks
import ESMSpec import ESMVizTool.ESMSpec
import GenPrint import GenPrint
import Data.Graphviz import Data.Graphviz
import GraphvizVisualization import Gast.Graphviz.Visualization
derive bimap (,), Maybe derive bimap (,), Maybe
derive class iTask KnownAutomaton, State derive class iTask KnownAutomaton, State
......
definition module ESMSpec definition module ESMVizTool.ESMSpec
import StdClass, StdMaybe import StdClass, Data.Maybe
import gast //gen import Gast
:: Traces s i o :== [[SeenTrans s i o]] :: Traces s i o :== [[SeenTrans s i o]]
:: ESM s i o = { s_0 :: s // the initial state :: ESM s i o = { s_0 :: s // the initial state
......
implementation module ESMSpec implementation module ESMVizTool.ESMSpec
import StdBool, StdList, StdMaybe, StdMisc, StdString, StdTuple, StdOrdList import StdBool, StdList, StdMisc, StdString, StdTuple, StdOrdList
import GenPrint, GenEq, Data.List import GenPrint, GenEq, Data.List, Data.Maybe
import gast import Gast
tupToSpec :: (state input -> [([output],state)]) -> Spec state input output // conversion for old specificaions tupToSpec :: (state input -> [([output],state)]) -> Spec state input output // conversion for old specificaions
tupToSpec fun = \s i = [Pt o t \\ (o,t) <- fun s i] tupToSpec fun = \s i = [Pt o t \\ (o,t) <- fun s i]
......
definition module gast definition module Gast
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
...@@ -9,4 +9,5 @@ definition module gast ...@@ -9,4 +9,5 @@ definition module gast
pieter@cs.ru.nl pieter@cs.ru.nl
*/ */
import Math.Random, gen, GenEq, genLibTest, testable, confSM, stdProperty import Math.Random, GenEq
import Gast.Gen, Gast.GenLibTest, Gast.Testable, Gast.StdProperty, Gast.ConfSM
implementation module gast implementation module Gast
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
...@@ -8,4 +8,4 @@ implementation module gast ...@@ -8,4 +8,4 @@ implementation module gast
The Netherlands The Netherlands
pieter@cs.ru.nl pieter@cs.ru.nl
*/ */
\ No newline at end of file
definition module confSM definition module Gast.ConfSM
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
...@@ -12,7 +12,8 @@ definition module confSM ...@@ -12,7 +12,8 @@ definition module confSM
*/ */
import StdFile import StdFile
import Math.Random, gen,/* genLibTest,*/ testable, StdMaybe import Math.Random, Data.Maybe
import Gast.Testable, Gast.Gen
:: Spec state input output :== state input -> [Trans output state] :: Spec state input output :== state input -> [Trans output state]
:: Trans output state = Pt [output] state | Ft ([output]->[state]) :: Trans output state = Pt [output] state | Ft ([output]->[state])
......
implementation module confSM implementation module Gast.ConfSM
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
...@@ -11,9 +11,8 @@ implementation module confSM ...@@ -11,9 +11,8 @@ implementation module confSM
pieter@cs.ru.nl pieter@cs.ru.nl
*/ */
import StdEnv, Math.Random, gen, GenEq, testable //, StdLib import StdEnv, GenEq, Math.Random, Data.Maybe
import StdMaybe import Gast.Gen, Gast.Testable
//import qualified genLibTest
toSpec :: (state input -> [(state,[output])]) -> Spec state input output // conversion for old specificaions toSpec :: (state input -> [(state,[output])]) -> Spec state input output // conversion for old specificaions
toSpec fun = \s i = [Pt o t \\ (t,o) <- fun s i] toSpec fun = \s i = [Pt o t \\ (t,o) <- fun s i]
......
definition module gen definition module Gast.Gen
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
gen: generic generation of values of a type Gast.Gen: generic generation of values of a type
Pieter Koopman, 2004 Pieter Koopman, 2004
Radboud Universty, Nijmegen Radboud Universty, Nijmegen
......
implementation module gen implementation module Gast.Gen
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
gen: generic generation of values of a type Gast.Gen: generic generation of values of a type
Pieter Koopman, 2004 Pieter Koopman, 2004
Radboud Universty, Nijmegen Radboud Universty, Nijmegen
......
definition module genLibTest definition module Gast.GenLibTest
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
genLibtest: library for generic testing: showing and comparing values Gast.GenLibTest: library for generic testing: showing and comparing values
Pieter Koopman, 2004 Pieter Koopman, 2004
Radboud Universty, Nijmegen Radboud Universty, Nijmegen
......
implementation module genLibTest implementation module Gast.GenLibTest
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
genLibtest: library for generic testing: showing and comparing values Gast.GenLibTest: library for generic testing: showing and comparing values
Pieter Koopman, 2004 Pieter Koopman, 2004
Radboud Universty, Nijmegen Radboud Universty, Nijmegen
......
definition module GraphvizVisualization definition module Gast.Graphviz.Visualization
/** This module provides the iTasks class for the Graphviz library /** This module provides the iTasks class for the Graphviz library
**/ **/
import Data.Graphviz, iTasks import Data.Graphviz, iTasks
......
implementation module GraphvizVisualization implementation module Gast.Graphviz.Visualization
//import GenVisualize, GenUpdate, GenPrint, GenParse //import GenVisualize, GenUpdate, GenPrint, GenParse
//import iTasks.Framework.Generic, iTasks.Framework.UIDefinition, iTasks.Framework.IWorld, iTasks.API.Core.Types //import iTasks.Framework.Generic, iTasks.Framework.UIDefinition, iTasks.Framework.IWorld, iTasks.API.Core.Types
......
definition module stdProperty definition module Gast.StdProperty
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
stdProperty: opertors on logical properties Gast.StdProperty: opertors on logical properties
Pieter Koopman, 2004 Pieter Koopman, 2004
Radboud Universty, Nijmegen Radboud Universty, Nijmegen
...@@ -11,8 +11,7 @@ definition module stdProperty ...@@ -11,8 +11,7 @@ definition module stdProperty
pieter@cs.ru.nl pieter@cs.ru.nl
*/ */
/* import qualified genLibTest */ import Gast.Testable
import testable
class (\/) infixr 2 a b :: !a b -> Property // Conditional or of arg1 and arg2 class (\/) infixr 2 a b :: !a b -> Property // Conditional or of arg1 and arg2
class (/\) infixr 3 a b :: !a b -> Property // Conditional and of arg1 and arg2 class (/\) infixr 3 a b :: !a b -> Property // Conditional and of arg1 and arg2
......
implementation module stdProperty implementation module Gast.StdProperty
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
stdProperty: opertors on logical properties Gast.StdProperty: opertors on logical properties
Pieter Koopman, 2004..2008 Pieter Koopman, 2004..2008
Radboud Universty, Nijmegen Radboud Universty, Nijmegen
...@@ -11,7 +11,7 @@ implementation module stdProperty ...@@ -11,7 +11,7 @@ implementation module stdProperty
pieter@cs.ru.nl pieter@cs.ru.nl
*/ */
import testable, StdEnv import Gast.Testable, StdEnv
from Math.Random import genRandInt from Math.Random import genRandInt
class (==>) infixr 1 b :: b p -> Property | Testable p class (==>) infixr 1 b :: b p -> Property | Testable p
......
definition module testable definition module Gast.Testable
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
testable: the test algorithm for logical properties Gast.Testable: the test algorithm for logical properties
Pieter Koopman, 2002-2007 Pieter Koopman, 2002-2007
Radboud Universty, Nijmegen Radboud Universty, Nijmegen
...@@ -11,9 +11,9 @@ definition module testable ...@@ -11,9 +11,9 @@ definition module testable
pieter@cs.ru.nl pieter@cs.ru.nl
*/ */
import genLibTest import Gast.GenLibTest
from stdProperty import ::Property // for instance of testable from Gast.StdProperty import ::Property // for instance of testable
import gen import Gast.Gen
//--- basics --// //--- basics --//
......
implementation module testable implementation module Gast.Testable
/* /*
GAST: A Generic Automatic Software Test-system GAST: A Generic Automatic Software Test-system
testable: the test algorithm for logical properties Gast.Testable: the test algorithm for logical properties
Pieter Koopman, 2002-2008 Pieter Koopman, 2002-2008
Radboud Universty, Nijmegen Radboud Universty, Nijmegen
...@@ -11,7 +11,7 @@ implementation module testable ...@@ -11,7 +11,7 @@ implementation module testable
pieter@cs.ru.nl pieter@cs.ru.nl
*/ */
import StdEnv, Math.Random, genLibTest, /* StdTime, */ gen import StdEnv, Math.Random, Gast.GenLibTest, Gast.Gen
derive gLess Result derive gLess Result
instance == Result where (==) x y = x===y instance == Result where (==) x y = x===y
......
// Peter Divianszky, 2007
// Code extended and adapted by Peter Achten, 2007, Pieter Koopman 2010
definition module Graphviz
from StdOverloaded import class toString
import StdMaybe
import GenEq
// A digraph contains a title and a list of node definitions
:: Digraph
= Digraph String [GraphAttribute] [NodeDef] (Maybe SelectedItem)
:: SelectedItem
= SelectedItem Int
digraphTitle :: !Digraph -> String
digraphAtts :: !Digraph -> [GraphAttribute]
digraphNodes :: !Digraph -> [NodeDef]
digraphSelectedItem :: !Digraph -> Maybe SelectedItem
// A node definition contains a unique identifier (an integer), a list of node attributes and a list of edge definitions.
// An edge definition contains an identifier (the id of the end node and edge attributes).
:: NodeDef
= NodeDef !Int ![NodeState] ![NodeAttribute] [EdgeDef]
:: EdgeDef
:== (!Int,![EdgeAttribute])
:: NodeState
= NStAllEdgesFound !Bool // all edges of this node are known
// Convert digraph into list of strings.
// The strings are lines of the graphviz representation of the graph.
printDigraph :: !Digraph -> [String]
:: GraphAttribute
= GAtt_Damping Real
| GAtt_K Real
| GAtt_URL String
| GAtt_bb Rect
| GAtt_bgcolor Color
| GAtt_center Bool
| GAtt_charset String
| GAtt_clusterrank ClusterMode
| GAtt_colorscheme String
| GAtt_comment String
| GAtt_compound Bool
| GAtt_concentrate Bool
| GAtt_defaultdist Real
| GAtt_dim Int
// | GAtt_diredgeconstraints ... PA: ignored, neato only
| GAtt_dpi Real
| GAtt_epsilon Real
| GAtt_esep Real
| GAtt_fontcolor Color
| GAtt_fontname String
| GAtt_fontnames String
| GAtt_fontpath String
| GAtt_fontsize Real
| GAtt_label String
| GAtt_labeljust String
| GAtt_labelloc String
| GAtt_landscape Bool
| GAtt_layers LayerList
| GAtt_layersep String
| GAtt_levelsgap Real
| GAtt_lp DotPoint
| GAtt_margin Margin
| GAtt_maxiter Int
| GAtt_mclimit Real
| GAtt_mindist Real
| GAtt_mode String
| GAtt_model String
| GAtt_mosek Bool
| GAtt_nodesep Real
| GAtt_nojustify Bool
| GAtt_normalize Bool
| GAtt_nslimit Real
| GAtt_nslimit1 Real
| GAtt_ordering String
| GAtt_orientation String
| GAtt_outputorder OutputMode
| GAtt_pad Pad
| GAtt_page Pointf
| GAtt_pagedir PageDir
| GAtt_quantum Real
| GAtt_rank RankType
| GAtt_rankdir RankDir
| GAtt_ranksep Real
| GAtt_ratio Ratio
| GAtt_remincross Bool
| GAtt_resolution Real
| GAtt_root String
| GAtt_rotate Int
| GAtt_searchsize Int
| GAtt_showboxes Int
| GAtt_size Sizef //Pointf // PA++
// | GAtt_splines PA: skipped for the time being
| GAtt_start StartType
| GAtt_stylesheet String
| GAtt_target String
| GAtt_truecolor Bool
| GAtt_viewport ViewPort
| GAtt_voro_margin Real
:: NodeAttribute
= NAtt_URL String
| NAtt_color Color
| NAtt_colorscheme String
| NAtt_comment String
| NAtt_distortion Real
| NAtt_fillcolor Color
| NAtt_fixedsize Bool
| NAtt_fontcolor Color
| NAtt_fontname String
| NAtt_fontsize Real
| NAtt_group String
| NAtt_height Real
| NAtt_label String
| NAtt_layer LayerRange
| NAtt_margin Margin
| NAtt_nojustify Bool
| NAtt_orientation Real
| NAtt_peripheries Int
| NAtt_pin Bool
// | NAtt_pos ... PA: ignored for the time being
| NAtt_rects Rect
| NAtt_regular Bool
| NAtt_samplepoints Int
| NAtt_shape NodeShape
| NAtt_shapefile String
| NAtt_showboxes Int
| NAtt_sides Int
| NAtt_skew Real
| NAtt_style NodeStyle
| NAtt_target String
| NAtt_tooltip String
| NAtt_width Real
| NAtt_z Real
:: EdgeAttribute
= EAtt_URL String
| EAtt_arrowhead ArrowType
| EAtt_arrowsize Real
| EAtt_arrowtail ArrowType
| EAtt_color Color
| EAtt_colorscheme String
| EAtt_comment String
| EAtt_constraint Bool
| EAtt_decorate Bool
| EAtt_dir DirType
| EAtt_edgeURL String
| EAtt_edgehref String
| EAtt_edgetarget String
| EAtt_edgetooltip String
| EAtt_fontcolor Color
| EAtt_fontname String
| EAtt_fontsize Real
| EAtt_headURL String
| EAtt_headclip Bool
| EAtt_headhref String
| EAtt_headlabel String
| EAtt_headport PortPos
| EAtt_headtarget String
| EAtt_headtooltip String
| EAtt_href String
| EAtt_label String
| EAtt_labelURL String
| EAtt_labelangle Real
| EAtt_labeldistance Real
| EAtt_labelfloat Bool
| EAtt_labelfontcolor Color
| EAtt_labelfontname String
| EAtt_labelfontsize Real
| EAtt_labelhref String
| EAtt_labeltarget String
| EAtt_labeltooltip String
| EAtt_layer LayerRange
| EAtt_len Real
| EAtt_lhead String
| EAtt_lp DotPoint
| EAtt_ltail String
| EAtt_minlen Int
| EAtt_nojustify Bool
// | EAtt_pos PA: ignored for the time being
| EAtt_samehead String
| EAtt_sametail String
| EAtt_showboxes Int
| EAtt_style EdgeStyle
| EAtt_tailURL String
| EAtt_tailclip Bool
| EAtt_tailhref String
| EAtt_taillabel String
| EAtt_tailport PortPos
| EAtt_tailtarget String
| EAtt_tailtooltip String
| EAtt_target String
| EAtt_tooltip String
| EAtt_weight Real
:: ClusterMode
= CM_local | CM_global | CM_none
:: CompassPoint
= CP_n | CP_ne | CP_e | CP_se | CP_s | CP_sw | CP_w | CP_nw
:: DotPoint
= DotPoint Real Real Bool
:: LayerId
= LayerAll
| LayerNr Int
| LayerName String
:: LayerList
= LayerList [String]
:: LayerRange
= LayerRange LayerId [LayerId]
:: Margin
= SingleMargin Real
| DoubleMargin Real Real
:: OutputMode
= OM_breadthfirst | OM_nodesfirst | OM_edgesfirst
:: Pad
= SinglePad Real
| DoublePad Real Real
:: PageDir
= PD_BL | PD_BR | PD_TL | PD_TR | PD_RB | PD_RT | PD_LB | PD_LT
:: Pointf
= Pointf Real Real
:: PortPos // PA: for now only compass points are supported
:== CompassPoint
:: RankDir
= RD_TB | RD_LR | RD_BT | RD_RL
:: RankType
= RT_same | RT_min | RT_source | RT_max | RT_sink
:: Ratio
= AspectRatio Real
| R_fill
| R_compress
| R_expand
| R_auto
:: Rect
= {llx :: Int,lly :: Int, urx :: Int, ury :: Int}
:: Sizef // PA++
= Sizef Real Real Bool
:: StartStyle
= SS_regular | SS_self | SS_random
:: StartType
= { startStyle :: Maybe StartStyle
, startSeed :: Maybe Int
}
:: ViewPort
= { vp_W :: Real
, vp_H :: Real
, vp_Z :: Maybe Real
, vp_xy :: Maybe Pointf
}
pointNode :: [NodeAttribute] // attributes of a point-shaped node
hiddenNode :: [NodeAttribute] // attributes of a hidden node
:: NodeShape
= NShape_box
| NShape_circle
| NShape_diamond
| NShape_doublecircle
| NShape_doubleoctagon
| NShape_egg
| NShape_ellipse
| NShape_hexagon