@thomasfosterau/effect-parse 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +247 -230
- package/dist/Ascii.d.ts +32 -53
- package/dist/Ascii.d.ts.map +1 -1
- package/dist/Ascii.js +576 -571
- package/dist/Ascii.js.map +1 -1
- package/dist/Binary.d.ts +6 -29
- package/dist/Binary.d.ts.map +1 -1
- package/dist/Binary.js +129 -116
- package/dist/Binary.js.map +1 -1
- package/dist/Bits.d.ts +4 -2
- package/dist/Bits.d.ts.map +1 -1
- package/dist/Bits.js +121 -123
- package/dist/Bits.js.map +1 -1
- package/dist/Compiler.d.ts +39 -0
- package/dist/Compiler.d.ts.map +1 -0
- package/dist/Compiler.js +48 -0
- package/dist/Compiler.js.map +1 -0
- package/dist/Encoding.d.ts +29 -46
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +76 -75
- package/dist/Encoding.js.map +1 -1
- package/dist/Expression.d.ts +15 -49
- package/dist/Expression.d.ts.map +1 -1
- package/dist/Expression.js +143 -131
- package/dist/Expression.js.map +1 -1
- package/dist/Input.d.ts +206 -177
- package/dist/Input.d.ts.map +1 -1
- package/dist/Input.js +317 -299
- package/dist/Input.js.map +1 -1
- package/dist/Nom.d.ts +44 -84
- package/dist/Nom.d.ts.map +1 -1
- package/dist/Nom.js +423 -453
- package/dist/Nom.js.map +1 -1
- package/dist/ParseError.d.ts +54 -49
- package/dist/ParseError.d.ts.map +1 -1
- package/dist/ParseError.js +233 -275
- package/dist/ParseError.js.map +1 -1
- package/dist/Parser.d.ts +345 -313
- package/dist/Parser.d.ts.map +1 -1
- package/dist/Parser.js +2010 -1802
- package/dist/Parser.js.map +1 -1
- package/dist/ParserSchema.d.ts +8 -7
- package/dist/ParserSchema.d.ts.map +1 -1
- package/dist/ParserSchema.js +49 -49
- package/dist/ParserSchema.js.map +1 -1
- package/dist/ParserStream.d.ts +26 -20
- package/dist/ParserStream.d.ts.map +1 -1
- package/dist/ParserStream.js +267 -255
- package/dist/ParserStream.js.map +1 -1
- package/dist/Syntax.d.ts +401 -0
- package/dist/Syntax.d.ts.map +1 -0
- package/dist/Syntax.js +717 -0
- package/dist/Syntax.js.map +1 -0
- package/dist/Text.d.ts +98 -134
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +534 -496
- package/dist/Text.js.map +1 -1
- package/dist/Token.d.ts +60 -42
- package/dist/Token.d.ts.map +1 -1
- package/dist/Token.js +331 -265
- package/dist/Token.js.map +1 -1
- package/dist/index.d.ts +16 -17
- package/dist/index.js +16 -17
- package/dist/internal/compiler/closure.d.ts +14 -16
- package/dist/internal/compiler/closure.d.ts.map +1 -1
- package/dist/internal/compiler/closure.js +1458 -1637
- package/dist/internal/compiler/closure.js.map +1 -1
- package/dist/internal/compiler/entries.d.ts +11 -11
- package/dist/internal/compiler/entries.d.ts.map +1 -1
- package/dist/internal/compiler/entries.js +36 -26
- package/dist/internal/compiler/entries.js.map +1 -1
- package/dist/internal/compiler/first.d.ts +19 -19
- package/dist/internal/compiler/first.d.ts.map +1 -1
- package/dist/internal/compiler/first.js +251 -227
- package/dist/internal/compiler/first.js.map +1 -1
- package/dist/internal/compiler/jit.d.ts +6 -17
- package/dist/internal/compiler/jit.d.ts.map +1 -1
- package/dist/internal/compiler/jit.js +860 -988
- package/dist/internal/compiler/jit.js.map +1 -1
- package/dist/internal/compiler/registry.d.ts +20 -21
- package/dist/internal/compiler/registry.d.ts.map +1 -1
- package/dist/internal/compiler/registry.js +21 -41
- package/dist/internal/compiler/registry.js.map +1 -1
- package/dist/internal/compiler/sets.d.ts +9 -13
- package/dist/internal/compiler/sets.d.ts.map +1 -1
- package/dist/internal/compiler/sets.js +76 -73
- package/dist/internal/compiler/sets.js.map +1 -1
- package/dist/internal/entries.d.ts +3 -3
- package/dist/internal/entries.d.ts.map +1 -1
- package/dist/internal/entries.js +38 -30
- package/dist/internal/entries.js.map +1 -1
- package/dist/internal/node.d.ts +177 -173
- package/dist/internal/node.d.ts.map +1 -1
- package/dist/internal/node.js +77 -66
- package/dist/internal/node.js.map +1 -1
- package/dist/internal/numbers.d.ts +7 -8
- package/dist/internal/numbers.d.ts.map +1 -1
- package/dist/internal/numbers.js +246 -276
- package/dist/internal/numbers.js.map +1 -1
- package/dist/internal/resume.d.ts +6 -24
- package/dist/internal/resume.d.ts.map +1 -1
- package/dist/internal/resume.js +30 -29
- package/dist/internal/resume.js.map +1 -1
- package/dist/internal/run.d.ts +15 -0
- package/dist/internal/run.d.ts.map +1 -0
- package/dist/internal/run.js +36 -0
- package/dist/internal/run.js.map +1 -0
- package/dist/internal/stack.d.ts +16 -0
- package/dist/internal/stack.d.ts.map +1 -0
- package/dist/internal/stack.js +26 -0
- package/dist/internal/stack.js.map +1 -0
- package/dist/internal/syntax.d.ts +146 -0
- package/dist/internal/syntax.d.ts.map +1 -0
- package/dist/internal/syntax.js +305 -0
- package/dist/internal/syntax.js.map +1 -0
- package/dist/internal/text.d.ts +10 -2
- package/dist/internal/text.d.ts.map +1 -1
- package/dist/internal/text.js +295 -345
- package/dist/internal/text.js.map +1 -1
- package/dist/internal/tokens.d.ts +25 -30
- package/dist/internal/tokens.d.ts.map +1 -1
- package/dist/internal/tokens.js +369 -363
- package/dist/internal/tokens.js.map +1 -1
- package/package.json +42 -28
- package/src/Ascii.ts +278 -187
- package/src/Binary.ts +150 -44
- package/src/Bits.ts +6 -3
- package/src/Compiler.ts +98 -0
- package/src/Expression.ts +10 -5
- package/src/Input.ts +106 -28
- package/src/Nom.ts +4 -3
- package/src/ParseError.ts +48 -51
- package/src/Parser.ts +1163 -795
- package/src/ParserStream.ts +104 -80
- package/src/Syntax.ts +900 -0
- package/src/Text.ts +272 -187
- package/src/Token.ts +180 -87
- package/src/index.ts +2 -0
- package/src/internal/compiler/closure.ts +121 -88
- package/src/internal/compiler/entries.ts +21 -8
- package/src/internal/compiler/first.ts +17 -15
- package/src/internal/compiler/jit.ts +360 -157
- package/src/internal/compiler/registry.ts +12 -33
- package/src/internal/compiler/sets.ts +17 -11
- package/src/internal/entries.ts +4 -2
- package/src/internal/node.ts +51 -37
- package/src/internal/numbers.ts +22 -20
- package/src/internal/resume.ts +8 -4
- package/src/internal/run.ts +41 -0
- package/src/internal/stack.ts +36 -0
- package/src/internal/syntax.ts +421 -0
- package/src/internal/text.ts +32 -25
- package/src/internal/tokens.ts +96 -51
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/Text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,SAAS,MAAM,eAAe,CAAA;AAE1C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACzF,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAI9C,OAAO,KAAK,CAAC,MAAM,aAAa,CAAA;AAgBhC,MAAM,WAAW,GAAG,CAAC,CAAkB,EAAU,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAEtG,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAU,EAAiB,EAAE;IAChE,yEAAyE;IACzE,8CAA8C;IAC9C,IAAI,KAA6B,CAAA;IACjC,IAAI,GAA2B,CAAA;IAC/B,OAAO,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAkB,EAAW,EAAE;QAC9D,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QACvB,IAAI,KAAiB,CAAA;QACrB,IAAI,CAAC,GAAG,GAAG;YAAE,KAAK,GAAG,KAAK,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;aAC7C,IAAI,CAAC,GAAG,OAAO;YAAE,KAAK,GAAG,GAAG,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;;YACxD,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACjB,IAAI,CAAC,KAAK,CAAC;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnE,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAiB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;AAE/G;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB,aAAa,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAA;AAE7F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAkB,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAE5E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB,aAAa,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAA;AAE1F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB,aAAa,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAA;AAE1F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkB,aAAa,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;AAEzF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAkB,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkB,aAAa,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAA;AAExG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB,aAAa,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;AAE9F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAkB,aAAa,CACjD,SAAS,EACT,oDAAoD,CACrD,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAkB,aAAa,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;AAErF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB,aAAa,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;AAE9F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB,aAAa,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;AAEtF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAkB,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;AA2I/E,MAAM,SAAS,GAAG,CAAC,CAAoB,EAAoB,EAAE;IAC3D,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IACzC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,cAAc,EAAE,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAC/G,MAAM,eAAe,GAAG,kBAAkB,CACxC,iBAAiB,EACjB,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAC7F,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAChC,CAAA;AACD,MAAM,WAAW,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;AAEhE,MAAM,WAAW,GAAG,CAAC,eAAe,CAAC,CAAA;AACrC,MAAM,kBAAkB,GAAG,CAAC,aAAa,CAAC,CAAA;AAC1C,MAAM,kBAAkB,GAAG,CAAC,YAAY,CAAC,CAAA;AAEzC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAgC,QAAqB,EAAkB,EAAE;IAC3F,MAAM,GAAG,GAAG,QAAyB,CAAA;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAEpC,wEAAwE;IACxE,0CAA0C;IAC1C,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAE,IAAe,EAAE,QAA+B,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,EAAQ,EAAE,CAClH,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAEzC,2EAA2E;IAC3E,MAAM,MAAM,GAAG,CACb,KAAiB,EACjB,KAAa,EACb,GAAW,EACX,IAAe,EACf,QAA+B,EAChB,EAAE;QACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QACvD,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;QAClE,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CACpB,IAA6B,EAC7B,CAAoB,EACpB,MAAe,EACf,IAAY,EACZ,QAA+B,EAC/B,IAAe,EACf,IAAa,EACb,GAAG,GAAY,IAAI,EACc,EAAE;QACnC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,CAAC,CAAC,SAAS,CAA0B,CAAC,KAAiB,EAAE,EAAE;YAChE,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;gBAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;YAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;YACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAA;YAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAA;YAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAA;YAC9B,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,GAAG,IAAI,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YACjH,IAAI,KAAK,GAAG,GAAG;gBAAE,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;YAChE,qEAAqE;YACrE,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG;gBAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACxD,KAAK,CAAC,GAAG,GAAG,MAAM,CAAA;YAClB,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAC7C,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IACvE,CAAC,CAAA;IAED,MAAM,GAAG,GAAoC,CAAC,CAAC,SAAS,CAA0B,CAAC,KAAiB,EAAE,EAAE;QACtG,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;YAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QACnE,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAA;QAC3B,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IAEzC,MAAM,OAAO,GAAG,CAAyB,GAAM,EAA8B,EAAE;QAC7E,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAA;QAC1B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QACtC,MAAM,IAAI,GAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;QACpF,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,mEAAmE;YACnE,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;YAC9E,OAAO,CAAC,CAAC,SAAS,CAAqB,CAAC,KAAiB,EAAE,EAAE;gBAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;gBACrB,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;oBAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;gBAC/C,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;gBACzB,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAE,KAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,KAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACtG,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;gBAC9C,CAAC;gBACD,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;gBACnB,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACvB,CAAC;QACD,OAAO,CAAC,CAAC,SAAS,CAAqB,CAAC,KAAiB,EAAE,EAAE;YAC3D,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;gBAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;YAC/C,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAC7C,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;YAC1D,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,KAAK,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAA;gBACnF,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;YAC9C,CAAC;YACD,KAAK,CAAC,GAAG,IAAI,GAAG,CAAA;YAChB,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACvB,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAmC,EAAE;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;QACvE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAC9D,OAAO,CAAC,CAAC,SAAS,CAA0B,CAAC,KAAiB,EAAE,EAAE;YAChE,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;gBAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;YAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;YACvB,IAAI,GAAG,GAAG,KAAK,CAAA;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;gBACzC,IAAI,EAAE,KAAK,QAAQ,CAAC,GAAG,IAAI,EAAE,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACrD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;gBAC9F,CAAC;gBACD,IAAI,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;oBAAE,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;gBAC3F,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAA;YACvB,CAAC;YACD,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IACnF,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,GAAmB,EAAE,MAAe,EAAmC,EAAE;QAC1F,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;QACnB,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QAC3E,MAAM,IAAI,GAAc,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;QACnD,OAAO,CAAC,CAAC,SAAS,CAA0B,CAAC,KAAiB,EAAE,EAAE;YAChE,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;gBAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;YAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACpC,IAAI,EAAE,GAAG,CAAC;gBAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC7D,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAA;YACxB,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC/D,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;YACd,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC5B,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IAChE,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,CAAC,KAAa,EAAmC,EAAE;QAC9D,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC,CAAA;QACtE,OAAO,CAAC,CAAC,SAAS,CAA0B,CAAC,KAAiB,EAAE,EAAE;YAChE,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;gBAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;YAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;YACvB,IAAI,GAAG,GAAG,KAAK,CAAA;YACf,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;gBACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;gBACzC,IAAI,EAAE,KAAK,QAAQ,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,GAAG,CAAC,CAAA;gBACxE,IAAI,EAAE,GAAG,CAAC;oBAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;gBACpE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAA;YACvB,CAAC;YACD,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IACpD,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,CAAS,EAAmC,EAAE;QAC5E,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;QACrB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QACtC,OAAO,CAAC,CAAC,SAAS,CAA0B,CAAC,KAAiB,EAAE,EAAE;YAChE,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;gBAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;YAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;YACvB,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,MAAe,EAAE,KAAK,CAAC,CAAA;YAChD,oEAAoE;YACpE,OAAO,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC;gBAAE,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,MAAe,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;YACzG,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,IAAI,KAAK,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;gBACvD,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;YAC3D,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;YACvD,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;YACzE,+DAA+D;YAC/D,IAAI,KAAK,GAAG,GAAG;gBAAE,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YACpE,IAAI,KAAK,GAAG,GAAG;gBAAE,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;YAC/D,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IAC/E,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;IACzB,MAAM,IAAI,GAAoC,CAAC,CAAC,SAAS,CAA0B,CAAC,KAAiB,EAAE,EAAE;QACvG,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;YAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;QACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAA;QAClC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;QACrF,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACjG,KAAK,CAAC,GAAG,GAAG,MAAM,CAAA;QAClB,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IAE3C,MAAM,KAAK,GAAG,CAAU,IAAwB,EAA2B,EAAE;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,OAAO,CAAC,CAAC,SAAS,CAAkB,CAAC,KAAiB,EAAE,EAAE;YACxD,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;gBAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;YAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAA;YACrC,OAAO,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAC9D,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,CAAC,IAAmB,EAAE,GAAU,EAAE,WAAmB,EAAE,IAAe,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CACjG,aAAa,CAAC,IAAW,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAEtG,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;IAClE,MAAM,UAAU,GAAoC,CAAC,CAAC,SAAS,CAA0B,CAAC,KAAiB,EAAE,EAAE;QAC7G,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;YAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;QACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAA;QAC9E,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QACjF,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,YAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC7F,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAA;QAC9B,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,GAAG,IAAI,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5E,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAA;QAChD,CAAC;QACD,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAA;QAC/B,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAChD,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IAEvD,gFAAgF;IAChF,MAAM,GAAG,GAAqC,CAAC,CAAC,SAAS,CAA2B,CAAC,KAAiB,EAAE,EAAE;QACxG,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;YAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAA;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,EAAE,KAAK,QAAQ,CAAC,SAAS,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IAEzC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE5B,MAAM,cAAc,GAAoC,CAAC,CAAC,SAAS,CAA0B,CAAC,KAAiB,EAAE,EAAE;QACjH,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;YAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;QACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAA;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAA;QAC9B,IAAI,IAAI,KAAK,QAAQ,CAAC,SAAS,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAA;QAChD,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAA;QAChG,IAAI,IAAI,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;YAChE,IAAI,KAAK,KAAK,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAA;YAC3F,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAA;QACrF,CAAC;QACD,KAAK,CAAC,GAAG,GAAG,MAAM,CAAA;QAClB,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IAE/D,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACtG,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IACzH,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;IAE9C,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;IACxE,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CACzB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAChD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,EAC1C,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAC7E,CAAA;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAErH,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAE,CAAA;QACpC,OAAO,CAAC,KAAiB,EAAW,EAAE;YACpC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAA;YACpD,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAA;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;IACH,CAAC,CAAA;IAED,OAAO;QACL,QAAQ;QACR,GAAG;QACH,OAAO;QACP,QAAQ;QACR,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC;QACrC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;QACrC,GAAG;QACH,IAAI;QACJ,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACpB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAChC,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC/F,CAAC;QACD,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACnB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAChC,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC/G,CAAC;QACD,SAAS;QACT,IAAI;QACJ,KAAK;QACL,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC;QAC/C,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC;QAC/C,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QAChD,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QAChD,aAAa,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,iBAAiB,EAAE,cAAc,CAAC;QACxE,aAAa,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,iBAAiB,EAAE,cAAc,CAAC;QACxE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QAChD,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QAChD,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC;QACpE,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC;QACpE,UAAU;QACV,OAAO;QACP,IAAI;QACJ,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC;QAClB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAChE,cAAc;QACd,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5E,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAC1C,eAAe,CACb,MAAM,EACN,YAAY,CAAC,OAAO,CAAC,EACrB,SAAS,EACT,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACzD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAE,EACvB,GAAG,CACJ;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CACnC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC;KACnF,CAAA;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAEjE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,IAAI,GAA4B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAA4B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AAEvE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAA4B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AAEvE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAA4B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"Text.js","names":["floatText","markFloatText","toFloat"],"sources":["../src/Text.ts"],"sourcesContent":["/**\n * Unicode text parsers, generic over the input's encoding.\n *\n * `Text.make(encoding)` builds one set of parsers ({@link TextParsers}) for\n * an {@link Encoding.Encoding}, and ready-made sets are provided for\n * JavaScript strings and the common byte encodings:\n *\n * | Parsers | Input | Offsets |\n * |---|---|---|\n * | `Text.string` | `string` | UTF-16 code units |\n * | `Text.utf8` | `Uint8Array` of UTF-8 | bytes |\n * | `Text.utf16le`, `Text.utf16be` | `Uint8Array` of UTF-16 | bytes |\n * | `Text.latin1` | `Uint8Array` of ISO-8859-1 | bytes |\n *\n * Every set has the same members, and every parser returns `string`s, so a\n * grammar written against `TextParsers<I>` parses all of them:\n *\n * ```ts\n * import { Parser, Text } from \"@thomasfosterau/effect-parse\"\n *\n * const greeting = <I extends string | Uint8Array>(T: Text.TextParsers<I>) =>\n * Parser.preceded(T.literal(\"¡hola \"), T.identifier)\n *\n * Parser.parse(greeting(Text.string), \"¡hola mundo\") // \"mundo\"\n * Parser.parse(greeting(Text.utf8), new TextEncoder().encode(\"¡hola Zoë\")) // \"Zoë\"\n * ```\n *\n * Tokens are Unicode code points, and character classes follow Unicode\n * properties: `alpha1` matches `\"Ωμέγα\"`, `space1` matches a no-break space.\n * Use the `Ascii` module for the ASCII-only classes.\n *\n * Decoding is strict. Malformed input (invalid UTF-8, unpaired surrogates)\n * never matches, and error messages point at it. On partial input, a\n * character split across chunks reports `Incomplete`, so byte streams can be\n * parsed as text without decoding them first.\n *\n * @since 0.1.0\n */\nimport * as Predicate from \"effect/Predicate\"\nimport type { Encoding } from \"./Encoding.js\"\nimport * as Encodings from \"./Encoding.js\"\nimport type { Input, State } from \"./Input.js\"\nimport { Fail } from \"./Input.js\"\nimport { escapedImpl, overflow, takeEscapedImpl, toFloat } from \"./Ascii.js\"\nimport { codePointPredicate, compile, indexOf, matchLiteral } from \"./internal/tokens.js\"\nimport { floatText as markFloatText } from \"./internal/numbers.js\"\nimport * as internal from \"./internal/text.js\"\nimport type { Node } from \"./internal/node.js\"\nimport type { ErrorKind } from \"./ParseError.js\"\nimport type { Parser, Range } from \"./Parser.js\"\nimport * as P from \"./Parser.js\"\nimport type { StringTokenSet } from \"./Token.js\"\n\n// -----------------------------------------------------------------------------\n// Unicode predicates\n// -----------------------------------------------------------------------------\n\n/**\n * A predicate over characters. It accepts a one-character string or a code\n * point.\n *\n * @since 0.1.0\n * @category models\n */\nexport type CharPredicate = (char: string | number) => boolean\n\nconst toCodePoint = (c: string | number): number => (Predicate.isNumber(c) ? c : (c.codePointAt(0) ?? -1))\n\nconst makePredicate = (name: string, re: RegExp): CharPredicate => {\n // Results for the Basic Multilingual Plane are cached: a table lookup is\n // much faster than a regular expression test.\n let ascii: Uint8Array | undefined\n let bmp: Uint8Array | undefined\n return codePointPredicate(name, (c: string | number): boolean => {\n const x = toCodePoint(c)\n if (x < 0) return false\n let table: Uint8Array\n if (x < 128) table = ascii ??= new Uint8Array(128)\n else if (x < 0x10000) table = bmp ??= new Uint8Array(0x10000)\n else return re.test(String.fromCodePoint(x))\n let v = table[x]\n if (v === 0) table[x] = v = re.test(String.fromCharCode(x)) ? 2 : 1\n return v === 2\n })\n}\n\n/**\n * A predicate testing a Unicode property, using the syntax of regular\n * expression property escapes (`\\p{...}`): a general category (`\"Lu\"`,\n * `\"Letter\"`), a binary property (`\"Emoji\"`, `\"Dash\"`) or a script\n * (`\"Script=Greek\"`).\n *\n * @example\n * ```ts\n * import { Text } from \"@thomasfosterau/effect-parse\"\n *\n * const greek = Text.string.takeWhile(Text.property(\"Script=Greek\"), { min: 1 })\n * ```\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const property = (name: string): CharPredicate => makePredicate(name, new RegExp(`^\\\\p{${name}}$`, \"u\"))\n\n/**\n * Letters and other alphabetic characters (the Unicode `Alphabetic`\n * property, Rust's `char::is_alphabetic`).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isAlphabetic: CharPredicate = /*#__PURE__*/ makePredicate(\"isAlphabetic\", /^\\p{Alphabetic}$/u)\n\n/**\n * Letters (general category `L`).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isLetter: CharPredicate = /*#__PURE__*/ makePredicate(\"isLetter\", /^\\p{L}$/u)\n\n/**\n * Uppercase characters (the Unicode `Uppercase` property).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isUppercase: CharPredicate = /*#__PURE__*/ makePredicate(\"isUppercase\", /^\\p{Uppercase}$/u)\n\n/**\n * Lowercase characters (the Unicode `Lowercase` property).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isLowercase: CharPredicate = /*#__PURE__*/ makePredicate(\"isLowercase\", /^\\p{Lowercase}$/u)\n\n/**\n * Decimal digits of any script (general category `Nd`): `0`–`9`, `٠`–`٩`,\n * `०`–`९`, ...\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isDecimalDigit: CharPredicate = /*#__PURE__*/ makePredicate(\"isDecimalDigit\", /^\\p{Nd}$/u)\n\n/**\n * Numeric characters (general category `N`), including `½` and `Ⅻ` (Rust's\n * `char::is_numeric`).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isNumeric: CharPredicate = /*#__PURE__*/ makePredicate(\"isNumeric\", /^\\p{N}$/u)\n\n/**\n * Alphabetic or numeric characters (Rust's `char::is_alphanumeric`).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isAlphanumeric: CharPredicate = /*#__PURE__*/ makePredicate(\"isAlphanumeric\", /^[\\p{Alphabetic}\\p{N}]$/u)\n\n/**\n * Whitespace, including line breaks (the Unicode `White_Space` property,\n * Rust's `char::is_whitespace`).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isWhitespace: CharPredicate = /*#__PURE__*/ makePredicate(\"isWhitespace\", /^\\p{White_Space}$/u)\n\n/**\n * Whitespace that does not break lines: `White_Space` except `\\n`, `\\v`,\n * `\\f`, `\\r`, U+0085, U+2028 and U+2029. Includes tabs and no-break spaces.\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isSpace: CharPredicate = /*#__PURE__*/ makePredicate(\n \"isSpace\",\n /^(?![\\n\\v\\f\\r\\u0085\\u2028\\u2029])\\p{White_Space}$/u\n)\n\n/**\n * Characters that can start an identifier (the Unicode `ID_Start` property,\n * see UAX #31).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isIdStart: CharPredicate = /*#__PURE__*/ makePredicate(\"isIdStart\", /^\\p{ID_Start}$/u)\n\n/**\n * Characters that can continue an identifier (the Unicode `ID_Continue`\n * property, see UAX #31).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isIdContinue: CharPredicate = /*#__PURE__*/ makePredicate(\"isIdContinue\", /^\\p{ID_Continue}$/u)\n\n/**\n * Punctuation (general category `P`).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isPunctuation: CharPredicate = /*#__PURE__*/ makePredicate(\"isPunctuation\", /^\\p{P}$/u)\n\n/**\n * Control characters (general category `Cc`).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isControl: CharPredicate = /*#__PURE__*/ makePredicate(\"isControl\", /^\\p{Cc}$/u)\n\n// -----------------------------------------------------------------------------\n// Parsers\n// -----------------------------------------------------------------------------\n\n/**\n * The text parsers for one encoding. Build a set with {@link make}, or use\n * {@link string}, {@link utf8}, {@link utf16le}, {@link utf16be} or\n * {@link latin1}.\n *\n * Every parser returns text as a `string`, whatever the input. To keep a\n * slice of a byte input as bytes instead, use `Parser.taken`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface TextParsers<I extends string | Uint8Array> {\n /** The encoding these parsers read. */\n readonly encoding: Encoding<I>\n\n // Tokens\n\n /** Any single character (code point). */\n readonly any: Parser<string, never, never, I>\n /**\n * A literal string, returned as written. On byte inputs it is matched in\n * its encoded form.\n */\n readonly literal: <const L extends string>(literal: L) => Parser<L, never, never, I>\n /**\n * A literal string, ignoring case (by simple Unicode case folding, so\n * `\"straße\"` matches `\"STRAßE\"` but not `\"STRASSE\"`). Returns the input as\n * written.\n */\n readonly caseless: (literal: string) => Parser<string, never, never, I>\n /** One character belonging to a set (the characters of a string, a range, a predicate, or an array of these). */\n readonly oneOf: (set: StringTokenSet) => Parser<string, never, never, I>\n /** One character *not* belonging to a set. */\n readonly noneOf: (set: StringTokenSet) => Parser<string, never, never, I>\n /** An optional byte order mark, U+FEFF. Returns whether one was present. */\n readonly bom: Parser<boolean, never, never, I>\n\n // Slices\n\n /** Exactly `count` characters. */\n readonly take: (count: number) => Parser<string, never, never, I>\n /** The longest run of characters belonging to a set, with a count in `range` (default: any). */\n readonly takeWhile: (set: StringTokenSet, range?: Range) => Parser<string, never, never, I>\n /** The longest run of characters *not* belonging to a set, with a count in `range`. */\n readonly takeTill: (set: StringTokenSet, range?: Range) => Parser<string, never, never, I>\n /** Characters up to (not including) the first occurrence of a literal. */\n readonly takeUntil: (literal: string, range?: Range) => Parser<string, never, never, I>\n /** The rest of the input. */\n readonly rest: Parser<string, never, never, I>\n /**\n * Runs a parser and returns the text it consumed (`Parser.taken`, decoded\n * to a `string`).\n */\n readonly taken: <A, E, R>(self: Parser<A, E, R, I>) => Parser<string, E, R, I>\n\n // Character classes\n\n /** Zero or more alphabetic characters ({@link isAlphabetic}). */\n readonly alpha0: Parser<string, never, never, I>\n /** One or more alphabetic characters ({@link isAlphabetic}). */\n readonly alpha1: Parser<string, never, never, I>\n /** Zero or more decimal digits of any script ({@link isDecimalDigit}). */\n readonly digit0: Parser<string, never, never, I>\n /** One or more decimal digits of any script ({@link isDecimalDigit}). */\n readonly digit1: Parser<string, never, never, I>\n /** Zero or more alphanumeric characters ({@link isAlphanumeric}). */\n readonly alphanumeric0: Parser<string, never, never, I>\n /** One or more alphanumeric characters ({@link isAlphanumeric}). */\n readonly alphanumeric1: Parser<string, never, never, I>\n /** Zero or more non-breaking whitespace characters ({@link isSpace}). */\n readonly space0: Parser<string, never, never, I>\n /** One or more non-breaking whitespace characters ({@link isSpace}). */\n readonly space1: Parser<string, never, never, I>\n /** Zero or more whitespace characters, including line breaks ({@link isWhitespace}). */\n readonly multispace0: Parser<string, never, never, I>\n /** One or more whitespace characters, including line breaks ({@link isWhitespace}). */\n readonly multispace1: Parser<string, never, never, I>\n /**\n * An identifier: an {@link isIdStart} character or `_`, then any\n * {@link isIdContinue} characters (UAX #31 default identifiers).\n */\n readonly identifier: Parser<string, never, never, I>\n\n // Line endings\n\n /** `\\n` */\n readonly newline: Parser<\"\\n\", never, never, I>\n /** `\\r\\n` */\n readonly crlf: Parser<\"\\r\\n\", never, never, I>\n /** `\\t` */\n readonly tab: Parser<\"\\t\", never, never, I>\n /** `\\n` or `\\r\\n`. */\n readonly lineEnding: Parser<\"\\n\" | \"\\r\\n\", never, never, I>\n /** Everything up to (not including) a line ending. A `\\r` not followed by `\\n` is an error. */\n readonly tillLineEnding: Parser<string, never, never, I>\n\n // Numbers (ASCII digits, as in most languages)\n\n /** An unsigned decimal integer of ASCII digits. Fails if it is not a safe integer. */\n readonly decUint: Parser<number, string, never, I>\n /** A signed decimal integer of ASCII digits. Fails if it is not a safe integer. */\n readonly decInt: Parser<number, string, never, I>\n /** An unsigned decimal integer of ASCII digits, as a `bigint`. */\n readonly decBigUint: Parser<bigint, never, never, I>\n /** A signed decimal integer of ASCII digits, as a `bigint`. */\n readonly decBigInt: Parser<bigint, never, never, I>\n /** A hexadecimal unsigned integer, without prefix. Fails if it is not a safe integer. */\n readonly hexUint: Parser<number, string, never, I>\n /** A floating point number, as accepted by `Ascii.float`. */\n readonly float: Parser<number, never, never, I>\n\n // Escapes\n\n /**\n * Recognizes text containing escape sequences, returning it raw (see\n * `Ascii.takeEscaped`). `control` is the escape character.\n */\n readonly takeEscaped: <A, E, R, B, E2, R2>(\n normal: Parser<A, E, R, I>,\n control: string,\n escapable: Parser<B, E2, R2, I>\n ) => Parser<string, E | E2, R | R2, I>\n /**\n * Parses text containing escape sequences, returning it unescaped (see\n * `Ascii.escaped`). `control` is the escape character.\n */\n readonly escaped: <E, R, E2, R2>(\n normal: Parser<string, E, R, I>,\n control: string,\n escape: Parser<string, E2, R2, I>\n ) => Parser<string, E | E2, R | R2, I>\n}\n\nconst normalize = (r: Range | undefined): [number, number] => {\n if (r === undefined) return [0, Infinity]\n if (Predicate.isNumber(r)) return [r, r]\n return [r.min ?? 0, r.max ?? Infinity]\n}\n\nconst isAsciiDigit = /*#__PURE__*/ codePointPredicate(\"isAsciiDigit\", (c: number): boolean => c >= 48 && c <= 57, [\n [48, 57]\n])\nconst isAsciiHexDigit = /*#__PURE__*/ codePointPredicate(\n \"isAsciiHexDigit\",\n (c: number): boolean => (c >= 48 && c <= 57) || (c >= 65 && c <= 70) || (c >= 97 && c <= 102),\n [\n [48, 57],\n [65, 70],\n [97, 102]\n ]\n)\nconst isLineBreak = (c: number): boolean => c === 10 || c === 13\n\nconst expectedAny = [\"any character\"]\nconst expectedLineEnding = [\"line ending\"]\nconst expectedIdentifier = [\"identifier\"]\n\n/**\n * Builds the text parsers for an encoding.\n *\n * @example\n * ```ts\n * import { Encoding, Parser, Text } from \"@thomasfosterau/effect-parse\"\n *\n * const T = Text.make(Encoding.latin1)\n * Parser.parse(T.alpha1, new Uint8Array([0x63, 0x61, 0x66, 0xe9])) // \"café\"\n * ```\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const make = <I extends string | Uint8Array>(encoding: Encoding<I>): TextParsers<I> => {\n const enc = encoding as Encoding<any>\n const fast = internal.fastLimit(enc)\n\n // Each parser records its encoding on byte input (`state.encoding`), so\n // that errors can show the input as text.\n const backtrack = (state: State<any>, kind: ErrorKind, expected: ReadonlyArray<string>, offset = state.pos): Fail =>\n state.backtrack(kind, expected, offset)\n\n /** The text `[start, end)` after checking it is well formed, or `Fail`. */\n const textOf = (\n state: State<any>,\n start: number,\n end: number,\n kind: ErrorKind,\n expected: ReadonlyArray<string>\n ): string | Fail => {\n const count = internal.validate(enc, state, start, end)\n if (count < 0) return backtrack(state, kind, expected, -1 - count)\n return enc.text(state.input, start, end)\n }\n\n const takeWhileText = (\n test: (cp: number) => boolean,\n r: Range | undefined,\n negate: boolean,\n name: string,\n expected: ReadonlyArray<string>,\n kind: ErrorKind,\n hint: boolean,\n set: unknown = test\n ): Parser<string, never, never, I> => {\n const [min, max] = normalize(r)\n return P.described<string, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const start = state.pos\n internal.scan(enc, state, test, negate, max, state.pos, fast)\n const offset = internal.scanOffset\n const count = internal.scanCount\n const stop = internal.scanStop\n if (state.partial && (stop === internal.End || stop === internal.Truncated))\n return state.incomplete(1, expected)\n if (count < min) return backtrack(state, kind, expected, offset)\n // More matching characters would have been accepted where we stopped\n if (hint && count < max) state.setHint(offset, expected)\n state.pos = offset\n return enc.text(state.input, start, offset)\n },\n name,\n { _tag: \"TakeWhile\", set, negate, min, max, encoding: enc }\n )\n }\n\n const any: Parser<string, never, never, I> = P.described<string, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const cp = internal.next(enc, state)\n if (cp < 0) return internal.failAt(state, cp, \"Token\", expectedAny)\n state.pos += internal.width\n return internal.charOf(cp)\n },\n \"any\",\n { _tag: \"Any\", encoding: enc }\n )\n\n const literal = <const L extends string>(lit: L): Parser<L, never, never, I> => {\n const encoded = enc.encode(lit)\n const len = encoded.length\n const expected = [JSON.stringify(lit)]\n const node: Node = { _tag: \"Literal\", literal: lit, caseless: false, encoding: enc }\n if (len === 1) {\n // Single unit literals (punctuation, mostly) are compared directly\n const unit = Predicate.isString(encoded) ? encoded.charCodeAt(0) : encoded[0]\n return P.described<L, never, never, I>(\n (state: State<any>) => {\n const pos = state.pos\n if (state.inputKind === 1) state.encoding = enc\n if (pos >= state.end) return state.eoi(\"Literal\", expected, 1)\n const input = state.input\n if ((state.inputKind === 0 ? (input as string).charCodeAt(pos) : (input as Uint8Array)[pos]) !== unit) {\n return backtrack(state, \"Literal\", expected)\n }\n state.pos = pos + 1\n return lit\n },\n expected[0],\n node\n )\n }\n return P.described<L, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const r = matchLiteral(state, encoded, false)\n if (r === -1) return backtrack(state, \"Literal\", expected)\n if (r === -2) {\n if (state.partial) return state.incomplete(len - (state.end - state.pos), expected)\n return backtrack(state, \"Literal\", expected)\n }\n state.pos += len\n return lit\n },\n expected[0],\n node\n )\n }\n\n const caseless = (lit: string): Parser<string, never, never, I> => {\n const folded = Array.from(lit, (c) => internal.fold(internal.firstCodePoint(c)))\n const expected = [`${JSON.stringify(lit)} (case insensitive)`]\n return P.described<string, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const start = state.pos\n let pos = start\n for (let i = 0; i < folded.length; i++) {\n const cp = internal.next(enc, state, pos)\n if (cp === internal.End || cp === internal.Truncated) {\n return state.partial ? state.incomplete(1, expected) : backtrack(state, \"Literal\", expected)\n }\n if (cp < 0 || internal.fold(cp) !== folded[i]) {\n state.syntax?.read(pos + Math.max(internal.width, 1))\n return backtrack(state, \"Literal\", expected)\n }\n pos += internal.width\n }\n state.pos = pos\n return enc.text(state.input, start, pos)\n },\n expected[0],\n { _tag: \"Literal\", literal: lit, caseless: true, encoding: enc }\n )\n }\n\n const oneOfImpl = (set: StringTokenSet, negate: boolean): Parser<string, never, never, I> => {\n const m = compile(set, \"string\")\n const test = m.code\n const expected = [negate ? `anything but ${m.description}` : m.description]\n const kind: ErrorKind = negate ? \"NoneOf\" : \"OneOf\"\n return P.described<string, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const cp = internal.next(enc, state)\n if (cp < 0) return internal.failAt(state, cp, kind, expected)\n const w = internal.width\n if (test(cp) === negate) return state.backtrack(kind, expected)\n state.pos += w\n return internal.charOf(cp)\n },\n expected[0],\n { _tag: \"OneOf\", set, negate, encoding: enc }\n )\n }\n\n const take = (count: number): Parser<string, never, never, I> => {\n const expected = [count === 1 ? \"1 character\" : `${count} characters`]\n return P.described<string, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const start = state.pos\n let pos = start\n for (let got = 0; got < count; got++) {\n const cp = internal.next(enc, state, pos)\n if (cp === internal.End) return state.eoi(\"Take\", expected, count - got)\n if (cp < 0) return internal.failAt(state, cp, \"Take\", expected, pos)\n pos += internal.width\n }\n state.pos = pos\n return enc.text(state.input, start, pos)\n },\n \"take\",\n { _tag: \"Take\", count, encoding: enc }\n )\n }\n\n const takeUntil = (lit: string, r?: Range): Parser<string, never, never, I> => {\n const [min, max] = normalize(r)\n const needle = enc.encode(lit)\n const unit = enc.unit\n const expected = [JSON.stringify(lit)]\n return P.described<string, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const start = state.pos\n let idx = indexOf(state, needle as Input, start)\n // Multi-unit encodings: only accept matches on a character boundary\n while (unit > 1 && idx >= 0 && (idx - start) % unit !== 0) idx = indexOf(state, needle as Input, idx + 1)\n if (idx < 0) {\n if (state.partial) return state.incomplete(0, expected)\n return backtrack(state, \"TakeUntil\", expected, state.end)\n }\n // The literal was read but is not consumed\n state.syntax?.read(idx + needle.length)\n const count = internal.validate(enc, state, start, idx)\n if (count < 0) return backtrack(state, \"TakeUntil\", expected, -1 - count)\n // As in winnow, the first occurrence must lie within the range\n if (count < min) return backtrack(state, \"TakeUntil\", expected, idx)\n if (count > max) return backtrack(state, \"TakeUntil\", expected)\n state.pos = idx\n return enc.text(state.input, start, idx)\n },\n \"takeUntil\",\n { _tag: \"TakeUntil\", literal: lit, min, max, encoding: enc }\n )\n }\n\n const always = () => true\n const rest: Parser<string, never, never, I> = P.described<string, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const start = state.pos\n internal.scan(enc, state, always, false, Infinity, state.pos, fast)\n const offset = internal.scanOffset\n if (internal.scanStop === internal.Truncated) return state.incomplete(1, expectedAny)\n if (internal.scanStop === internal.Invalid) return backtrack(state, \"Token\", expectedAny, offset)\n state.pos = offset\n return enc.text(state.input, start, offset)\n },\n \"rest\",\n { _tag: \"Rest\", encoding: enc }\n )\n\n const taken = <A, E, R>(self: Parser<A, E, R, I>): Parser<string, E, R, I> => {\n const step = self.step\n return P.described<string, E, R, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const start = state.pos\n if (step(state) === Fail) return Fail\n return textOf(state, start, state.pos, \"Slice\", expectedAny)\n },\n self.name,\n { _tag: \"Taken\", self, encoding: enc }\n )\n }\n\n const cls = (test: CharPredicate, min: 0 | 1, description: string, kind: ErrorKind, hint = true) =>\n takeWhileText(test as any, { min }, false, `${kind.toLowerCase()}${min}`, [description], kind, hint)\n\n const identifierStart = (cp: number) => cp === 95 || isIdStart(cp)\n const identifier: Parser<string, never, never, I> = P.described<string, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const start = state.pos\n const cp = internal.next(enc, state)\n if (cp < 0) return internal.failAt(state, cp, \"TakeWhile\", expectedIdentifier)\n if (!identifierStart(cp)) return state.backtrack(\"TakeWhile\", expectedIdentifier)\n internal.scan(enc, state, isIdContinue as any, false, Infinity, start + internal.width, fast)\n const stop = internal.scanStop\n if (state.partial && (stop === internal.End || stop === internal.Truncated)) {\n return state.incomplete(1, expectedIdentifier)\n }\n state.pos = internal.scanOffset\n return enc.text(state.input, start, state.pos)\n },\n \"identifier\",\n { _tag: \"Identifier\", encoding: enc }\n )\n\n // Decoded rather than matched as a literal, as not every encoding can encode it\n const bom: Parser<boolean, never, never, I> = P.described<boolean, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const cp = internal.next(enc, state)\n if (cp === 0xfeff) {\n state.pos += internal.width\n return true\n }\n if (cp === internal.Truncated || (cp === internal.End && state.partial)) {\n return state.incomplete(1, [\"byte order mark\"])\n }\n return false\n },\n \"bom\",\n { _tag: \"Bom\", encoding: enc }\n )\n\n const newline = literal(\"\\n\")\n const crlf = literal(\"\\r\\n\")\n\n const tillLineEnding: Parser<string, never, never, I> = P.described<string, never, never, I>(\n (state: State<any>) => {\n if (state.inputKind === 1) state.encoding = enc\n const start = state.pos\n internal.scan(enc, state, isLineBreak, true, Infinity, state.pos, fast)\n const offset = internal.scanOffset\n const stop = internal.scanStop\n if (stop === internal.Truncated || (stop === internal.End && state.partial)) {\n return state.incomplete(1, expectedLineEnding)\n }\n if (stop === internal.Invalid) return backtrack(state, \"LineEnding\", expectedLineEnding, offset)\n if (stop === 0 && internal.next(enc, state, offset) === 13) {\n const cr = internal.width\n // The line feed after it is read, not consumed\n state.syntax?.read(offset + 2 * cr)\n const after = internal.next(enc, state, offset + cr)\n if (after === internal.End && state.partial) return state.incomplete(1, expectedLineEnding)\n if (after !== 10) return backtrack(state, \"LineEnding\", expectedLineEnding, offset)\n }\n state.pos = offset\n return enc.text(state.input, start, offset)\n },\n \"tillLineEnding\",\n { _tag: \"TillLineEnding\", encoding: enc }\n )\n\n const asciiDigits = takeWhileText(isAsciiDigit, { min: 1 }, false, \"digit1\", [\"digit\"], \"Digit\", true)\n const hexDigits = takeWhileText(\n isAsciiHexDigit,\n { min: 1 },\n false,\n \"hexDigit1\",\n [\"hexadecimal digit\"],\n \"HexDigit\",\n true\n )\n const sign = P.opt(oneOfImpl(\"+-\", false))\n const signed = taken(P.seq(sign, asciiDigits))\n\n const exponent = P.opt(P.seq(oneOfImpl(\"eE\", false), sign, asciiDigits))\n const unsignedFloat = P.alt(\n P.seq(caseless(\"inf\"), P.opt(caseless(\"inity\"))),\n P.seq(literal(\".\"), asciiDigits, exponent),\n P.seq(asciiDigits, P.opt(P.seq(literal(\".\"), P.opt(asciiDigits))), exponent)\n )\n const floatText = markFloatText(taken(P.alt(caseless(\"nan\"), P.seq(sign, unsignedFloat))).pipe(P.expected(\"number\")))\n\n const matchControl = (control: string) => {\n const ctrl = control.codePointAt(0)\n return (state: State<any>): boolean => {\n if (internal.next(enc, state) !== ctrl) return false\n state.pos += internal.width\n return true\n }\n }\n\n return {\n encoding,\n any,\n literal,\n caseless,\n oneOf: (set) => oneOfImpl(set, false),\n noneOf: (set) => oneOfImpl(set, true),\n bom,\n take,\n takeWhile: (set, r) => {\n const m = compile(set, \"string\")\n return takeWhileText(m.code, r, false, \"takeWhile\", [m.description], \"TakeWhile\", false, set)\n },\n takeTill: (set, r) => {\n const m = compile(set, \"string\")\n return takeWhileText(m.code, r, true, \"takeTill\", [`anything but ${m.description}`], \"TakeWhile\", false, set)\n },\n takeUntil,\n rest,\n taken,\n alpha0: cls(isAlphabetic, 0, \"letter\", \"Alpha\"),\n alpha1: cls(isAlphabetic, 1, \"letter\", \"Alpha\"),\n digit0: cls(isDecimalDigit, 0, \"digit\", \"Digit\"),\n digit1: cls(isDecimalDigit, 1, \"digit\", \"Digit\"),\n alphanumeric0: cls(isAlphanumeric, 0, \"letter or digit\", \"AlphaNumeric\"),\n alphanumeric1: cls(isAlphanumeric, 1, \"letter or digit\", \"AlphaNumeric\"),\n space0: cls(isSpace, 0, \"space\", \"Space\", false),\n space1: cls(isSpace, 1, \"space\", \"Space\", false),\n multispace0: cls(isWhitespace, 0, \"whitespace\", \"MultiSpace\", false),\n multispace1: cls(isWhitespace, 1, \"whitespace\", \"MultiSpace\", false),\n identifier,\n newline,\n crlf,\n tab: literal(\"\\t\"),\n lineEnding: P.alt(newline, crlf).pipe(P.expected(\"line ending\")),\n tillLineEnding,\n decUint: asciiDigits.pipe(\n P.tryMap((s) => overflow(Number(s))),\n P.named(\"decUint\")\n ),\n decInt: signed.pipe(\n P.tryMap((s) => overflow(Number(s))),\n P.named(\"decInt\")\n ),\n decBigUint: asciiDigits.pipe(P.map((s) => BigInt(s))),\n decBigInt: signed.pipe(P.map((s) => BigInt(s.startsWith(\"+\") ? s.slice(1) : s))),\n hexUint: hexDigits.pipe(\n P.tryMap((s) => overflow(parseInt(s, 16))),\n P.named(\"hexUint\")\n ),\n float: floatText.pipe(P.map(toFloat), P.named(\"float\")),\n takeEscaped: (normal, control, escapable) =>\n takeEscapedImpl(\n normal,\n matchControl(control),\n escapable,\n (state, start) => enc.text(state.input, start, state.pos),\n internal.firstCodePoint(control),\n enc\n ),\n escaped: (normal, control, escape) =>\n escapedImpl(normal, matchControl(control), escape, internal.firstCodePoint(control), enc)\n }\n}\n\n/**\n * Text parsers for JavaScript strings.\n *\n * @since 0.1.0\n * @category instances\n */\nexport const string: TextParsers<string> = /*#__PURE__*/ make(Encodings.string)\n\n/**\n * Text parsers for UTF-8 encoded bytes.\n *\n * @example\n * ```ts\n * import { Parser, Text } from \"@thomasfosterau/effect-parse\"\n *\n * const bytes = new TextEncoder().encode(\"naïve café\")\n * Parser.parse(Parser.separatedPair(Text.utf8.alpha1, Text.utf8.space1, Text.utf8.alpha1), bytes)\n * // Result.succeed([\"naïve\", \"café\"])\n * ```\n *\n * @since 0.1.0\n * @category instances\n */\nexport const utf8: TextParsers<Uint8Array> = /*#__PURE__*/ make(Encodings.utf8)\n\n/**\n * Text parsers for UTF-16 little endian bytes.\n *\n * @since 0.1.0\n * @category instances\n */\nexport const utf16le: TextParsers<Uint8Array> = /*#__PURE__*/ make(Encodings.utf16le)\n\n/**\n * Text parsers for UTF-16 big endian bytes.\n *\n * @since 0.1.0\n * @category instances\n */\nexport const utf16be: TextParsers<Uint8Array> = /*#__PURE__*/ make(Encodings.utf16be)\n\n/**\n * Text parsers for ISO-8859-1 (Latin-1) bytes.\n *\n * @since 0.1.0\n * @category instances\n */\nexport const latin1: TextParsers<Uint8Array> = /*#__PURE__*/ make(Encodings.latin1)\n"],"mappings":"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"}
|
package/dist/Token.d.ts
CHANGED
|
@@ -1,60 +1,76 @@
|
|
|
1
|
+
import { Input, Slice, Token } from "./Input.js";
|
|
2
|
+
import { Parser, Range } from "./Parser.js";
|
|
3
|
+
import { ErrorKind } from "./ParseError.js";
|
|
4
|
+
//#region src/Token.d.ts
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
3
|
-
* module, nom's `bytes` module).
|
|
4
|
-
*
|
|
5
|
-
* Parsers here work on every input kind: `string` (tokens are code points),
|
|
6
|
-
* `Uint8Array` (tokens are bytes) and arrays (tokens are elements). Parsers
|
|
7
|
-
* whose input type cannot be inferred from their arguments take a type
|
|
8
|
-
* parameter that defaults to `string`:
|
|
9
|
-
*
|
|
10
|
-
* ```ts
|
|
11
|
-
* import { Token } from "@thomasfosterau/effect-parse"
|
|
12
|
-
*
|
|
13
|
-
* Token.take(4) // Parser<string, never, never, string>
|
|
14
|
-
* Token.take<Uint8Array>(4) // Parser<Uint8Array, never, never, Uint8Array>
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* On partial input (see `Parser.parsePartial`), parsers that reach the end
|
|
18
|
-
* of the available data report `Incomplete` rather than succeeding early or
|
|
19
|
-
* failing.
|
|
6
|
+
* An inclusive range of tokens, e.g. `Token.range("a", "z")`.
|
|
20
7
|
*
|
|
21
8
|
* @since 0.1.0
|
|
9
|
+
* @category models
|
|
22
10
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
11
|
+
export interface TokenRange<T> {
|
|
12
|
+
readonly _tag: "TokenRange";
|
|
13
|
+
readonly from: T;
|
|
14
|
+
readonly to: T;
|
|
15
|
+
}
|
|
27
16
|
/**
|
|
17
|
+
* Creates an inclusive token range (winnow's `'a'..='z'`).
|
|
18
|
+
*
|
|
28
19
|
* @since 0.1.0
|
|
29
|
-
* @category
|
|
20
|
+
* @category constructors
|
|
30
21
|
*/
|
|
31
|
-
|
|
22
|
+
export declare const range: <T extends string | number>(from: T, to: T) => TokenRange<T>;
|
|
23
|
+
declare const CodePointsBrand: unique symbol;
|
|
32
24
|
/**
|
|
33
|
-
*
|
|
25
|
+
* A predicate over code points, made with {@link codePoints}. In a token set
|
|
26
|
+
* it receives each character as a number, so testing a character allocates
|
|
27
|
+
* nothing.
|
|
34
28
|
*
|
|
35
|
-
* @since 0.
|
|
29
|
+
* @since 0.2.0
|
|
36
30
|
* @category models
|
|
37
31
|
*/
|
|
38
|
-
export interface
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
readonly to: T;
|
|
32
|
+
export interface CodePoints {
|
|
33
|
+
(codePoint: number): boolean;
|
|
34
|
+
readonly [CodePointsBrand]: true;
|
|
42
35
|
}
|
|
43
36
|
/**
|
|
44
|
-
*
|
|
37
|
+
* Declares a character class as a predicate over code points, for token sets
|
|
38
|
+
* on string, `Text` and byte inputs. `name` describes it in error messages.
|
|
45
39
|
*
|
|
46
|
-
*
|
|
40
|
+
* A plain `(char: string) => boolean` predicate receives each character as a
|
|
41
|
+
* string, which costs an allocation per character tested; a `codePoints`
|
|
42
|
+
* predicate receives the code point itself (a byte, on byte input).
|
|
43
|
+
*
|
|
44
|
+
* `ranges` optionally lists the code points the predicate accepts, as
|
|
45
|
+
* inclusive `[from, to]` pairs. Compiled parsers then test the ranges
|
|
46
|
+
* instead of calling the predicate, so they must agree with it exactly.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* import { Parser, Token } from "@thomasfosterau/effect-parse"
|
|
51
|
+
*
|
|
52
|
+
* const isNameStart = Token.codePoints(
|
|
53
|
+
* "name start",
|
|
54
|
+
* (c) => (c >= 0x61 && c <= 0x7a) || c === 0x5f || c >= 0xc0,
|
|
55
|
+
* [[0x5f, 0x5f], [0x61, 0x7a], [0xc0, 0x10ffff]]
|
|
56
|
+
* )
|
|
57
|
+
* const name = Token.takeWhile([isNameStart, Token.range("0", "9")], { min: 1 })
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @since 0.2.0
|
|
47
61
|
* @category constructors
|
|
48
62
|
*/
|
|
49
|
-
export declare const
|
|
63
|
+
export declare const codePoints: (name: string, predicate: (codePoint: number) => boolean, ranges?: ReadonlyArray<readonly [number, number]>) => CodePoints;
|
|
50
64
|
/**
|
|
51
65
|
* A set of string tokens: the characters of a string, a range, a predicate,
|
|
52
|
-
* or an array of these.
|
|
66
|
+
* or an array of these. Strings, ranges, {@link codePoints} predicates and
|
|
67
|
+
* the `Ascii` and `Text` predicates test characters without allocating; a
|
|
68
|
+
* `(char: string) => boolean` predicate allocates a string per character.
|
|
53
69
|
*
|
|
54
70
|
* @since 0.1.0
|
|
55
71
|
* @category models
|
|
56
72
|
*/
|
|
57
|
-
export type StringTokenSet = string | TokenRange<string> | ((char: string) => boolean) | ReadonlyArray<StringTokenSet>;
|
|
73
|
+
export type StringTokenSet = string | TokenRange<string> | CodePoints | ((char: string) => boolean) | ReadonlyArray<StringTokenSet>;
|
|
58
74
|
/**
|
|
59
75
|
* A set of byte tokens: a byte, the (ASCII) characters of a string, a
|
|
60
76
|
* `Uint8Array` of bytes, a range, a predicate, or an array of these.
|
|
@@ -62,7 +78,7 @@ export type StringTokenSet = string | TokenRange<string> | ((char: string) => bo
|
|
|
62
78
|
* @since 0.1.0
|
|
63
79
|
* @category models
|
|
64
80
|
*/
|
|
65
|
-
export type ByteTokenSet = number | string | Uint8Array | TokenRange<number> | ((byte: number) => boolean) | ReadonlyArray<ByteTokenSet>;
|
|
81
|
+
export type ByteTokenSet = number | string | Uint8Array | TokenRange<number> | CodePoints | ((byte: number) => boolean) | ReadonlyArray<ByteTokenSet>;
|
|
66
82
|
/**
|
|
67
83
|
* A set of tokens (winnow's `ContainsToken`). For array inputs, a set is a
|
|
68
84
|
* predicate or an array of allowed elements (compared with `===`).
|
|
@@ -111,9 +127,9 @@ export declare const anyToken: <I extends Input = string>() => Parser<Token<NoIn
|
|
|
111
127
|
* @category tokens
|
|
112
128
|
*/
|
|
113
129
|
export declare const literal: {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
130
|
+
<const L extends string>(literal: L): Parser<L, never, never, string>;
|
|
131
|
+
(literal: Uint8Array): Parser<Uint8Array, never, never, Uint8Array>;
|
|
132
|
+
<const T>(literal: ReadonlyArray<T>): Parser<ReadonlyArray<T>, never, never, ReadonlyArray<T>>;
|
|
117
133
|
};
|
|
118
134
|
/** @internal */
|
|
119
135
|
export declare const literalImpl: (lit: Input, caseless: boolean) => Parser<any, never, never, any>;
|
|
@@ -188,9 +204,9 @@ export declare const takeTill: <I extends Input = string>(set: TokenSet<I>, rang
|
|
|
188
204
|
* @category slices
|
|
189
205
|
*/
|
|
190
206
|
export declare const takeUntil: {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
207
|
+
(literal: string, range?: Range): Parser<string, never, never, string>;
|
|
208
|
+
(literal: Uint8Array, range?: Range): Parser<Uint8Array, never, never, Uint8Array>;
|
|
209
|
+
<T>(literal: ReadonlyArray<T>, range?: Range): Parser<ReadonlyArray<T>, never, never, ReadonlyArray<T>>;
|
|
194
210
|
};
|
|
195
211
|
/**
|
|
196
212
|
* Takes the rest of the input (winnow's and nom's `rest`).
|
|
@@ -222,4 +238,6 @@ export declare const restLen: Parser<number, never, never, Input>;
|
|
|
222
238
|
* @category tokens
|
|
223
239
|
*/
|
|
224
240
|
export declare const satisfy: <I extends Input = string>(predicate: (token: Token<I>) => boolean) => Parser<Token<NoInfer<I>>, never, never, NoInfer<I>>;
|
|
241
|
+
//#endregion
|
|
242
|
+
export type { Token };
|
|
225
243
|
//# sourceMappingURL=Token.d.ts.map
|
package/dist/Token.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Token.d.ts","
|
|
1
|
+
{"version":3,"file":"Token.d.ts","names":[],"sources":["../src/Token.ts"],"mappings":";;;;;;;;;;iBAyDiB,WAAW;WACjB;WACA,MAAM;WACN,IAAI;;;;;;;;qBASF,QAAS,2BAA2B,MAAM,GAAG,IAAI,MAAI,WAAW;cAE/D;;;;;;;;;iBAUG;GACd;YACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA8BC,aACX,cACA,YAAY,+BACZ,SAAS,6CACR;;;;;;;;;;YAiBS,0BAER,qBACA,eACE,4BACF,cAAc;;;;;;;;YASN,iCAGR,aACA,qBACA,eACE,4BACF,cAAc;;;;;;;;YASN,SAAS,KAAK,mBACtB,iBACA,UAAU,aACR,eACA,UAAU,oBAAoB,OAC1B,OAAO,iBAAiB,cAAc;;;;;;;;qBAoCnC,KAAK;;;;;;;;;;;;;;;qBAgBL,WAAY,UAAU,qBAAmB,OAAO,MAAM,QAAQ,mBAAmB,QAAQ;;;;;;;;;;;;;;;;;qBAkBzF;SACJ,kBAAkB,SAAS,IAAI,OAAO;GAC5C,SAAS,aAAa,OAAO,0BAA0B;SACjD,GAAG,SAAS,cAAc,KAAK,OAAO,cAAc,kBAAkB,cAAc;;;qBAIhF,cAAe,KAAK,OAAO,sBAAoB;;;;;;;;;;;;;;;;;qBAyC/C,QAAS,UAAU,gBAC9B,KAAK,SAAS,OACb,OAAO,MAAM,QAAQ,mBAAmB,QAAQ;;;;;;;;qBAsBtC,SAAU,UAAU,gBAC/B,KAAK,SAAS,OACb,OAAO,MAAM,QAAQ,mBAAmB,QAAQ;;;;;;;qBAqBtC,OAAQ,UAAU,gBAAgB,kBAAgB,OAAO,MAAM,QAAQ,mBAAmB,QAAQ;;qBAsBlG,gBAAiB,UAAU,OACtC,cACA,GAAG,mBACH,iBACA,cACA,sBACA,OAAM,WACN,mBACC,OAAO,MAAM,QAAQ,mBAAmB,QAAQ;;;;;;;;;;;;;;;;;;;;qBAuCtC,YAAa,UAAU,gBAClC,KAAK,SAAS,IACd,QAAQ,UACP,OAAO,MAAM,QAAQ,mBAAmB,QAAQ;;;;;;;;qBAStC,WAAY,UAAU,gBACjC,KAAK,SAAS,IACd,QAAQ,UACP,OAAO,MAAM,QAAQ,mBAAmB,QAAQ;;;;;;;;;qBAUtC;GACV,iBAAiB,QAAQ,QAAQ;GACjC,SAAS,YAAY,QAAQ,QAAQ,OAAO,0BAA0B;GACtE,GAAG,SAAS,cAAc,IAAI,QAAQ,QAAQ,OAAO,cAAc,kBAAkB,cAAc;;;;;;;;qBAmCzF,MAAM;;;;;;;qBAgBN,SAAU,UAAU,qBAAmB,OAAO,MAAM,QAAQ,mBAAmB,QAAQ;;;;;;;;qBASvF,SAAS,6BAA6B;;;;;;;;qBAetC,UAAW,UAAU,gBAChC,YAAY,OAAO,MAAM,mBACxB,OAAO,MAAM,QAAQ,mBAAmB,QAAQ"}
|