//===-- FeatureList.cpp ---------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// A plugin that counts the amount of times a particular parse tree node
// occurs.  This plugin should cover each feature covered in dump-parse-tree.h
//
//===----------------------------------------------------------------------===//

#include "flang/Frontend/FrontendActions.h"
#include "flang/Frontend/FrontendPluginRegistry.h"
#include "flang/Parser/parse-tree-visitor.h"
#include "flang/Parser/parse-tree.h"
#include "flang/Parser/parsing.h"

#include <algorithm>
#include <cstring>
#include <unordered_map>
#include <utility>
#include <vector>

using namespace Fortran::common;
using namespace Fortran::frontend;
using namespace Fortran::parser;
using namespace Fortran;

#define READ_FEATURE_CUST(classname, n) \
  bool Pre(const classname &) { \
    record(#n); \
    return true; \
  } \
  void Post(const classname &) {}

#define READ_FEATURE(classname) READ_FEATURE_CUST(classname, classname)

struct NodeVisitor {
private:
  std::unordered_map<const char *, unsigned int> frequencies;

  void record(const char *name) {
    auto [it, ins] = frequencies.insert({name, 1});
    if (!ins) {
      it->second++;
    }
  }

public:
  const std::unordered_map<const char *, unsigned int> &getFrequencies() const {
    return frequencies;
  }

  READ_FEATURE_CUST(format::ControlEditDesc, ControlEditDesc)
  READ_FEATURE_CUST(format::DerivedTypeDataEditDesc, DerivedTypeDataEditDesc)
  READ_FEATURE_CUST(format::FormatItem, FormatItem)
  READ_FEATURE_CUST(format::FormatSpecification, FormatSpecification)
  READ_FEATURE_CUST(
      format::IntrinsicTypeDataEditDesc, IntrinsicTypeDataEditDesc)
  READ_FEATURE(Abstract)
  READ_FEATURE(AccAtomicCapture)
  READ_FEATURE(AccAtomicCapture::Stmt1)
  READ_FEATURE(AccAtomicCapture::Stmt2)
  READ_FEATURE(AccAtomicRead)
  READ_FEATURE(AccAtomicUpdate)
  READ_FEATURE(AccAtomicWrite)
  READ_FEATURE(AccBeginBlockDirective)
  READ_FEATURE(AccBeginCombinedDirective)
  READ_FEATURE(AccBeginLoopDirective)
  READ_FEATURE(AccBlockDirective)
  READ_FEATURE(AccClause)
  READ_FEATURE(AccBindClause)
  READ_FEATURE(AccDefaultClause)
  READ_FEATURE(AccClauseList)
  READ_FEATURE(AccCombinedDirective)
  READ_FEATURE(AccDataModifier)
  READ_FEATURE(AccDataModifier::Modifier)
  READ_FEATURE(AccDeclarativeDirective)
  READ_FEATURE(AccEndAtomic)
  READ_FEATURE(AccEndBlockDirective)
  READ_FEATURE(AccEndCombinedDirective)
  READ_FEATURE(AccGangArg)
  READ_FEATURE(AccObject)
  READ_FEATURE(AccObjectList)
  READ_FEATURE(AccObjectListWithModifier)
  READ_FEATURE(AccObjectListWithReduction)
  READ_FEATURE(AccSizeExpr)
  READ_FEATURE(AccSizeExprList)
  READ_FEATURE(AccSelfClause)
  READ_FEATURE(AccStandaloneDirective)
  READ_FEATURE(AccDeviceTypeExpr)
  READ_FEATURE(AccDeviceTypeExprList)
  READ_FEATURE(AccTileExpr)
  READ_FEATURE(AccTileExprList)
  READ_FEATURE(AccLoopDirective)
  READ_FEATURE(AccWaitArgument)
  READ_FEATURE(AcImpliedDo)
  READ_FEATURE(AcImpliedDoControl)
  READ_FEATURE(AcValue)
  READ_FEATURE(AccessStmt)
  READ_FEATURE(AccessId)
  READ_FEATURE(AccessSpec)
  READ_FEATURE(AccessSpec::Kind)
  READ_FEATURE(AcSpec)
  READ_FEATURE(ActionStmt)
  READ_FEATURE(ActualArg)
  READ_FEATURE(ActualArg::PercentRef)
  READ_FEATURE(ActualArg::PercentVal)
  READ_FEATURE(ActualArgSpec)
  READ_FEATURE(AcValue::Triplet)
  READ_FEATURE(AllocOpt)
  READ_FEATURE(AllocOpt::Mold)
  READ_FEATURE(AllocOpt::Source)
  READ_FEATURE(Allocatable)
  READ_FEATURE(AllocatableStmt)
  READ_FEATURE(AllocateCoarraySpec)
  READ_FEATURE(AllocateObject)
  READ_FEATURE(AllocateShapeSpec)
  READ_FEATURE(AllocateStmt)
  READ_FEATURE(Allocation)
  READ_FEATURE(AltReturnSpec)
  READ_FEATURE(ArithmeticIfStmt)
  READ_FEATURE(ArrayConstructor)
  READ_FEATURE(ArrayElement)
  READ_FEATURE(ArraySpec)
  READ_FEATURE(AssignStmt)
  READ_FEATURE(AssignedGotoStmt)
  READ_FEATURE(AssignmentStmt)
  READ_FEATURE(AssociateConstruct)
  READ_FEATURE(AssociateStmt)
  READ_FEATURE(Association)
  READ_FEATURE(AssumedImpliedSpec)
  READ_FEATURE(AssumedRankSpec)
  READ_FEATURE(AssumedShapeSpec)
  READ_FEATURE(AssumedSizeSpec)
  READ_FEATURE(Asynchronous)
  READ_FEATURE(AsynchronousStmt)
  READ_FEATURE(AttrSpec)
  READ_FEATURE(BOZLiteralConstant)
  READ_FEATURE(BackspaceStmt)
  READ_FEATURE(BasedPointer)
  READ_FEATURE(BasedPointerStmt)
  READ_FEATURE(BindAttr)
  READ_FEATURE(BindAttr::Deferred)
  READ_FEATURE(BindAttr::Non_Overridable)
  READ_FEATURE(BindEntity)
  READ_FEATURE(BindEntity::Kind)
  READ_FEATURE(BindStmt)
  READ_FEATURE(Block)
  READ_FEATURE(BlockConstruct)
  READ_FEATURE(BlockData)
  READ_FEATURE(BlockDataStmt)
  READ_FEATURE(BlockSpecificationPart)
  READ_FEATURE(BlockStmt)
  READ_FEATURE(BoundsRemapping)
  READ_FEATURE(BoundsSpec)
  READ_FEATURE(Call)
  READ_FEATURE(CallStmt)
  READ_FEATURE(CaseConstruct)
  READ_FEATURE(CaseConstruct::Case)
  READ_FEATURE(CaseSelector)
  READ_FEATURE(CaseStmt)
  READ_FEATURE(CaseValueRange)
  READ_FEATURE(CaseValueRange::Range)
  READ_FEATURE(ChangeTeamConstruct)
  READ_FEATURE(ChangeTeamStmt)
  READ_FEATURE(CharLength)
  READ_FEATURE(CharLiteralConstant)
  READ_FEATURE(CharLiteralConstantSubstring)
  READ_FEATURE(CharSelector)
  READ_FEATURE(CharSelector::LengthAndKind)
  READ_FEATURE(CloseStmt)
  READ_FEATURE(CloseStmt::CloseSpec)
  READ_FEATURE(CoarrayAssociation)
  READ_FEATURE(CoarraySpec)
  READ_FEATURE(CodimensionDecl)
  READ_FEATURE(CodimensionStmt)
  READ_FEATURE(CoindexedNamedObject)
  READ_FEATURE(CommonBlockObject)
  READ_FEATURE(CommonStmt)
  READ_FEATURE(CommonStmt::Block)
  READ_FEATURE(CompilerDirective)
  READ_FEATURE(CompilerDirective::IgnoreTKR)
  READ_FEATURE(CompilerDirective::LoopCount)
  READ_FEATURE(CompilerDirective::NameValue)
  READ_FEATURE(ComplexLiteralConstant)
  READ_FEATURE(ComplexPart)
  READ_FEATURE(ComponentArraySpec)
  READ_FEATURE(ComponentAttrSpec)
  READ_FEATURE(ComponentDataSource)
  READ_FEATURE(ComponentDecl)
  READ_FEATURE(FillDecl)
  READ_FEATURE(ComponentOrFill)
  READ_FEATURE(ComponentDefStmt)
  READ_FEATURE(ComponentSpec)
  READ_FEATURE(ComputedGotoStmt)
  READ_FEATURE(ConcurrentControl)
  READ_FEATURE(ConcurrentHeader)
  READ_FEATURE(ConnectSpec)
  READ_FEATURE(ConnectSpec::CharExpr)
  READ_FEATURE(ConnectSpec::CharExpr::Kind)
  READ_FEATURE(ConnectSpec::Newunit)
  READ_FEATURE(ConnectSpec::Recl)
  READ_FEATURE(ContainsStmt)
  READ_FEATURE(Contiguous)
  READ_FEATURE(ContiguousStmt)
  READ_FEATURE(ContinueStmt)
  READ_FEATURE(CriticalConstruct)
  READ_FEATURE(CriticalStmt)
  READ_FEATURE(CycleStmt)
  READ_FEATURE(DataComponentDefStmt)
  READ_FEATURE(DataIDoObject)
  READ_FEATURE(DataImpliedDo)
  READ_FEATURE(DataRef)
  READ_FEATURE(DataStmt)
  READ_FEATURE(DataStmtConstant)
  READ_FEATURE(DataStmtObject)
  READ_FEATURE(DataStmtRepeat)
  READ_FEATURE(DataStmtSet)
  READ_FEATURE(DataStmtValue)
  READ_FEATURE(DeallocateStmt)
  READ_FEATURE(DeclarationConstruct)
  READ_FEATURE(DeclarationTypeSpec)
  READ_FEATURE(DeclarationTypeSpec::Class)
  READ_FEATURE(DeclarationTypeSpec::ClassStar)
  READ_FEATURE(DeclarationTypeSpec::Record)
  READ_FEATURE(DeclarationTypeSpec::Type)
  READ_FEATURE(DeclarationTypeSpec::TypeStar)
  READ_FEATURE(Default)
  READ_FEATURE(DeferredCoshapeSpecList)
  READ_FEATURE(DeferredShapeSpecList)
  READ_FEATURE(DefinedOpName)
  READ_FEATURE(DefinedOperator)
  READ_FEATURE(DefinedOperator::IntrinsicOperator)
  READ_FEATURE(DerivedTypeDef)
  READ_FEATURE(DerivedTypeSpec)
  READ_FEATURE(DerivedTypeStmt)
  READ_FEATURE(Designator)
  READ_FEATURE(DimensionStmt)
  READ_FEATURE(DimensionStmt::Declaration)
  READ_FEATURE(DoConstruct)
  READ_FEATURE(DummyArg)
  READ_FEATURE(ElseIfStmt)
  READ_FEATURE(ElseStmt)
  READ_FEATURE(ElsewhereStmt)
  READ_FEATURE(EndAssociateStmt)
  READ_FEATURE(EndBlockDataStmt)
  READ_FEATURE(EndBlockStmt)
  READ_FEATURE(EndChangeTeamStmt)
  READ_FEATURE(EndCriticalStmt)
  READ_FEATURE(EndDoStmt)
  READ_FEATURE(EndEnumStmt)
  READ_FEATURE(EndForallStmt)
  READ_FEATURE(EndFunctionStmt)
  READ_FEATURE(EndIfStmt)
  READ_FEATURE(EndInterfaceStmt)
  READ_FEATURE(EndLabel)
  READ_FEATURE(EndModuleStmt)
  READ_FEATURE(EndMpSubprogramStmt)
  READ_FEATURE(EndProgramStmt)
  READ_FEATURE(EndSelectStmt)
  READ_FEATURE(EndSubmoduleStmt)
  READ_FEATURE(EndSubroutineStmt)
  READ_FEATURE(EndTypeStmt)
  READ_FEATURE(EndWhereStmt)
  READ_FEATURE(EndfileStmt)
  READ_FEATURE(EntityDecl)
  READ_FEATURE(EntryStmt)
  READ_FEATURE(EnumDef)
  READ_FEATURE(EnumDefStmt)
  READ_FEATURE(Enumerator)
  READ_FEATURE(EnumeratorDefStmt)
  READ_FEATURE(EorLabel)
  READ_FEATURE(EquivalenceObject)
  READ_FEATURE(EquivalenceStmt)
  READ_FEATURE(ErrLabel)
  READ_FEATURE(ErrorRecovery)
  READ_FEATURE(EventPostStmt)
  READ_FEATURE(EventWaitStmt)
  READ_FEATURE(EventWaitSpec)
  READ_FEATURE(ExecutableConstruct)
  READ_FEATURE(ExecutionPart)
  READ_FEATURE(ExecutionPartConstruct)
  READ_FEATURE(ExitStmt)
  READ_FEATURE(ExplicitCoshapeSpec)
  READ_FEATURE(ExplicitShapeSpec)
  READ_FEATURE(Expr)
  READ_FEATURE(Expr::Parentheses)
  READ_FEATURE(Expr::UnaryPlus)
  READ_FEATURE(Expr::Negate)
  READ_FEATURE(Expr::NOT)
  READ_FEATURE(Expr::PercentLoc)
  READ_FEATURE(Expr::DefinedUnary)
  READ_FEATURE(Expr::Power)
  READ_FEATURE(Expr::Multiply)
  READ_FEATURE(Expr::Divide)
  READ_FEATURE(Expr::Add)
  READ_FEATURE(Expr::Subtract)
  READ_FEATURE(Expr::Concat)
  READ_FEATURE(Expr::LT)
  READ_FEATURE(Expr::LE)
  READ_FEATURE(Expr::EQ)
  READ_FEATURE(Expr::NE)
  READ_FEATURE(Expr::GE)
  READ_FEATURE(Expr::GT)
  READ_FEATURE(Expr::AND)
  READ_FEATURE(Expr::OR)
  READ_FEATURE(Expr::EQV)
  READ_FEATURE(Expr::NEQV)
  READ_FEATURE(Expr::DefinedBinary)
  READ_FEATURE(Expr::ComplexConstructor)
  READ_FEATURE(External)
  READ_FEATURE(ExternalStmt)
  READ_FEATURE(FailImageStmt)
  READ_FEATURE(FileUnitNumber)
  READ_FEATURE(FinalProcedureStmt)
  READ_FEATURE(FlushStmt)
  READ_FEATURE(ForallAssignmentStmt)
  READ_FEATURE(ForallBodyConstruct)
  READ_FEATURE(ForallConstruct)
  READ_FEATURE(ForallConstructStmt)
  READ_FEATURE(ForallStmt)
  READ_FEATURE(FormTeamStmt)
  READ_FEATURE(FormTeamStmt::FormTeamSpec)
  READ_FEATURE(Format)
  READ_FEATURE(FormatStmt)
  READ_FEATURE(FunctionReference)
  READ_FEATURE(FunctionStmt)
  READ_FEATURE(FunctionSubprogram)
  READ_FEATURE(GenericSpec)
  READ_FEATURE(GenericSpec::Assignment)
  READ_FEATURE(GenericSpec::ReadFormatted)
  READ_FEATURE(GenericSpec::ReadUnformatted)
  READ_FEATURE(GenericSpec::WriteFormatted)
  READ_FEATURE(GenericSpec::WriteUnformatted)
  READ_FEATURE(GenericStmt)
  READ_FEATURE(GotoStmt)
  READ_FEATURE(HollerithLiteralConstant)
  READ_FEATURE(IdExpr)
  READ_FEATURE(IdVariable)
  READ_FEATURE(IfConstruct)
  READ_FEATURE(IfConstruct::ElseBlock)
  READ_FEATURE(IfConstruct::ElseIfBlock)
  READ_FEATURE(IfStmt)
  READ_FEATURE(IfThenStmt)
  READ_FEATURE(TeamValue)
  READ_FEATURE(ImageSelector)
  READ_FEATURE(ImageSelectorSpec)
  READ_FEATURE(ImageSelectorSpec::Stat)
  READ_FEATURE(ImageSelectorSpec::Team_Number)
  READ_FEATURE(ImplicitPart)
  READ_FEATURE(ImplicitPartStmt)
  READ_FEATURE(ImplicitSpec)
  READ_FEATURE(ImplicitStmt)
  READ_FEATURE(ImplicitStmt::ImplicitNoneNameSpec)
  READ_FEATURE(ImpliedShapeSpec)
  READ_FEATURE(ImportStmt)
  READ_FEATURE(Initialization)
  READ_FEATURE(InputImpliedDo)
  READ_FEATURE(InputItem)
  READ_FEATURE(InquireSpec)
  READ_FEATURE(InquireSpec::CharVar)
  READ_FEATURE(InquireSpec::CharVar::Kind)
  READ_FEATURE(InquireSpec::IntVar)
  READ_FEATURE(InquireSpec::IntVar::Kind)
  READ_FEATURE(InquireSpec::LogVar)
  READ_FEATURE(InquireSpec::LogVar::Kind)
  READ_FEATURE(InquireStmt)
  READ_FEATURE(InquireStmt::Iolength)
  READ_FEATURE(IntegerTypeSpec)
  READ_FEATURE(IntentSpec)
  READ_FEATURE(IntentSpec::Intent)
  READ_FEATURE(IntentStmt)
  READ_FEATURE(InterfaceBlock)
  READ_FEATURE(InterfaceBody)
  READ_FEATURE(InterfaceBody::Function)
  READ_FEATURE(InterfaceBody::Subroutine)
  READ_FEATURE(InterfaceSpecification)
  READ_FEATURE(InterfaceStmt)
  READ_FEATURE(InternalSubprogram)
  READ_FEATURE(InternalSubprogramPart)
  READ_FEATURE(Intrinsic)
  READ_FEATURE(IntrinsicStmt)
  READ_FEATURE(IntrinsicTypeSpec)
  READ_FEATURE(IntrinsicTypeSpec::Character)
  READ_FEATURE(IntrinsicTypeSpec::Complex)
  READ_FEATURE(IntrinsicTypeSpec::DoubleComplex)
  READ_FEATURE(IntrinsicTypeSpec::DoublePrecision)
  READ_FEATURE(IntrinsicTypeSpec::Logical)
  READ_FEATURE(IntrinsicTypeSpec::Real)
  READ_FEATURE(IoControlSpec)
  READ_FEATURE(IoControlSpec::Asynchronous)
  READ_FEATURE(IoControlSpec::CharExpr)
  READ_FEATURE(IoControlSpec::CharExpr::Kind)
  READ_FEATURE(IoControlSpec::Pos)
  READ_FEATURE(IoControlSpec::Rec)
  READ_FEATURE(IoControlSpec::Size)
  READ_FEATURE(IoUnit)
  READ_FEATURE(Keyword)
  READ_FEATURE(KindParam)
  READ_FEATURE(KindSelector)
  READ_FEATURE(KindSelector::StarSize)
  READ_FEATURE(LabelDoStmt)
  READ_FEATURE(LanguageBindingSpec)
  READ_FEATURE(LengthSelector)
  READ_FEATURE(LetterSpec)
  READ_FEATURE(LiteralConstant)
  READ_FEATURE(IntLiteralConstant)
  READ_FEATURE(ReductionOperator)
  READ_FEATURE(ReductionOperator::Operator)
  READ_FEATURE(LocalitySpec)
  READ_FEATURE(LocalitySpec::DefaultNone)
  READ_FEATURE(LocalitySpec::Local)
  READ_FEATURE(LocalitySpec::LocalInit)
  READ_FEATURE(LocalitySpec::Reduce)
  READ_FEATURE(LocalitySpec::Shared)
  READ_FEATURE(LockStmt)
  READ_FEATURE(LockStmt::LockStat)
  READ_FEATURE(LogicalLiteralConstant)
  READ_FEATURE(LoopControl)
  READ_FEATURE(LoopControl::Concurrent)
  READ_FEATURE(MainProgram)
  READ_FEATURE(Map)
  READ_FEATURE(Map::EndMapStmt)
  READ_FEATURE(Map::MapStmt)
  READ_FEATURE(MaskedElsewhereStmt)
  READ_FEATURE(Module)
  READ_FEATURE(ModuleStmt)
  READ_FEATURE(ModuleSubprogram)
  READ_FEATURE(ModuleSubprogramPart)
  READ_FEATURE(MpSubprogramStmt)
  READ_FEATURE(MsgVariable)
  READ_FEATURE(Name)
  READ_FEATURE(NamedConstant)
  READ_FEATURE(NamedConstantDef)
  READ_FEATURE(NamelistStmt)
  READ_FEATURE(NamelistStmt::Group)
  READ_FEATURE(NonLabelDoStmt)
  READ_FEATURE(NoPass)
  READ_FEATURE(NotifyWaitStmt)
  READ_FEATURE(NullifyStmt)
  READ_FEATURE(NullInit)
  READ_FEATURE(ObjectDecl)
  READ_FEATURE(OldParameterStmt)
  READ_FEATURE(OmpAlignedClause)
  READ_FEATURE(OmpAtomic)
  READ_FEATURE(OmpAtomicCapture)
  READ_FEATURE(OmpAtomicCapture::Stmt1)
  READ_FEATURE(OmpAtomicCapture::Stmt2)
  READ_FEATURE(OmpAtomicRead)
  READ_FEATURE(OmpAtomicUpdate)
  READ_FEATURE(OmpAtomicWrite)
  READ_FEATURE(OmpBeginBlockDirective)
  READ_FEATURE(OmpBeginLoopDirective)
  READ_FEATURE(OmpBeginSectionsDirective)
  READ_FEATURE(OmpBlockDirective)
  READ_FEATURE(OmpCancelType)
  READ_FEATURE(OmpCancelType::Type)
  READ_FEATURE(OmpClause)
  READ_FEATURE(OmpClauseList)
  READ_FEATURE(OmpCriticalDirective)
  READ_FEATURE(OmpDeclareTargetSpecifier)
  READ_FEATURE(OmpDeclareTargetWithClause)
  READ_FEATURE(OmpDeclareTargetWithList)
  READ_FEATURE(OmpDefaultClause)
  READ_FEATURE(OmpDefaultClause::DataSharingAttribute)
  READ_FEATURE(OmpDefaultmapClause)
  READ_FEATURE(OmpDefaultmapClause::ImplicitBehavior)
  READ_FEATURE(OmpVariableCategory::Value)
  READ_FEATURE(OmpDependClause)
  READ_FEATURE(OmpDependClause::TaskDep)
  READ_FEATURE(OmpDoacross::Sink)
  READ_FEATURE(OmpDoacross::Source)
  READ_FEATURE(OmpDoacrossClause)
  READ_FEATURE(OmpDependenceType)
  READ_FEATURE(OmpDependenceType::Value)
  READ_FEATURE(OmpTaskDependenceType)
  READ_FEATURE(OmpTaskDependenceType::Value)
  READ_FEATURE(OmpIteration)
  READ_FEATURE(OmpIterationOffset)
  READ_FEATURE(OmpIterationVector)
  READ_FEATURE(OmpEndAllocators)
  READ_FEATURE(OmpEndAtomic)
  READ_FEATURE(OmpEndBlockDirective)
  READ_FEATURE(OmpEndCriticalDirective)
  READ_FEATURE(OmpEndLoopDirective)
  READ_FEATURE(OmpEndSectionsDirective)
  READ_FEATURE(OmpGrainsizeClause)
  READ_FEATURE(OmpGrainsizeClause::Modifier)
  READ_FEATURE(OmpPrescriptiveness)
  READ_FEATURE(OmpPrescriptiveness::Value)
  READ_FEATURE(OmpIfClause)
  READ_FEATURE(OmpIfClause::Modifier)
  READ_FEATURE(OmpDirectiveNameModifier)
  READ_FEATURE(OmpLinearClause)
  READ_FEATURE(OmpLinearClause::Modifier)
  READ_FEATURE(OmpLinearModifier)
  READ_FEATURE(OmpLinearModifier::Value)
  READ_FEATURE(OmpLoopDirective)
  READ_FEATURE(OmpMapClause)
  READ_FEATURE(OmpMapClause::Modifier)
  READ_FEATURE(OmpNumTasksClause)
  READ_FEATURE(OmpNumTasksClause::Modifier)
  READ_FEATURE(OmpObject)
  READ_FEATURE(OmpObjectList)
  READ_FEATURE(OmpOrderClause)
  READ_FEATURE(OmpOrderClause::Ordering)
  READ_FEATURE(OmpOrderModifier)
  READ_FEATURE(OmpOrderModifier::Value)
  READ_FEATURE(OmpProcBindClause)
  READ_FEATURE(OmpProcBindClause::AffinityPolicy)
  READ_FEATURE(OmpReductionClause)
  READ_FEATURE(OmpInReductionClause)
  READ_FEATURE(OmpReductionCombiner)
  READ_FEATURE(OmpReductionCombiner::FunctionCombiner)
  READ_FEATURE(OmpReductionInitializerClause)
  READ_FEATURE(OmpReductionIdentifier)
  READ_FEATURE(OmpAllocateClause)
  READ_FEATURE(OmpAllocateClause::Modifier)
  READ_FEATURE(OmpAllocatorSimpleModifier)
  READ_FEATURE(OmpAllocatorComplexModifier)
  READ_FEATURE(OmpAlignModifier)
  READ_FEATURE(OmpScheduleClause)
  READ_FEATURE(OmpScheduleClause::Kind)
  READ_FEATURE(OmpScheduleClause::Modifier)
  READ_FEATURE(OmpDeviceModifier)
  READ_FEATURE(OmpDeviceClause)
  READ_FEATURE(OmpDeviceClause::Modifier)
  READ_FEATURE(OmpDeviceTypeClause)
  READ_FEATURE(OmpDeviceTypeClause::DeviceTypeDescription)
  READ_FEATURE(OmpChunkModifier)
  READ_FEATURE(OmpChunkModifier::Value)
  READ_FEATURE(OmpOrderingModifier)
  READ_FEATURE(OmpOrderingModifier::Value)
  READ_FEATURE(OmpSectionBlocks)
  READ_FEATURE(OmpSectionsDirective)
  READ_FEATURE(OmpSimpleStandaloneDirective)
  READ_FEATURE(Only)
  READ_FEATURE(OpenACCAtomicConstruct)
  READ_FEATURE(OpenACCBlockConstruct)
  READ_FEATURE(OpenACCCacheConstruct)
  READ_FEATURE(OpenACCCombinedConstruct)
  READ_FEATURE(OpenACCConstruct)
  READ_FEATURE(OpenACCDeclarativeConstruct)
  READ_FEATURE(OpenACCLoopConstruct)
  READ_FEATURE(OpenACCRoutineConstruct)
  READ_FEATURE(OpenACCStandaloneDeclarativeConstruct)
  READ_FEATURE(OpenACCStandaloneConstruct)
  READ_FEATURE(OpenACCWaitConstruct)
  READ_FEATURE(OpenMPAtomicConstruct)
  READ_FEATURE(OpenMPBlockConstruct)
  READ_FEATURE(OpenMPCancelConstruct)
  READ_FEATURE(OpenMPCancelConstruct::If)
  READ_FEATURE(OpenMPCancellationPointConstruct)
  READ_FEATURE(OpenMPConstruct)
  READ_FEATURE(OpenMPCriticalConstruct)
  READ_FEATURE(OpenMPDeclarativeAllocate)
  READ_FEATURE(OpenMPDeclarativeConstruct)
  READ_FEATURE(OpenMPDeclareReductionConstruct)
  READ_FEATURE(OpenMPDeclareSimdConstruct)
  READ_FEATURE(OpenMPDeclareTargetConstruct)
  READ_FEATURE(OmpMemoryOrderClause)
  READ_FEATURE(OmpAtomicClause)
  READ_FEATURE(OmpAtomicClauseList)
  READ_FEATURE(OmpAtomicDefaultMemOrderClause)
  READ_FEATURE(OmpAtomicDefaultMemOrderType)
  READ_FEATURE(OpenMPFlushConstruct)
  READ_FEATURE(OpenMPLoopConstruct)
  READ_FEATURE(OpenMPExecutableAllocate)
  READ_FEATURE(OpenMPAllocatorsConstruct)
  READ_FEATURE(OpenMPRequiresConstruct)
  READ_FEATURE(OpenMPSimpleStandaloneConstruct)
  READ_FEATURE(OpenMPStandaloneConstruct)
  READ_FEATURE(OpenMPSectionConstruct)
  READ_FEATURE(OpenMPSectionsConstruct)
  READ_FEATURE(OpenMPThreadprivate)
  READ_FEATURE(OpenStmt)
  READ_FEATURE(Optional)
  READ_FEATURE(OptionalStmt)
  READ_FEATURE(OtherSpecificationStmt)
  READ_FEATURE(OutputImpliedDo)
  READ_FEATURE(OutputItem)
  READ_FEATURE(Parameter)
  READ_FEATURE(ParameterStmt)
  READ_FEATURE(ParentIdentifier)
  READ_FEATURE(Pass)
  READ_FEATURE(PauseStmt)
  READ_FEATURE(Pointer)
  READ_FEATURE(PointerAssignmentStmt)
  READ_FEATURE(PointerAssignmentStmt::Bounds)
  READ_FEATURE(PointerDecl)
  READ_FEATURE(PointerObject)
  READ_FEATURE(PointerStmt)
  READ_FEATURE(PositionOrFlushSpec)
  READ_FEATURE(PrefixSpec)
  READ_FEATURE(PrefixSpec::Elemental)
  READ_FEATURE(PrefixSpec::Impure)
  READ_FEATURE(PrefixSpec::Module)
  READ_FEATURE(PrefixSpec::Non_Recursive)
  READ_FEATURE(PrefixSpec::Pure)
  READ_FEATURE(PrefixSpec::Recursive)
  READ_FEATURE(PrintStmt)
  READ_FEATURE(PrivateStmt)
  READ_FEATURE(PrivateOrSequence)
  READ_FEATURE(ProcAttrSpec)
  READ_FEATURE(ProcComponentAttrSpec)
  READ_FEATURE(ProcComponentDefStmt)
  READ_FEATURE(ProcComponentRef)
  READ_FEATURE(ProcDecl)
  READ_FEATURE(ProcInterface)
  READ_FEATURE(ProcPointerInit)
  READ_FEATURE(ProcedureDeclarationStmt)
  READ_FEATURE(ProcedureDesignator)
  READ_FEATURE(ProcedureStmt)
  READ_FEATURE(ProcedureStmt::Kind)
  READ_FEATURE(Program)
  READ_FEATURE(ProgramStmt)
  READ_FEATURE(ProgramUnit)
  READ_FEATURE(Protected)
  READ_FEATURE(ProtectedStmt)
  READ_FEATURE(ReadStmt)
  READ_FEATURE(RealLiteralConstant)
  READ_FEATURE(RealLiteralConstant::Real)
  READ_FEATURE(Rename)
  READ_FEATURE(Rename::Names)
  READ_FEATURE(Rename::Operators)
  READ_FEATURE(ReturnStmt)
  READ_FEATURE(RewindStmt)
  READ_FEATURE(Save)
  READ_FEATURE(SaveStmt)
  READ_FEATURE(SavedEntity)
  READ_FEATURE(SavedEntity::Kind)
  READ_FEATURE(SectionSubscript)
  READ_FEATURE(SelectCaseStmt)
  READ_FEATURE(SelectRankCaseStmt)
  READ_FEATURE(SelectRankCaseStmt::Rank)
  READ_FEATURE(SelectRankConstruct)
  READ_FEATURE(SelectRankConstruct::RankCase)
  READ_FEATURE(SelectRankStmt)
  READ_FEATURE(SelectTypeConstruct)
  READ_FEATURE(SelectTypeConstruct::TypeCase)
  READ_FEATURE(SelectTypeStmt)
  READ_FEATURE(Selector)
  READ_FEATURE(SeparateModuleSubprogram)
  READ_FEATURE(SequenceStmt)
  READ_FEATURE(Sign)
  READ_FEATURE(SignedComplexLiteralConstant)
  READ_FEATURE(SignedIntLiteralConstant)
  READ_FEATURE(SignedRealLiteralConstant)
  READ_FEATURE(SpecificationConstruct)
  READ_FEATURE(SpecificationExpr)
  READ_FEATURE(SpecificationPart)
  READ_FEATURE(Star)
  READ_FEATURE(StatOrErrmsg)
  READ_FEATURE(StatVariable)
  READ_FEATURE(StatusExpr)
  READ_FEATURE(StmtFunctionStmt)
  READ_FEATURE(StopCode)
  READ_FEATURE(StopStmt)
  READ_FEATURE(StopStmt::Kind)
  READ_FEATURE(StructureComponent)
  READ_FEATURE(StructureConstructor)
  READ_FEATURE(StructureDef)
  READ_FEATURE(StructureDef::EndStructureStmt)
  READ_FEATURE(StructureField)
  READ_FEATURE(StructureStmt)
  READ_FEATURE(Submodule)
  READ_FEATURE(SubmoduleStmt)
  READ_FEATURE(SubroutineStmt)
  READ_FEATURE(SubroutineSubprogram)
  READ_FEATURE(SubscriptTriplet)
  READ_FEATURE(Substring)
  READ_FEATURE(SubstringInquiry)
  READ_FEATURE(SubstringRange)
  READ_FEATURE(Suffix)
  READ_FEATURE(SyncAllStmt)
  READ_FEATURE(SyncImagesStmt)
  READ_FEATURE(SyncImagesStmt::ImageSet)
  READ_FEATURE(SyncMemoryStmt)
  READ_FEATURE(SyncTeamStmt)
  READ_FEATURE(Target)
  READ_FEATURE(TargetStmt)
  READ_FEATURE(TypeAttrSpec)
  READ_FEATURE(TypeAttrSpec::BindC)
  READ_FEATURE(TypeAttrSpec::Extends)
  READ_FEATURE(TypeBoundGenericStmt)
  READ_FEATURE(TypeBoundProcBinding)
  READ_FEATURE(TypeBoundProcDecl)
  READ_FEATURE(TypeBoundProcedurePart)
  READ_FEATURE(TypeBoundProcedureStmt)
  READ_FEATURE(TypeBoundProcedureStmt::WithInterface)
  READ_FEATURE(TypeBoundProcedureStmt::WithoutInterface)
  READ_FEATURE(TypeDeclarationStmt)
  READ_FEATURE(TypeGuardStmt)
  READ_FEATURE(TypeGuardStmt::Guard)
  READ_FEATURE(TypeParamDecl)
  READ_FEATURE(TypeParamDefStmt)
  READ_FEATURE(common::TypeParamAttr)
  READ_FEATURE(TypeParamSpec)
  READ_FEATURE(TypeParamValue)
  READ_FEATURE(TypeParamValue::Deferred)
  READ_FEATURE(TypeSpec)
  READ_FEATURE(Union)
  READ_FEATURE(Union::EndUnionStmt)
  READ_FEATURE(Union::UnionStmt)
  READ_FEATURE(UnlockStmt)
  READ_FEATURE(UseStmt)
  READ_FEATURE(UseStmt::ModuleNature)
  READ_FEATURE(Value)
  READ_FEATURE(ValueStmt)
  READ_FEATURE(Variable)
  READ_FEATURE(Verbatim)
  READ_FEATURE(Volatile)
  READ_FEATURE(VolatileStmt)
  READ_FEATURE(WaitSpec)
  READ_FEATURE(WaitStmt)
  READ_FEATURE(WhereBodyConstruct)
  READ_FEATURE(WhereConstruct)
  READ_FEATURE(WhereConstruct::Elsewhere)
  READ_FEATURE(WhereConstruct::MaskedElsewhere)
  READ_FEATURE(WhereConstructStmt)
  READ_FEATURE(WhereStmt)
  READ_FEATURE(WriteStmt)

  READ_FEATURE(llvm::omp::Directive)
  READ_FEATURE(llvm::omp::Clause)
  READ_FEATURE(llvm::acc::Directive)
  READ_FEATURE(llvm::acc::DefaultValue)

  template <typename A> bool Pre(const A &) { return true; }
  template <typename A> void Post(const A &) {}

  template <typename T> bool Pre(const Statement<T> &) { return true; }
  template <typename T> void Post(const Statement<T> &) {}

  template <typename T> bool Pre(const UnlabeledStatement<T> &) { return true; }
  template <typename T> void Post(const UnlabeledStatement<T> &) {}

  template <typename T> bool Pre(const common::Indirection<T> &) {
    return true;
  }
  template <typename T> void Post(const common::Indirection<T> &) {}

  template <typename A> bool Pre(const Scalar<A> &) { return true; }
  template <typename A> void Post(const Scalar<A> &) {}

  template <typename A> bool Pre(const Constant<A> &) { return true; }
  template <typename A> void Post(const Constant<A> &) {}

  template <typename A> bool Pre(const Integer<A> &) { return true; }
  template <typename A> void Post(const Integer<A> &) {}

  template <typename A> bool Pre(const Logical<A> &) { return true; }
  template <typename A> void Post(const Logical<A> &) {}

  template <typename A> bool Pre(const DefaultChar<A> &) { return true; }
  template <typename A> void Post(const DefaultChar<A> &) {}

  template <typename... A> bool Pre(const std::tuple<A...> &) { return true; }
  template <typename... A> void Post(const std::tuple<A...> &) {}

  template <typename... A> bool Pre(const std::variant<A...> &) { return true; }
  template <typename... A> void Post(const std::variant<A...> &) {}
};

bool sortNodes(std::pair<const char *, int> a, std::pair<const char *, int> b) {
  return (a.second == b.second) ? (std::strcmp(a.first, b.first) < 0)
                                : a.second > b.second;
}

class FeatureListAction : public PluginParseTreeAction {
  void executeAction() override {
    NodeVisitor visitor;
    Fortran::parser::Walk(getParsing().parseTree(), visitor);

    const auto &frequencyMap = visitor.getFrequencies();
    std::vector<std::pair<const char *, int>> frequencies(
        frequencyMap.begin(), frequencyMap.end());

    std::sort(frequencies.begin(), frequencies.end(), sortNodes);
    for (auto const &[feature, frequency] : frequencies) {
      llvm::outs() << feature << ": " << frequency << "\n";
    }
  }

  bool beginSourceFileAction() override {
    return runPrescan() && runParse(/*emitMessages=*/true);
  }
};

static FrontendPluginRegistry::Add<FeatureListAction> X(
    "feature-list", "List program features");
