Dan Hirsch
40be28fb7e
Merge remote-tracking branch 'bunter/master'
...
Also, fix makefile
Conflicts:
src/hammer.c
2012-05-24 15:51:42 +02:00
Dan Hirsch
5d77c4307f
Fix difference and butnot
2012-05-24 15:35:04 +02:00
Meredith L. Patterson
13395d8a54
counted_array now holds parsed_token_t's. TQ will fix the problem with accumulate_size. Compile-time bounds checks added to int_range.
2012-05-24 13:22:43 +02:00
Meredith L. Patterson
947b67b5a5
Continuing with DNS. Added some checks to attr_bool, and explained checks in docs.
2012-05-24 11:01:18 +02:00
Meredith L. Patterson
f921ece53f
action() works. Will finish DNS tomorrow.
2012-05-22 03:57:27 +02:00
Meredith L. Patterson
6eb93fb655
ALL THE DOCSTRINGS
2012-05-22 02:40:59 +02:00
Meredith L. Patterson
3a0068d92b
Changed resulttype of action_t to parsed_token_t; users shouldn't have to assign arenas in results.
2012-05-18 12:49:40 +02:00
Meredith L. Patterson
642df1f238
Finished action. On to testing.
2012-05-18 12:35:40 +02:00
Meredith L. Patterson
b10a3d8ae9
Finished attr_bool, cleaned up header a little.
2012-05-18 12:18:19 +02:00
Meredith L. Patterson
3d5e9399c4
Merged TQ's changes. Started on attr_bool and action.
2012-05-18 11:44:38 +02:00
Dan Hirsch
5ffea6b7bb
Fixed all known memory leaks, added indirect parser, which will allow recursion
2012-05-17 18:27:59 +02:00
Dan Hirsch
764d0d7071
Cleaned up some memory leaks, got rid of gsequence, improved test macro to free memory that it allocated
2012-05-17 15:52:29 +02:00
Meredith L. Patterson
9803b14ce8
Warth's recursion finished. action() and and() still fail. Time to migrate in TQ's arena work.
2012-05-17 15:47:14 +02:00
Meredith L. Patterson
c6f2dcc257
Moved parse_state_t into internal.h, had to add some things for Warth's recursion. More documentary comments.
2012-05-17 13:22:56 +02:00
Dan Hirsch
bd6e7d1b63
Merge branch 'master' of 10.24.0.2:working/hammer
2012-05-13 01:25:58 +01:00
Meredith L. Patterson
756f0a6573
moved lr_queue from input_stream to parse_state
2012-05-13 01:25:45 +01:00
Dan Hirsch
92df2d081b
Merge remote-tracking branch 'bunter/master'
...
Conflicts:
src/hammer.c
2012-05-13 01:25:41 +01:00
Meredith L. Patterson
e6eb2efa88
Left-recursion caching strategy about halfway implemented. Compiles, DOES NOT RUN.
2012-05-13 01:18:18 +01:00
Dan Hirsch
3afe324aaa
Implemented a bunch more combinators
2012-05-13 01:01:26 +01:00
Meredith L. Patterson
0164ddc98d
Merge branch 'master' of 10.24.0.1:Projects/hammer. Also, licenses for everything!
...
Conflicts:
src/hammer.c
2012-05-12 22:26:59 +01:00
Dan Hirsch
b6cb84df15
Added 'unimplemented' parser
2012-05-12 21:53:54 +01:00
Dan Hirsch
18c2d1f2ca
Included arena allocator in return value
2012-05-12 21:53:03 +01:00
Meredith L. Patterson
0e69b8e2dd
fixed merge conflict
2012-05-12 21:27:10 +01:00
Meredith L. Patterson
e748b9c4cb
Starting work on Scala-style left-recursion caching.
2012-05-12 21:26:15 +01:00
Dan Hirsch
79f9e21da7
Bolted on arena allocator
2012-05-12 21:20:38 +01:00
Meredith L. Patterson
60fd846b2f
Removed chain and chainl, as all people will really need is list.
2012-05-12 16:04:20 +01:00
Meredith L. Patterson
650a25a6b5
All unit tests written except chain and chainl. Removed left_factor_action, we'll handle left-recursion with our caching strategy.
2012-05-12 15:49:46 +01:00
Meredith L. Patterson
c03de603f6
Merge branch 'master' of http://github.com/thequux/hammer
2012-05-12 10:49:41 +01:00
Dan Hirsch
d5358a724b
Made sequence and choice variadic, and added test suite helper functions
2012-05-12 00:40:54 +01:00
Meredith L. Patterson
2c5911c0aa
wrote some more tests, waiting for tq to finish revising harness
2012-05-12 00:24:56 +01:00
Meredith L. Patterson
7469d09a68
merging
2012-05-11 23:42:21 +01:00
Meredith L. Patterson
7cf1df005f
Test generation continues; need to pull in tq's work
2012-05-11 23:38:45 +01:00
Dan Hirsch
99804b2abf
Added pretty printer
2012-05-11 23:35:21 +01:00
Meredith L. Patterson
7080d732c1
Fixed inconsistent signature of charset parser, registered (still stubbed) unit tests so the build doesn't break :)
2012-05-11 15:24:22 +01:00
Meredith L. Patterson
602ea6d510
Added stubs for unit tests and declarations for primitive parsers (intN, uintN, floatN)
2012-05-11 15:14:30 +01:00
Dan Hirsch
dc0a7572f7
Added overrun protection
2012-05-10 14:32:11 +01:00
Dan Hirsch
d6c0eaf3de
Merge remote-tracking branch 'upstream/master'
...
Conflicts:
NOTES
2012-05-04 21:27:09 +01:00
Dan Hirsch
b4aca3c992
Fixed declaration of negate -> notin
2012-05-04 21:25:26 +01:00
Meredith L. Patterson
709884faf5
difference and xor combinators done.
2012-05-03 02:31:22 +01:00
Meredith L. Patterson
3016fd2460
Got rid of old comments about how jsparse caches, since we've settled on a cache layout
2012-05-03 02:09:00 +01:00
Dan Hirsch
a076c4d12c
Merge remote-tracking branch 'upstream/master'
2012-05-03 01:59:03 +01:00
Dan Hirsch
491c2ec2fa
Added do_parse function, and filled in parse driver
2012-05-03 01:58:35 +01:00
Meredith L. Patterson
19e36e1cfe
Fixed build (completed butnot combinator). Also, fixed bug where sequence wasn't bailing out if one parser failed.
2012-05-03 01:40:23 +01:00
Meredith L. Patterson
7fa1111d84
Started working on butnot/difference/xor, but not gonna finish those tonight.
2012-05-01 03:59:49 +01:00
Meredith L. Patterson
f7e7f92408
Parsers for sequence and choice are done. Got rid of join_action, we didn't need it. parse_result_t now contains a single parsed_token_t (and whatever we decide to jam into it later), so that sequence makes sense.
2012-05-01 03:21:14 +01:00
Meredith L. Patterson
f4d116d411
See previous commit message. Saved hammer.h later than I should've. Sorry.
2012-05-01 00:45:46 +01:00
Meredith L. Patterson
318b594bed
Parser combinators are well underway. Ones that are now finished are:
...
* token: matches a sequence of bytes (with length)
* ch: matches a single byte
* range: matches any byte within the range [lower, upper] (inclusive)
* join_action: joins the results of another parser with a separator
* negate: matches the opposite of any single-character parser
* end_p: succeeds if there's no input left to parse
* nothing_p: always fails
One other big change: the AST is now a GSequence of parsed_token_t's. WARNING: This is not actually enforced, because C.
Also tweaked the makefile a little (which will get clobbered in TQ's next commit) and added some documentary comments to hammer.h.
2012-05-01 00:33:47 +01:00
Meredith L. Patterson
dfd8cf2a97
Settled on cache layout, wrote djbhash variant for indexing byte/bit positions into inner hash table
2012-04-30 03:44:10 +01:00
Dan Hirsch
faab7b7cf8
Wrote basic makefile, wrote tests, and then fixed them
2012-04-29 01:45:52 +01:00
Dan Hirsch
7adae0da7c
Wrote bitwise reader; needs tests
2012-04-23 19:39:44 +01:00