Commit graph

49 commits

Author SHA1 Message Date
Sven M. Hallberg
5b4550ab0f make MARK a constant that points to itself 2015-09-08 16:19:45 +02:00
Sven M. Hallberg
4f455aa97e fix result bit_length for LL(k) 2015-09-07 15:33:50 +02:00
Sven M. Hallberg
bfb795b093 add window buffer to look across chunk boundaries 2015-09-06 14:48:51 +02:00
Sven M. Hallberg
73e92f04df save kmax in HLLkTable 2015-09-06 14:48:41 +02:00
Sven M. Hallberg
8995097a1d let's just use ((void *)-1) as another invalid pointer result 2015-09-05 22:43:49 +02:00
Sven M. Hallberg
1276004250 handle suspend on lookahead at the very end of the chunk 2015-09-04 21:05:56 +02:00
Sven M. Hallberg
d4f933b2d3 move last_chunk flag into HInputStream 2015-09-04 12:55:37 +02:00
Sven M. Hallberg
0231dc141e add iterative API to LL(k) backend 2015-09-03 19:18:07 +02:00
Sven M. Hallberg
f1d6d0bc5e split h_llk_parse into start/chunk/finish internally 2015-09-03 19:15:57 +02:00
Sven M. Hallberg
c5f2c5aa2b add a missing end-of-input check in the LL(k) backend 2015-08-25 14:14:48 +02:00
Sven M. Hallberg
6875dc3e53 retab 2014-03-24 17:30:23 +01:00
Sven M. Hallberg
797bdb7224 copy source stringmap as necessary in stringmap_merge 2014-03-24 17:22:52 +01:00
Sven M. Hallberg
2b31fb0f33 assert: stringmap_merge's arguments should use the same memory arena 2014-03-24 15:49:36 +01:00
Dan Hirsch
69e84bcbb0 Added a void* user_data pointer to HPredicate 2013-11-23 13:01:55 -06:00
Dan Hirsch
e487d5435c Added a void* user_data pointer to HAction 2013-11-23 12:53:11 -06:00
Sven M. Hallberg
9585a5946e use lookahead stream directly for LR (terminal) lookup 2013-06-21 23:22:07 +02:00
Sven M. Hallberg
3be83c7fa2 set index and offset of result tokens in llk driver 2013-06-04 21:59:39 +02:00
Sven M. Hallberg
dba9d41eda rename HCFStringMap to HStringMap 2013-06-04 21:47:09 +02:00
Meredith L. Patterson
8618f9cb62 remove useless desugar_unimplemented; revert incorrect changes to test_llk() 2013-05-24 20:10:21 -07:00
Meredith L. Patterson
02d68f6d18 Merge branch 'master' of https://github.com/thequux/hammer
Conflicts:
	src/backends/llk.c
2013-05-24 20:00:41 -07:00
Dan Hirsch
ec404ca8fe Refactored all of the desugaring code to no longer depend on memory being initialized to 0. Everything is about 12% faster now. 2013-05-25 03:35:42 +02:00
Sven M. Hallberg
0dde8ea4ee remove debug output from fill_table_row 2013-05-24 23:04:20 +02:00
Sven M. Hallberg
7ce2194ff1 upgrade dummy example to require LL(3) 2013-05-24 23:00:00 +02:00
Sven M. Hallberg
f55ec2f1ed comment wording 2013-05-24 22:40:00 +02:00
Sven M. Hallberg
cbd50ec4c3 temp commit some debugging stuff for posterity 2013-05-24 22:39:32 +02:00
Sven M. Hallberg
e4984fe60c add an assertion that catches the infinite loop 2013-05-24 14:08:13 +02:00
Sven M. Hallberg
bd9f9293c1 why does this (test_llk) segfault!? driver goes into a loop. 2013-05-24 04:33:27 +02:00
Sven M. Hallberg
8da48913b1 don't extend table entries that are already unambiguous 2013-05-24 02:07:31 +02:00
Sven M. Hallberg
428636f3d0 h_predict for k>1, more debugging 2013-05-24 01:31:56 +02:00
Sven M. Hallberg
748845ca0c add API for pretty-printing for grammar symbols and symbol sequences 2013-05-23 23:35:10 +02:00
Sven M. Hallberg
f6983a5041 debug table generation 2013-05-23 23:25:32 +02:00
Sven M. Hallberg
4c5ca5ceab clean up a bit 2013-05-23 22:54:49 +02:00
Sven M. Hallberg
e5ee61029c herp-a-derp, that wasn't actually done - still bugged, though 2013-05-23 22:19:13 +02:00
Sven M. Hallberg
5e3c681dbc generalize most of llk.c to arbitrary k (ex. h_predict) - still bugged 2013-05-23 21:01:37 +02:00
Sven M. Hallberg
3ff32e86e4 make dummy example require LL(2) 2013-05-23 14:42:43 +02:00
Sven M. Hallberg
2c8d76d7ea refactor and bughunt unsuccessfully trying to find out why
h_first(2, ...) won't give me length-2 strings
2013-05-22 22:45:25 +02:00
Sven M. Hallberg
f5d5c36756 generalize grammar analysis to k>1 2013-05-22 20:38:36 +02:00
Sven M. Hallberg
91c04314a4 refactor h_llk_lookup to take the input stream as argument 2013-05-20 21:28:16 +02:00
Sven M. Hallberg
c794be5b6f consider HCF_CHARSET terminal symbols (as the LL driver already treats them) 2013-05-14 16:15:58 +02:00
Sven M. Hallberg
623fd6b030 add "reshape" action to HCFChoice 2013-05-14 11:54:43 +02:00
Sven M. Hallberg
0431528065 detect parse error in llk dummy test 2013-05-14 11:51:54 +02:00
Sven M. Hallberg
fdcfc243b8 formatting 2013-05-11 23:41:47 +02:00
Sven M. Hallberg
f1810d8be6 make h_llktable_free a no-op on NULL, just to be safe 2013-05-11 22:22:02 +02:00
Sven M. Hallberg
286458f58a parser->data got renamed to backend_data, also h_llk_free 2013-05-11 22:02:59 +02:00
Sven M. Hallberg
62d48d2f5a derp, forgot that table lookup can fail 2013-05-11 21:41:53 +02:00
Sven M. Hallberg
ccdb0fa85c eliminate duplication of result handling code in LL driver 2013-05-11 20:40:33 +02:00
Sven M. Hallberg
88261f69ba derp, forgot to save original nonterminal in stack frame 2013-05-11 19:26:22 +02:00
Sven M. Hallberg
b6aab591ea add compile and parse steps to the llk dummy test (segfaults on parse) 2013-05-11 19:10:39 +02:00
Sven M. Hallberg
c64a4e435e Merge remote-tracking branch 'tq/master' into LL such that it compiles
Conflicts:
	src/Makefile
	src/backends/packrat.c
	src/compile.c
	src/hammer.h
	src/internal.h
	src/parsers/action.c
	src/parsers/and.c
	src/parsers/attr_bool.c
	src/parsers/bits.c
	src/parsers/butnot.c
	src/parsers/ch.c
	src/parsers/charset.c
	src/parsers/choice.c
	src/parsers/difference.c
	src/parsers/end.c
	src/parsers/epsilon.c
	src/parsers/ignore.c
	src/parsers/ignoreseq.c
	src/parsers/indirect.c
	src/parsers/int_range.c
	src/parsers/many.c
	src/parsers/not.c
	src/parsers/nothing.c
	src/parsers/optional.c
	src/parsers/sequence.c
	src/parsers/token.c
	src/parsers/unimplemented.c
	src/parsers/whitespace.c
	src/parsers/xor.c
2013-05-11 19:09:22 +02:00