Commit Graph

331 Commits

Author SHA1 Message Date
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
21a7afe66d Updated grammer to allow any statement as the child of an if_comp. Much more work incoming, but it will take past midnight, and I want to get what was finished earlier in before then to keep up my streak. 2016-01-03 23:50:07 -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
ChrisFadden
5476289b51 Finished the basic syntax of Kraken for the manual 2015-12-14 12:45:47 -05:00
ChrisFadden
efb7c4d174 Documented classes 2015-12-11 02:12:41 -05: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
f312b3f02f collapse transformation 2015-12-05 18:36:35 -05:00
Nathan Braswell
0f0d49e4be remove symbols 2015-12-05 17:31:11 -05:00
Nathan Braswell
e45df51e70 more work 2015-12-05 07:13:32 -05:00
Nathan Braswell
78a949cfde add in dummy equality functions so that it compiles 2015-12-04 03:47:55 -05:00
Nathan Braswell
33f97c0c82 work on ast_transformation, fix adt depending on type CGenerator order bug (correctly add poset dependencies) 2015-12-04 03:41:46 -05:00
Nathan Braswell
53562aaad7 Merge branch 'master' of github.com:Limvot/kraken 2015-12-01 16:19:52 -05:00
Nathan Braswell
6ee7462a70 Fix closing over adt variables, starting work on ast_transformation 2015-12-01 16:19:44 -05:00
ChrisFadden
02c77049b3 Added pointers, references, and dynamic memory allocation to manual 2015-11-26 18:58:24 -05:00
ChrisFadden
ef53ad90c0 Added I/O to Manual 2015-11-26 16:52:11 -05:00
Nathan Braswell
e76bc51cce Fully working ADTs! Hopefully bugless 2015-11-25 15:35:06 -05:00
Nathan Braswell
624f070c74 Make ADT functions be name-decorated correctly, including replaceing some name-decoration iteration over parameters with iterating over parameter types from the function type 2015-11-21 15:28:57 -05:00
Nathan Braswell
db29bdb156 Merge branch 'master' of github.com:Limvot/kraken 2015-11-19 16:28:59 -05:00
Nathan Braswell
21f4824a01 proper scoping for ADTs, I think 2015-11-19 16:27:36 -05:00
ChrisFadden
6f4ca1ad7a Added chapters to manual 2015-11-17 18:34:41 -05:00
ChrisFadden
4a52c6dfcb Merge branch 'master' of https://github.com/Limvot/kraken 2015-11-17 18:31:32 -05:00
ChrisFadden
d49e3baa18 Modified entries in the manual 2015-11-17 18:31:04 -05:00
Nathan Braswell
466b2310db Make the grammer test work again by updating grammer and parser to use the new adt syntax - I also messed up commenting out one of the cout lines making lambdas not work. 2015-11-14 20:13:42 -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
3645099bbb Merge branch 'master' of https://github.com/Limvot/kraken 2015-11-06 03:27:39 -05:00
Nathan Braswell
fcc0e770a5 Fixed a limitToFunction bug or two, work on ADTs 2015-11-06 03:23:55 -05:00
ChrisFadden
35ea0a93c8 Added start of documentation 2015-10-18 15:28:19 -04:00
ChrisFadden
d3e7e839c1 Added pi to the math library 2015-09-14 00:04:09 -04:00
ChrisFadden
35ee6425f1 Added macros to facilitate compiling on windows 2015-08-31 18:03:35 -04: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
ChrisFadden
cc9cad8060 Added floating point modulus function 2015-08-28 18:52:29 -04:00
ChrisFadden
46dcd39399 Added colored print statements 2015-08-28 18:06:08 -04:00
ChrisFadden
98ea825fe8 Added message for successful compilation 2015-08-28 17:54:38 -04:00
ChrisFadden
88fe0e350b Made nice parsing errors 2015-08-28 16:54:42 -04:00
Nathan Braswell
b198cfb5b2 fix hex number maybe 2015-08-26 03:52:57 -04:00
Nathan Braswell
d72cbdcedb Serilization and caching the table works! 2015-08-26 03:45:34 -04:00