Wrap the parser output with a new function,
SolveIdent.recognize_predef_op that replaces node call by Predef constructor when necessary, via a complete traversal of the SyntaxTree (instead of doing it in the parser). The rationales for this change are that: - it is quite tedious to do it in parser as multiple locations are involved - I did missed some locations - It makes the parser more focused on parsing issues - that traversal is a first step do deal with idref solving (hence the name of the new module that contains that function Note that lsrc/test/should_work/fab_test/lecteur.lus was using "plus" as a variable ident, which raised an error, which
Showing
- src/Makefile 2 additions, 0 deletionssrc/Makefile
- src/TODO 56 additions, 0 deletionssrc/TODO
- src/expandPack.ml 2 additions, 2 deletionssrc/expandPack.ml
- src/ident.ml 4 additions, 1 deletionsrc/ident.ml
- src/lazyCompiler.ml 13 additions, 14 deletionssrc/lazyCompiler.ml
- src/main.ml 3 additions, 2 deletionssrc/main.ml
- src/parser.mly 7 additions, 10 deletionssrc/parser.mly
- src/parserUtils.ml 2 additions, 22 deletionssrc/parserUtils.ml
- src/predef.ml 4 additions, 3 deletionssrc/predef.ml
- src/predefSemantics.ml 6 additions, 6 deletionssrc/predefSemantics.ml
- src/solveIdent.ml 162 additions, 0 deletionssrc/solveIdent.ml
- src/solveIdent.mli 21 additions, 0 deletionssrc/solveIdent.mli
- src/syntaxTab.ml 8 additions, 5 deletionssrc/syntaxTab.ml
- src/syntaxTreeCore.ml 2 additions, 2 deletionssrc/syntaxTreeCore.ml
- src/test/should_work/fab_test/lecteur.lus 9 additions, 9 deletionssrc/test/should_work/fab_test/lecteur.lus
- src/test/test.res.exp 12 additions, 12 deletionssrc/test/test.res.exp
Loading
Please register or sign in to comment