The Psyche Project
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
psy::C::SyntaxVisitor Class Reference

The SyntaxVisitor class. More...

#include <SyntaxVisitor.h>

Inheritance diagram for psy::C::SyntaxVisitor:
psy::C::Binder psy::C::Disambiguator psy::C::GuidelineImpositionReparser psy::C::NameCataloger psy::C::SyntaxDumper psy::C::TypeChecker psy::C::TypeSynonymsVerificationReparser psy::C::SyntaxCorrelationDisambiguator psy::C::SyntaxNamePrinter psy::C::SyntaxWriterDOTFormat psy::C::Unparser

Public Types

enum  Action : std::uint8_t { Visit, Skip, Quit }
 The Action enumeration.
 

Public Member Functions

 SyntaxVisitor (const SyntaxTree *tree)
 
virtual bool preVisit (const SyntaxNode *)
 
virtual void postVisit (const SyntaxNode *)
 
void visit (const SyntaxNode *node)
 
template<class PtrT , class DerivedListT >
void visit (CoreSyntaxNodeList< PtrT, DerivedListT > *it)
 
virtual Action visitTranslationUnit (const TranslationUnitSyntax *)
 
virtual Action visitIncompleteDeclaration (const IncompleteDeclarationSyntax *)
 
virtual Action visitStructOrUnionDeclaration (const StructOrUnionDeclarationSyntax *)
 
virtual Action visitEnumDeclaration (const EnumDeclarationSyntax *)
 
virtual Action visitEnumeratorDeclaration (const EnumeratorDeclarationSyntax *)
 
virtual Action visitVariableAndOrFunctionDeclaration (const VariableAndOrFunctionDeclarationSyntax *)
 
virtual Action visitFieldDeclaration (const FieldDeclarationSyntax *)
 
virtual Action visitParameterDeclaration (const ParameterDeclarationSyntax *)
 
virtual Action visitStaticAssertDeclaration (const StaticAssertDeclarationSyntax *)
 
virtual Action visitFunctionDefinition (const FunctionDefinitionSyntax *)
 
virtual Action visitExtPSY_TemplateDeclaration (const ExtPSY_TemplateDeclarationSyntax *)
 
virtual Action visitExtGNU_AsmStatementDeclaration (const ExtGNU_AsmStatementDeclarationSyntax *)
 
virtual Action visitExtKR_ParameterDeclaration (const ExtKR_ParameterDeclarationSyntax *)
 
virtual Action visitStorageClass (const StorageClassSyntax *)
 
virtual Action visitBuiltinTypeSpecifier (const BuiltinTypeSpecifierSyntax *)
 
virtual Action visitTagTypeSpecifier (const TagTypeSpecifierSyntax *)
 
virtual Action visitAtomicTypeSpecifier (const AtomicTypeSpecifierSyntax *)
 
virtual Action visitTypeDeclarationAsSpecifier (const TypeDeclarationAsSpecifierSyntax *)
 
virtual Action visitTypedefName (const TypedefNameSyntax *)
 
virtual Action visitTypeQualifier (const TypeQualifierSyntax *)
 
virtual Action visitFunctionSpecifier (const FunctionSpecifierSyntax *)
 
virtual Action visitAlignmentSpecifier (const AlignmentSpecifierSyntax *)
 
virtual Action visitExtGNU_Typeof (const ExtGNU_TypeofSyntax *)
 
virtual Action visitExtGNU_AttributeSpecifier (const ExtGNU_AttributeSpecifierSyntax *)
 
virtual Action visitExtGNU_Attribute (const ExtGNU_AttributeSyntax *)
 
virtual Action visitExtGNU_AsmLabel (const ExtGNU_AsmLabelSyntax *)
 
virtual Action visitExtPSY_QuantifiedTypeSpecifier (const ExtPSY_QuantifiedTypeSpecifierSyntax *)
 
virtual Action visitArrayOrFunctionDeclarator (const ArrayOrFunctionDeclaratorSyntax *)
 
virtual Action visitPointerDeclarator (const PointerDeclaratorSyntax *)
 
virtual Action visitParenthesizedDeclarator (const ParenthesizedDeclaratorSyntax *)
 
virtual Action visitIdentifierDeclarator (const IdentifierDeclaratorSyntax *)
 
virtual Action visitAbstractDeclarator (const AbstractDeclaratorSyntax *)
 
virtual Action visitSubscriptSuffix (const SubscriptSuffixSyntax *)
 
virtual Action visitParameterSuffix (const ParameterSuffixSyntax *)
 
virtual Action visitBitfieldDeclarator (const BitfieldDeclaratorSyntax *)
 
virtual Action visitExpressionInitializer (const ExpressionInitializerSyntax *)
 
virtual Action visitBraceEnclosedInitializer (const BraceEnclosedInitializerSyntax *)
 
virtual Action visitDesignatedInitializer (const DesignatedInitializerSyntax *)
 
virtual Action visitFieldDesignator (const FieldDesignatorSyntax *)
 
virtual Action visitArrayDesignator (const ArrayDesignatorSyntax *)
 
virtual Action visitOffsetOfDesignator (const OffsetOfDesignatorSyntax *)
 
virtual Action visitIdentifierName (const IdentifierNameSyntax *)
 
virtual Action visitPredefinedName (const PredefinedNameSyntax *)
 
virtual Action visitConstantExpression (const ConstantExpressionSyntax *)
 
virtual Action visitStringLiteralExpression (const StringLiteralExpressionSyntax *)
 
virtual Action visitParenthesizedExpression (const ParenthesizedExpressionSyntax *)
 
virtual Action visitGenericSelectionExpression (const GenericSelectionExpressionSyntax *)
 
virtual Action visitGenericAssociation (const GenericAssociationSyntax *)
 
virtual Action visitExtGNU_EnclosedCompoundStatementExpression (const ExtGNU_EnclosedCompoundStatementExpressionSyntax *)
 
virtual Action visitExtGNU_ComplexValuedExpression (const ExtGNU_ComplexValuedExpressionSyntax *)
 
virtual Action visitPrefixUnaryExpression (const PrefixUnaryExpressionSyntax *)
 
virtual Action visitPostfixUnaryExpression (const PostfixUnaryExpressionSyntax *)
 
virtual Action visitMemberAccessExpression (const MemberAccessExpressionSyntax *)
 
virtual Action visitArraySubscriptExpression (const ArraySubscriptExpressionSyntax *)
 
virtual Action visitTypeTraitExpression (const TypeTraitExpressionSyntax *)
 
virtual Action visitCastExpression (const CastExpressionSyntax *)
 
virtual Action visitCallExpression (const CallExpressionSyntax *)
 
virtual Action visitVAArgumentExpression (const VAArgumentExpressionSyntax *)
 
virtual Action visitOffsetOfExpression (const OffsetOfExpressionSyntax *)
 
virtual Action visitCompoundLiteralExpression (const CompoundLiteralExpressionSyntax *)
 
virtual Action visitBinaryExpression (const BinaryExpressionSyntax *)
 
virtual Action visitConditionalExpression (const ConditionalExpressionSyntax *)
 
virtual Action visitAssignmentExpression (const AssignmentExpressionSyntax *)
 
virtual Action visitSequencingExpression (const SequencingExpressionSyntax *)
 
virtual Action visitExtGNU_ChooseExpression (const ExtGNU_ChooseExpressionSyntax *)
 
virtual Action visitCompoundStatement (const CompoundStatementSyntax *)
 
virtual Action visitDeclarationStatement (const DeclarationStatementSyntax *)
 
virtual Action visitExpressionStatement (const ExpressionStatementSyntax *)
 
virtual Action visitLabeledStatement (const LabeledStatementSyntax *)
 
virtual Action visitIfStatement (const IfStatementSyntax *)
 
virtual Action visitSwitchStatement (const SwitchStatementSyntax *)
 
virtual Action visitWhileStatement (const WhileStatementSyntax *)
 
virtual Action visitDoStatement (const DoStatementSyntax *)
 
virtual Action visitForStatement (const ForStatementSyntax *)
 
virtual Action visitGotoStatement (const GotoStatementSyntax *)
 
virtual Action visitContinueStatement (const ContinueStatementSyntax *)
 
virtual Action visitBreakStatement (const BreakStatementSyntax *)
 
virtual Action visitReturnStatement (const ReturnStatementSyntax *)
 
virtual Action visitExtGNU_AsmStatement (const ExtGNU_AsmStatementSyntax *)
 
virtual Action visitExtGNU_AsmQualifier (const ExtGNU_AsmQualifierSyntax *)
 
virtual Action visitExtGNU_AsmOperand (const ExtGNU_AsmOperandSyntax *)
 
virtual Action visitTypeName (const TypeNameSyntax *)
 
virtual Action visitExpressionAsTypeReference (const ExpressionAsTypeReferenceSyntax *)
 
virtual Action visitTypeNameAsTypeReference (const TypeNameAsTypeReferenceSyntax *)
 
virtual Action visitAmbiguousTypeNameOrExpressionAsTypeReference (const AmbiguousTypeNameOrExpressionAsTypeReferenceSyntax *)
 
virtual Action visitAmbiguousCastOrBinaryExpression (const AmbiguousCastOrBinaryExpressionSyntax *)
 
virtual Action visitAmbiguousExpressionOrDeclarationStatement (const AmbiguousExpressionOrDeclarationStatementSyntax *)
 

Protected Member Functions

 SyntaxVisitor (const SyntaxVisitor &)=delete
 
void operator= (const SyntaxVisitor &)=delete
 

Protected Attributes

const SyntaxTreetree_
 

Detailed Description

The SyntaxVisitor class.

Member Function Documentation

◆ visit() [1/2]

void SyntaxVisitor::visit ( const SyntaxNode node)

Visit the SyntaxNode node.

◆ visit() [2/2]

template<class PtrT , class DerivedListT >
void psy::C::SyntaxVisitor::visit ( CoreSyntaxNodeList< PtrT, DerivedListT > *  it)
inline

Visit the SyntaxNodePlainList it.


The documentation for this class was generated from the following files: