Nathan Braswell
|
24fb8d288f
|
Fix templated types getting their indirection stripped off when used
|
2016-02-01 15:59:41 -05:00 |
|
Nathan Braswell
|
70ebefcc25
|
Initial explicit function template working (chained may also not work, need to check)
|
2016-02-01 05:35:08 -05:00 |
|
Nathan Braswell
|
447f0c83b1
|
Hopefully got self-hosted objects fully working
|
2016-01-31 19:29:08 -05:00 |
|
Nathan Braswell
|
f72930beef
|
Also destruct parameters after copy_constructing them
|
2016-01-31 00:10:54 -05:00 |
|
Nathan Braswell
|
ab5250bd0b
|
Copy construct into function calls
|
2016-01-30 23:59:21 -05:00 |
|
Nathan Braswell
|
83450aa833
|
Added copy_constructing when returning
|
2016-01-30 22:04:37 -05:00 |
|
Nathan Braswell
|
a64e01e828
|
Fixed += as well as the related -=, *=, and /=.
|
2016-01-30 04:16:25 -05:00 |
|
Nathan Braswell
|
6f1f31a212
|
Added automatic distructor calling for going out of scope, found out that += is broken (and just comes through as =)
|
2016-01-29 22:46:09 -05:00 |
|
Nathan Braswell
|
da38ae03ed
|
Profiled and added a map to GraphStructuredStack's getContainingFrontier to massivly improve the C++ Kraken compiler's compile time by improving parsing time (parsing time cut by significantly more than half)
|
2016-01-29 14:09:09 -05:00 |
|
Nathan Braswell
|
17d4371d5c
|
Implemented init position calls
|
2016-01-28 20:51:40 -05:00 |
|
Nathan Braswell
|
42b942737b
|
Prepping for introducing automatic copy_construct and destruct and tests for them, fixed using - to negate numbers
|
2016-01-28 12:55:51 -05:00 |
|
Nathan Braswell
|
faeb1be315
|
Modify print out so that you can see C compiler output
|
2016-01-28 12:20:28 -05:00 |
|
Nathan Braswell
|
b06c329236
|
Changed over to code_triple to set up for automatic object methods
|
2016-01-27 18:56:44 -05:00 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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
|
216cf0252f
|
finished reducer and wrote shifter. Actually kinda recognizes now! Errors too, but comes up with correct result.
|
2015-08-08 02:50:36 -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
|
d59cb5e252
|
It might actually be working now
|
2015-08-04 01:57:53 -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
|
be069197ba
|
Make the templateFunctionLookup function spit out on cout instead of cerr since it's not always an error now and it screws up the output on the website. Now the error's not visiable, I guess, but it just needs to work a bit better till the rewrite is finished
|
2015-08-03 18:56:03 -04:00 |
|
Nathan Braswell
|
a4f2febfd5
|
some bug fixes, templated operator method overloading
|
2015-08-03 18:37:42 -04:00 |
|
Nathan Braswell
|
5c1eeb17b8
|
Merge branch 'master' of https://github.com/Limvot/kraken
|
2015-08-03 14:38:25 -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 |
|