packages feed

CSPM-Frontend 0.9.0.6 → 0.9.2.0

raw patch · 7 files changed

+124/−102 lines, 7 filesdep +dlistdep +eitherdep +filepathdep ~containersdep ~ghc-primdep ~sybPVP ok

version bump matches the API change (PVP)

Dependencies added: dlist, either, filepath, transformers

Dependency ranges changed: containers, ghc-prim, syb

API changes (from Hackage documentation)

+ Language.CSPM.Frontend: lexIncludePath :: FilePath -> String -> IO (Either LexError [Token])
+ Language.CSPM.LexHelper: instance Show FilePart
+ Language.CSPM.LexHelper: lexIncludePath :: FilePath -> String -> IO (Either LexError [Token])

Files

CSPM-Frontend.cabal view
@@ -1,5 +1,5 @@ Name:                CSPM-Frontend-Version:             0.9.0.6+Version:             0.9.2.0  Synopsis:            A CSP-M parser compatible with FDR-2.91 @@ -13,10 +13,10 @@ License:             BSD3 category:            Language,Formal Methods,Concurrency License-File:        LICENSE-Author:              Marc Fontaine 2007 - 2012-Maintainer:          Marc Fontaine <Marc.Fontaine@gmx.de>, me@dobrikov.biz+Author:              Marc Fontaine 2007 - 2013+Maintainer:          Marc Fontaine <Marc.Fontaine@gmx.de>, Ivaylo Dobrikov <dobrikov84@yahoo.com> Stability:           maintained-Tested-With:         GHC == 7.4.1+Tested-With:         GHC == 7.6.3  cabal-Version:       >= 1.14 build-type: Simple@@ -24,15 +24,20 @@ library   Build-Depends:     base >=4.0 && < 5.0-    ,containers >= 0.4 && < 0.5+    ,containers >= 0.5 && < 0.6     ,array >= 0.4 && < 0.5     ,parsec2 >= 1.0.0 && < 1.1.0     ,prettyclass >= 1.0 && < 1.1     ,mtl >= 2.1 && < 2.2-    ,syb >= 0.3 && < 0.4-    ,ghc-prim >=0.2 && < 0.3+    ,either >= 3.4 && < 3.5+    ,transformers >= 0.3 && < 0.4+    ,dlist >= 0.5 && < 0.6+    ,syb >= 0.4 && < 0.5+    ,ghc-prim >=0.3 && < 0.4+    ,filepath >=1.3+   Default-Language: Haskell2010-  Other-Extensions: +  Other-Extensions:      DeriveDataTypeable --     ,DeriveGeneric   GHC-Options: -funbox-strict-fields -O2 -Wall
dist/build/Language/CSPM/Lexer.hs view
@@ -47,7 +47,7 @@ alex_deflt :: AlexAddr alex_deflt = AlexA# "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3f\x00\x3f\x00\xff\xff\xff\xff\x48\x00\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x00\xcc\x00\xcc\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# -alex_accept = listArray (0::Int,373) [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[(AlexAcc (alex_action_0))],[(AlexAcc (alex_action_1))],[(AlexAcc (alex_action_2))],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_6))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_9))],[(AlexAcc (alex_action_10))],[(AlexAcc (alex_action_11))],[(AlexAcc (alex_action_12))],[(AlexAcc (alex_action_13))],[(AlexAcc (alex_action_14))],[(AlexAcc (alex_action_15))],[(AlexAcc (alex_action_16))],[(AlexAcc (alex_action_17))],[(AlexAcc (alex_action_18))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_21))],[(AlexAcc (alex_action_22))],[(AlexAcc (alex_action_23))],[(AlexAcc (alex_action_24))],[(AlexAcc (alex_action_25))],[(AlexAcc (alex_action_26))],[(AlexAcc (alex_action_27))],[(AlexAcc (alex_action_28))],[(AlexAcc (alex_action_29))],[(AlexAcc (alex_action_30))],[(AlexAcc (alex_action_31))],[(AlexAcc (alex_action_32))],[(AlexAcc (alex_action_33))],[(AlexAcc (alex_action_34))],[(AlexAcc (alex_action_35))],[(AlexAcc (alex_action_36))],[(AlexAcc (alex_action_37))],[(AlexAcc (alex_action_38))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_44))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_46))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_49))],[(AlexAcc (alex_action_50))],[(AlexAcc (alex_action_51))],[(AlexAcc (alex_action_52))],[(AlexAcc (alex_action_53))],[(AlexAcc (alex_action_54))],[(AlexAcc (alex_action_55))],[(AlexAcc (alex_action_56))],[(AlexAcc (alex_action_57))],[(AlexAcc (alex_action_58))],[(AlexAcc (alex_action_59))],[(AlexAcc (alex_action_60))],[(AlexAcc (alex_action_61))],[(AlexAcc (alex_action_62))],[(AlexAcc (alex_action_63))],[(AlexAcc (alex_action_64))],[(AlexAcc (alex_action_65))],[(AlexAcc (alex_action_66))],[(AlexAcc (alex_action_67))],[(AlexAcc (alex_action_68))],[(AlexAcc (alex_action_69))],[(AlexAcc (alex_action_70))],[(AlexAcc (alex_action_71))],[(AlexAcc (alex_action_72))],[(AlexAcc (alex_action_73))],[(AlexAcc (alex_action_74))],[(AlexAcc (alex_action_75))],[(AlexAcc (alex_action_76))],[(AlexAcc (alex_action_77))],[(AlexAcc (alex_action_78))],[(AlexAcc (alex_action_79))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_84))],[(AlexAcc (alex_action_85))],[(AlexAcc (alex_action_86))],[(AlexAcc (alex_action_87))],[(AlexAcc (alex_action_88))],[(AlexAcc (alex_action_89))],[(AlexAcc (alex_action_90))],[(AlexAcc (alex_action_91))],[(AlexAcc (alex_action_92))],[(AlexAcc (alex_action_93))],[(AlexAcc (alex_action_94))],[(AlexAcc (alex_action_95))],[(AlexAcc (alex_action_96))],[(AlexAcc (alex_action_97))],[(AlexAcc (alex_action_98))],[(AlexAcc (alex_action_99))],[(AlexAcc (alex_action_100))],[(AlexAcc (alex_action_101))],[(AlexAcc (alex_action_102))],[(AlexAcc (alex_action_103))],[(AlexAcc (alex_action_104))],[(AlexAcc (alex_action_105))],[(AlexAcc (alex_action_106))],[(AlexAcc (alex_action_107))],[(AlexAcc (alex_action_108))],[(AlexAcc (alex_action_109))],[(AlexAcc (alex_action_110))],[(AlexAcc (alex_action_111))],[(AlexAcc (alex_action_112))],[(AlexAcc (alex_action_113))],[(AlexAcc (alex_action_114))],[(AlexAcc (alex_action_115))],[(AlexAcc (alex_action_116))],[(AlexAcc (alex_action_117))],[(AlexAcc (alex_action_118))],[(AlexAcc (alex_action_119))],[(AlexAcc (alex_action_120))],[(AlexAcc (alex_action_121))],[(AlexAcc (alex_action_122))],[(AlexAcc (alex_action_123))],[(AlexAcc (alex_action_124))],[(AlexAcc (alex_action_125))],[(AlexAcc (alex_action_126))],[(AlexAcc (alex_action_127))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_128))],[(AlexAcc (alex_action_129))],[(AlexAcc (alex_action_129))],[(AlexAcc (alex_action_129))],[(AlexAcc (alex_action_129))],[(AlexAcc (alex_action_130))],[(AlexAcc (alex_action_131))],[(AlexAcc (alex_action_132))],[(AlexAcc (alex_action_133))],[(AlexAcc (alex_action_134))],[(AlexAcc (alex_action_135))],[(AlexAcc (alex_action_136))],[(AlexAcc (alex_action_137))],[(AlexAcc (alex_action_138))],[(AlexAcc (alex_action_139))],[(AlexAcc (alex_action_140))],[(AlexAcc (alex_action_141))],[(AlexAcc (alex_action_142))],[(AlexAcc (alex_action_143))],[(AlexAcc (alex_action_144))],[(AlexAcc (alex_action_145))],[(AlexAcc (alex_action_145))],[(AlexAcc (alex_action_145))],[(AlexAcc (alex_action_145))],[(AlexAcc (alex_action_145))],[(AlexAcc (alex_action_145))],[(AlexAcc (alex_action_145))],[(AlexAcc (alex_action_145))]]+alex_accept = listArray (0::Int,373) [AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAcc (alex_action_0),AlexAcc (alex_action_1),AlexAcc (alex_action_2),AlexAcc (alex_action_3),AlexAcc (alex_action_4),AlexAcc (alex_action_5),AlexAcc (alex_action_6),AlexAcc (alex_action_7),AlexAcc (alex_action_8),AlexAcc (alex_action_9),AlexAcc (alex_action_10),AlexAcc (alex_action_11),AlexAcc (alex_action_12),AlexAcc (alex_action_13),AlexAcc (alex_action_14),AlexAcc (alex_action_15),AlexAcc (alex_action_16),AlexAcc (alex_action_17),AlexAcc (alex_action_18),AlexAcc (alex_action_19),AlexAcc (alex_action_20),AlexAcc (alex_action_21),AlexAcc (alex_action_22),AlexAcc (alex_action_23),AlexAcc (alex_action_24),AlexAcc (alex_action_25),AlexAcc (alex_action_26),AlexAcc (alex_action_27),AlexAcc (alex_action_28),AlexAcc (alex_action_29),AlexAcc (alex_action_30),AlexAcc (alex_action_31),AlexAcc (alex_action_32),AlexAcc (alex_action_33),AlexAcc (alex_action_34),AlexAcc (alex_action_35),AlexAcc (alex_action_36),AlexAcc (alex_action_37),AlexAcc (alex_action_38),AlexAcc (alex_action_39),AlexAcc (alex_action_40),AlexAcc (alex_action_41),AlexAcc (alex_action_42),AlexAcc (alex_action_43),AlexAcc (alex_action_44),AlexAcc (alex_action_45),AlexAcc (alex_action_46),AlexAcc (alex_action_47),AlexAcc (alex_action_48),AlexAcc (alex_action_49),AlexAcc (alex_action_50),AlexAcc (alex_action_51),AlexAcc (alex_action_52),AlexAcc (alex_action_53),AlexAcc (alex_action_54),AlexAcc (alex_action_55),AlexAcc (alex_action_56),AlexAcc (alex_action_57),AlexAcc (alex_action_58),AlexAcc (alex_action_59),AlexAcc (alex_action_60),AlexAcc (alex_action_61),AlexAcc (alex_action_62),AlexAcc (alex_action_63),AlexAcc (alex_action_64),AlexAcc (alex_action_65),AlexAcc (alex_action_66),AlexAcc (alex_action_67),AlexAcc (alex_action_68),AlexAcc (alex_action_69),AlexAcc (alex_action_70),AlexAcc (alex_action_71),AlexAcc (alex_action_72),AlexAcc (alex_action_73),AlexAcc (alex_action_74),AlexAcc (alex_action_75),AlexAcc (alex_action_76),AlexAcc (alex_action_77),AlexAcc (alex_action_78),AlexAcc (alex_action_79),AlexAcc (alex_action_80),AlexAcc (alex_action_81),AlexAcc (alex_action_82),AlexAcc (alex_action_83),AlexAcc (alex_action_84),AlexAcc (alex_action_85),AlexAcc (alex_action_86),AlexAcc (alex_action_87),AlexAcc (alex_action_88),AlexAcc (alex_action_89),AlexAcc (alex_action_90),AlexAcc (alex_action_91),AlexAcc (alex_action_92),AlexAcc (alex_action_93),AlexAcc (alex_action_94),AlexAcc (alex_action_95),AlexAcc (alex_action_96),AlexAcc (alex_action_97),AlexAcc (alex_action_98),AlexAcc (alex_action_99),AlexAcc (alex_action_100),AlexAcc (alex_action_101),AlexAcc (alex_action_102),AlexAcc (alex_action_103),AlexAcc (alex_action_104),AlexAcc (alex_action_105),AlexAcc (alex_action_106),AlexAcc (alex_action_107),AlexAcc (alex_action_108),AlexAcc (alex_action_109),AlexAcc (alex_action_110),AlexAcc (alex_action_111),AlexAcc (alex_action_112),AlexAcc (alex_action_113),AlexAcc (alex_action_114),AlexAcc (alex_action_115),AlexAcc (alex_action_116),AlexAcc (alex_action_117),AlexAcc (alex_action_118),AlexAcc (alex_action_119),AlexAcc (alex_action_120),AlexAcc (alex_action_121),AlexAcc (alex_action_122),AlexAcc (alex_action_123),AlexAcc (alex_action_124),AlexAcc (alex_action_125),AlexAcc (alex_action_126),AlexAcc (alex_action_127),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_129),AlexAcc (alex_action_129),AlexAcc (alex_action_129),AlexAcc (alex_action_129),AlexAcc (alex_action_130),AlexAcc (alex_action_131),AlexAcc (alex_action_132),AlexAcc (alex_action_133),AlexAcc (alex_action_134),AlexAcc (alex_action_135),AlexAcc (alex_action_136),AlexAcc (alex_action_137),AlexAcc (alex_action_138),AlexAcc (alex_action_139),AlexAcc (alex_action_140),AlexAcc (alex_action_141),AlexAcc (alex_action_142),AlexAcc (alex_action_143),AlexAcc (alex_action_144),AlexAcc (alex_action_145),AlexAcc (alex_action_145),AlexAcc (alex_action_145),AlexAcc (alex_action_145),AlexAcc (alex_action_145),AlexAcc (alex_action_145),AlexAcc (alex_action_145),AlexAcc (alex_action_145)] {-# LINE 218 "src/Language/CSPM/Lexer.x" #-}  alexMonadScan = do@@ -232,8 +232,8 @@ alex_action_145 =  skip             {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<eingebaut>" #-}-{-# LINE 1 "<Kommandozeile>" #-}+{-# LINE 1 "<built-in>" #-}+{-# LINE 1 "<command-line>" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} -- ----------------------------------------------------------------------------- -- ALEX TEMPLATE@@ -244,9 +244,9 @@ -- ----------------------------------------------------------------------------- -- INTERNALS and main scanner engine -{-# LINE 37 "templates/GenericTemplate.hs" #-}+{-# LINE 35 "templates/GenericTemplate.hs" #-} -{-# LINE 47 "templates/GenericTemplate.hs" #-}+{-# LINE 45 "templates/GenericTemplate.hs" #-}   data AlexAddr = AlexA# Addr#@@ -277,14 +277,14 @@ #ifdef WORDS_BIGENDIAN   narrow32Int# i   where-   !i    = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#`+   i    = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#` 		     (b2 `uncheckedShiftL#` 16#) `or#` 		     (b1 `uncheckedShiftL#` 8#) `or#` b0)-   !b3   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))-   !b2   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))-   !b1   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))-   !b0   = int2Word# (ord# (indexCharOffAddr# arr off'))-   !off' = off *# 4#+   b3   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))+   b2   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))+   b1   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))+   b0   = int2Word# (ord# (indexCharOffAddr# arr off'))+   off' = off *# 4# #else   indexInt32OffAddr# arr off #endif@@ -359,35 +359,29 @@   -	let-		(base) = alexIndexInt32OffAddr alex_base s-		((I# (ord_c))) = fromIntegral c-		(offset) = (base +# ord_c)-		(check)  = alexIndexInt16OffAddr alex_check offset+      case fromIntegral c of { (I# (ord_c)) ->+        let+                base   = alexIndexInt32OffAddr alex_base s+                offset = (base +# ord_c)+                check  = alexIndexInt16OffAddr alex_check offset 		-		(new_s) = if (offset >=# 0#) && (check ==# ord_c)+                new_s = if (offset >=# 0#) && (check ==# ord_c) 			  then alexIndexInt16OffAddr alex_table offset 			  else alexIndexInt16OffAddr alex_deflt s 	in-	case new_s of +        case new_s of 	    -1# -> (new_acc, input) 		-- on an error, we want to keep the input *before* the 		-- character that failed, not after.     	    _ -> alex_scan_tkn user orig_input (if c < 0x80 || c >= 0xC0 then (len +# 1#) else len)                                                 -- note that the length is increased ONLY if this is the 1st byte in a char encoding) 			new_input new_s new_acc-+      }   where-	check_accs [] = last_acc-	check_accs (AlexAcc a : _) = AlexLastAcc a input (I# (len))-	check_accs (AlexAccSkip : _)  = AlexLastSkip  input (I# (len))-	check_accs (AlexAccPred a predx : rest)-	   | predx user orig_input (I# (len)) input-	   = AlexLastAcc a input (I# (len))-	check_accs (AlexAccSkipPred predx : rest)-	   | predx user orig_input (I# (len)) input-	   = AlexLastSkip input (I# (len))-	check_accs (_ : rest) = check_accs rest+	check_accs (AlexAccNone) = last_acc+	check_accs (AlexAcc a  ) = AlexLastAcc a input (I# (len))+	check_accs (AlexAccSkip) = AlexLastSkip  input (I# (len))+{-# LINE 191 "templates/GenericTemplate.hs" #-}  data AlexLastAcc a   = AlexNone@@ -400,35 +394,10 @@     fmap f (AlexLastSkip x y) = AlexLastSkip x y  data AlexAcc a user-  = AlexAcc a+  = AlexAccNone+  | AlexAcc a   | AlexAccSkip-  | AlexAccPred a (AlexAccPred user)-  | AlexAccSkipPred (AlexAccPred user)--type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool---- -------------------------------------------------------------------------------- Predicates on a rule--alexAndPred p1 p2 user in1 len in2-  = p1 user in1 len in2 && p2 user in1 len in2----alexPrevCharIsPred :: Char -> AlexAccPred _ -alexPrevCharIs c _ input _ _ = c == alexInputPrevChar input--alexPrevCharMatches f _ input _ _ = f (alexInputPrevChar input)----alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _ -alexPrevCharIsOneOf arr _ input _ _ = arr ! alexInputPrevChar input----alexRightContext :: Int -> AlexAccPred _-alexRightContext (I# (sc)) user _ _ input = -     case alex_scan_tkn user input 0# input sc AlexNone of-	  (AlexNone, _) -> False-	  _ -> True-	-- TODO: there's no need to find the longest-	-- match when checking the right context, just-	-- the first match will do.+{-# LINE 235 "templates/GenericTemplate.hs" #-}  -- used by wrappers iUnbox (I# (i)) = i
src/Language/CSPM/AST.hs view
@@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- | -- Module      :  Language.CSPM.AST--- Copyright   :  (c) Fontaine 2008 - 2012+-- Copyright   :  (c) Fontaine 2008 - 2013 -- License     :  BSD3 --  -- Maintainer  :  Fontaine@cs.uni-duesseldorf.de@@ -24,7 +24,6 @@ import Data.Typeable (Typeable) import Data.Generics.Basics (Data) import GHC.Generics (Generic)-import Data.Generics.Instances () import Data.IntMap (IntMap) import Data.Map (Map) import Data.Array.IArray
src/Language/CSPM/Frontend.hs view
@@ -30,6 +30,7 @@  -- Language.CSPM.LexHelper   ,Lexer.lexInclude+  ,Lexer.lexIncludePath   ,Lexer.lexPlain   ,Lexer.removeIgnoredToken @@ -70,7 +71,7 @@   (removeSourceLocations,removeParens ,unUniqueIdent  , computeFreeNames, setNodeIdsZero) import qualified Language.CSPM.LexHelper as Lexer-  (lexInclude, lexPlain, removeIgnoredToken)+  (lexInclude, lexIncludePath, lexPlain, removeIgnoredToken) import Language.CSPM.PrettyPrinter () import Language.CSPM.Utils   (eitherToExc, handleLexError, handleParseError, handleRenameError
src/Language/CSPM/LexHelper.hs view
@@ -2,6 +2,7 @@ module Language.CSPM.LexHelper (    lexInclude+  ,lexIncludePath   ,lexPlain   ,removeIgnoredToken   ,tokenIsComment@@ -14,8 +15,13 @@ import Language.CSPM.Token (Token(..), LexError(..)) import Language.CSPM.TokenClasses (PrimToken(..)) import Language.CSPM.UnicodeSymbols (lookupDefaultSymbol)+import Control.Monad.IO.Class import qualified Data.Set as Set +import qualified Data.DList as DList+import Control.Monad.Trans.Either+import System.FilePath(isAbsolute,splitDirectories,normalise,joinPath)+ -- | lex a String . lexPlain :: String -> Either LexError [Token] lexPlain src = fmap reverse $ Lexer.scanner src@@ -36,41 +42,65 @@       Just (_, symbol) -> symbol       Nothing -> tokenString token --- | lex a String and process CSP-M include statements.+type Chunk = [Token]+type Chunks = DList.DList Chunk+data FilePart+    = Toks    Chunk+    | Include FilePath+    deriving Show++-- | lex input-string and import all includes files lexInclude :: String -> IO (Either LexError [Token])-lexInclude src = do-  case Lexer.scanner src of-    Left err -> return $ Left err-    Right toks -> do-      tokenIncl <- processIncludeAndReverse toks-      case tokenIncl of-        Left err -> return $ Left err-        Right t -> return $ Right t+lexInclude input+   = lexIncludePath "" input --- | Monsterfunction : todo refactor-processIncludeAndReverse :: [Token] -> IO (Either LexError [Token] )-processIncludeAndReverse tokens = picl_acc tokens []-  where -  picl_acc ::[Token] ->[Token] -> IO (Either LexError [Token] )-  picl_acc [] acc = return $ Right acc-  picl_acc ((Token _ _ _ L_String fname) : (Token _ _ _ L_Include _) :trest) acc = do-    let fileName = reverse $ tail $ reverse $ tail fname -- remove quotes-    -- putStrLn $ "Including file : " ++ fileName-    input <-readFile fileName-    case Lexer.scanner input of-      Right toks -> do-        new_acc <- picl_acc toks acc-        case new_acc of-          Right t -> picl_acc trest t-          e -> return e-      Left e -> return $ Left e-  picl_acc ((incl@(Token _ _ _ L_Include _)) : _) _ = -    return $ Left $ LexError {+-- | lex input-string and import all includes files+lexIncludePath :: FilePath -> String -> IO (Either LexError [Token])+lexIncludePath srcName input+   = eitherT (return . Left) (return . Right . concat . DList.toList) $ lexInclude2 srcName input++lexInclude2 :: FilePath -> String -> EitherT LexError IO Chunks+lexInclude2 srcName input = do+        hoistEither $ lexPlain input+    >>= hoistEither . splitIncludes []+    >>= mapM (processPart srcName)+    >>= return . DList.concat++processPart :: FilePath -> FilePart -> EitherT LexError IO Chunks+processPart srcName part = case part of+    Toks ch -> return $ DList.singleton $ ch+    Include fname -> (liftIO $ readFile absolutePath) >>= lexInclude2 absolutePath+     where+       absolutePath = getAbsoluteIncludeFileName srcName fname ++-- | micro-parser for include-statements+splitIncludes :: [Token] -> [Token] -> Either LexError [FilePart]+splitIncludes acc  []  = return [Toks $ reverse acc]+splitIncludes acc (h:rest) = case h of+    tok@(Token _ _ _ L_Include _) -> do+        r <- scanInclude tok rest+        return $ (Toks $ reverse acc) : r+    _ -> splitIncludes (h:acc) rest++scanInclude :: Token -> [Token] -> Either LexError [FilePart]+scanInclude incl (h:rest) = case h of+    Token _ _ _ T_WhiteSpace _ -> scanInclude incl rest+    Token _ _ _ L_String fname -> do+       r <- splitIncludes [] rest+       let fileName = reverse $ tail $ reverse $ tail fname -- remove quotes+       return $ (Include fileName) : r+    _ -> Left $ LexError {        lexEPos = tokenStart incl-      ,lexEMsg = "Include without filename" +      ,lexEMsg = "Include without filename"       }-  picl_acc (h:rest) acc = picl_acc rest $ h:acc ++scanInclude incl _ = Left $ LexError {+       lexEPos = tokenStart incl+      ,lexEMsg = "Include without filename at end of file"+      }++ -- | Remove comments, whitespaces and unneeded newlines. removeIgnoredToken :: [Token] -> [Token] removeIgnoredToken = soakNewlines . removeComments@@ -126,3 +156,21 @@          ++ binaryOperators)     consumeNLAfterToken       = Set.fromList ( [T_openParen, T_openBrace, T_lt] ++ binaryOperators)++-- Helper function for determining the absolute path of an include file name.+-- getAbsoluteIncludeFileName makes it possible to include other CSP modules by +-- giving the file path locally w.r.t. the current file path of the CSP module,+-- which includes the particular CSP modules.+getAbsoluteIncludeFileName :: FilePath -> FilePath -> FilePath+getAbsoluteIncludeFileName srcFileName inclFileName = +   case isAbsolute inclFileName of +	True  -> inclFileName +	False -> joinPath $ (+		take ((length srcDirSequence)-(countBackDirs fileDirSequence)) srcDirSequence +			++ (removeBackDirs fileDirSequence))+	where+		fileDirSequence = splitDirectories $ normalise inclFileName+		srcDirSequence  = init $ splitDirectories $ normalise srcFileName+		countBackDirs   = length . filter (".." ==) +		removeBackDirs  = dropWhile (".." == )+
src/Language/CSPM/Parser.hs view
@@ -504,6 +504,7 @@    ,[ infixM proc_op_lparallel AssocLeft ]     ,[infixM procOpSharing AssocLeft ]+   ,[infixM (nfun2 T_backslash  F_Hiding     ) AssocLeft]    ,[infixM (nfun2 T_amp        F_Guard      ) AssocLeft]    ,[infixM (nfun2 T_semicolon  F_Sequential ) AssocLeft]    ,[infixM (nfun2 T_triangle   F_Interrupt  ) AssocLeft]@@ -512,7 +513,6 @@    ,[infixM (nfun2 T_sqcap      F_IntChoice  ) AssocLeft]    ,[infixM procOpException AssocLeft]    ,[infixM (nfun2 T_interleave F_Interleave ) AssocLeft]-   ,[infixM (nfun2 T_backslash  F_Hiding     ) AssocLeft]   ]   )   where
src/Language/CSPM/Utils.hs view
@@ -22,7 +22,7 @@ import Language.CSPM.Rename (RenameError(..), renameModule, ModuleFromRenaming) import Language.CSPM.Token (LexError(..)) import Language.CSPM.AST (ModuleFromParser)-import qualified Language.CSPM.LexHelper as Lexer (lexInclude)+import qualified Language.CSPM.LexHelper as Lexer (lexIncludePath)  import Control.Exception as Exception import System.CPUTime@@ -56,7 +56,7 @@  parseNamedString :: FilePath -> String -> IO ModuleFromParser parseNamedString name str = do-  tokenList <- Lexer.lexInclude str >>= eitherToExc+  tokenList <- Lexer.lexIncludePath name str >>= eitherToExc   eitherToExc $ parse name tokenList  -- | Lex and parse File.@@ -67,7 +67,7 @@    putStrLn $ "Reading File " ++ fileName   startTime <- (return $ length src) >> getCPUTime-  tokenList <- Lexer.lexInclude src >>= eitherToExc+  tokenList <- Lexer.lexIncludePath fileName src >>= eitherToExc   time_have_tokens <- getCPUTime    ast <- eitherToExc $ parse fileName tokenList