Q7      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                      portable experimental                   GHC-only provisionalFontaine@cs.uni-duesseldorf.de|%The token classes of the CSP-M lexer   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  |{{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{GHC-only experimental|}~|}~|}~|}~ GHC-only provisionalFontaine@cs.uni-duesseldorf.deGHC-only provisionalFontaine@cs.uni-duesseldorf.de!!!! GHC-only experimentalFontaine@cs.uni-duesseldorf.de      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Wrap a node with a dummyLabel = todo: redo we need a specal case in DataConstructor Labeled       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~h~}|{zyxwvutsrqponmlkjigcfedb^a`_]Z\[YWXVTUSQRPOLNMK9JIHGFEDCBA@?>;:<=&876543210/.-,+*)('%$#"!      1         $#"!  !"#$%&876543210/.-,+*)(''()*+,-./0123456789JIHGFEDCBA@?>;:<=:;<=>?@ABCDEFGHIJKLNMMNOPQRRSTUUVWXXYZ\[[\]^a`__`abcfeddefgh,~}|{zyxwvutsrqponmlkjiijklmnopqrstuvwxyz{|}~ GHC-only experimentalFontaine@cs.uni-duesseldorf.de7INCOMPLETE list of built-ins that are not CSPM-syntax. 5 | Todo: add more BuiltIns here are migrate the AST. GHC-only experimentalFontaine@cs.uni-duesseldorf.de sets all locationsInfos to  NoLocation & removes all occurences of of Parens, ( i.e. explicit parentheses from the AST Set all NodeIds to zero. JunUniqueIdent replaces the all UIdent with the Ident of the the new name, C thus forgetting additional information like the bindingside, etc.  Usefull to get a smaller AST.  Compute the  FreeNames of an Expression. < This function does only work after renaming has been done. % This implementation is inefficient. (Get the assert declarations of a module GHC-only experimental !"#$%&'()*+,-./0123456 !"#$%&'()*+,-./0123456 !"#$%&!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMlex a String . Convert a token to a String. N If the tokenClasss has a Unicode symbol return the default Unicode string. Convert a token to a String. L If the tokenClasss has a Unicode symbol return the default ASCII string. 3lex a String and process CSP-M include statements. N Monsterfunction : todo refactor 4Remove comments, whitespaces and unneeded newlines. 8Is the token a line-comment, block-comment or a Pragma? OFremove newlines, that do not end a declaration from the token stream. 0 For example newlines next to binary operators.  Remove all trailing newlines.  GHC-only experimentalFontaine@cs.uni-duesseldorf.de.+Gather all information about an renaming. PQ-Tag that a module has gone through renaming. (A module that has gone through renaming  renames a .  | (also calls mergeFunBinds) RSTUVWXYZ[\]^_`abcdefghijklBIf a function is defined via pattern matching for serveral cases, > | the parser returns each case as an individual declaration. T | mergeFunBinds merges contiguous cases of the same function into one declaration.   GHC-only experimental/fontaine@cs.uni-duesseldorf.de, me@dobrikov.bizfmnopqrs7ParseError data type. This is an instance of Excpetion tThe  function parses a List of .  It returns a  or a Labled .  The u! argument is currently not used.  Wrapper for testing sub parsers vwxyz{|}~Parser for CSP-M expressions Parser for CSP-M patterns     GHC-only experimentalfontaine@cs.uni-duesseldorf.de eitherToExe returns the Right part of Either2 or throws the Left part as an dynamic exception. #Handle a dymanic exception of type LexError. #Handle a dymanic exception of type  ParseError. #Handle a dymanic exception of type  RenameError. "Lex and parse a file and return a LModule), throw an exception in case of an error 0Small test function which just parses a String. Lex and parse File. 1 | Return the module and print some timing infos  GHC-only experimental!Ivaylo Dobrikov (me@dobrikov.biz)*The pretty print class used for AST types 9run the pretty printer on a file and write the output to $ | filename.ast and filename.pretty  GHC-only experimentalFontaine@cs.uni-duesseldorf.de)The version of the CSPM-Frontend library BB !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&%'()*+,-./0123456789:;<=>?@ABCDEF3GHIJKLMNOPQRSTUVWXYZ[\]]^__`aabcdcefghijklmnopqrstuvwxyz{|}~                                            !"#$%&'()*+,-./0123453647879:;<=>?@ABCDEFGH I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g g h i j k lmno p q r s t u v w x y z { | } ~                                                                                     CSPM-Frontend-0.7.4.4Language.CSPM.TokenClassesLanguage.CSPM.UnicodeSymbolsLanguage.CSPM.TokenLanguage.CSPM.SrcLocLanguage.CSPM.ASTLanguage.CSPM.BuiltInLanguage.CSPM.AstUtilsLanguage.CSPM.LexHelperLanguage.CSPM.RenameLanguage.CSPM.ParserLanguage.CSPM.UtilsLanguage.CSPM.PrettyPrinterLanguage.CSPM.Frontend#Text.ParserCombinators.Parsec.ExprMPaths_CSPM_FrontendLanguage.CSPM.AlexWrapperLanguage.CSPM.Lexer PrimTokenT_FDT_TT_FT_free T_livelockT_deterministic T_deadlockT_over T_priorityT_tauT_tauPriorityOpT_revivalTestingDivT_revivalTestingT_refusalTestingDivT_refusalTestingT_failureDivergence T_failureT_traceT_RefineT_is T_underscore T_closePBrace T_openPBraceT_closeBrackBrackT_openBrackBrackT_closeOxBrack T_openOxBrackT_closeSpecialBrackT_closeAssertBrackT_openAssertBrack T_closeBrack T_openBrack T_closeBrace T_openBrace T_closeParen T_openParenT_colonT_questionmark T_exclamationT_dotdotT_dotT_leftrightarrow T_leftarrow T_rightarrowT_atatT_atT_mid T_parallel T_backslash T_interleaveT_sqcapT_expT_rhdT_box T_triangleT_comma T_semicolonT_ampT_gtT_ltT_leT_geT_neqT_eqT_minusT_plus T_percentT_slashT_timesT_hashT_hatT_CHAOST_BoolT_IntT_EventsT_SKIPT_STOPT_lengthT_elemT_concatT_tailT_headT_nullT_SeqT_SetT_setT_emptyT_cardT_memberT_InterT_UnionT_diffT_interT_unionT_orT_andT_notT_falseT_trueT_withinT_letT_elseT_thenT_ifT_print T_external T_transparentT_pragmaT_assert T_subtype T_nametype T_datatype T_channelL_IdentL_String L_IntegerL_EOF L_IncludeL_Pragma L_BComment L_LComment T_WhiteSpace L_NewlineunicodeSymbolslookupDefaultSymbol lookupTokenTokentokenId tokenStarttokenLen tokenClass tokenStringLexErrorlexEPoslexEMsgAlexPosnAlexPnalexPosalexLinealexColTokenId unTokenId mkTokenIdpprintAlexPosn alexStartPosalexMove tokenSentinelshowPosn showToken SrcOffsetSrcColSrcLineSrcLocFixedLocfixedStartLine fixedStartColfixedStartOffsetfixedLen fixedEndLine fixedEndColfixedEndOffset NoLocationTokPosTokSpan TokIdSpanTokIdPos mkTokSpanmkTokPos getStartLine getStartColgetStartOffset getTokenLen getEndLine getEndCol getEndOffsetgetStartTokenId getEndTokenId getStartToken getEndToken computeEndPos srcLocFromTo srcLocBetweenComment PragmaComment BlockComment LineComment LocCommentPragmaConst F_Interleave F_TimeoutF_Hiding F_IntChoice F_ExtChoice F_Interrupt F_SequentialF_GuardF_GTF_LTF_LEF_GEF_NEqF_EqF_SubF_AddF_ModF_DivF_MultF_Len2F_ConcatF_CHAOSF_BoolF_IntF_EventsF_SKIPF_STOPF_lengthF_elemF_concatF_tailF_headF_nullF_SeqF_SetF_setF_emptyF_cardF_memberF_InterF_UnionF_diffF_interF_unionF_orF_andF_notF_falseF_trueRefineOp TauPriorityOpRevivalTestingDivRevivalTestingRefusalTestingDivRefusalTestingFailureDivergenceFailureTrace LRefineOp TauRefineOp TauRefineTauTrace LTauRefineOpFdrExtTFDFLFdrExt FDRModels LivelockFree Deterministic DeadlockFree LFDRModels AssertDeclAssertModelCheck AssertTauPrio AssertRefine AssertBool LAssertDecl Constructor LConstructorTypeDefTypeDot TypeTupleLTypeDefFunCaseFunCaseIFunArgsDeclPrintChannelNameTypeDataTypeSubType TransparentAssertFunBindPatBindLDeclSelector SuffixSelSliceSelTailSel PrefixSelHeadNSelHeadSel ListIthSel ListLengthSel TupleIthSelTupleLengthSel EmptySetSel SingleSetSelDotSel ConstrSel SelectThisFalseSelTrueSelIntSelPattern Selectors selectorsidentsVarPat ConstrPatTuplePat ListEnumPat EmptySetPat SingleSetPatDotPatAppendAlsoWildCardFalsePatTruePatIntPatLPatternCompGenGuard GeneratorLCompGen LCompGenListBuiltInLBuiltInRenameLRenameLinkLLinkLinkListLinkListComprehension LLinkList CommFieldOutComm InCommGuardedInComm LCommFieldRange RangeOpen RangeClosed RangeEnumLRangeExpExprWithFreeNamesLambdaILetIPrefixI PrefixExpProcRepSharingProcRepLinkParallelProcRepAParallelProcRepInterleaveProcRepExternalChoiceProcRepInternalChoiceProcRepSequence ProcException ProcRenamingProcLinkParallel ProcAParallel ProcSharingClosureDotTupleFun2Fun1NegExpNotExpOrExpAndExpParensTupleExpIntSetBoolSetEventsCFalseCTrueSkipStopLambda CallBuiltIn CallFunctionIfteLetClosureComprehensionListExpSetExpIntExpVarLProcLExpModuleFromParser FromParserModule moduleDecls moduleTokens moduleSrcLocmoduleComments modulePragmasBindType NotLetBoundLetBound PrologModePrologVariable PrologGroundIDType BuiltInID TransparentID DataTypeIDConstrIDFunID NameTypeID ChannelIDVarID UniqueIdent uniqueIdentId bindingSide bindingLocidTyperealNamenewName prologModebindTypeIdentUIdentunIdentLIdentLabelednodeIdsrcLocunLabelNodeIdunNodeId FreeNamesBindings AstAnnotationmkNodeIdlabeledsetNodeunUIdentidentId isLetBound castModulelBuiltInToConst withLabelbuiltInsremoveSourceLocations removeParenssetNodeIdsZero unUniqueIdentcomputeFreeNamesgetModuleAssertslexPlainunicodeTokenStringasciiTokenString lexIncluderemoveIgnoredTokentokenIsComment RenameErrorrenameErrorMsgrenameErrorLoc RenameInfo nameSupply localBindingsvisibleidentDefinitionidentUse usedNames FromRenamingModuleFromRenaming renameModule ParseError parseErrorMsgparseErrorToken parseErrorPosparse testParserparseExp parsePattern eitherToExchandleLexErrorhandleParseErrorhandleRenameError parseFile parseStringbenchmarkFrontendPPppprettyPrintFiletoPrettyStringfrontendVersion OperatorTableOperatorPostfixPrefixInfixAssoc AssocRight AssocLeft AssocNoneinfixMprefixMpostfixMbuildExpressionParserversionbindirlibdirdatadir libexecdir getBinDir getLibDir getDataDir getLibexecDirgetDataFileName AlexActionAlexunAlex AlexStatealex_posalex_inpalex_chralex_scdalex_cnt AlexInputrunAlex alexGetInput alexSetInput alexErroralexGetStartCodealexSetStartCodealexCountToken alexGetCharandBeginmkLmk_Unicode_Token block_commentlexErroralexEOFalexInputPrevChar AlexAccPredAlexAccAlexAccSkipPred AlexAccSkip AlexLastAcc AlexLastSkipAlexNone AlexReturn AlexTokenAlexSkip AlexErrorAlexEOFAlexAddrAlexA# alex_base alex_table alex_check alex_defltrefscannerprocessIncludeAndReverse soakNewlines UniqueNameRM initialRState initPrelude lookupVisible getOrigNamebindNewTopIdentbindNewUniqueIdent localScopeuseIdentnoprnModule rnExpListrnExprnRange rnPatList rnPattern rnCommField inCompGenL inCompGen rnCompGenreRename rnLinkList rnDeclListdeclLHSdeclRHS rnTypeDef applyRenaming mergeFunBindsOpTablePStatelastTok gtCountergtLimit nodeIdSupplyPT parsec2-1.0.0!Text.ParserCombinators.Parsec.Pos SourceName initialPState mkLabeledNode getStates getNextPos getLastPosgetPos mkSrcSpanmkSrcPoswithLocinSpan parseModuletokennewlinerefineOp anyBuiltIn blockBuiltInlIdentidentvarExpcommaSeperator sepByComma sepBy1Comma sepByNewLineparseComprehension compGuard compGeneratorcomprehensionRepinBracesinParenssetExplistExplsBody closureExpintLit negateExplitExplitPatletExpifteExpfunCall parseFunArgsfunArgsT lambdaExp parseExpBaseparenExpOrTupleEnumopTable baseTable procTableparseExp_noPrefixparseExp_noProc parseDotExpOffunApplyImplicittoken_gttoken_lt betweenLtGtparseWithGtLimitproc_op_aparallelproc_op_lparallel procRenamingprocOneRenaming parseLinkList parseLink parseRenameparsePatternAppendparsePatternDotparsePatternCorepatBindfunBindparseFktCurryPatparseFktCspPat topDeclListparseProcReplicatedExpparsePrefixExpparseCommField testFollowsprimExUpdatePosprimExUpdateStateanyToken notFollowedBynotFollowedBy'eofpprintParsecErrorwrapParseErrortoken_istokenPrimExDefaultparseNamedStringdot ppListSet hsepPunctuate hcatPunctuate printFunBind printCase printFunArgs printConstrtypeDefreplicatedProc separateGen ppCompGenppAlso printIdent