Commit Graph

101 Commits (0b0e46085776ad8e7b51a3b907e9de9953249c1d)

Author SHA1 Message Date
Chris Double 89c7698738 Fix MEMO problem with seq* and choice* 2008-03-28 11:30:46 +13:00
Chris Double fa8b311b27 Add packrat-parse, etc 2008-03-28 00:04:08 +13:00
Chris Double f6b7f8197e Add tests for left recusion in pegs 2008-03-27 23:54:34 +13:00
Chris Double 4e29081e93 Make left recursion in pegs a failed parse
Eventually left recursion will work fine, but this is prevents an infinite loop for now.
2008-03-27 18:15:22 +13:00
Chris Double 4c50daed22 Testcase for packrat behaviour 2008-03-27 17:58:08 +13:00
Chris Double bc5f82255f peg refactorings 2008-03-27 17:24:05 +13:00
Chris Double 708726d208 Add with-packrat word and more memoization 2008-03-27 15:50:27 +13:00
Chris Double 7c0535884e Fix up peg memoization of compiled parsers 2008-03-27 15:34:49 +13:00
Chris Double e6da3bc43a Use cache in compiled-parser in peg 2008-03-27 14:55:14 +13:00
Chris Double c0f4e37427 Fix usage of cache in pegs 2008-03-27 12:58:53 +13:00
Chris Double 2614792254 Implement packrat algorithm 2008-03-27 12:31:13 +13:00
Chris Double c793a381fe Add hook for packrat implementation 2008-03-27 11:24:06 +13:00
Chris Double 85a3ee3e5b Remove memoization in 'compile' word in pegs
This creates issues when recompiling a an existing EBNF parser for reasons I've not yet tracked down. Disabling it slows things down but makes things work correctly till I investigate the issue.
2008-03-27 11:24:06 +13:00
Chris Double de3e4e049f Use cleave instead of get-slots in peg 2008-03-26 16:21:33 +13:00
Chris Double 8569d18068 Use new slots in peg 2008-03-26 16:08:14 +13:00
Chris Double b1561de0f6 Reduce amount of generated code for peg token parser 2008-03-26 15:40:17 +13:00
Chris Double 943b02ab2f Fix performance regression in pegs
delay parser is improved to use a memoized quotation so the
construction and compilation of the parser at runtime only
occurs once.
Changed compile so it would use equality rather than identity
for memoization purposes.
2008-03-22 01:59:16 +13:00
Chris Double d1e0aa6e80 Get peg subvocabs working again 2008-03-22 00:58:53 +13:00
Chris Double a14854520d Compile pegs down to words 2008-03-21 03:05:21 +13:00
Chris Double 1c6882b32c Rip out packrat stuff
It was broken since the transition to generating compiled quotations. As far as I know, no one was using packrat-parse anyway.
Rework in progress...
2008-03-21 01:26:20 +13:00
Doug Coleman f84761ae0c fix docs for delay 2008-03-05 18:15:28 -06:00
Slava Pestov 47a96775d8 Add PEG: word 2008-03-03 16:57:30 -06:00
Slava Pestov 05a02ade7a Unix <process-stream> now compiles 2008-03-03 16:45:18 -06:00
Doug Coleman 2f48327b47 move non-core peg parsers to peg.parsers
document and unit test peg.parsers
add just parser
2008-03-03 13:28:53 -06:00
Doug Coleman 635b02ca27 implement list-of, list-of* in terms of (list-of)
add 2choice 3choice
2008-02-26 17:13:15 -06:00
Doug Coleman 11147c7bc0 add 2seq, 3seq 2008-02-26 15:17:17 -06:00
Chris Double 8542dc5812 Add seq* and choice* to peg 2008-02-14 10:39:37 +13:00
Slava Pestov 2541c62e29 Fix code for math.parser changes 2008-02-06 21:15:47 -06:00
Eduardo Cavazos bff385269c Lot's of USING: fixes for ascii or unicode 2008-02-01 18:26:32 -06:00
Chris Double e7cf83a57a First attempt at compiling peg parsers to quotations 2007-12-21 13:16:14 +13:00
Chris Double d45ed669f8 Add digit, number and string parser to peg 2007-12-20 11:54:17 +13:00
Chris Double 38beaac720 Infinite left recursion now causes a failed parser rather than a call stack error 2007-11-30 00:01:03 +13:00
Chris Double 3003911e07 Make some parsers uses MEMO: 2007-11-29 23:49:34 +13:00
Chris Double 362f2d3436 Fix packrat caching issue 2007-11-29 23:42:46 +13:00
Chris Double 89bbd21362 Add packrat caching to peg 2007-11-29 12:35:45 +13:00
Chris Double 3372ad8f68 Fix some peg breakage 2007-11-28 15:27:35 +13:00
Chris Double 31d57422da Start of EBNF parser 2007-11-27 18:13:36 +13:00
Chris Double e49d84ce97 Add 'delay' parser to peg 2007-11-27 16:16:21 +13:00
Chris Double 5fb6af754b Add hide combinator 2007-11-27 15:45:00 +13:00
Chris Double 055276ca25 Add 'sp' parser to skip whitespace 2007-11-27 15:36:26 +13:00
Chris Double e6b6bb8a5c Add satisfy parser in peg 2007-11-27 15:08:16 +13:00
Chris Double 99b39e0351 Some help for pegs 2007-11-27 12:22:33 +13:00
Chris Double 6476eb765e remove parse-state from peg 2007-11-27 11:57:08 +13:00
Chris Double 167f2d716d add action parser 2007-11-22 11:19:16 +13:00
Chris Double 2a464ea2c6 add ensure-not parser 2007-11-22 11:19:16 +13:00
Chris Double 129f68d428 add ensure parser 2007-11-22 11:19:16 +13:00
Chris Double ffa71ef86f add optional parser 2007-11-22 11:19:16 +13:00
Chris Double e9df13dad5 remove match from parse results 2007-11-22 11:19:16 +13:00
Chris Double 691c62501f add repeat0 and repeat1 2007-11-22 11:19:16 +13:00
Chris Double 2d3fe08403 Add choice parser 2007-11-22 11:19:15 +13:00
Chris Double aacf88a72d First cut at peg style packrat parser 2007-11-22 11:19:15 +13:00