[Chapel Merge] Parser updates for primer compilation

Branch: refs/heads/main
Revision: 4831979
Author: arezaii
Link: Parser updates for primer compilation by arezaii · Pull Request #18983 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #18983 from arezaii/primer-parse-p2

Parser updates for primer compilation

This PR implements multiple fixes that allow for the new
parser to be used when compiling our primers.

Changes/updates include:

  • Sort the extern functions to higher precedence during codegen
  • Implement production for return lifetimes
  • Add AST conversion for lifetime clauses and identifiers
  • Invert the list of internal modules to be parsed
    with the new parser from an allow to a block list

These changes have made it possible to parse all but two internal
modules and compile the primers with --compiler-library-parser

TESTING:

  • [x] primer tests pass with or without --compiler-library-parser
  • [x] paratest passes without --compiler-library-parser

Reviewed by @mppf, thanks!

Signed-off-by: arezaii ahmad.rezaii@hpe.com

Modified Files:
M compiler/codegen/codegen.cpp

M compiler/include/optimizations.h
M compiler/next/include/chpl/queries/all-global-strings.h
M compiler/next/lib/parsing/bison-chpl-lib.cpp
M compiler/next/lib/parsing/chpl.ypp
M compiler/next/lib/parsing/flex-chpl-lib.cpp
M compiler/next/lib/parsing/flex-chpl-lib.h
M compiler/optimizations/propagateDomainConstness.cpp
M compiler/parser/parser.cpp
M compiler/passes/convert-uast.cpp

Compare: https://github.com/chapel-lang/chapel/compare/f041470e9b88...48319798e59b