[flang] incorporate review comment

Original-commit: flang-compiler/f18@15bb84470d
Reviewed-on: https://github.com/flang-compiler/f18/pull/80
This commit is contained in:
peter klausler 2018-05-04 10:32:54 -07:00
parent 2a68453d7b
commit 67fc4f647f
1 changed files with 132 additions and 135 deletions

View File

@ -36,17 +36,16 @@ public:
constexpr const char *GetNodeName(const char *const &) { return "char *"; }
#define NODE_NAME(T, N) \
constexpr const char *GetNodeName(const T &) { return N; }
#define NODE(NS, T) NODE_NAME(NS::T, #T)
#define NESTED_NODE(T1, T2) NODE_NAME(T1::T2, #T2)
#define NODE(T1, T2) NODE_NAME(T1::T2, #T2)
NODE_NAME(bool, "bool")
NODE_NAME(int, "int")
NODE(format, ControlEditDesc)
NESTED_NODE(format::ControlEditDesc, Kind)
NODE(format::ControlEditDesc, Kind)
NODE(format, DerivedTypeDataEditDesc)
NODE(format, FormatItem)
NODE(format, FormatSpecification)
NODE(format, IntrinsicTypeDataEditDesc)
NESTED_NODE(format::IntrinsicTypeDataEditDesc, Kind)
NODE(format::IntrinsicTypeDataEditDesc, Kind)
NODE(parser, Abstract)
NODE(parser, AcImpliedDo)
NODE(parser, AcImpliedDoControl)
@ -54,17 +53,17 @@ public:
NODE(parser, AccessStmt)
NODE(parser, AccessId)
NODE(parser, AccessSpec)
NESTED_NODE(parser::AccessSpec, Kind)
NODE(parser::AccessSpec, Kind)
NODE(parser, AcSpec)
NODE(parser, ActionStmt)
NODE(parser, ActualArg)
NESTED_NODE(parser::ActualArg, PercentRef)
NESTED_NODE(parser::ActualArg, PercentVal)
NODE(parser::ActualArg, PercentRef)
NODE(parser::ActualArg, PercentVal)
NODE(parser, ActualArgSpec)
NESTED_NODE(parser::AcValue, Triplet)
NODE(parser::AcValue, Triplet)
NODE(parser, AllocOpt)
NESTED_NODE(parser::AllocOpt, Mold)
NESTED_NODE(parser::AllocOpt, Source)
NODE(parser::AllocOpt, Mold)
NODE(parser::AllocOpt, Source)
NODE(parser, Allocatable)
NODE(parser, AllocatableStmt)
NODE(parser, AllocateCoarraySpec)
@ -94,10 +93,10 @@ public:
NODE(parser, BackspaceStmt)
NODE(parser, BasedPointerStmt)
NODE(parser, BindAttr)
NESTED_NODE(parser::BindAttr, Deferred)
NESTED_NODE(parser::BindAttr, Non_Overridable)
NODE(parser::BindAttr, Deferred)
NODE(parser::BindAttr, Non_Overridable)
NODE(parser, BindEntity)
NESTED_NODE(parser::BindEntity, Kind)
NODE(parser::BindEntity, Kind)
NODE(parser, BindStmt)
NODE(parser, Block)
NODE(parser, BlockConstruct)
@ -110,21 +109,21 @@ public:
NODE(parser, Call)
NODE(parser, CallStmt)
NODE(parser, CaseConstruct)
NESTED_NODE(parser::CaseConstruct, Case)
NODE(parser::CaseConstruct, Case)
NODE(parser, CaseSelector)
NODE(parser, CaseStmt)
NODE(parser, CaseValueRange)
NESTED_NODE(parser::CaseValueRange, Range)
NODE(parser::CaseValueRange, Range)
NODE(parser, ChangeTeamConstruct)
NODE(parser, ChangeTeamStmt)
NODE(parser, CharLength)
NODE(parser, CharLiteralConstant)
NODE(parser, CharLiteralConstantSubstring)
NODE(parser, CharSelector)
NESTED_NODE(parser::CharSelector, LengthAndKind)
NODE(parser::CharSelector, LengthAndKind)
NODE(parser, CharVariable)
NODE(parser, CloseStmt)
NESTED_NODE(parser::CloseStmt, CloseSpec)
NODE(parser::CloseStmt, CloseSpec)
NODE(parser, CoarrayAssociation)
NODE(parser, CoarraySpec)
NODE(parser, CodimensionDecl)
@ -132,10 +131,10 @@ public:
NODE(parser, CoindexedNamedObject)
NODE(parser, CommonBlockObject)
NODE(parser, CommonStmt)
NESTED_NODE(parser::CommonStmt, Block)
NODE(parser::CommonStmt, Block)
NODE(parser, CompilerDirective)
NESTED_NODE(parser::CompilerDirective, IVDEP)
NESTED_NODE(parser::CompilerDirective, IgnoreTKR)
NODE(parser::CompilerDirective, IVDEP)
NODE(parser::CompilerDirective, IgnoreTKR)
NODE(parser, ComplexLiteralConstant)
NODE(parser, ComplexPart)
NODE(parser, ComponentArraySpec)
@ -148,10 +147,10 @@ public:
NODE(parser, ConcurrentControl)
NODE(parser, ConcurrentHeader)
NODE(parser, ConnectSpec)
NESTED_NODE(parser::ConnectSpec, CharExpr)
NESTED_NODE(parser::ConnectSpec::CharExpr, Kind)
NESTED_NODE(parser::ConnectSpec, Newunit)
NESTED_NODE(parser::ConnectSpec, Recl)
NODE(parser::ConnectSpec, CharExpr)
NODE(parser::ConnectSpec::CharExpr, Kind)
NODE(parser::ConnectSpec, Newunit)
NODE(parser::ConnectSpec, Recl)
NODE(parser, ConstantValue)
NODE(parser, ContainsStmt)
NODE(parser, Contiguous)
@ -173,23 +172,23 @@ public:
NODE(parser, DeallocateStmt)
NODE(parser, DeclarationConstruct)
NODE(parser, DeclarationTypeSpec)
NESTED_NODE(parser::DeclarationTypeSpec, Class)
NESTED_NODE(parser::DeclarationTypeSpec, ClassStar)
NESTED_NODE(parser::DeclarationTypeSpec, Record)
NESTED_NODE(parser::DeclarationTypeSpec, Type)
NESTED_NODE(parser::DeclarationTypeSpec, TypeStar)
NODE(parser::DeclarationTypeSpec, Class)
NODE(parser::DeclarationTypeSpec, ClassStar)
NODE(parser::DeclarationTypeSpec, Record)
NODE(parser::DeclarationTypeSpec, Type)
NODE(parser::DeclarationTypeSpec, TypeStar)
NODE(parser, Default)
NODE(parser, DeferredCoshapeSpecList)
NODE(parser, DeferredShapeSpecList)
NODE(parser, DefinedOpName)
NODE(parser, DefinedOperator)
NESTED_NODE(parser::DefinedOperator, IntrinsicOperator)
NODE(parser::DefinedOperator, IntrinsicOperator)
NODE(parser, DerivedTypeDef)
NODE(parser, DerivedTypeSpec)
NODE(parser, DerivedTypeStmt)
NODE(parser, Designator)
NODE(parser, DimensionStmt)
NESTED_NODE(parser::DimensionStmt, Declaration)
NODE(parser::DimensionStmt, Declaration)
NODE(parser, DoConstruct)
NODE(parser, DummyArg)
NODE(parser, ElseIfStmt)
@ -229,7 +228,7 @@ public:
NODE(parser, ErrorRecovery)
NODE(parser, EventPostStmt)
NODE(parser, EventWaitStmt)
NESTED_NODE(parser::EventWaitStmt, EventWaitSpec)
NODE(parser::EventWaitStmt, EventWaitSpec)
NODE(parser, ExecutableConstruct)
NODE(parser, ExecutionPart)
NODE(parser, ExecutionPartConstruct)
@ -237,31 +236,31 @@ public:
NODE(parser, ExplicitCoshapeSpec)
NODE(parser, ExplicitShapeSpec)
NODE(parser, Expr)
NESTED_NODE(parser::Expr, Parentheses)
NESTED_NODE(parser::Expr, UnaryPlus)
NESTED_NODE(parser::Expr, Negate)
NESTED_NODE(parser::Expr, NOT)
NESTED_NODE(parser::Expr, PercentLoc)
NESTED_NODE(parser::Expr, DefinedUnary)
NESTED_NODE(parser::Expr, Power)
NESTED_NODE(parser::Expr, Multiply)
NESTED_NODE(parser::Expr, Divide)
NESTED_NODE(parser::Expr, Add)
NESTED_NODE(parser::Expr, Subtract)
NESTED_NODE(parser::Expr, Concat)
NESTED_NODE(parser::Expr, LT)
NESTED_NODE(parser::Expr, LE)
NESTED_NODE(parser::Expr, EQ)
NESTED_NODE(parser::Expr, NE)
NESTED_NODE(parser::Expr, GE)
NESTED_NODE(parser::Expr, GT)
NESTED_NODE(parser::Expr, AND)
NESTED_NODE(parser::Expr, OR)
NESTED_NODE(parser::Expr, EQV)
NESTED_NODE(parser::Expr, NEQV)
NESTED_NODE(parser::Expr, XOR)
NESTED_NODE(parser::Expr, DefinedBinary)
NESTED_NODE(parser::Expr, ComplexConstructor)
NODE(parser::Expr, Parentheses)
NODE(parser::Expr, UnaryPlus)
NODE(parser::Expr, Negate)
NODE(parser::Expr, NOT)
NODE(parser::Expr, PercentLoc)
NODE(parser::Expr, DefinedUnary)
NODE(parser::Expr, Power)
NODE(parser::Expr, Multiply)
NODE(parser::Expr, Divide)
NODE(parser::Expr, Add)
NODE(parser::Expr, Subtract)
NODE(parser::Expr, Concat)
NODE(parser::Expr, LT)
NODE(parser::Expr, LE)
NODE(parser::Expr, EQ)
NODE(parser::Expr, NE)
NODE(parser::Expr, GE)
NODE(parser::Expr, GT)
NODE(parser::Expr, AND)
NODE(parser::Expr, OR)
NODE(parser::Expr, EQV)
NODE(parser::Expr, NEQV)
NODE(parser::Expr, XOR)
NODE(parser::Expr, DefinedBinary)
NODE(parser::Expr, ComplexConstructor)
NODE(parser, External)
NODE(parser, ExternalStmt)
NODE(parser, FailImageStmt)
@ -274,60 +273,60 @@ public:
NODE(parser, ForallConstructStmt)
NODE(parser, ForallStmt)
NODE(parser, FormTeamStmt)
NESTED_NODE(parser::FormTeamStmt, FormTeamSpec)
NODE(parser::FormTeamStmt, FormTeamSpec)
NODE(parser, Format)
NODE(parser, FormatStmt)
NODE(parser, FunctionReference)
NODE(parser, FunctionStmt)
NODE(parser, FunctionSubprogram)
NODE(parser, GenericSpec)
NESTED_NODE(parser::GenericSpec, Assignment)
NESTED_NODE(parser::GenericSpec, ReadFormatted)
NESTED_NODE(parser::GenericSpec, ReadUnformatted)
NESTED_NODE(parser::GenericSpec, WriteFormatted)
NESTED_NODE(parser::GenericSpec, WriteUnformatted)
NODE(parser::GenericSpec, Assignment)
NODE(parser::GenericSpec, ReadFormatted)
NODE(parser::GenericSpec, ReadUnformatted)
NODE(parser::GenericSpec, WriteFormatted)
NODE(parser::GenericSpec, WriteUnformatted)
NODE(parser, GenericStmt)
NODE(parser, GotoStmt)
NODE(parser, HollerithLiteralConstant)
NODE(parser, IdExpr)
NODE(parser, IdVariable)
NODE(parser, IfConstruct)
NESTED_NODE(parser::IfConstruct, ElseBlock)
NESTED_NODE(parser::IfConstruct, ElseIfBlock)
NODE(parser::IfConstruct, ElseBlock)
NODE(parser::IfConstruct, ElseIfBlock)
NODE(parser, IfStmt)
NODE(parser, IfThenStmt)
NODE(parser, ImageSelector)
NODE(parser, ImageSelectorSpec)
NESTED_NODE(parser::ImageSelectorSpec, Stat)
NESTED_NODE(parser::ImageSelectorSpec, Team)
NESTED_NODE(parser::ImageSelectorSpec, Team_Number)
NODE(parser::ImageSelectorSpec, Stat)
NODE(parser::ImageSelectorSpec, Team)
NODE(parser::ImageSelectorSpec, Team_Number)
NODE(parser, ImplicitPart)
NODE(parser, ImplicitPartStmt)
NODE(parser, ImplicitSpec)
NODE(parser, ImplicitStmt)
NESTED_NODE(parser::ImplicitStmt, ImplicitNoneNameSpec)
NODE(parser::ImplicitStmt, ImplicitNoneNameSpec)
NODE(parser, ImpliedShapeSpec)
NODE(parser, ImportStmt)
NODE(parser, Initialization)
NODE(parser, InputImpliedDo)
NODE(parser, InputItem)
NODE(parser, InquireSpec)
NESTED_NODE(parser::InquireSpec, CharVar)
NESTED_NODE(parser::InquireSpec::CharVar, Kind)
NESTED_NODE(parser::InquireSpec, IntVar)
NESTED_NODE(parser::InquireSpec::IntVar, Kind)
NESTED_NODE(parser::InquireSpec, LogVar)
NESTED_NODE(parser::InquireSpec::LogVar, Kind)
NODE(parser::InquireSpec, CharVar)
NODE(parser::InquireSpec::CharVar, Kind)
NODE(parser::InquireSpec, IntVar)
NODE(parser::InquireSpec::IntVar, Kind)
NODE(parser::InquireSpec, LogVar)
NODE(parser::InquireSpec::LogVar, Kind)
NODE(parser, InquireStmt)
NESTED_NODE(parser::InquireStmt, Iolength)
NODE(parser::InquireStmt, Iolength)
NODE(parser, IntegerTypeSpec)
NODE(parser, IntentSpec)
NESTED_NODE(parser::IntentSpec, Intent)
NODE(parser::IntentSpec, Intent)
NODE(parser, IntentStmt)
NODE(parser, InterfaceBlock)
NODE(parser, InterfaceBody)
NESTED_NODE(parser::InterfaceBody, Function)
NESTED_NODE(parser::InterfaceBody, Subroutine)
NODE(parser::InterfaceBody, Function)
NODE(parser::InterfaceBody, Subroutine)
NODE(parser, InterfaceSpecification)
NODE(parser, InterfaceStmt)
NODE(parser, InternalSubprogram)
@ -336,47 +335,47 @@ public:
NODE(parser, Intrinsic)
NODE(parser, IntrinsicStmt)
NODE(parser, IntrinsicTypeSpec)
NESTED_NODE(parser::IntrinsicTypeSpec, Character)
NESTED_NODE(parser::IntrinsicTypeSpec, Complex)
NESTED_NODE(parser::IntrinsicTypeSpec, DoubleComplex)
NESTED_NODE(parser::IntrinsicTypeSpec, DoublePrecision)
NESTED_NODE(parser::IntrinsicTypeSpec, Logical)
NESTED_NODE(parser::IntrinsicTypeSpec, NCharacter)
NESTED_NODE(parser::IntrinsicTypeSpec, Real)
NODE(parser::IntrinsicTypeSpec, Character)
NODE(parser::IntrinsicTypeSpec, Complex)
NODE(parser::IntrinsicTypeSpec, DoubleComplex)
NODE(parser::IntrinsicTypeSpec, DoublePrecision)
NODE(parser::IntrinsicTypeSpec, Logical)
NODE(parser::IntrinsicTypeSpec, NCharacter)
NODE(parser::IntrinsicTypeSpec, Real)
NODE(parser, IoControlSpec)
NESTED_NODE(parser::IoControlSpec, Asynchronous)
NESTED_NODE(parser::IoControlSpec, CharExpr)
NESTED_NODE(parser::IoControlSpec::CharExpr, Kind)
NESTED_NODE(parser::IoControlSpec, Pos)
NESTED_NODE(parser::IoControlSpec, Rec)
NESTED_NODE(parser::IoControlSpec, Size)
NODE(parser::IoControlSpec, Asynchronous)
NODE(parser::IoControlSpec, CharExpr)
NODE(parser::IoControlSpec::CharExpr, Kind)
NODE(parser::IoControlSpec, Pos)
NODE(parser::IoControlSpec, Rec)
NODE(parser::IoControlSpec, Size)
NODE(parser, IoUnit)
NODE(parser, Keyword)
NODE(parser, KindParam)
NESTED_NODE(parser::KindParam, Kanji)
NODE(parser::KindParam, Kanji)
NODE(parser, KindSelector)
NESTED_NODE(parser::KindSelector, StarSize)
NODE(parser::KindSelector, StarSize)
NODE(parser, LabelDoStmt)
NODE(parser, LanguageBindingSpec)
NODE(parser, LengthSelector)
NODE(parser, LetterSpec)
NODE(parser, LiteralConstant)
NODE(parser, LocalitySpec)
NESTED_NODE(parser::LocalitySpec, DefaultNone)
NESTED_NODE(parser::LocalitySpec, Local)
NESTED_NODE(parser::LocalitySpec, LocalInit)
NESTED_NODE(parser::LocalitySpec, Shared)
NODE(parser::LocalitySpec, DefaultNone)
NODE(parser::LocalitySpec, Local)
NODE(parser::LocalitySpec, LocalInit)
NODE(parser::LocalitySpec, Shared)
NODE(parser, LockStmt)
NESTED_NODE(parser::LockStmt, LockStat)
NODE(parser::LockStmt, LockStat)
NODE(parser, LogicalLiteralConstant)
NODE_NAME(parser::LoopBounds<parser::ScalarIntConstantExpr>, "LoopBounds")
NODE_NAME(parser::LoopBounds<parser::ScalarIntExpr>, "LoopBounds")
NODE(parser, LoopControl)
NESTED_NODE(parser::LoopControl, Concurrent)
NODE(parser::LoopControl, Concurrent)
NODE(parser, MainProgram)
NODE(parser, Map)
NESTED_NODE(parser::Map, EndMapStmt)
NESTED_NODE(parser::Map, MapStmt)
NODE(parser::Map, EndMapStmt)
NODE(parser::Map, MapStmt)
NODE(parser, MaskedElsewhereStmt)
NODE(parser, Module)
NODE(parser, ModuleStmt)
@ -387,7 +386,7 @@ public:
NODE(parser, NamedConstant)
NODE(parser, NamedConstantDef)
NODE(parser, NamelistStmt)
NESTED_NODE(parser::NamelistStmt, Group)
NODE(parser::NamelistStmt, Group)
NODE(parser, NonLabelDoStmt)
NODE(parser, NoPass)
NODE(parser, NullifyStmt)
@ -408,18 +407,18 @@ public:
NODE(parser, PauseStmt)
NODE(parser, Pointer)
NODE(parser, PointerAssignmentStmt)
NESTED_NODE(parser::PointerAssignmentStmt, Bounds)
NODE(parser::PointerAssignmentStmt, Bounds)
NODE(parser, PointerDecl)
NODE(parser, PointerObject)
NODE(parser, PointerStmt)
NODE(parser, PositionOrFlushSpec)
NODE(parser, PrefixSpec)
NESTED_NODE(parser::PrefixSpec, Elemental)
NESTED_NODE(parser::PrefixSpec, Impure)
NESTED_NODE(parser::PrefixSpec, Module)
NESTED_NODE(parser::PrefixSpec, Non_Recursive)
NESTED_NODE(parser::PrefixSpec, Pure)
NESTED_NODE(parser::PrefixSpec, Recursive)
NODE(parser::PrefixSpec, Elemental)
NODE(parser::PrefixSpec, Impure)
NODE(parser::PrefixSpec, Module)
NODE(parser::PrefixSpec, Non_Recursive)
NODE(parser::PrefixSpec, Pure)
NODE(parser::PrefixSpec, Recursive)
NODE(parser, PrintStmt)
NODE(parser, PrivateStmt)
NODE(parser, PrivateOrSequence)
@ -433,7 +432,7 @@ public:
NODE(parser, ProcedureDeclarationStmt)
NODE(parser, ProcedureDesignator)
NODE(parser, ProcedureStmt)
NESTED_NODE(parser::ProcedureStmt, Kind)
NODE(parser::ProcedureStmt, Kind)
NODE(parser, Program)
NODE(parser, ProgramStmt)
NODE(parser, ProgramUnit)
@ -441,25 +440,25 @@ public:
NODE(parser, ProtectedStmt)
NODE(parser, ReadStmt)
NODE(parser, RealLiteralConstant)
NESTED_NODE(parser::RealLiteralConstant, Real)
NODE(parser::RealLiteralConstant, Real)
NODE(parser, Rename)
NESTED_NODE(parser::Rename, Names)
NESTED_NODE(parser::Rename, Operators)
NODE(parser::Rename, Names)
NODE(parser::Rename, Operators)
NODE(parser, ReturnStmt)
NODE(parser, RewindStmt)
NODE(parser, Save)
NODE(parser, SaveStmt)
NODE(parser, SavedEntity)
NESTED_NODE(parser::SavedEntity, Kind)
NODE(parser::SavedEntity, Kind)
NODE(parser, SectionSubscript)
NODE(parser, SelectCaseStmt)
NODE(parser, SelectRankCaseStmt)
NESTED_NODE(parser::SelectRankCaseStmt, Rank)
NODE(parser::SelectRankCaseStmt, Rank)
NODE(parser, SelectRankConstruct)
NESTED_NODE(parser::SelectRankConstruct, RankCase)
NODE(parser::SelectRankConstruct, RankCase)
NODE(parser, SelectRankStmt)
NODE(parser, SelectTypeConstruct)
NESTED_NODE(parser::SelectTypeConstruct, TypeCase)
NODE(parser::SelectTypeConstruct, TypeCase)
NODE(parser, SelectTypeStmt)
NODE(parser, Selector)
NODE(parser, SeparateModuleSubprogram)
@ -478,11 +477,11 @@ public:
NODE(parser, StmtFunctionStmt)
NODE(parser, StopCode)
NODE(parser, StopStmt)
NESTED_NODE(parser::StopStmt, Kind)
NODE(parser::StopStmt, Kind)
NODE(parser, StructureComponent)
NODE(parser, StructureConstructor)
NODE(parser, StructureDef)
NESTED_NODE(parser::StructureDef, EndStructureStmt)
NODE(parser::StructureDef, EndStructureStmt)
NODE(parser, StructureField)
NODE(parser, StructureStmt)
NODE(parser, Submodule)
@ -495,38 +494,38 @@ public:
NODE(parser, Suffix)
NODE(parser, SyncAllStmt)
NODE(parser, SyncImagesStmt)
NESTED_NODE(parser::SyncImagesStmt, ImageSet)
NODE(parser::SyncImagesStmt, ImageSet)
NODE(parser, SyncMemoryStmt)
NODE(parser, SyncTeamStmt)
NODE(parser, Target)
NODE(parser, TargetStmt)
NODE(parser, TypeAttrSpec)
NESTED_NODE(parser::TypeAttrSpec, BindC)
NESTED_NODE(parser::TypeAttrSpec, Extends)
NODE(parser::TypeAttrSpec, BindC)
NODE(parser::TypeAttrSpec, Extends)
NODE(parser, TypeBoundGenericStmt)
NODE(parser, TypeBoundProcBinding)
NODE(parser, TypeBoundProcDecl)
NODE(parser, TypeBoundProcedurePart)
NODE(parser, TypeBoundProcedureStmt)
NESTED_NODE(parser::TypeBoundProcedureStmt, WithInterface)
NESTED_NODE(parser::TypeBoundProcedureStmt, WithoutInterface)
NODE(parser::TypeBoundProcedureStmt, WithInterface)
NODE(parser::TypeBoundProcedureStmt, WithoutInterface)
NODE(parser, TypeDeclarationStmt)
NODE(parser, TypeGuardStmt)
NESTED_NODE(parser::TypeGuardStmt, Guard)
NODE(parser::TypeGuardStmt, Guard)
NODE(parser, TypeParamDecl)
NODE(parser, TypeParamDefStmt)
NESTED_NODE(parser::TypeParamDefStmt, KindOrLen)
NODE(parser::TypeParamDefStmt, KindOrLen)
NODE(parser, TypeParamInquiry)
NODE(parser, TypeParamSpec)
NODE(parser, TypeParamValue)
NESTED_NODE(parser::TypeParamValue, Deferred)
NODE(parser::TypeParamValue, Deferred)
NODE(parser, TypeSpec)
NODE(parser, Union)
NESTED_NODE(parser::Union, EndUnionStmt)
NESTED_NODE(parser::Union, UnionStmt)
NODE(parser::Union, EndUnionStmt)
NODE(parser::Union, UnionStmt)
NODE(parser, UnlockStmt)
NODE(parser, UseStmt)
NESTED_NODE(parser::UseStmt, ModuleNature)
NODE(parser::UseStmt, ModuleNature)
NODE(parser, Value)
NODE(parser, ValueStmt)
NODE(parser, Variable)
@ -536,16 +535,14 @@ public:
NODE(parser, WaitStmt)
NODE(parser, WhereBodyConstruct)
NODE(parser, WhereConstruct)
NESTED_NODE(parser::WhereConstruct, Elsewhere)
NESTED_NODE(parser::WhereConstruct, MaskedElsewhere)
NODE(parser::WhereConstruct, Elsewhere)
NODE(parser::WhereConstruct, MaskedElsewhere)
NODE(parser, WhereConstructStmt)
NODE(parser, WhereStmt)
NODE(parser, WriteStmt)
#undef NESTED_NODE
#undef NODE
#undef NODE_NAME
template<typename T> bool Pre(const T &x) {
IndentEmptyLine();
if (UnionTrait<T> || WrapperTrait<T>) {