[Chapel Merge] dyno: Add uAST nodes for 'Interface' and 'Implemen

Branch: refs/heads/main
Revision: 24b0416
Author: dlongnecke-cray
Link: dyno: Add uAST nodes for 'Interface' and 'Implements' by dlongnecke-cray · Pull Request #19634 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #19634 from dlongnecke-cray/dyno-add-interface-nodes

dyno: Add uAST nodes for 'Interface' and 'Implements' (#19634)

Add uAST nodes for interfaces and implements statements, as well as
conversion routines in convert-uast.cpp.

Add a magic static to AstNode called NO_CHILD which stores a
sentinel value to indicate no such child exists. Use this in
Interface and Implements. It might be good to adopt use of it
in other node headers as well.

Refactor conversion routines for aggregate decls to remove some
duplicated code.

Adjust createBlockWithStmts to take a flag indicating if top-level
scopeless blocks should be flattened. This is used when converting
certain nodes to mimic what the old parser does. Some constructs
depend on scopeless blocks being flattened.

[Summary: #Successes = 13589 | #Failures = 133 | #Futures = 0]

Reviewed by @vasslitvinov and @arezaii. Thanks!

Modified Files:
A compiler/dyno/include/chpl/uast/Implements.h

A compiler/dyno/include/chpl/uast/Interface.h
A compiler/dyno/lib/uast/Implements.cpp
A compiler/dyno/lib/uast/Interface.cpp
A compiler/dyno/test/parsing/testParseInterface.cpp
M compiler/dyno/include/chpl/uast/AstNode.h
M compiler/dyno/include/chpl/uast/all-uast.h
M compiler/dyno/include/chpl/uast/uast-classes-list.h
M compiler/dyno/lib/parsing/ParserContext.h
M compiler/dyno/lib/parsing/ParserContextImpl.h
M compiler/dyno/lib/parsing/bison-chpl-lib.cpp
M compiler/dyno/lib/parsing/chpl.ypp
M compiler/dyno/lib/parsing/flex-chpl-lib.cpp
M compiler/dyno/lib/parsing/flex-chpl-lib.h
M compiler/dyno/lib/parsing/parser-help.h
M compiler/dyno/lib/uast/CMakeLists.txt
M compiler/dyno/lib/uast/Makefile.include
M compiler/dyno/test/parsing/CMakeLists.txt
M compiler/passes/convert-uast.cpp

Compare: https://github.com/chapel-lang/chapel/compare/4681399b4a4b...24b041633409