Nathan Braswell
|
fe6818edfc
|
working towards function overloading, the emitted functions and function calls are now decorated and we're starting to get the prereqs for function lookup
|
2016-01-13 21:09:28 -05:00 |
|
Nathan Braswell
|
4c569f4f8c
|
Added function calls, printing out of pointers
|
2016-01-11 23:41:09 -05:00 |
|
Nathan Braswell
|
5db0365a63
|
Added indirection to types in prep for function calls, full passthrough, and the first real hello world
|
2016-01-10 18:26:31 -05:00 |
|
Nathan Braswell
|
daae39fe19
|
Added in the beginnings of pass three which can parse and emit statements and code blocks
|
2016-01-07 02:52:22 -05:00 |
|
Nathan Braswell
|
337bc424ee
|
Added in basic transformation and generation for functions
|
2016-01-06 02:46:42 -05:00 |
|
Nathan Braswell
|
f29fdcd463
|
More skeleton, including a trivial second_pass_function, fix a bug with ADTs that have members with the same name (may still be a problem if the ADT itself has the same name)
|
2016-01-05 21:40:00 -05:00 |
|
Nathan Braswell
|
79065c032f
|
We have a VERY SILL KRAKEN COMPILER\! simple_passthroughs are now emitted by the c_generator and test_compiler has been extended to write the C to a file and then call cc on it, so the self-hosted Kraken compiler can compile its very first thing\! (though that thing is a hello world C program written entirely in a simple_passthrough...
|
2016-01-04 02:00:06 -05:00 |
|
Nathan Braswell
|
84032eece0
|
Fix case_statement/lambda-close-over-variables bug, rename ast_node file to make ast_node:: unambigious, change test_ast to test_compiler and add a little skeleton c_generator file
|
2016-01-04 00:38:59 -05:00 |
|
Nathan Braswell
|
bb3ccf808b
|
unserialize grammer directly to avoid extra copying
|
2016-01-02 13:44:31 -05:00 |
|
Nathan Braswell
|
8b77a60be5
|
More ast_transformation work, but the big change was fixing regex so that it didn't have an exponential implmentation by using sets instead of vectors to deduplicate
|
2016-01-02 01:43:41 -05:00 |
|
Nathan Braswell
|
6107dda825
|
Move to individual transform functions, add skeleton for if_comp, simple_passthrough
|
2016-01-01 23:42:00 -05:00 |
|
Nathan Braswell
|
fd6383124c
|
more work on the ast_transformation
|
2015-12-28 03:34:40 -05:00 |
|
Nathan Braswell
|
22b334a2ae
|
Fixed the parse bug. I think it's legal for the post-shift table check to be invalid and you have to account for that in the table
|
2015-12-26 01:52:29 +00:00 |
|
Nathan Braswell
|
d63b680355
|
debugging
|
2015-12-07 13:43:22 -05:00 |
|
Nathan Braswell
|
f753d4f421
|
little more work
|
2015-12-06 18:44:04 -05:00 |
|
Nathan Braswell
|
803b415220
|
get closer to generating real ast/dot
|
2015-12-06 15:15:33 -05:00 |
|
Nathan Braswell
|
e45df51e70
|
more work
|
2015-12-05 07:13:32 -05:00 |
|
Nathan Braswell
|
6ee7462a70
|
Fix closing over adt variables, starting work on ast_transformation
|
2015-12-01 16:19:44 -05:00 |
|
Nathan Braswell
|
e76bc51cce
|
Fully working ADTs! Hopefully bugless
|
2015-11-25 15:35:06 -05:00 |
|
Nathan Braswell
|
21f4824a01
|
proper scoping for ADTs, I think
|
2015-11-19 16:27:36 -05:00 |
|
Nathan Braswell
|
e7a49bf2e5
|
Match statements work with ADTs! (still no object stuff or anything though)
|
2015-11-14 19:05:28 -05:00 |
|
Nathan Braswell
|
ed4ed75449
|
ADT equality for basic types should work
|
2015-11-13 15:49:00 -05:00 |
|
Nathan Braswell
|
2ea504ffc1
|
More work on ADTs
|
2015-11-09 13:26:02 -05:00 |
|
Nathan Braswell
|
fcc0e770a5
|
Fixed a limitToFunction bug or two, work on ADTs
|
2015-11-06 03:23:55 -05:00 |
|
Nathan Braswell
|
13c6044193
|
make grammer/parser use simple adts, fix it so adt literals aren't closed over by accident
|
2015-08-30 01:53:11 -04:00 |
|
Nathan Braswell
|
5f3f3e5a66
|
Merge branch 'master' of https://github.com/Limvot/kraken
|
2015-08-29 21:46:05 -04:00 |
|
Nathan Braswell
|
a84e2ee6e1
|
faster deserilitation, super basic enums
|
2015-08-29 21:45:55 -04:00 |
|
Marcus Godwin
|
6d7113e41f
|
Added a queue implementation
Added a queue to the stdlib and a test case for it.
|
2015-08-28 23:46:30 -04:00 |
|
Nathan Braswell
|
d72cbdcedb
|
Serilization and caching the table works!
|
2015-08-26 03:45:34 -04:00 |
|
Nathan Braswell
|
b67d5e85fe
|
Serilization basics working
|
2015-08-24 20:40:18 -04:00 |
|
Nathan Braswell
|
3aad0263ce
|
Added primitive serilization
|
2015-08-21 11:03:10 -04:00 |
|
Nathan Braswell
|
6a62f03fb4
|
Move away from fully_reduces_to_null to rule_position, fixed some bugs. Have not fixed all, still looks up unkown key-value for the full kraken parse test.
|
2015-08-13 01:48:35 -04:00 |
|
Nathan Braswell
|
4b6693ac1c
|
Fixed add_children to actually add children correctly and only do the ambiguity at the right time. Still have the looking in map with non-existant key problem, but it is actually parsing nicely.
|
2015-08-12 23:15:41 -04:00 |
|
Nathan Braswell
|
8321b35a03
|
moving computers. Parser still not quite right
|
2015-08-12 17:41:26 -04:00 |
|
Nathan Braswell
|
58ab3e311f
|
Starting to really parse! Fixed the bad syntax trees (reduction copy_construct wasn't actually copying label because param and dest had same name) and fixed the krakenGrammer and CGenerator to allow escaped quotes in regular strings. add_children needs to be finished so the resulting trees don't go nuts with ambiguity, and some situations still cause vector access errors, which is odd. Also added the crazy simple write_file to io and the test_grammer.krak now outputs a syntax_tree.dot
|
2015-08-11 01:07:16 -04:00 |
|
Nathan Braswell
|
2777ca10f1
|
Parser is mostly working as a recognizer now, though the grammer2 still causes vector out of bounds. Sigh. Also, it segfaults on printing the tree, even with no null leaves. Somehow internal data from a symbol becomes null.
|
2015-08-09 04:18:31 -04:00 |
|
Nathan Braswell
|
674e7e6538
|
More work, finishing the parse_input and lots of reducer
|
2015-08-06 17:38:41 -04:00 |
|
Nathan Braswell
|
1f119af8ad
|
more work
|
2015-08-06 02:42:40 -04:00 |
|
Nathan Braswell
|
dec9b7d0bd
|
some tests failing because things have been made reference in vector, but grammer actually generates the state set for the real grammer in 2 minutes or so after a day of profiling and bugfixing, so this is gonna be committed.
|
2015-08-05 03:43:34 -04:00 |
|
Nathan Braswell
|
e1dbe08c0a
|
Optimization of string and vector with references and less functional code, bugfix of closing over references
|
2015-08-04 14:57:56 -04:00 |
|
Nathan Braswell
|
c987459a77
|
Gonna checkpoint here at a lot of good progress. Wrote generate_state_automaton, closure, and goto, and they compile and run, though don't work. (they don't crash yet though).
|
2015-08-04 01:07:33 -04:00 |
|
Nathan Braswell
|
a4f2febfd5
|
some bug fixes, templated operator method overloading
|
2015-08-03 18:37:42 -04:00 |
|
Nathan Braswell
|
517f9b79fb
|
moving computers
|
2015-08-03 14:38:17 -04:00 |
|
Nathan Braswell
|
f431b0305a
|
some more work on the first set. I think it might actually be right now
|
2015-07-16 23:32:27 -04:00 |
|
Nathan Braswell
|
51adf491fa
|
fix reference type inference
|
2015-07-15 13:56:57 -04:00 |
|
Nathan Braswell
|
06f36f2a87
|
Return by reference and pass by reference working with objects. Closures might present problems, however
|
2015-07-15 00:53:53 -04:00 |
|
Nathan Braswell
|
0ee44e829f
|
pass by reference should work for templates and objects now
|
2015-07-14 22:42:25 -04:00 |
|
Nathan Braswell
|
602810002b
|
reference type added and very basic pass by reference works in CGenerator. Much more work to go to make sure complicated cases work and return by reference
|
2015-07-14 19:32:54 -04:00 |
|
Nathan Braswell
|
8c490908d4
|
Saving work pre-references
|
2015-07-13 12:16:30 -04:00 |
|
Nathan Braswell
|
07e54f67fb
|
Changed regex to reference count internal structure instead of cloning because it too way too long. Added terminal decorators to grammer and lexer
|
2015-07-08 13:43:06 -04:00 |
|