Commit graph

1070 commits

Author SHA1 Message Date
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
TQ Hirsch
9030136d08 Merge pull request #132 from abiggerhammer/master
Usability improvements from the tutorial
2015-07-26 18:15:50 +02:00
Meredith L. Patterson
522bc7cf05 Merge branch 'master' of github.com:abiggerhammer/hammer 2015-05-04 19:01:05 -04: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
33af1ec65c Merge pull request #131 from michiexile/master
Algebraic Generating Functions from parser
2015-04-11 01:16:25 +02:00
Mikael Vejdemo-Johansson
d13657a411 Changed generating functions printouts to be copy-paste-able into SageMath.
Now we can do things like:

# copy-paste from output
ring.<t,L,tie,Cn,M,Ln,I,D,J,Rn,A,K,F,G> = QQ[]
ID = ring.ideal(L - (1*Cn*t),tie - (1*Ln*t),Cn - (1*I + 1*J),M - (1*t^2),Ln - (1*D + 1*L + 1*M),I - (1*Rn*t),D - (1*Rn*t),J - (1*Ln*t),Rn - (1*F + 1*G + 1*K),A - (1*tie),K - (1*t^2),F - (1*Ln*t),G - (1*Cn*t))

# we are interested in tie in terms of t; so we want to remove anything not these two:
ID.elimination_ideal([L,Cn,M,Ln,I,D,J,Rn,A,K,F,G])

# output from this SageMath command is
# Ideal (t^3 + 2*t^2*tie + t*tie - tie) of Multivariate Polynomial Ring in t, L, tie, Cn, M, Ln, I, D, J, Rn, A, K, F, G over Rational Field
# which we can solve for tie to get tie = t^3/(1-t-2*t^2) just as expected
2015-04-10 10:05:19 +02:00
Mikael Vejdemo-Johansson
a72aff9b39 refactored out the grammar handling. handles epsilons better 2015-04-08 17:32:12 +02:00
Mikael Vejdemo-Johansson
24e9e9de7f support naming of generating functions, and 0-weighting of symbols 2015-04-08 15:29:32 +02:00
Mikael Vejdemo-Johansson
1e95eac6cd removed h_repeat_n to enable desugaring 2015-04-08 14:06:58 +02:00
Mikael Vejdemo-Johansson
5100dc69da typo 2015-04-08 13:54:30 +02:00
Mikael Vejdemo-Johansson
8039d48537 removed use of h_many to get desugars 2015-04-08 13:53:45 +02:00
Mikael Vejdemo-Johansson
61a211559e fixed build errors wrt sentinels 2015-04-08 13:46:42 +02:00
Mikael Vejdemo-Johansson
9a1812bd49 added ties to build script 2015-04-08 13:44:14 +02:00
Mikael Vejdemo-Johansson
7fdc687bd4 parsers for the grammars in the tieknots paper 2015-04-08 09:33:20 +02:00
Mikael Vejdemo-Johansson
6b8a3f262f polished generating function code more 2015-04-07 22:14:32 +02:00
Mikael Vejdemo-Johansson
107d8c092b Generating function skeleton code 2015-04-07 22:13:18 +02:00
Meredith L. Patterson
8043c7f7b4 Merge pull request #24 from UpstandingHackers/master
Update from trunk
2015-03-15 23:29:57 +01: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
TQ Hirsch
4e8d319d0e Merge pull request #126 from pesco/fix-h_read_bits-48
Add some missing type conversions to make h_read_bits work with count>32
2015-02-13 17:25:43 +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
Meredith L. Patterson
8aba9ce217 Merge pull request #125 from pesco/fix-h_seq_index_path
Descend properly in h_seq_index_path
2015-01-30 21:37:34 +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
Meredith L. Patterson
b2f247b029 Merge pull request #116 from mrdomino/h-validate-apply
H_VALIDATE_APPLY macro
2015-01-04 04:12:06 +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
Meredith L. Patterson
f78054708c Merge pull request #111 from mrdomino/pkg-config-path
Fix compilation when PKG_CONFIG_PATH is not in environ
2014-12-30 00:18:25 +01:00
Meredith L. Patterson
47f34b81e4 Merge pull request #112 from mrdomino/fix-base64
Remove vacuous states in base64_sem?.c
2014-12-07 22:21:04 +01:00
Meredith L. Patterson
735131ee24 Merge pull request #110 from mrdomino/move-unreferenced-var
Move backend names into src/benchmark.c
2014-12-07 22:20:03 +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
8d5f00870f Remove vacuous states in base64_sem?.c
I don't think these actually affect correctness since there's no way for
0x40 or 0x60 to show up in a parse tree anyway, but they're confusing.
2014-12-07 00:16:57 -05:00
Steven Dee
70fa455c03 Fix compilation when PKG_CONFIG_PATH is not in environ 2014-12-07 00:16:34 -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
Meredith L. Patterson
9faa4cf675 Merge pull request #109 from mrdomino/readme-user-guide
Mention user guide in README
2014-12-01 01:38:18 +01:00
Steven Dee
011efe8cfb Mention user guide in README 2014-11-30 19:23:29 -05:00