Commit graph

843 commits

Author SHA1 Message Date
Meredith L. Patterson
0653a9e48a add explicit null checks to system_allocator malloc/realloc 2015-08-02 14:34:45 +02:00
Nicolas Léveillé
2a6233b74f Print user defined token type while pretty printing
The pretty printing format chosen is USER:<token name>

We use the registry function `h_get_token_type_name` which returns 0
when no name has been defined. This will print (null) as a token name.
2015-08-01 13:42:43 +02:00
Meredith L. Patterson
39c9096fd6 changes from tutorial: add h_literal, make h_make_bytes more practical 2015-05-04 19:00:37 -04:00
Meredith L. Patterson
26373bf25f Merge pull request #129 from pesco/h_bind
Add monadic bind combinator h_bind
2015-03-10 21:27:24 +01:00
Meredith L. Patterson
af260bdd58 Merge pull request #122 from mrdomino/fix-res_unamb-leak
Free res_unamb
2015-03-10 18:06:01 +01:00
Sven M. Hallberg
aa2dc7bcf5 put the message into the assert in aa_realloc 2015-03-04 14:54:42 +01:00
Sven M. Hallberg
be80fdedfc make arena-allocator implementation functions static 2015-03-04 14:52:28 +01:00
Sven M. Hallberg
9a8dca2c04 Merge branch 'master' of git://github.com/UpstandingHackers/hammer into h_bind 2015-03-04 14:47:49 +01:00
Sven M. Hallberg
1ce0ef9b8a pass a temporary arena allocator to the continuation in h_bind 2015-02-23 14:10:29 +01:00
Sven M. Hallberg
2eaf5d9052 add some missing type conversions to make h_read_bits work with count>32 2015-02-12 01:40:45 +01:00
Sven M. Hallberg
7ba5931095 Merge branch 'master' of git://github.com/UpstandingHackers/hammer into h_bind 2015-01-30 20:48:49 +01:00
Sven M. Hallberg
12771a5655 oh, there's t_regression.c now, neat. 2015-01-30 20:42:11 +01:00
Sven M. Hallberg
3f197ea1b0 Merge branch 'master' of git://github.com/UpstandingHackers/hammer into fix-h_seq_index_path 2015-01-30 20:37:26 +01:00
Sven M. Hallberg
341123e2ea descend properly in h_seq_index_path 2015-01-30 20:36:37 +01:00
Sven M. Hallberg
cbc7358b66 add a test that shows a bug in h_seq_index_path 2015-01-30 20:35:35 +01:00
Sven M. Hallberg
c9b2957832 add g_check_cmp_int 2015-01-30 20:35:14 +01:00
Sven M. Hallberg
78266af453 allow h_bind's function argument to return NULL as a shortcut for h_nothing_p() 2015-01-23 22:06:43 +01:00
Sven M. Hallberg
42d51ed479 add monadic bind combinator h_bind 2015-01-23 22:00:59 +01:00
Steven Dee
a0104776ed Free res_unamb 2015-01-04 21:38:04 -05:00
Meredith L. Patterson
5efaba87e8 Merge pull request #120 from thequux/fix-bug118
Fix #118
2015-01-04 04:18:11 +01:00
TQ Hirsch
af73181cf4 Fix #118
NEWS:
* Switching endianness mid-byte no longer potentially re-reads bytes.
* bit_offset now consistently refers to the number of bits already
  read.
* HParsedTokens now have a bit_length field; this is a size_t.  This
  may be removed for memory reasons.

The bit writer has not yet been updated to match; the result of
switching bit writer endianness in the middle of a byte remains
undefined.
2015-01-04 04:08:01 +01:00
Steven Dee
2dad0c48b4 H_VALIDATE_APPLY macro
I've found this especially useful in combination with my own
_attr_uint_const for things like flags and type specifiers.

It's possible that its usefulness might be diminished significantly if
there were a built-in bitfield constant parser -- that certainly would
eliminate all of my current uses of it -- but it still seems nicely
symmetric with H_ACT_APPLY.
2015-01-03 16:44:36 -05:00
Steven Dee
5abe74f890 Retab as though tabstop were 8
Tabs after the first non-tab character are crazymaking. I picked 8
because it wasn't 7 and caused the backslashes to line up on
H_ACT_APPLY.
2015-01-03 16:35:56 -05:00
Meredith L. Patterson
58af99ae40 Merge pull request #114 from mrdomino/llvm-attr-malloc
llvm doesn't care about your size
2014-12-30 00:18:53 +01:00
Steven Dee
b1078c3d88 llvm doesn't care about your size
They apparently removed alloc_size at some point (it was a no-op
beforehand), causing the attribute to throw an error when clang compiles
anything including allocator.h.
2014-12-07 02:27:28 -05:00
Steven Dee
f2434d5b12 Move backend names into src/benchmark.c
It's causing unreferenced-variable warnings, and isn't referenced
anywhere aside from benchmark.c. If client code is likely to reference
it, perhaps move it into another header, so people who include hammer.h
don't have to refer to it to have warning-free code.
2014-12-07 00:12:11 -05:00
Sven M. Hallberg
41dca83631 add h_permutation 2014-06-18 21:54:52 +02:00
Meredith L. Patterson
eb6c74cf89 h_put_value and h_get_value done. 2014-05-12 09:52:35 +02:00
TQ Hirsch
5679939a2c Merge pull request #104 from abiggerhammer/master
change pointer type to uintptr_t for portability
2014-05-11 14:56:31 -07:00
Meredith L. Patterson
fcd729ef60 change pointer type to uintptr_t for portability 2014-05-11 23:41:54 +02:00
Sven M. Hallberg
bf50ffcd84 tab correction 2014-05-07 19:29:25 +02:00
Sven M. Hallberg
4a90a0be66 fix h_read_bits path for BYTE_LITTLE_ENDIAN 2014-05-07 19:24:58 +02:00
Sven M. Hallberg
5f920b29f8 add h_with_endianness() 2014-05-07 19:24:26 +02:00
Meredith L. Patterson
27f08df1d3 fix infinite loop in isValidCF with indirect 2014-04-20 21:40:09 +02:00
Meredith L. Patterson
bab376cab7 fix non-resizable hashtable 2014-04-20 21:00:50 +02:00
Meredith L. Patterson
eb04842d85 slightly nicer benchmark output 2014-04-20 17:31:21 +02:00
Meredith L. Patterson
1d12f9ffac regex_compile should return -1 if not a regular grammar; give backends names 2014-04-20 17:23:25 +02:00
Meredith L. Patterson
c9419f4c34 CF backends weren't checking whether a grammar is CF; they are now. Also, brace-fixing. 2014-04-20 16:57:01 +02:00
TQ Hirsch
cc4ded8914 Ported to OpenBSD. 2014-04-13 22:30:48 +00:00
TQ Hirsch
849178d60b Ported to NetBSD (2/2): Add casts for character class detection
NetBSD's character class test macros are defined such that they produce
a compiler warning when given a char argument. Adding a cast to the call
fixes this.
2014-04-13 14:36:38 -07:00
TQ Hirsch
426a3f8468 Ported to NetBSD (1/2): Replaced Linux-specific timer call
CLOCK_THREAD_CPUTIME_ID is a linux-specific timer. On NetBSD, the best
way to get timer information appears to be getrusage, which happens to
be fairly cross-platform.
2014-04-13 14:36:38 -07:00
Meredith L. Patterson
70da67adb5 Merge pull request #94 from pesco/fix-49-stringmap-segfault
Fix #49 stringmap segfault
2014-04-10 23:40:28 +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
0970b15034 add function h_stringmap_copy 2014-03-24 17:22:32 +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
Sven M. Hallberg
4a973d3f98 enable leftrec-ne test for LALR and GLR backends 2014-03-21 22:39:13 +01:00
Sven M. Hallberg
5af0e3e2ba disable test /core/parser/packrat/leftrec 2014-03-21 22:37:39 +01:00
Sven M. Hallberg
0fb744b16d rename leftrec_nonempty test to leftrec-ne 2014-03-21 22:34:39 +01:00
Sven M. Hallberg
f4afd0cb8d more leftrec fixes: head caching and input rewinding 2014-03-21 20:54:33 +01:00