Merge pull request #18641 from dlongnecke-cray/next-bunch-of-primers
This is for
Get all but a few primers (
compile with the new frontend via the
Add a few new UAST nodes:
TupleDecl node so that it can also contain
Function::formals() iterator and accessor to yield
Decl instead of
Adjust the conversion routines in
as needed to translate new UAST nodes as well as new combinations
of existing nodes (such as edge cases for array types).
Wire up a bunch of productions in the new parser grammar such as
for scans, varargs, loop expressions with filters, and more.
Remove redundant logic for setting config vars in the production
compiler. Reuse this function in the conversion pass for now.
Add a bunch of TODOs for functionality in the conversion pass
powered by the production compiler that should be rewritten
in the new compiler when possible.
- [x] All tests with
COMM=noneto verify config change is OK
- [x] All primers except
- Handle pragmas and conversion of pragmas (ideally using an approach
like that in #18619)
- Tackle all remaining TODOEXPR in the the new grammar file
- Pick another larger group of tests to run next
- Add verbosity levels to errors (e.g.
- Begin iterating through all production compiler
(used by the old parser) and ensuring that their warnings and
errors also occur in the new parser
- Consider traversing the tree after parsing (say while assigning
postorder IDs) and emitting some parse-time errors in order to
decouple these errors from the parser proper
- Begin to selectively parse the internal modules with the new parser
- Add machinery to parse and look up config var values
Signed-off-by: David Longnecker email@example.com
Modified Files: A compiler/next/include/chpl/uast/Scan.h