Commit Graph

366 Commits

Author SHA1 Message Date
Nathan Braswell
693134b499 defer should now would properly with break and continue 2016-01-25 22:48:41 -05:00
Nathan Braswell
9973bc3bd3 First run at defer working - won't properly do every scope out of a loop yet, likely other problems 2016-01-25 13:48:27 -05:00
Nathan Braswell
135305fb76 The piping for defer, though not the correct stacks in c_generator. Bedtime though 2016-01-25 02:53:00 -05:00
Nathan Braswell
83a76c36de continue and break statements 2016-01-24 17:31:41 -05:00
Nathan Braswell
9f714dc9ec The Kraken compiler now compiles programs automatically, moving this functionality from the tester in preperation for making test_compiler not a test 2016-01-24 03:14:24 -05:00
Nathan Braswell
105a969a00 Method calls from within method from same object 2016-01-24 01:49:14 -05:00
Nathan Braswell
c022758b9c Make this varaiable/keyword work 2016-01-24 01:02:56 -05:00
Nathan Braswell
23cad3ad1b Access to member variables from inside methods now work 2016-01-23 20:39:06 -05:00
Nathan Braswell
961feb6fa5 Method calls will actually work now, but only as regular functions would, though there is a little in place to work towards true methods in the future 2016-01-23 05:33:56 -05:00
Nathan Braswell
c6554ce463 Whoops, some fixes from yesterday 2016-01-23 00:33:47 -05:00
Nathan Braswell
fc343ceea8 This commit has its date moved to earlier to reflect when the work was completed, as I forgot to actually make the commit until 2 minutes after midnight :/. It partially fixed a bug where ADT requires equality for its member types but won't use templated equality to be if there isn't a regular equality operator (not templated) it always returns false 2016-01-22 23:59:59 -05:00
Nathan Braswell
8c5bf36433 Object member access works now 2016-01-21 19:16:29 -05:00
Nathan Braswell
d43f36f1d9 type_def variables and methods are not parsed in ast_transformation, and kind-of generated in c_generator, but access and whatnot not supported yet 2016-01-21 12:54:21 -05:00
Nathan Braswell
c943d591e0 Trivial objects working, fixed adt prefixing bug 2016-01-21 03:18:02 -05:00
Nathan Braswell
4ebb8bf107 Finished poset implementation added to the standard library, starting on getting types added and sorting, etc 2016-01-20 13:50:40 -05:00
Nathan Braswell
162cc98f30 Added for loops 2016-01-19 11:47:09 -05:00
Nathan Braswell
c4abfca98e Updating readme 2016-01-19 03:23:38 -05:00
Nathan Braswell
ca85edaeee added while loops and fixed unary operators (including correct precrement and decrement) 2016-01-19 03:16:16 -05:00
Nathan Braswell
4493dfd861 added if_statements 2016-01-19 02:06:30 -05:00
Nathan Braswell
458299abe1 Add perentheses to all operators so that acutal perentheses are preserved and the kraken order of operations is maintained 2016-01-18 18:10:07 -05:00
Nathan Braswell
ac34a550d5 Basic math expressions will passthrough now 2016-01-18 18:04:34 -05:00
Nathan Braswell
bffedcf2fd Add the abitlity to assign during a declaration and type inference if no type given but there is an expression 2016-01-17 01:10:09 -05:00
Nathan Braswell
9c41c2fd12 Added in assignment and variable usage 2016-01-16 22:14:59 -05:00
Nathan Braswell
bf570f027c Variable declaration added now 2016-01-15 19:10:52 -05:00
Nathan Braswell
785c6a6a8e Function lookup now handles overloading 2016-01-14 12:57:16 -05:00
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
cb5b072b58 First Hello World! Now have to clean it up a little bit (correct assignment passthrough, add in the newline) 2016-01-12 00:21:01 -05:00
Nathan Braswell
1ed4ade218 Merge branch 'master' of https://github.com/Limvot/kraken 2016-01-11 23:41:22 -05:00
Nathan Braswell
4c569f4f8c Added function calls, printing out of pointers 2016-01-11 23:41:09 -05:00
ChrisFadden
f7789d5434 fixed bug in assignment operator 2016-01-11 19:52:11 -05:00
ChrisFadden
436532b079 Added shared pointers to mem library 2016-01-11 19:25: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
7f20a42178 Added type to values 2016-01-09 22:37:43 -05:00
Nathan Braswell
16aa01a76e Placeholder/passthrough for all the expressions, simple value node passthrough (though if Kraken has the same literal syntax as C it'll work for a while, though it really needs to encode the type... 2016-01-08 00:33:05 -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
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