Nathan Braswell
|
98b899b8a9
|
Added rough but working scoping.
|
2013-12-27 13:05:07 -06:00 |
|
Nathan Braswell
|
15674fec2a
|
Added Type class, bettered types a bit, made address of and dereference operators work.
|
2013-12-23 01:26:24 -06:00 |
|
Nathan Braswell
|
935cc6f968
|
Added generator-dependent compilation and simple passthrough that allows us to have non-cheated emitted, printing c-code for the first time! (no typechecking or anything yet, but we'll get there). It's also still rough.
|
2013-12-22 01:34:59 -06:00 |
|
Nathan Braswell
|
6ad406e42d
|
Small fixes to the grammer, ASTTransformation and CGenerator. Should now be ready to begin implementation of multiple files, conditional inclusion, and code passthrough.
|
2013-12-19 10:39:36 -06:00 |
|
Nathan Braswell
|
f273deaedc
|
FINALLY fixed an error that took weeks. Turned out that the ParseRule was shallow copied, and the lookahead was not copied correctly. So it got extended and thus skipped over the state when it should have been redone.
|
2013-12-18 18:05:21 -06:00 |
|
Nathan Braswell
|
d38fd32323
|
More AST stuff. Now supports boolean stuff
|
2013-11-07 22:19:33 -05:00 |
|
Nathan Braswell
|
77f2b0a3e5
|
Lot's of work on a CGenerator, AST and language improvements
|
2013-11-01 02:52:18 -04:00 |
|
Jason Orendorff
|
d2d38e2516
|
Fix what looks like an off-by-one error in RegEx::longestMatch()'s lastMatch calculation, and a corresponding +1 in code using longestMatch, and add a test.
|
2013-10-26 23:48:02 -07:00 |
|
Jason Orendorff
|
7859b29725
|
Fix a minor bug in the lexer (it would not match the last character of the input) and add Lexer tests.
|
2013-10-26 23:13:15 -07:00 |
|
Nathan Braswell
|
ebe6b3520a
|
More AST work. Getting close to fully transforming language as specified by current grammer. (which is a subset of what it will become)
|
2013-10-26 15:05:42 -04:00 |
|
Nathan Braswell
|
752b04b71b
|
Merge pull request #1 from jorendorff/master
Merge jorendoff's very kind cleanup (and tests!) of StringReader code
|
2013-10-26 08:51:37 -07:00 |
|
Nathan Braswell
|
e818236e90
|
Some more AST work. Functions no longer retain an identifer for their name.
|
2013-10-26 11:47:34 -04:00 |
|
Jason Orendorff
|
08baae465a
|
Add unit tests for StringReader. You can run them with ./kraken --test.
|
2013-10-25 02:04:22 -07:00 |
|
Nathan Braswell
|
02fd878c92
|
Further work on AST transformation
|
2013-10-16 01:43:18 -04:00 |
|
Nathan Braswell
|
b9ffe33d0b
|
Made Symbol always stack, not heap, allocated. Finally fixed bugs with ASTTransformation.
|
2013-10-02 03:15:20 -04:00 |
|
Nathan Braswell
|
0110672f50
|
Added in structure for tree transformations.
|
2013-09-26 15:16:58 -04:00 |
|
Nathan Braswell
|
d1f2ba5fc8
|
Fixed the bug! Probabally other bugs too.
|
2013-08-26 15:37:49 -04:00 |
|
Nathan Braswell
|
2eaf640855
|
In progress
|
2013-08-16 00:03:26 -04:00 |
|
Nathan Braswell
|
680d978dcb
|
Problem was actually in grammer, fixed it. Also made identical rules with different lookahead merge. Now just started on creating parse trees. Stopping for night.
|
2013-08-06 01:49:45 -04:00 |
|
Nathan Braswell
|
9887555dd5
|
Have almost got the RNGLR recognizer. Something is wrong with the GSS, I think when it's built. It seems to sometimes have parents as children, or something.
|
2013-07-31 23:51:05 -04:00 |
|
Nathan Braswell
|
3fba45591b
|
Changed Parser to be a virtual base class, inherited by LALRParser
|
2013-07-30 01:42:51 -04:00 |
|
Nathan Braswell
|
6d7b38a03b
|
More work towards RNGLR. First, NodeTree is now a template. Second, I've started writing the actual GLR parser and GSS and other things, but am still in the first write process.
|
2013-07-28 19:45:08 -04:00 |
|
Nathan Braswell
|
f84657f1ed
|
Fixed a lot of bugs. Actually gets through the entire experimental grammer. (A largeish experimental grammer for Kraken written to continue testing and to really start language development.
|
2013-07-10 23:50:53 -04:00 |
|
Nathan Braswell
|
85da0bf646
|
Lexer/RegExs now work on a very basic level. Regular expressions have not been fully implemented, but the structure is there. It creates trivial regexs that only accept a specified sequence, no actual regular expression power.
|
2013-07-02 01:47:42 -04:00 |
|
Nathan Braswell
|
c2520ec2c4
|
NodeTree now also has a link to the Symbol it represents.
|
2013-06-27 23:45:38 -04:00 |
|
Nathan Braswell
|
a307e1f143
|
Changed followset to work on states, fixed many bugs. Kraken now should have a fairly legitimate LALR(1) parser. (null productions have not yet been added.)
|
2013-06-23 05:06:38 -04:00 |
|
Nathan Braswell
|
66b88cb5d7
|
Added followSets(Symbol*) function to compute follow sets.
|
2013-06-13 23:43:12 -04:00 |
|
Nathan Braswell
|
da6e5f3de9
|
Added a firstSet(Symbol*) function that takes in a Symbol* and returns a vector of Symbol* s that are the first set of the first Symbol*.
|
2013-06-13 19:11:31 -04:00 |
|
Nathan Braswell
|
0c651a5d9e
|
Added EOF symbol, making the getTable() saner for ACCEPT and lookahead support in ParseRule
|
2013-06-13 14:25:10 -04:00 |
|
Nathan Braswell
|
949dbc532a
|
Fixed lots of bugs, added much more sane and efficient ParseAction table instead of recalculating every time. Fixed lots of bugs and inefficencies. Some temporary hacks in the table, mostly having to do with not having an EOF Symbol yet.
|
2013-06-04 19:50:16 -04:00 |
|
Nathan Braswell
|
0c4af245bf
|
Cleaned up some debug messages, parseInput(string) now returns a parse tree of NodeTree*. This is done by having each non-terminal Symbol have it's own subtree and calling a method to combine subtrees and terminals on each reduce. The output is now the DOT version of the parse tree.
|
2013-05-30 19:49:19 -04:00 |
|
Nathan Braswell
|
69713ffe1a
|
Actually parses LR(0) grammers and sentences\! Only two problems is very inefficint gotoTable() and actionTable(), and it REJECTS the sentence after completing the Goal->Sentence(*) production. However, need to go to bed now. Does practially work though\! Yay\!
|
2013-05-29 20:43:35 -04:00 |
|
Nathan Braswell
|
858daa30ee
|
Changed from iterators, which become invalidated if vector is changed, to classic indexing. Now runs! However, the results are incorrect. Closure seems to work through.
|
2013-05-24 13:24:33 -04:00 |
|
Nathan Braswell
|
1aec4ee6a7
|
Added first go at creating stateSets. This is a commit to save work, as it still segfaults.:
|
2013-05-24 00:00:41 -04:00 |
|
Nathan Braswell
|
200cff6ab4
|
Separate the toString and toDOT methods.
|
2013-05-20 22:59:57 -04:00 |
|
Nathan Braswell
|
d2698cf203
|
Implemented grammer loading
|
2013-05-20 19:34:15 -04:00 |
|
Nathan Braswell
|
46d59ac595
|
First work on Kraken! Basic node tree system re-written from WTS-Language, can output .gv files of the node tree.
|
2013-05-11 16:13:46 -04:00 |
|