This patch adds parser nodes for each indivudual section in sections
construct. This should help with the translation to FIR. !$omp section
was not recognized as a construct and hence needed special handling.
OpenMPSectionsConstruct contains a list of OpenMPConstruct. Each
such OpenMPConstruct wraps an OpenMPSectionConstruct
(section, not sections). An OpenMPSectionConstruct is a wrapper around
a Block.
Can you add one comment to explain that this OpenMPConstruct is not any OpenMPConstruct. It is OpenMPConstruct->OpenMPSectionConstruct which is guaranteed by the parser type in openmp-parsers.cpp, right?
Also, one comment that you added OpenMPSectionConstruct for the first block even if there is no in source code. This is to simplify the lowering, right? How about OmpSectionBlocks be the union of block and std::list<OpenMPConstruct>, which is consistent of source code? Will it lead to much more work when lowering?