ast

package
v0.0.0-...-3af71b4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2021 License: GPL-3.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EachDeclarationSpecifier

func EachDeclarationSpecifier(n *cc.DeclarationSpecifiers, f func(n *cc.DeclarationSpecifiers))

func EachEnumerator

func EachEnumerator(n *cc.EnumeratorList, f func(n *cc.Enumerator))

func EachInitDeclarator

func EachInitDeclarator(n *cc.InitDeclaratorList, f func(n *cc.InitDeclarator))

Types

type Handler

type Handler interface {
	Start()
	End()

	// OnAbstractDeclaratorStart is called during the traversal of the AST, whenever a node of type *cc.AbstractDeclarator is entered.
	OnAbstractDeclaratorStart(n *cc.AbstractDeclarator)
	// OnAbstractDeclaratorEnd is called during the traversal of the AST, whenever a node of type *cc.AbstractDeclarator is exited.
	OnAbstractDeclaratorEnd(n *cc.AbstractDeclarator)

	// OnAdditiveExpressionStart is called during the traversal of the AST, whenever a node of type *cc.AdditiveExpression is entered.
	OnAdditiveExpressionStart(n *cc.AdditiveExpression)
	// OnAdditiveExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.AdditiveExpression is exited.
	OnAdditiveExpressionEnd(n *cc.AdditiveExpression)

	// OnAlignmentSpecifierStart is called during the traversal of the AST, whenever a node of type *cc.AlignmentSpecifier is entered.
	OnAlignmentSpecifierStart(n *cc.AlignmentSpecifier)
	// OnAlignmentSpecifierEnd is called during the traversal of the AST, whenever a node of type *cc.AlignmentSpecifier is exited.
	OnAlignmentSpecifierEnd(n *cc.AlignmentSpecifier)

	// OnAndExpressionStart is called during the traversal of the AST, whenever a node of type *cc.AndExpression is entered.
	OnAndExpressionStart(n *cc.AndExpression)
	// OnAndExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.AndExpression is exited.
	OnAndExpressionEnd(n *cc.AndExpression)

	// OnArgumentExpressionListStart is called during the traversal of the AST, whenever a node of type *cc.ArgumentExpressionList is entered.
	OnArgumentExpressionListStart(n *cc.ArgumentExpressionList)
	// OnArgumentExpressionListEnd is called during the traversal of the AST, whenever a node of type *cc.ArgumentExpressionList is exited.
	OnArgumentExpressionListEnd(n *cc.ArgumentExpressionList)

	// OnAsmStart is called during the traversal of the AST, whenever a node of type *cc.Asm is entered.
	OnAsmStart(n *cc.Asm)
	// OnAsmEnd is called during the traversal of the AST, whenever a node of type *cc.Asm is exited.
	OnAsmEnd(n *cc.Asm)

	// OnAsmArgListStart is called during the traversal of the AST, whenever a node of type *cc.AsmArgList is entered.
	OnAsmArgListStart(n *cc.AsmArgList)
	// OnAsmArgListEnd is called during the traversal of the AST, whenever a node of type *cc.AsmArgList is exited.
	OnAsmArgListEnd(n *cc.AsmArgList)

	// OnAsmExpressionListStart is called during the traversal of the AST, whenever a node of type *cc.AsmExpressionList is entered.
	OnAsmExpressionListStart(n *cc.AsmExpressionList)
	// OnAsmExpressionListEnd is called during the traversal of the AST, whenever a node of type *cc.AsmExpressionList is exited.
	OnAsmExpressionListEnd(n *cc.AsmExpressionList)

	// OnAsmFunctionDefinitionStart is called during the traversal of the AST, whenever a node of type *cc.AsmFunctionDefinition is entered.
	OnAsmFunctionDefinitionStart(n *cc.AsmFunctionDefinition)
	// OnAsmFunctionDefinitionEnd is called during the traversal of the AST, whenever a node of type *cc.AsmFunctionDefinition is exited.
	OnAsmFunctionDefinitionEnd(n *cc.AsmFunctionDefinition)

	// OnAsmIndexStart is called during the traversal of the AST, whenever a node of type *cc.AsmIndex is entered.
	OnAsmIndexStart(n *cc.AsmIndex)
	// OnAsmIndexEnd is called during the traversal of the AST, whenever a node of type *cc.AsmIndex is exited.
	OnAsmIndexEnd(n *cc.AsmIndex)

	// OnAsmQualifierStart is called during the traversal of the AST, whenever a node of type *cc.AsmQualifier is entered.
	OnAsmQualifierStart(n *cc.AsmQualifier)
	// OnAsmQualifierEnd is called during the traversal of the AST, whenever a node of type *cc.AsmQualifier is exited.
	OnAsmQualifierEnd(n *cc.AsmQualifier)

	// OnAsmQualifierListStart is called during the traversal of the AST, whenever a node of type *cc.AsmQualifierList is entered.
	OnAsmQualifierListStart(n *cc.AsmQualifierList)
	// OnAsmQualifierListEnd is called during the traversal of the AST, whenever a node of type *cc.AsmQualifierList is exited.
	OnAsmQualifierListEnd(n *cc.AsmQualifierList)

	// OnAsmStatementStart is called during the traversal of the AST, whenever a node of type *cc.AsmStatement is entered.
	OnAsmStatementStart(n *cc.AsmStatement)
	// OnAsmStatementEnd is called during the traversal of the AST, whenever a node of type *cc.AsmStatement is exited.
	OnAsmStatementEnd(n *cc.AsmStatement)

	// OnAssignmentExpressionStart is called during the traversal of the AST, whenever a node of type *cc.AssignmentExpression is entered.
	OnAssignmentExpressionStart(n *cc.AssignmentExpression)
	// OnAssignmentExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.AssignmentExpression is exited.
	OnAssignmentExpressionEnd(n *cc.AssignmentExpression)

	// OnAtomicTypeSpecifierStart is called during the traversal of the AST, whenever a node of type *cc.AtomicTypeSpecifier is entered.
	OnAtomicTypeSpecifierStart(n *cc.AtomicTypeSpecifier)
	// OnAtomicTypeSpecifierEnd is called during the traversal of the AST, whenever a node of type *cc.AtomicTypeSpecifier is exited.
	OnAtomicTypeSpecifierEnd(n *cc.AtomicTypeSpecifier)

	// OnAttributeSpecifierStart is called during the traversal of the AST, whenever a node of type *cc.AttributeSpecifier is entered.
	OnAttributeSpecifierStart(n *cc.AttributeSpecifier)
	// OnAttributeSpecifierEnd is called during the traversal of the AST, whenever a node of type *cc.AttributeSpecifier is exited.
	OnAttributeSpecifierEnd(n *cc.AttributeSpecifier)

	// OnAttributeSpecifierListStart is called during the traversal of the AST, whenever a node of type *cc.AttributeSpecifierList is entered.
	OnAttributeSpecifierListStart(n *cc.AttributeSpecifierList)
	// OnAttributeSpecifierListEnd is called during the traversal of the AST, whenever a node of type *cc.AttributeSpecifierList is exited.
	OnAttributeSpecifierListEnd(n *cc.AttributeSpecifierList)

	// OnAttributeValueStart is called during the traversal of the AST, whenever a node of type *cc.AttributeValue is entered.
	OnAttributeValueStart(n *cc.AttributeValue)
	// OnAttributeValueEnd is called during the traversal of the AST, whenever a node of type *cc.AttributeValue is exited.
	OnAttributeValueEnd(n *cc.AttributeValue)

	// OnAttributeValueListStart is called during the traversal of the AST, whenever a node of type *cc.AttributeValueList is entered.
	OnAttributeValueListStart(n *cc.AttributeValueList)
	// OnAttributeValueListEnd is called during the traversal of the AST, whenever a node of type *cc.AttributeValueList is exited.
	OnAttributeValueListEnd(n *cc.AttributeValueList)

	// OnBlockItemStart is called during the traversal of the AST, whenever a node of type *cc.BlockItem is entered.
	OnBlockItemStart(n *cc.BlockItem)
	// OnBlockItemEnd is called during the traversal of the AST, whenever a node of type *cc.BlockItem is exited.
	OnBlockItemEnd(n *cc.BlockItem)

	// OnBlockItemListStart is called during the traversal of the AST, whenever a node of type *cc.BlockItemList is entered.
	OnBlockItemListStart(n *cc.BlockItemList)
	// OnBlockItemListEnd is called during the traversal of the AST, whenever a node of type *cc.BlockItemList is exited.
	OnBlockItemListEnd(n *cc.BlockItemList)

	// OnCastExpressionStart is called during the traversal of the AST, whenever a node of type *cc.CastExpression is entered.
	OnCastExpressionStart(n *cc.CastExpression)
	// OnCastExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.CastExpression is exited.
	OnCastExpressionEnd(n *cc.CastExpression)

	// OnCompoundStatementStart is called during the traversal of the AST, whenever a node of type *cc.CompoundStatement is entered.
	OnCompoundStatementStart(n *cc.CompoundStatement)
	// OnCompoundStatementEnd is called during the traversal of the AST, whenever a node of type *cc.CompoundStatement is exited.
	OnCompoundStatementEnd(n *cc.CompoundStatement)

	// OnConditionalExpressionStart is called during the traversal of the AST, whenever a node of type *cc.ConditionalExpression is entered.
	OnConditionalExpressionStart(n *cc.ConditionalExpression)
	// OnConditionalExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.ConditionalExpression is exited.
	OnConditionalExpressionEnd(n *cc.ConditionalExpression)

	// OnConstantExpressionStart is called during the traversal of the AST, whenever a node of type *cc.ConstantExpression is entered.
	OnConstantExpressionStart(n *cc.ConstantExpression)
	// OnConstantExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.ConstantExpression is exited.
	OnConstantExpressionEnd(n *cc.ConstantExpression)

	// OnDeclarationStart is called during the traversal of the AST, whenever a node of type *cc.Declaration is entered.
	OnDeclarationStart(n *cc.Declaration)
	// OnDeclarationEnd is called during the traversal of the AST, whenever a node of type *cc.Declaration is exited.
	OnDeclarationEnd(n *cc.Declaration)

	// OnDeclarationListStart is called during the traversal of the AST, whenever a node of type *cc.DeclarationList is entered.
	OnDeclarationListStart(n *cc.DeclarationList)
	// OnDeclarationListEnd is called during the traversal of the AST, whenever a node of type *cc.DeclarationList is exited.
	OnDeclarationListEnd(n *cc.DeclarationList)

	// OnDeclarationSpecifiersStart is called during the traversal of the AST, whenever a node of type *cc.DeclarationSpecifiers is entered.
	OnDeclarationSpecifiersStart(n *cc.DeclarationSpecifiers)
	// OnDeclarationSpecifiersEnd is called during the traversal of the AST, whenever a node of type *cc.DeclarationSpecifiers is exited.
	OnDeclarationSpecifiersEnd(n *cc.DeclarationSpecifiers)

	// OnDeclaratorStart is called during the traversal of the AST, whenever a node of type *cc.Declarator is entered.
	OnDeclaratorStart(n *cc.Declarator)
	// OnDeclaratorEnd is called during the traversal of the AST, whenever a node of type *cc.Declarator is exited.
	OnDeclaratorEnd(n *cc.Declarator)

	// OnDesignationStart is called during the traversal of the AST, whenever a node of type *cc.Designation is entered.
	OnDesignationStart(n *cc.Designation)
	// OnDesignationEnd is called during the traversal of the AST, whenever a node of type *cc.Designation is exited.
	OnDesignationEnd(n *cc.Designation)

	// OnDesignatorStart is called during the traversal of the AST, whenever a node of type *cc.Designator is entered.
	OnDesignatorStart(n *cc.Designator)
	// OnDesignatorEnd is called during the traversal of the AST, whenever a node of type *cc.Designator is exited.
	OnDesignatorEnd(n *cc.Designator)

	// OnDesignatorListStart is called during the traversal of the AST, whenever a node of type *cc.DesignatorList is entered.
	OnDesignatorListStart(n *cc.DesignatorList)
	// OnDesignatorListEnd is called during the traversal of the AST, whenever a node of type *cc.DesignatorList is exited.
	OnDesignatorListEnd(n *cc.DesignatorList)

	// OnDirectAbstractDeclaratorStart is called during the traversal of the AST, whenever a node of type *cc.DirectAbstractDeclarator is entered.
	OnDirectAbstractDeclaratorStart(n *cc.DirectAbstractDeclarator)
	// OnDirectAbstractDeclaratorEnd is called during the traversal of the AST, whenever a node of type *cc.DirectAbstractDeclarator is exited.
	OnDirectAbstractDeclaratorEnd(n *cc.DirectAbstractDeclarator)

	// OnDirectDeclaratorStart is called during the traversal of the AST, whenever a node of type *cc.DirectDeclarator is entered.
	OnDirectDeclaratorStart(n *cc.DirectDeclarator)
	// OnDirectDeclaratorEnd is called during the traversal of the AST, whenever a node of type *cc.DirectDeclarator is exited.
	OnDirectDeclaratorEnd(n *cc.DirectDeclarator)

	// OnEnumSpecifierStart is called during the traversal of the AST, whenever a node of type *cc.EnumSpecifier is entered.
	OnEnumSpecifierStart(n *cc.EnumSpecifier)
	// OnEnumSpecifierEnd is called during the traversal of the AST, whenever a node of type *cc.EnumSpecifier is exited.
	OnEnumSpecifierEnd(n *cc.EnumSpecifier)

	// OnEnumeratorStart is called during the traversal of the AST, whenever a node of type *cc.Enumerator is entered.
	OnEnumeratorStart(n *cc.Enumerator)
	// OnEnumeratorEnd is called during the traversal of the AST, whenever a node of type *cc.Enumerator is exited.
	OnEnumeratorEnd(n *cc.Enumerator)

	// OnEnumeratorListStart is called during the traversal of the AST, whenever a node of type *cc.EnumeratorList is entered.
	OnEnumeratorListStart(n *cc.EnumeratorList)
	// OnEnumeratorListEnd is called during the traversal of the AST, whenever a node of type *cc.EnumeratorList is exited.
	OnEnumeratorListEnd(n *cc.EnumeratorList)

	// OnEqualityExpressionStart is called during the traversal of the AST, whenever a node of type *cc.EqualityExpression is entered.
	OnEqualityExpressionStart(n *cc.EqualityExpression)
	// OnEqualityExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.EqualityExpression is exited.
	OnEqualityExpressionEnd(n *cc.EqualityExpression)

	// OnExclusiveOrExpressionStart is called during the traversal of the AST, whenever a node of type *cc.ExclusiveOrExpression is entered.
	OnExclusiveOrExpressionStart(n *cc.ExclusiveOrExpression)
	// OnExclusiveOrExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.ExclusiveOrExpression is exited.
	OnExclusiveOrExpressionEnd(n *cc.ExclusiveOrExpression)

	// OnExpressionStart is called during the traversal of the AST, whenever a node of type *cc.Expression is entered.
	OnExpressionStart(n *cc.Expression)
	// OnExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.Expression is exited.
	OnExpressionEnd(n *cc.Expression)

	// OnExpressionListStart is called during the traversal of the AST, whenever a node of type *cc.ExpressionList is entered.
	OnExpressionListStart(n *cc.ExpressionList)
	// OnExpressionListEnd is called during the traversal of the AST, whenever a node of type *cc.ExpressionList is exited.
	OnExpressionListEnd(n *cc.ExpressionList)

	// OnExpressionStatementStart is called during the traversal of the AST, whenever a node of type *cc.ExpressionStatement is entered.
	OnExpressionStatementStart(n *cc.ExpressionStatement)
	// OnExpressionStatementEnd is called during the traversal of the AST, whenever a node of type *cc.ExpressionStatement is exited.
	OnExpressionStatementEnd(n *cc.ExpressionStatement)

	// OnExternalDeclarationStart is called during the traversal of the AST, whenever a node of type *cc.ExternalDeclaration is entered.
	OnExternalDeclarationStart(n *cc.ExternalDeclaration)
	// OnExternalDeclarationEnd is called during the traversal of the AST, whenever a node of type *cc.ExternalDeclaration is exited.
	OnExternalDeclarationEnd(n *cc.ExternalDeclaration)

	// OnFunctionDefinitionStart is called during the traversal of the AST, whenever a node of type *cc.FunctionDefinition is entered.
	OnFunctionDefinitionStart(n *cc.FunctionDefinition)
	// OnFunctionDefinitionEnd is called during the traversal of the AST, whenever a node of type *cc.FunctionDefinition is exited.
	OnFunctionDefinitionEnd(n *cc.FunctionDefinition)

	// OnFunctionSpecifierStart is called during the traversal of the AST, whenever a node of type *cc.FunctionSpecifier is entered.
	OnFunctionSpecifierStart(n *cc.FunctionSpecifier)
	// OnFunctionSpecifierEnd is called during the traversal of the AST, whenever a node of type *cc.FunctionSpecifier is exited.
	OnFunctionSpecifierEnd(n *cc.FunctionSpecifier)

	// OnIdentifierListStart is called during the traversal of the AST, whenever a node of type *cc.IdentifierList is entered.
	OnIdentifierListStart(n *cc.IdentifierList)
	// OnIdentifierListEnd is called during the traversal of the AST, whenever a node of type *cc.IdentifierList is exited.
	OnIdentifierListEnd(n *cc.IdentifierList)

	// OnInclusiveOrExpressionStart is called during the traversal of the AST, whenever a node of type *cc.InclusiveOrExpression is entered.
	OnInclusiveOrExpressionStart(n *cc.InclusiveOrExpression)
	// OnInclusiveOrExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.InclusiveOrExpression is exited.
	OnInclusiveOrExpressionEnd(n *cc.InclusiveOrExpression)

	// OnInitDeclaratorStart is called during the traversal of the AST, whenever a node of type *cc.InitDeclarator is entered.
	OnInitDeclaratorStart(n *cc.InitDeclarator)
	// OnInitDeclaratorEnd is called during the traversal of the AST, whenever a node of type *cc.InitDeclarator is exited.
	OnInitDeclaratorEnd(n *cc.InitDeclarator)

	// OnInitDeclaratorListStart is called during the traversal of the AST, whenever a node of type *cc.InitDeclaratorList is entered.
	OnInitDeclaratorListStart(n *cc.InitDeclaratorList)
	// OnInitDeclaratorListEnd is called during the traversal of the AST, whenever a node of type *cc.InitDeclaratorList is exited.
	OnInitDeclaratorListEnd(n *cc.InitDeclaratorList)

	// OnInitializerStart is called during the traversal of the AST, whenever a node of type *cc.Initializer is entered.
	OnInitializerStart(n *cc.Initializer)
	// OnInitializerEnd is called during the traversal of the AST, whenever a node of type *cc.Initializer is exited.
	OnInitializerEnd(n *cc.Initializer)

	// OnInitializerListStart is called during the traversal of the AST, whenever a node of type *cc.InitializerList is entered.
	OnInitializerListStart(n *cc.InitializerList)
	// OnInitializerListEnd is called during the traversal of the AST, whenever a node of type *cc.InitializerList is exited.
	OnInitializerListEnd(n *cc.InitializerList)

	// OnIterationStatementStart is called during the traversal of the AST, whenever a node of type *cc.IterationStatement is entered.
	OnIterationStatementStart(n *cc.IterationStatement)
	// OnIterationStatementEnd is called during the traversal of the AST, whenever a node of type *cc.IterationStatement is exited.
	OnIterationStatementEnd(n *cc.IterationStatement)

	// OnJumpStatementStart is called during the traversal of the AST, whenever a node of type *cc.JumpStatement is entered.
	OnJumpStatementStart(n *cc.JumpStatement)
	// OnJumpStatementEnd is called during the traversal of the AST, whenever a node of type *cc.JumpStatement is exited.
	OnJumpStatementEnd(n *cc.JumpStatement)

	// OnLabelDeclarationStart is called during the traversal of the AST, whenever a node of type *cc.LabelDeclaration is entered.
	OnLabelDeclarationStart(n *cc.LabelDeclaration)
	// OnLabelDeclarationEnd is called during the traversal of the AST, whenever a node of type *cc.LabelDeclaration is exited.
	OnLabelDeclarationEnd(n *cc.LabelDeclaration)

	// OnLabeledStatementStart is called during the traversal of the AST, whenever a node of type *cc.LabeledStatement is entered.
	OnLabeledStatementStart(n *cc.LabeledStatement)
	// OnLabeledStatementEnd is called during the traversal of the AST, whenever a node of type *cc.LabeledStatement is exited.
	OnLabeledStatementEnd(n *cc.LabeledStatement)

	// OnLogicalAndExpressionStart is called during the traversal of the AST, whenever a node of type *cc.LogicalAndExpression is entered.
	OnLogicalAndExpressionStart(n *cc.LogicalAndExpression)
	// OnLogicalAndExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.LogicalAndExpression is exited.
	OnLogicalAndExpressionEnd(n *cc.LogicalAndExpression)

	// OnLogicalOrExpressionStart is called during the traversal of the AST, whenever a node of type *cc.LogicalOrExpression is entered.
	OnLogicalOrExpressionStart(n *cc.LogicalOrExpression)
	// OnLogicalOrExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.LogicalOrExpression is exited.
	OnLogicalOrExpressionEnd(n *cc.LogicalOrExpression)

	// OnMultiplicativeExpressionStart is called during the traversal of the AST, whenever a node of type *cc.MultiplicativeExpression is entered.
	OnMultiplicativeExpressionStart(n *cc.MultiplicativeExpression)
	// OnMultiplicativeExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.MultiplicativeExpression is exited.
	OnMultiplicativeExpressionEnd(n *cc.MultiplicativeExpression)

	// OnParameterDeclarationStart is called during the traversal of the AST, whenever a node of type *cc.ParameterDeclaration is entered.
	OnParameterDeclarationStart(n *cc.ParameterDeclaration)
	// OnParameterDeclarationEnd is called during the traversal of the AST, whenever a node of type *cc.ParameterDeclaration is exited.
	OnParameterDeclarationEnd(n *cc.ParameterDeclaration)

	// OnParameterListStart is called during the traversal of the AST, whenever a node of type *cc.ParameterList is entered.
	OnParameterListStart(n *cc.ParameterList)
	// OnParameterListEnd is called during the traversal of the AST, whenever a node of type *cc.ParameterList is exited.
	OnParameterListEnd(n *cc.ParameterList)

	// OnParameterTypeListStart is called during the traversal of the AST, whenever a node of type *cc.ParameterTypeList is entered.
	OnParameterTypeListStart(n *cc.ParameterTypeList)
	// OnParameterTypeListEnd is called during the traversal of the AST, whenever a node of type *cc.ParameterTypeList is exited.
	OnParameterTypeListEnd(n *cc.ParameterTypeList)

	// OnPointerStart is called during the traversal of the AST, whenever a node of type *cc.Pointer is entered.
	OnPointerStart(n *cc.Pointer)
	// OnPointerEnd is called during the traversal of the AST, whenever a node of type *cc.Pointer is exited.
	OnPointerEnd(n *cc.Pointer)

	// OnPostfixExpressionStart is called during the traversal of the AST, whenever a node of type *cc.PostfixExpression is entered.
	OnPostfixExpressionStart(n *cc.PostfixExpression)
	// OnPostfixExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.PostfixExpression is exited.
	OnPostfixExpressionEnd(n *cc.PostfixExpression)

	// OnPragmaSTDCStart is called during the traversal of the AST, whenever a node of type *cc.PragmaSTDC is entered.
	OnPragmaSTDCStart(n *cc.PragmaSTDC)
	// OnPragmaSTDCEnd is called during the traversal of the AST, whenever a node of type *cc.PragmaSTDC is exited.
	OnPragmaSTDCEnd(n *cc.PragmaSTDC)

	// OnPrimaryExpressionStart is called during the traversal of the AST, whenever a node of type *cc.PrimaryExpression is entered.
	OnPrimaryExpressionStart(n *cc.PrimaryExpression)
	// OnPrimaryExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.PrimaryExpression is exited.
	OnPrimaryExpressionEnd(n *cc.PrimaryExpression)

	// OnRelationalExpressionStart is called during the traversal of the AST, whenever a node of type *cc.RelationalExpression is entered.
	OnRelationalExpressionStart(n *cc.RelationalExpression)
	// OnRelationalExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.RelationalExpression is exited.
	OnRelationalExpressionEnd(n *cc.RelationalExpression)

	// OnSelectionStatementStart is called during the traversal of the AST, whenever a node of type *cc.SelectionStatement is entered.
	OnSelectionStatementStart(n *cc.SelectionStatement)
	// OnSelectionStatementEnd is called during the traversal of the AST, whenever a node of type *cc.SelectionStatement is exited.
	OnSelectionStatementEnd(n *cc.SelectionStatement)

	// OnShiftExpressionStart is called during the traversal of the AST, whenever a node of type *cc.ShiftExpression is entered.
	OnShiftExpressionStart(n *cc.ShiftExpression)
	// OnShiftExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.ShiftExpression is exited.
	OnShiftExpressionEnd(n *cc.ShiftExpression)

	// OnSpecifierQualifierListStart is called during the traversal of the AST, whenever a node of type *cc.SpecifierQualifierList is entered.
	OnSpecifierQualifierListStart(n *cc.SpecifierQualifierList)
	// OnSpecifierQualifierListEnd is called during the traversal of the AST, whenever a node of type *cc.SpecifierQualifierList is exited.
	OnSpecifierQualifierListEnd(n *cc.SpecifierQualifierList)

	// OnStatementStart is called during the traversal of the AST, whenever a node of type *cc.Statement is entered.
	OnStatementStart(n *cc.Statement)
	// OnStatementEnd is called during the traversal of the AST, whenever a node of type *cc.Statement is exited.
	OnStatementEnd(n *cc.Statement)

	// OnStorageClassSpecifierStart is called during the traversal of the AST, whenever a node of type *cc.StorageClassSpecifier is entered.
	OnStorageClassSpecifierStart(n *cc.StorageClassSpecifier)
	// OnStorageClassSpecifierEnd is called during the traversal of the AST, whenever a node of type *cc.StorageClassSpecifier is exited.
	OnStorageClassSpecifierEnd(n *cc.StorageClassSpecifier)

	// OnStructDeclarationStart is called during the traversal of the AST, whenever a node of type *cc.StructDeclaration is entered.
	OnStructDeclarationStart(n *cc.StructDeclaration)
	// OnStructDeclarationEnd is called during the traversal of the AST, whenever a node of type *cc.StructDeclaration is exited.
	OnStructDeclarationEnd(n *cc.StructDeclaration)

	// OnStructDeclarationListStart is called during the traversal of the AST, whenever a node of type *cc.StructDeclarationList is entered.
	OnStructDeclarationListStart(n *cc.StructDeclarationList)
	// OnStructDeclarationListEnd is called during the traversal of the AST, whenever a node of type *cc.StructDeclarationList is exited.
	OnStructDeclarationListEnd(n *cc.StructDeclarationList)

	// OnStructDeclaratorStart is called during the traversal of the AST, whenever a node of type *cc.StructDeclarator is entered.
	OnStructDeclaratorStart(n *cc.StructDeclarator)
	// OnStructDeclaratorEnd is called during the traversal of the AST, whenever a node of type *cc.StructDeclarator is exited.
	OnStructDeclaratorEnd(n *cc.StructDeclarator)

	// OnStructDeclaratorListStart is called during the traversal of the AST, whenever a node of type *cc.StructDeclaratorList is entered.
	OnStructDeclaratorListStart(n *cc.StructDeclaratorList)
	// OnStructDeclaratorListEnd is called during the traversal of the AST, whenever a node of type *cc.StructDeclaratorList is exited.
	OnStructDeclaratorListEnd(n *cc.StructDeclaratorList)

	// OnStructOrUnionStart is called during the traversal of the AST, whenever a node of type *cc.StructOrUnion is entered.
	OnStructOrUnionStart(n *cc.StructOrUnion)
	// OnStructOrUnionEnd is called during the traversal of the AST, whenever a node of type *cc.StructOrUnion is exited.
	OnStructOrUnionEnd(n *cc.StructOrUnion)

	// OnStructOrUnionSpecifierStart is called during the traversal of the AST, whenever a node of type *cc.StructOrUnionSpecifier is entered.
	OnStructOrUnionSpecifierStart(n *cc.StructOrUnionSpecifier)
	// OnStructOrUnionSpecifierEnd is called during the traversal of the AST, whenever a node of type *cc.StructOrUnionSpecifier is exited.
	OnStructOrUnionSpecifierEnd(n *cc.StructOrUnionSpecifier)

	// OnTranslationUnitStart is called during the traversal of the AST, whenever a node of type *cc.TranslationUnit is entered.
	OnTranslationUnitStart(n *cc.TranslationUnit)
	// OnTranslationUnitEnd is called during the traversal of the AST, whenever a node of type *cc.TranslationUnit is exited.
	OnTranslationUnitEnd(n *cc.TranslationUnit)

	// OnTypeNameStart is called during the traversal of the AST, whenever a node of type *cc.TypeName is entered.
	OnTypeNameStart(n *cc.TypeName)
	// OnTypeNameEnd is called during the traversal of the AST, whenever a node of type *cc.TypeName is exited.
	OnTypeNameEnd(n *cc.TypeName)

	// OnTypeQualifierStart is called during the traversal of the AST, whenever a node of type *cc.TypeQualifier is entered.
	OnTypeQualifierStart(n *cc.TypeQualifier)
	// OnTypeQualifierEnd is called during the traversal of the AST, whenever a node of type *cc.TypeQualifier is exited.
	OnTypeQualifierEnd(n *cc.TypeQualifier)

	// OnTypeQualifiersStart is called during the traversal of the AST, whenever a node of type *cc.TypeQualifiers is entered.
	OnTypeQualifiersStart(n *cc.TypeQualifiers)
	// OnTypeQualifiersEnd is called during the traversal of the AST, whenever a node of type *cc.TypeQualifiers is exited.
	OnTypeQualifiersEnd(n *cc.TypeQualifiers)

	// OnTypeSpecifierStart is called during the traversal of the AST, whenever a node of type *cc.TypeSpecifier is entered.
	OnTypeSpecifierStart(n *cc.TypeSpecifier)
	// OnTypeSpecifierEnd is called during the traversal of the AST, whenever a node of type *cc.TypeSpecifier is exited.
	OnTypeSpecifierEnd(n *cc.TypeSpecifier)

	// OnUnaryExpressionStart is called during the traversal of the AST, whenever a node of type *cc.UnaryExpression is entered.
	OnUnaryExpressionStart(n *cc.UnaryExpression)
	// OnUnaryExpressionEnd is called during the traversal of the AST, whenever a node of type *cc.UnaryExpression is exited.
	OnUnaryExpressionEnd(n *cc.UnaryExpression)
}

Handler is a callback handler used in Visitor. During traversal of the cc.AST, the methods on Handler are called on start and end of node traversal.

func BaseHandler

func BaseHandler() Handler

type Spec

type Spec struct {
	Type     SpecType
	TypeDef  bool
	Static   bool
	Extern   bool
	Auto     bool
	Register bool
	Local    bool
	Const    bool
	Restrict bool
	Volatile bool
	Atomic   bool
	Inline   bool
	NoReturn bool
}

func SpecFrom

func SpecFrom(d *cc.Declaration) Spec

type SpecType

type SpecType struct {
	// contains filtered or unexported fields
}

func (SpecType) Enum

func (s SpecType) Enum() (SpecTypeEnum, bool)

type SpecTypeEnum

type SpecTypeEnum struct {
	Options []SpecTypeEnumOption
}

type SpecTypeEnumOption

type SpecTypeEnumOption struct {
	Identifier string
	Value      Value
}

type Value

type Value struct {
	Type  ValueType
	Value interface{}
}

func FindValueConstantExpression

func FindValueConstantExpression(e *cc.ConstantExpression) Value

type ValueType

type ValueType int
const (
	ValueTypeUnsupported ValueType = iota
	ValueTypeIdentifier
	ValueTypeConstant
)

type Visitor

type Visitor interface {
	Visit(root cc.Node)
}

func NewVisitor

func NewVisitor(handler Handler) Visitor

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL