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

Organized libraries into a hierarchy to prevent namespace conflicts

parent da52aaef
definition module ESMVizTool
import ESMSpec
import ESMVizTool.ESMSpec
import iTasks
class all a | iTask, render, gEq{|*|} a
......
implementation module ESMVizTool
import iTasks
import ESMSpec
import ESMVizTool.ESMSpec
import GenPrint
import Data.Graphviz
import GraphvizVisualization
import Gast.Graphviz.Visualization
derive bimap (,), Maybe
derive class iTask KnownAutomaton, State
......
definition module ESMSpec
definition module ESMVizTool.ESMSpec
import StdClass, StdMaybe
import gast //gen
import StdClass, Data.Maybe
import Gast
:: Traces s i o :== [[SeenTrans s i o]]
:: 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 GenPrint, GenEq, Data.List
import gast
import StdBool, StdList, StdMisc, StdString, StdTuple, StdOrdList
import GenPrint, GenEq, Data.List, Data.Maybe
import Gast
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]
......
definition module gast
definition module Gast
/*
GAST: A Generic Automatic Software Test-system
......@@ -9,4 +9,5 @@ definition module gast
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
......
definition module confSM
definition module Gast.ConfSM
/*
GAST: A Generic Automatic Software Test-system
......@@ -12,7 +12,8 @@ definition module confSM
*/
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]
:: Trans output state = Pt [output] state | Ft ([output]->[state])
......
implementation module confSM
implementation module Gast.ConfSM
/*
GAST: A Generic Automatic Software Test-system
......@@ -11,9 +11,8 @@ implementation module confSM
pieter@cs.ru.nl
*/
import StdEnv, Math.Random, gen, GenEq, testable //, StdLib
import StdMaybe
//import qualified genLibTest
import StdEnv, GenEq, Math.Random, Data.Maybe
import Gast.Gen, Gast.Testable
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]
......
definition module gen
definition module Gast.Gen
/*
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
Radboud Universty, Nijmegen
......
implementation module gen
implementation module Gast.Gen
/*
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
Radboud Universty, Nijmegen
......
definition module genLibTest
definition module Gast.GenLibTest
/*
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
Radboud Universty, Nijmegen
......
implementation module genLibTest
implementation module Gast.GenLibTest
/*
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
Radboud Universty, Nijmegen
......
definition module GraphvizVisualization
definition module Gast.Graphviz.Visualization
/** This module provides the iTasks class for the Graphviz library
**/
import Data.Graphviz, iTasks
......
implementation module GraphvizVisualization
implementation module Gast.Graphviz.Visualization
//import GenVisualize, GenUpdate, GenPrint, GenParse
//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
stdProperty: opertors on logical properties
Gast.StdProperty: opertors on logical properties
Pieter Koopman, 2004
Radboud Universty, Nijmegen
......@@ -11,8 +11,7 @@ definition module stdProperty
pieter@cs.ru.nl
*/
/* import qualified genLibTest */
import testable
import Gast.Testable
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
......
implementation module stdProperty
implementation module Gast.StdProperty
/*
GAST: A Generic Automatic Software Test-system
stdProperty: opertors on logical properties
Gast.StdProperty: opertors on logical properties
Pieter Koopman, 2004..2008
Radboud Universty, Nijmegen
......@@ -11,7 +11,7 @@ implementation module stdProperty
pieter@cs.ru.nl
*/
import testable, StdEnv
import Gast.Testable, StdEnv
from Math.Random import genRandInt
class (==>) infixr 1 b :: b p -> Property | Testable p
......
definition module testable
definition module Gast.Testable
/*
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
Radboud Universty, Nijmegen
......@@ -11,9 +11,9 @@ definition module testable
pieter@cs.ru.nl
*/
import genLibTest
from stdProperty import ::Property // for instance of testable
import gen
import Gast.GenLibTest
from Gast.StdProperty import ::Property // for instance of testable
import Gast.Gen
//--- basics --//
......
implementation module testable
implementation module Gast.Testable
/*
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
Radboud Universty, Nijmegen
......@@ -11,7 +11,7 @@ implementation module testable
pieter@cs.ru.nl
*/
import StdEnv, Math.Random, genLibTest, /* StdTime, */ gen
import StdEnv, Math.Random, Gast.GenLibTest, Gast.Gen
derive gLess Result
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
| NShape_house
| NShape_invtriangle
| NShape_invtrapezium
| NShape_invhouse
| NShape_octagon
| NShape_Mdiamond
| NShape_Msquare
| NShape_Mcircle
| NShape_parallelogram
| NShape_pentagon
| NShape_plainText
| NShape_polygon
| NShape_point
| NShape_rect
| NShape_rectangle
| NShape_septagon
| NShape_trapezium
| NShape_triangle
| NShape_tripleoctagon
| NShape_none
instance toString NodeShape
instance == NodeShape
derive gEq NodeShape // PK++
:: NodeStyle
= NStyle_filled
| NStyle_invis
| NStyle_diagonals
| NStyle_rounded
| NStyle_dashed
| NStyle_dotted
| NStyle_solid
| NStyle_bold
instance toString NodeStyle
instance == NodeStyle
derive gEq NodeStyle // PK++
:: EdgeStyle
= EStyle_solid
| EStyle_bold
| EStyle_dashed
| EStyle_dotted
| EStyle_invis
instance toString EdgeStyle
instance == EdgeStyle
derive gEq EdgeStyle // PK++
:: Color
= RGB Int Int Int
| HSV Real Real Real
| Color String // X11 1.2 color names; see rgb.txt
C_black :== Color "black"
C_white :== Color "white"
C_gray :== Color "gray"
C_red :== Color "red"
C_green :== Color "green"
C_blue :== Color "blue"
C_yellow :== Color "yellow"
instance toString Color
instance == Color
derive gEq Color // PK++
:: ArrowType =
{ closest :: Arrow
, furthest :: Maybe Arrow
}
:: Arrow =
{ open :: Bool
, side :: Maybe Side
, shape :: ArrowShape
}
:: Side
= Side_l
| Side_r
:: ArrowShape
= AShape_box
| AShape_crow
| AShape_diamond
| AShape_dot
| AShape_inv
| AShape_none
| AShape_normal
| AShape_tee
| AShape_vee
instance toString ArrowType
instance == ArrowType
derive gEq ArrowType // PK++
// direction of the edge
:: DirType
= DT_forward
| DT_back
| DT_both
| DT_none
instance toString DirType
instance == DirType
derive gEq DirType // PK++
layersep :== ":\t"
// Peter Divianszky, 2007
// Code extended and adapted for using generics by Peter Achten, 2007, Pieter Koopman 2011
implementation module Graphviz
import StdArray, StdOverloaded, StdList, StdOrdList, StdTuple, StdString, StdBool, StdMisc