Sqf      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde  Safe-Inferred24JKMuse  ::=: to enforce using parse context (to handle left-recursion)fgfgfg  Safe-Inferred24JKMhIdentifier for non-terminalsi jklmnopqrstuvwxhi jklmnopqrstuvwxh i jknmlopqrstuvwxh  Safe-Inferred*24JKM:yz{|}~5yz{|}~6yz{|}~  Safe-Inferred24JKM$Monad for implicitly passing around contextConnecting it allPop-setGSS representationThe worklist and descriptor set Types for "Representation of the input string(   Safe-Inferred24JKM{Options datatype * left_biased_choice: see function leftBiased * pivot_select: provide a filtering function on pivots&The default options: no disambiguation$Perform a disambiguation similar to 'longest-match' Make the  || combinator left-biased such that it only returns results of the right child if the left child does not has any results.None24JKMThe grammar of a given parser:The semantic results of a parser, given a string of Tokens?Change the behaviour of the parse using GLL.Combinators.OptionsParse a string of characters*Parse a string of characters using optionsFGet the SPPF produced by parsing the given input with the given parser$Use this combinator on all combinators that might have an infinite number of derivations for some input string. A non-terminal has this property if and only if it is left-recursive and would be left-recursive if all the right-hand sides of the productions of the grammar are reversed.2Use this combinator on all recursive non-terminals7  !"#$%  !"#$%   !"#$2   !"#$None24JKM%%Defines and executes some unit-tests %%%% Safe-Inferred24JKMGiven a parser and a string of tokens, return: * The grammar (GLL.Types.Abstract) * a list of results, which are all semantic evaluations of 'good derivations' - semantic evaluations are specified by using  $B and satisfy - 'good derivations' as defined by by Tom RidgeThe grammar of a given parser'6The semantic results of a parser, given a token stringXThe semantic results of a parser, given a token string and GLL.Combinator.OptionsFGet the SPPF produced by parsing the given input with the given parser(#Parse a given string of characters /Parse a given string of characters and options )use  ::=: to enforce using parse context (to handle left-recursion)*6useful for non-recursive definitions (only internally)+"Application of a semantic action. ,@Sequence two parsers, the results of the two parsers are tupled.-AA choice between two parsers, results of the two are concatenated.,Sequencing, ignoring the result to the right/,Sequencing, ignoring the result to the left 02Ignore all results and just return the given value1*A parser that recognises a given character2&A parser that recognises a given token30A parser that always succeeds (and returns unit)47A parser that always succeeds and returns a given value5Optionally use the given parser6CApply the given parser many times, 0 or more times (Kleene closure)7EApply the given parser some times, 1 or more times (positive closure)$&'()*+,-./0 1234    567 &'()*+,-./01234567&'(12 34675)*+0,/.-$&'()*+,-./0 1234    567)*+,-./0None24JKM8%Defines and executes some unit-tests 8888 Safe-Inferred24JKMGiven a parser and a string of tokens, return: * The grammar (GLL.Types.Abstract) * a list of results, which are all semantic evaluations of 'good derivations' - semantic evaluations are specified by using  $B and satisfy - 'good derivations' as defined by by Tom RidgeThe grammar of a given parser:6The semantic results of a parser, given a token stringXThe semantic results of a parser, given a token string and GLL.Combinator.OptionsFGet the SPPF produced by parsing the given input with the given parser;#Parse a given string of characters /Parse a given string of characters and options =6useful for non-recursive definitions (only internally)>"Application of a semantic action. ?@Sequence two parsers, the results of the two parsers are tupled.@AA choice between two parsers, results of the two are concatenatedAeUse this function on a parser to memoise the semantic phase of the parser It is advised to only use Ac on a parser whose symbol occurs many times in a highly ambiguous grammar Every symbol on which A# is used should have its own table.B,Sequencing, ignoring the result to the rightC,Sequencing, ignoring the result to the left D2Ignore all results and just return the given valueE*A parser that recognises a given characterF&A parser that recognises a given tokenG0A parser that always succeeds (and returns unit)H7A parser that always succeeds and returns a given valueIOptionally use the given parserJCApply the given parser many times, 0 or more times (Kleene closure)KEApply the given parser some times, 1 or more times (positive closure)%9:;<=>?@ABCDEFGH !"#IJK 9:;<=>?@ABCDEFGHIJK9:;<=>D?CB@EF GHIJKA%9:;<=>?@ABCDEFGH !"#IJK<=>?@BCDNone24JKML%Defines and executes some unit-tests LLLLNone24JKM $vAdd the rules of this symbol to the given map If the symbol is a terminal, no rules will be added (identity function)%The represented symbol.SBA parser expression representing an alternative (right-hand side).T*A parser expression representing a symbol.&The grammar of a given parserU:The semantic results of a parser, given a string of Tokens'?Change the behaviour of the parse using GLL.Combinators.OptionsVParse a string of characters(*Parse a string of characters using options)FGet the SPPF produced by parsing the given input with the given parserW$Use this combinator on all combinators that might have an infinite number of derivations for some input string. A non-terminal has this property if and only if it is left-recursive and would be left-recursive if all the right-hand sides of the productions of the grammar are reversed.X2Use this combinator on all recursive non-terminals6MNOPQR*+,-.$%S/T01&U'V()23WX4YZ[\]5^_`ab6c7d89:;<=>?@A! MNOPQRSTUVWXYZ[\]^_`abcd!TSQRMNOPUV_^ `abcdWX[\YZ]1MNOPQR*+,-.$%S/T01&U'V()23WX4YZ[\]5^_`ab6c7d89:;<=>?@AWXYZ[\]None24JKMe%Defines and executes some unit-tests eeeeB            !"#$%&'()*+,-./012345#$%&)'+(6*.-/031245#$%&)'+,(6*.-/03124 !"#$%&'()*+-./01234 7 8 9 : ; < = > 9 ? ? @ A A B B C D D E F G H I J K L M N O L P M Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r / s t u v w x y z { | } ~       |          !"!" gll-0.2.0.3GLL.Combinators.MemInterface!GLL.Combinators.Test.MemInterfaceGLL.Combinators.BinInterface!GLL.Combinators.Test.BinInterfaceGLL.Combinators.MemBinInterface$GLL.Combinators.Test.MemBinInterfaceGLL.Combinators.InterfaceGLL.Combinators.Test.InterfaceGLL.Combinators.MemoisationGLL.Types.AbstractGLL.Types.Grammar GLL.ParserGLL.Combinators.OptionsTypeCompose-0.9.10Control.Compose:.MemoRef MemoTable newMemoTableTokenStringBoolIntEpsilonEOSChar IsSymbParsertoSymb IsIMParsertoImpHasAltsaltsOfIMParser SymbParserparse parseString<::=><:=><*><*<$><$<|>memotokencharepsilonsatisfymanysomeoptionalmainParser*> memLookup memInsertNtTokensSymbolsSymbolErrorTermSlotRulesRuleGrammarAltsAlt FollowMapFirstMap SelectMap PrefixMapProdMapPEdgeSEdgePNodeSNodeSPPFNodeDummyINodeIDTMapIDFMapIDMapEdgeMapImdMapSymbMapPackMapSPPFNtLPrLSlotL token_length emptySPPF pNodeLookup pMapInsert sNodeLookup sNodeInsert sNodeRemove iNodeLookup iNodeInsert iNodeRemove eMapInsert idMapInsertinUtoUshowDshowGshowPshowSshowSPPFtokenTcharTnTcharS fixedMapsisNtisTermisChar $fShowSymbol $fShowSlot $fShowToken $fOrdToken $fEqTokenGLLMutablePcalGSSRcal LhsParamsInput ParseResult sppf_resultsuccessnr_descriptors nr_sppf_edges nr_gss_nodesGSlotU0GSSNodeGSSEdgeUcal RhsParamsrunGLL addSPPFEdgeaddDescrgetDescraddPop getChildren addGSSEdgegetPopsgllSPPFgll joinSPPFsresultFromMutable$fShowParseResult $fMonadGLL $fFunctorGLL$fApplicativeGLL$fShowSPPFNode $fShowGSlot PCOptionsdefaultOptions maximumPivot leftBiasedleft_biased_choice pivot_selectgrammarparseWithOptionsparseStringWithOptionssppf ParseContextIMVisit3IMVisit2IMVisit1 SymbVisit3 SymbVisit2 SymbVisit1parse'inParseContexttoParseContext concatChoice raw_parsermany_some_ optional_$fIsSymbParser:.$fIsSymbParserSymbParser$fIsSymbParserIMParser$fIsIMParser:.$fIsIMParserSymbParser$fIsIMParserIMParser $fHasAlts:.$fHasAltsSymbParser$fHasAltsIMParserVisit3Visit2Visit1sym_id_rules_sem_mkNt inContext toContext