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 |
|
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 |
|
Nathan Braswell
|
f3cdea068e
|
Added mem::safe_recursive_clone, and while it works for regex, it's actually slower then remaking it. Hmmmm, maybe because some of the stdlib is inefficent
|
2015-07-07 00:46:00 -04:00 |
|
Nathan Braswell
|
92f5c63c9a
|
Grammer loading works and test file can lex itself. Got rid of regex memory saftey for speed, will reintroduce next
|
2015-07-06 13:48:19 -04:00 |
|
Nathan Braswell
|
501331e37b
|
Grammer file parser works great
|
2015-07-06 12:49:29 -04:00 |
|
Nathan Braswell
|
8e2e356e80
|
Fixed c_comment regex to handle odd corner cases like /*//hi*/, etc
|
2015-07-06 02:29:46 -04:00 |
|
Nathan Braswell
|
5fdf7f95d6
|
Merge branch 'master' of https://github.com/Limvot/kraken
|
2015-07-05 02:34:54 -04:00 |
|
Nathan Braswell
|
cfadf7cebb
|
Fix nested closures and related bugs
|
2015-07-05 02:34:45 -04:00 |
|
Nathan Braswell
|
d44ce47d1e
|
Fix the CGenerator so that function values can be stored in member variables
|
2015-07-04 18:55:15 -04:00 |
|
Nathan Braswell
|
2c29846570
|
Swapped pointers to the other side for types to prevent ambiguity, i.e. *int instead of int*
|
2015-07-04 17:02:51 -04:00 |
|
Nathan Braswell
|
d2b12fea35
|
Fix vector addEnd so that it increments size AFTER the resize and resize() doesn't copy_construct an invalid item, which only SOMETIMES failes
|
2015-07-04 12:59:05 -04:00 |
|
Nathan Braswell
|
bd5e0af00f
|
Merge branch 'master' of https://github.com/Limvot/kraken
|
2015-07-04 03:21:46 -04:00 |
|
Nathan Braswell
|
54721b4284
|
More work on grammer and standard library! It can kinda load grammer now! Kinda. Marcus ran into the function pointer returns pointer ambiguity, so that'll have to be done tomorrow.
|
2015-07-04 03:21:36 -04:00 |
|
Nathan Braswell
|
b62c3e729f
|
Some more work, and a --parse-only option to support the new kraken.vim vim plugin that adds Syntastic support (and syntax highlighting)
|
2015-07-03 18:34:46 -04:00 |
|
Nathan Braswell
|
91f801d14f
|
Improved the lexer to be functionally equlivant to the C++ version and ported the tests, commented out the dot generation from Import as it was slowing things down significantly.
|
2015-06-29 01:03:51 -04:00 |
|
Nathan Braswell
|
b81abee459
|
change cast to cast_ptr, take in ptr types
|
2015-06-28 21:26:13 -04:00 |
|
Nathan Braswell
|
d0223c41b3
|
Move vector literals 2 and 3, and add 4-9 + 12 into vector_literals
|
2015-06-28 21:10:06 -04:00 |
|
Nathan Braswell
|
93cb0732cc
|
Added back in float and double suffexes!
|
2015-06-28 20:50:07 -04:00 |
|
Nathan Braswell
|
ce6c8241fb
|
Bugfixes, range(start,end,step), and beginning work on lexer and symbol
|
2015-06-28 20:25:27 -04:00 |
|
Nathan Braswell
|
48683889da
|
Tons of bugfixes (lots with closures). Added safe_recursive_delete to mem which helps easily and safely delete recursive data structures, and used it in regex. It still has a leak, but it's a lot better than before.
|
2015-06-28 14:27:48 -04:00 |
|
Nathan Braswell
|
c50c977a9e
|
Fixed the close over methods and member vars bug, but there's something remaining causing the safe_recursive_delete not to work. Gotta save progress and do other stuff
|
2015-06-27 18:06:02 -04:00 |
|