rtk's People
rtk's Issues
Happy syntax file generation implementation
Happy syntax file generation implementation for the given grammar
grammar.pg issue
Somewhy ImportsOpt is not added for quasiquotation tokens. Needs investigation
Impossible to use * or + with terminals
Rules that have ',' * are not working
Start rule should not be generated
After parsing file we receiving term that could not be matched against main grammar terminal. This rule should not be generated. It should be enough to add all QQ stuff in root non-terminal.
Issue when grammar file has no non-terminals
If the grammar file is:
grammar 'tapl1';
tapl1 = t;
then the following error message is printed:
rtk.exe: Maybe.fromJust: Nothing
Add support for vars in opt and loop rules
We still need to generate '-sub' term kinds for terms with loops in order to get list or to build term with list
Reduce/reduce conflicts in grammar
Problem arose when added QQ vars. We cannot add vars to all rules that are lifted. Solution should be investigated.
Reaction on empty file should be adequate
Reaction on empty file should be adequate and not rtk.exe: Parse error[]
Try to build generated X and Y files
And automate it somehow for the makefile's test-* target
Add support for SYB to the grammar data structures
Add support for SYB to the grammar data structures. This would allow to remove boilerplate code when traversing and rewriting grammar data structures.
STAR support
Add normal support for 'star' to the grammar
Notworking case in qq pattern matching
let [rule|$name:nm = $clause:cl1 | $clause:cl2 | $clause:cl3 | $clause:cl4 ;|] = [rule| Rule = id '=' Clause ';'
| id ':' id '=' Clause ';'
| id '.' id ':' id '=' Clause ';'
| '.' id ':' id '=' Clause ';' ;|]
putStrLn $ show cl1
Lexer macro generation
In order to reference one lexical rule from another one macro should be generated in Alex. Currently <TODO: macro ref here> is generated.
Lexer error output
More informative output when there is a lexer error. Now there is the following one:
rtk: lexical error
Error should be generated for 2 rules with the same name
Java grammar conversion for the rtk
Please, refer to java.pg
Support for multi-line tokens
Add support for multi-line tokens, since generated now alex basic wrapped doesn't support multi-line tokens.
More information about error during normalization
Errors like "rtk.exe: Wrong clause IRegExpLit " Arglist "" are non-informative. At least context (rule name) should be specified. It would be really convenient for big grammars.
Fix makefiles to work on Windows
Add left recrsion support in the generated Y files
See GenY module.
QQ stuff shoul not be generated for dummy supporting rules
It adds unneeded overhead during alex and happy work
Add test system
Haskell grammar development
Make Haskell grammar working with rtk
Obtaining primitive data
There should be a way to get primitive value from a terminal.
For example:
Name = id;
There should be either a functions, so one can write:
getId (n :: Name),
or user-defined constructor name:
let (IdName id) = (n :: Name)
Usage of any rule in list rule.
Now just rule with the type that is the same as rule can be in the list.
This is because during Normalization for the following rule:
*
Proxy rules should be added to the type of the .
But information on rule type is unavailable during the Normalization.
For now type named is used.
QQ dummy stuff should not be generated for the main rule
In case when main rule could be empty this would lead to grammar ambiguity
Imports in metagrammar
Implement the way to add user-specified 'import' clauses to the generated haskell code.
"Lifted" specification support for pg
subj needs interference with GenY, GenX and GenAST modules.
Add support for multiline comments
Comment like /* ... */ should be supported. Nested multiline comments should be supported as well
make test-grammar improvement
make test-grammar should regenerate files only if needed. Currently it doing so always. This improvement is needed for debugging of generated Lexer and Parser files.
Default 'id' token
Problem is that when QQ vars added some token needed that match the following rules:
[a-zA-Z][a-zA-Z_]*
There is already exists one in test-grammar.pg. So I cannot just add new one because they will overlap during lexer.
So, lexical rules should be normalized and possibility should be added to find token rule.
Identify why Alex file compilation takes too long
Identify why Alex file compilation in some cases takes too long. For now it java.pg and haskell.pg
Add support for nested lexems
Add support for nested lexems. So for example multiline comments could be nested:
/* /* */ */
Start rule generation
Fix 'addStartRule' from Grammar module and find a place for it in the normalization process.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.