ast

package
v0.26.10 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2021 License: MIT Imports: 10 Imported by: 32

Documentation

Overview

Package ast parses the clang AST output into AST structures.

Index

Constants

View Source
const ImplicitCastExprArrayToPointerDecay = "ArrayToPointerDecay"

ImplicitCastExprArrayToPointerDecay - constant

Variables

View Source
var CStyleCastExprNullToPointer = "NullToPointer"

CStyleCastExprNullToPointer - string of kind NullToPointer

View Source
var CStyleCastExprToVoid = "ToVoid"

CStyleCastExprToVoid - string of kind ToVoid

View Source
var FunctionDeclRefExpr = "Function"

FunctionDeclRefExpr - value of DeclRefExpr.For for function

View Source
var PositionBuiltIn = "<built-in>"

PositionBuiltIn - default value for fix position

Functions

func Atos added in v0.16.12

func Atos(node Node) string

Atos - ASTree to string Typically using for debug

func FixPositions added in v0.15.0

func FixPositions(nodes []Node)

func TypesTree added in v0.20.1

func TypesTree(node Node) (str string)

TypesTree - return tree of types for AST node

Types

type Address added in v0.15.0

type Address uint64

Address contains the memory address (originally outputted as a hexadecimal string) from the clang AST. The address are not predictable between run and are only useful for identifying nodes in a single AST.

The Address is used like a primary key when storing the tree as a flat structure.

func ParseAddress added in v0.15.0

func ParseAddress(address string) Address

ParseAddress returns the integer representation of the hexadecimal address (like 0x7f8a1d8ccfd0). If the address cannot be parsed, 0 is returned.

type AlignedAttr added in v0.11.2

type AlignedAttr struct {
	Addr       Address
	Pos        Position
	IsAligned  bool
	ChildNodes []Node
}

AlignedAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*AlignedAttr) AddChild added in v0.11.2

func (n *AlignedAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*AlignedAttr) Address added in v0.11.2

func (n *AlignedAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*AlignedAttr) Children added in v0.11.2

func (n *AlignedAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*AlignedAttr) Position added in v0.11.2

func (n *AlignedAttr) Position() Position

Position returns the position in the original source code.

type AllocSizeAttr added in v0.16.12

type AllocSizeAttr struct {
	Addr       Address
	Pos        Position
	Inherited  bool
	A          int
	B          int
	ChildNodes []Node
}

AllocSizeAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*AllocSizeAttr) AddChild added in v0.16.12

func (n *AllocSizeAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*AllocSizeAttr) Address added in v0.16.12

func (n *AllocSizeAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*AllocSizeAttr) Children added in v0.16.12

func (n *AllocSizeAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*AllocSizeAttr) Position added in v0.16.12

func (n *AllocSizeAttr) Position() Position

Position returns the position in the original source code.

type AlwaysInlineAttr

type AlwaysInlineAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

AlwaysInlineAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*AlwaysInlineAttr) AddChild

func (n *AlwaysInlineAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*AlwaysInlineAttr) Address

func (n *AlwaysInlineAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*AlwaysInlineAttr) Children

func (n *AlwaysInlineAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*AlwaysInlineAttr) Position

func (n *AlwaysInlineAttr) Position() Position

Position returns the position in the original source code.

type ArrayFiller added in v0.11.2

type ArrayFiller struct {
	ChildNodes []Node
}

ArrayFiller is type of array filler

func (*ArrayFiller) AddChild added in v0.11.2

func (n *ArrayFiller) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ArrayFiller) Address added in v0.15.0

func (n *ArrayFiller) Address() Address

Address returns the numeric address of the node. For an ArrayFilter this will always be zero. See the documentation for the Address type for more information.

func (*ArrayFiller) Children added in v0.11.2

func (n *ArrayFiller) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ArrayFiller) Position added in v0.15.0

func (n *ArrayFiller) Position() Position

Position returns the position in the original source code.

type ArraySubscriptExpr

type ArraySubscriptExpr struct {
	Addr       Address
	Pos        Position
	Type       string
	Type2      string
	IsLvalue   bool
	ChildNodes []Node
}

ArraySubscriptExpr is expression.

func (*ArraySubscriptExpr) AddChild

func (n *ArraySubscriptExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ArraySubscriptExpr) Address

func (n *ArraySubscriptExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ArraySubscriptExpr) Children

func (n *ArraySubscriptExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ArraySubscriptExpr) Position

func (n *ArraySubscriptExpr) Position() Position

Position returns the position in the original source code.

type AsmLabelAttr

type AsmLabelAttr struct {
	Addr           Address
	Pos            Position
	Inherited      bool
	FunctionName   string
	ChildNodes     []Node
	IsLiteralLabel bool
}

AsmLabelAttr is a type of attribute for assembler label

func (*AsmLabelAttr) AddChild

func (n *AsmLabelAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*AsmLabelAttr) Address

func (n *AsmLabelAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*AsmLabelAttr) Children

func (n *AsmLabelAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*AsmLabelAttr) Position

func (n *AsmLabelAttr) Position() Position

Position returns the position in the original source code.

type AttributedType added in v0.24.8

type AttributedType struct {
	Addr       Address
	Type       string
	Sugar      bool
	ChildNodes []Node
}

AttributedType is an attribute type

func (*AttributedType) AddChild added in v0.24.8

func (n *AttributedType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*AttributedType) Address added in v0.24.8

func (n *AttributedType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*AttributedType) Children added in v0.24.8

func (n *AttributedType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*AttributedType) Position added in v0.24.8

func (n *AttributedType) Position() Position

Position returns the position in the original source code.

type AvailabilityAttr

type AvailabilityAttr struct {
	Addr          Address
	Pos           Position
	OS            string
	Version       string
	Unknown1      float64
	Unknown2      int
	IsUnavailable bool
	Message1      string
	Message2      string
	IsInherited   bool
	ChildNodes    []Node
}

AvailabilityAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*AvailabilityAttr) AddChild

func (n *AvailabilityAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*AvailabilityAttr) Address

func (n *AvailabilityAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*AvailabilityAttr) Children

func (n *AvailabilityAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*AvailabilityAttr) Position

func (n *AvailabilityAttr) Position() Position

Position returns the position in the original source code.

type BinaryOperator

type BinaryOperator struct {
	Addr       Address
	Pos        Position
	Type       string
	Type2      string
	Operator   string
	ChildNodes []Node
}

BinaryOperator is type of binary operator

func (*BinaryOperator) AddChild

func (n *BinaryOperator) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*BinaryOperator) Address

func (n *BinaryOperator) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*BinaryOperator) Children

func (n *BinaryOperator) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*BinaryOperator) Position

func (n *BinaryOperator) Position() Position

Position returns the position in the original source code.

type BlockCommandComment added in v0.21.0

type BlockCommandComment struct {
	Addr       Address
	Pos        Position
	Name       string
	ChildNodes []Node
}

BlockCommandComment is a type of comment

func (*BlockCommandComment) AddChild added in v0.21.0

func (n *BlockCommandComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*BlockCommandComment) Address added in v0.21.0

func (n *BlockCommandComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*BlockCommandComment) Children added in v0.21.0

func (n *BlockCommandComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*BlockCommandComment) Position added in v0.21.0

func (n *BlockCommandComment) Position() Position

Position returns the position in the original source code.

type BreakStmt

type BreakStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

BreakStmt is node represent 'break'

func (*BreakStmt) AddChild

func (n *BreakStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*BreakStmt) Address

func (n *BreakStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*BreakStmt) Children

func (n *BreakStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*BreakStmt) Position

func (n *BreakStmt) Position() Position

Position returns the position in the original source code.

type BuiltinType

type BuiltinType struct {
	Addr       Address
	Type       string
	ChildNodes []Node
}

BuiltinType is builtin type

func (*BuiltinType) AddChild

func (n *BuiltinType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*BuiltinType) Address

func (n *BuiltinType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*BuiltinType) Children

func (n *BuiltinType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*BuiltinType) Position added in v0.15.0

func (n *BuiltinType) Position() Position

Position returns the position in the original source code.

type C11NoReturnAttr added in v0.24.7

type C11NoReturnAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

C11NoReturnAttr is a type of attribute that is optionally attached to a function with return type void.

func (*C11NoReturnAttr) AddChild added in v0.24.7

func (n *C11NoReturnAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*C11NoReturnAttr) Address added in v0.24.7

func (n *C11NoReturnAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*C11NoReturnAttr) Children added in v0.24.7

func (n *C11NoReturnAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*C11NoReturnAttr) Position added in v0.24.7

func (n *C11NoReturnAttr) Position() Position

Position returns the position in the original source code.

type CStyleCastExpr

type CStyleCastExpr struct {
	Addr       Address
	Pos        Position
	Type       string
	Type2      string
	Kind       string
	ChildNodes []Node
}

CStyleCastExpr is expression.

func (*CStyleCastExpr) AddChild

func (n *CStyleCastExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*CStyleCastExpr) Address

func (n *CStyleCastExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*CStyleCastExpr) Children

func (n *CStyleCastExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*CStyleCastExpr) Position

func (n *CStyleCastExpr) Position() Position

Position returns the position in the original source code.

type CallExpr

type CallExpr struct {
	Addr       Address
	Pos        Position
	Type       string
	ChildNodes []Node
}

CallExpr is expression.

func (*CallExpr) AddChild

func (n *CallExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*CallExpr) Address

func (n *CallExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*CallExpr) Children

func (n *CallExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*CallExpr) Position

func (n *CallExpr) Position() Position

Position returns the position in the original source code.

type CaseStmt added in v0.9.2

type CaseStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

CaseStmt is node represent 'case'

func (*CaseStmt) AddChild added in v0.9.2

func (n *CaseStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*CaseStmt) Address added in v0.9.2

func (n *CaseStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*CaseStmt) Children added in v0.9.2

func (n *CaseStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*CaseStmt) Position added in v0.9.2

func (n *CaseStmt) Position() Position

Position returns the position in the original source code.

type CharacterLiteral

type CharacterLiteral struct {
	Addr       Address
	Pos        Position
	Type       string
	Value      int
	ChildNodes []Node
}

CharacterLiteral is type of character literal

func (*CharacterLiteral) AddChild

func (n *CharacterLiteral) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*CharacterLiteral) Address

func (n *CharacterLiteral) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*CharacterLiteral) Children

func (n *CharacterLiteral) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*CharacterLiteral) Position

func (n *CharacterLiteral) Position() Position

Position returns the position in the original source code.

type CharacterLiteralError added in v0.22.1

type CharacterLiteralError struct {
	Node *CharacterLiteral
	Err  error
}

CharacterLiteralError represents one instance of an error where the exact character value of a CharacterLiteral could not be determined from the original source. See RepairCharacterLiteralsFromSource for a full explanation.

func RepairCharacterLiteralsFromSource added in v0.22.1

func RepairCharacterLiteralsFromSource(rootNode Node, preprocessedFile string) []CharacterLiteralError

RepairCharacterLiteralsFromSource finds the exact values of character literals by reading their values directly from the preprocessed source.

This is to solve issue #663, sometime clang serializes hex encoded character literals as a weird number, e.g. '\xa0' => 4294967200

The only solution is to read the original character literal from the source code. We can do this by using the positional information on the node.

If the character literal cannot be resolved for any reason the original value will remain. This function will return all errors encountered.

type CompoundAssignOperator added in v0.10.4

type CompoundAssignOperator struct {
	Addr                  Address
	Pos                   Position
	Type                  string
	Opcode                string
	ComputationLHSType    string
	ComputationResultType string
	ChildNodes            []Node
}

CompoundAssignOperator is type of compound assign operator

func (*CompoundAssignOperator) AddChild added in v0.10.4

func (n *CompoundAssignOperator) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*CompoundAssignOperator) Address added in v0.10.4

func (n *CompoundAssignOperator) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*CompoundAssignOperator) Children added in v0.10.4

func (n *CompoundAssignOperator) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*CompoundAssignOperator) Position added in v0.10.4

func (n *CompoundAssignOperator) Position() Position

Position returns the position in the original source code.

type CompoundLiteralExpr added in v0.16.13

type CompoundLiteralExpr struct {
	Addr       Address
	Pos        Position
	Type1      string
	Type2      string
	ChildNodes []Node
}

CompoundLiteralExpr C99 6.5.2.5

func (*CompoundLiteralExpr) AddChild added in v0.16.13

func (n *CompoundLiteralExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*CompoundLiteralExpr) Address added in v0.16.13

func (n *CompoundLiteralExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*CompoundLiteralExpr) Children added in v0.16.13

func (n *CompoundLiteralExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*CompoundLiteralExpr) Position added in v0.16.13

func (n *CompoundLiteralExpr) Position() Position

Position returns the position in the original source code.

type CompoundStmt

type CompoundStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node

	// TODO: remove this
	BelongsToSwitch bool
}

CompoundStmt is node represents a compound of nodes

func (*CompoundStmt) AddChild

func (n *CompoundStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*CompoundStmt) Address

func (n *CompoundStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*CompoundStmt) Children

func (n *CompoundStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*CompoundStmt) Position

func (n *CompoundStmt) Position() Position

Position returns the position in the original source code.

type ConditionalOperator

type ConditionalOperator struct {
	Addr       Address
	Pos        Position
	Type       string
	ChildNodes []Node
}

ConditionalOperator is type of condition operator

func (*ConditionalOperator) AddChild

func (n *ConditionalOperator) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ConditionalOperator) Address

func (n *ConditionalOperator) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ConditionalOperator) Children

func (n *ConditionalOperator) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ConditionalOperator) Position

func (n *ConditionalOperator) Position() Position

Position returns the position in the original source code.

type ConstAttr

type ConstAttr struct {
	Addr       Address
	Pos        Position
	Tags       string
	ChildNodes []Node
}

ConstAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*ConstAttr) AddChild

func (n *ConstAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ConstAttr) Address

func (n *ConstAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ConstAttr) Children

func (n *ConstAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ConstAttr) Position

func (n *ConstAttr) Position() Position

Position returns the position in the original source code.

type ConstantArrayType

type ConstantArrayType struct {
	Addr       Address
	Type       string
	Size       int
	ChildNodes []Node
}

ConstantArrayType is constant array type

func (*ConstantArrayType) AddChild

func (n *ConstantArrayType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ConstantArrayType) Address

func (n *ConstantArrayType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ConstantArrayType) Children

func (n *ConstantArrayType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ConstantArrayType) Position added in v0.15.0

func (n *ConstantArrayType) Position() Position

Position returns the position in the original source code.

type ConstantExpr added in v0.26.0

type ConstantExpr struct {
	Addr       Address
	Pos        Position
	Type       string
	ChildNodes []Node
}

ConstantExpr is a constant expression

func (*ConstantExpr) AddChild added in v0.26.0

func (n *ConstantExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ConstantExpr) Address added in v0.26.0

func (n *ConstantExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ConstantExpr) Children added in v0.26.0

func (n *ConstantExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ConstantExpr) Position added in v0.26.0

func (n *ConstantExpr) Position() Position

Position returns the position in the original source code.

type ContinueStmt added in v0.10.2

type ContinueStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

ContinueStmt is node represent 'continue'

func (*ContinueStmt) AddChild added in v0.10.2

func (n *ContinueStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ContinueStmt) Address added in v0.10.2

func (n *ContinueStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ContinueStmt) Children added in v0.10.2

func (n *ContinueStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ContinueStmt) Position added in v0.10.2

func (n *ContinueStmt) Position() Position

Position returns the position in the original source code.

type DecayedType added in v0.22.0

type DecayedType struct {
	Addr       Address
	Type       string
	ChildNodes []Node
}

DecayedType is pointer type

func (*DecayedType) AddChild added in v0.22.0

func (n *DecayedType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*DecayedType) Address added in v0.22.0

func (n *DecayedType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*DecayedType) Children added in v0.22.0

func (n *DecayedType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*DecayedType) Position added in v0.22.0

func (n *DecayedType) Position() Position

Position returns the position in the original source code.

type DeclRefExpr

type DeclRefExpr struct {
	Addr                 Address
	Pos                  Position
	Type                 string
	Type1                string
	Lvalue               bool
	For                  string
	Address2             string
	Name                 string
	Type2                string
	Type3                string
	NonODRUseUnevaluated bool
	ChildNodes           []Node
}

DeclRefExpr is expression.

func (*DeclRefExpr) AddChild

func (n *DeclRefExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*DeclRefExpr) Address

func (n *DeclRefExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*DeclRefExpr) Children

func (n *DeclRefExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*DeclRefExpr) Position

func (n *DeclRefExpr) Position() Position

Position returns the position in the original source code.

type DeclStmt

type DeclStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

DeclStmt is node represents a declaration in a statement list.

func (*DeclStmt) AddChild

func (n *DeclStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*DeclStmt) Address

func (n *DeclStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*DeclStmt) Children

func (n *DeclStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*DeclStmt) Position

func (n *DeclStmt) Position() Position

Position returns the position in the original source code.

type DefaultStmt added in v0.9.2

type DefaultStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

DefaultStmt is node represent 'default'

func (*DefaultStmt) AddChild added in v0.9.2

func (n *DefaultStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*DefaultStmt) Address added in v0.9.2

func (n *DefaultStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*DefaultStmt) Children added in v0.9.2

func (n *DefaultStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*DefaultStmt) Position added in v0.9.2

func (n *DefaultStmt) Position() Position

Position returns the position in the original source code.

type DeprecatedAttr

type DeprecatedAttr struct {
	Addr        Address
	Pos         Position
	Message1    string
	Message2    string
	IsInherited bool
	ChildNodes  []Node
}

DeprecatedAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*DeprecatedAttr) AddChild

func (n *DeprecatedAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*DeprecatedAttr) Address

func (n *DeprecatedAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*DeprecatedAttr) Children

func (n *DeprecatedAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*DeprecatedAttr) Position

func (n *DeprecatedAttr) Position() Position

Position returns the position in the original source code.

type DisableTailCallsAttr added in v0.16.12

type DisableTailCallsAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

DisableTailCallsAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*DisableTailCallsAttr) AddChild added in v0.16.12

func (n *DisableTailCallsAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*DisableTailCallsAttr) Address added in v0.16.12

func (n *DisableTailCallsAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*DisableTailCallsAttr) Children added in v0.16.12

func (n *DisableTailCallsAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*DisableTailCallsAttr) Position added in v0.16.12

func (n *DisableTailCallsAttr) Position() Position

Position returns the position in the original source code.

type DoStmt added in v0.9.0

type DoStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

DoStmt is node represent 'do'

func (*DoStmt) AddChild added in v0.9.0

func (n *DoStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*DoStmt) Address added in v0.9.0

func (n *DoStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*DoStmt) Children added in v0.9.0

func (n *DoStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*DoStmt) Position added in v0.9.0

func (n *DoStmt) Position() Position

Position returns the position in the original source code.

type ElaboratedType

type ElaboratedType struct {
	Addr       Address
	Type       string
	Tags       string
	ChildNodes []Node
}

ElaboratedType is elaborated type

func (*ElaboratedType) AddChild

func (n *ElaboratedType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ElaboratedType) Address

func (n *ElaboratedType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ElaboratedType) Children

func (n *ElaboratedType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ElaboratedType) Position added in v0.15.0

func (n *ElaboratedType) Position() Position

Position returns the position in the original source code.

type EmptyDecl added in v0.17.4

type EmptyDecl struct {
	Addr       Address
	Pos        Position
	Position2  Position
	ChildNodes []Node
}

EmptyDecl - element of AST

func (*EmptyDecl) AddChild added in v0.17.4

func (n *EmptyDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*EmptyDecl) Address added in v0.17.4

func (n *EmptyDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*EmptyDecl) Children added in v0.17.4

func (n *EmptyDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*EmptyDecl) Position added in v0.17.4

func (n *EmptyDecl) Position() Position

Position returns the position in the original source code.

type Enum

type Enum struct {
	Addr       Address
	Name       string
	ChildNodes []Node
}

Enum struct

func (*Enum) AddChild

func (n *Enum) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*Enum) Address

func (n *Enum) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*Enum) Children

func (n *Enum) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*Enum) Position added in v0.15.0

func (n *Enum) Position() Position

Position returns the position in the original source code.

type EnumConstantDecl

type EnumConstantDecl struct {
	Addr       Address
	Pos        Position
	Position2  string
	Referenced bool
	Name       string
	Type       string
	ChildNodes []Node
}

EnumConstantDecl is node represents a enum constant declaration.

func (*EnumConstantDecl) AddChild

func (n *EnumConstantDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*EnumConstantDecl) Address

func (n *EnumConstantDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*EnumConstantDecl) Children

func (n *EnumConstantDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*EnumConstantDecl) Position

func (n *EnumConstantDecl) Position() Position

Position returns the position in the original source code.

type EnumDecl

type EnumDecl struct {
	Addr       Address
	Prev       Address
	Pos        Position
	Position2  string
	Name       string
	ChildNodes []Node
}

EnumDecl is node represents a enum declaration.

func (*EnumDecl) AddChild

func (n *EnumDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*EnumDecl) Address

func (n *EnumDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*EnumDecl) Children

func (n *EnumDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*EnumDecl) Position

func (n *EnumDecl) Position() Position

Position returns the position in the original source code.

type EnumType

type EnumType struct {
	Addr       Address
	Name       string
	ChildNodes []Node
}

EnumType is enum type

func (*EnumType) AddChild

func (n *EnumType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*EnumType) Address

func (n *EnumType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*EnumType) Children

func (n *EnumType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*EnumType) Position added in v0.15.0

func (n *EnumType) Position() Position

Position returns the position in the original source code.

type Field added in v0.15.1

type Field struct {
	Addr       Address
	String1    string
	String2    string
	ChildNodes []Node
}

Field struct

func (*Field) AddChild added in v0.15.1

func (n *Field) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*Field) Address added in v0.15.1

func (n *Field) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*Field) Children added in v0.15.1

func (n *Field) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*Field) Position added in v0.15.1

func (n *Field) Position() Position

Position returns the position in the original source code.

type FieldDecl

type FieldDecl struct {
	Addr       Address
	Pos        Position
	Position2  string
	Name       string
	Type       string
	Type2      string
	Implicit   bool
	Referenced bool
	ChildNodes []Node
}

FieldDecl is node represents a field declaration.

func (*FieldDecl) AddChild

func (n *FieldDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*FieldDecl) Address

func (n *FieldDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*FieldDecl) Children

func (n *FieldDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*FieldDecl) Position

func (n *FieldDecl) Position() Position

Position returns the position in the original source code.

type FloatingLiteral

type FloatingLiteral struct {
	Addr       Address
	Pos        Position
	Type       string
	Value      float64
	ChildNodes []Node
}

FloatingLiteral is type of float literal

func (*FloatingLiteral) AddChild

func (n *FloatingLiteral) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*FloatingLiteral) Address

func (n *FloatingLiteral) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*FloatingLiteral) Children

func (n *FloatingLiteral) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*FloatingLiteral) Position

func (n *FloatingLiteral) Position() Position

Position returns the position in the original source code.

type FloatingLiteralError added in v0.15.1

type FloatingLiteralError struct {
	Node *FloatingLiteral
	Err  error
}

FloatingLiteralError represents one instance of an error where the exact floating point value of a FloatingLiteral could not be determined from the original source. See RepairFloatingLiteralsFromSource for a full explanation.

func RepairFloatingLiteralsFromSource added in v0.15.1

func RepairFloatingLiteralsFromSource(rootNode Node, preprocessedFile string) []FloatingLiteralError

RepairFloatingLiteralsFromSource finds the exact values of floating literals by reading their values directly from the preprocessed source.

The clang AST only serializes floating point values in scientific notation with 7 significant digits. This is not enough when dealing with precise numbers.

The only solution is to read the original floating literal from the source code. We can do this by using the positional information on the node.

If the floating literal cannot be resolved for any reason the original value will remain. This function will return all errors encountered.

type ForStmt

type ForStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

ForStmt is node represent 'for'

func (*ForStmt) AddChild

func (n *ForStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ForStmt) Address

func (n *ForStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ForStmt) Children

func (n *ForStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ForStmt) Position

func (n *ForStmt) Position() Position

Position returns the position in the original source code.

type FormatArgAttr added in v0.22.0

type FormatArgAttr struct {
	Addr       Address
	Pos        Position
	Arg        string
	ChildNodes []Node
}

FormatArgAttr is a type of attribute that is optionally attached to a function definition.

func (*FormatArgAttr) AddChild added in v0.22.0

func (n *FormatArgAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*FormatArgAttr) Address added in v0.22.0

func (n *FormatArgAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*FormatArgAttr) Children added in v0.22.0

func (n *FormatArgAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*FormatArgAttr) Position added in v0.22.0

func (n *FormatArgAttr) Position() Position

Position returns the position in the original source code.

type FormatAttr

type FormatAttr struct {
	Addr         Address
	Pos          Position
	Implicit     bool
	Inherited    bool
	FunctionName string
	Unknown1     int
	Unknown2     int
	ChildNodes   []Node
}

FormatAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*FormatAttr) AddChild

func (n *FormatAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*FormatAttr) Address

func (n *FormatAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*FormatAttr) Children

func (n *FormatAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*FormatAttr) Position

func (n *FormatAttr) Position() Position

Position returns the position in the original source code.

type FullComment added in v0.21.0

type FullComment struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

FullComment is a type of comment

func (*FullComment) AddChild added in v0.21.0

func (n *FullComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*FullComment) Address added in v0.21.0

func (n *FullComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*FullComment) Children added in v0.21.0

func (n *FullComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*FullComment) Position added in v0.21.0

func (n *FullComment) Position() Position

Position returns the position in the original source code.

type FunctionDecl

type FunctionDecl struct {
	Addr         Address
	Pos          Position
	Prev         string
	Parent       string
	Position2    string
	Name         string
	Type         string
	Type2        string
	IsExtern     bool
	IsImplicit   bool
	IsUsed       bool
	IsReferenced bool
	IsStatic     bool
	IsInline     bool
	ChildNodes   []Node
}

FunctionDecl is node represents a function declaration.

func (*FunctionDecl) AddChild

func (n *FunctionDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*FunctionDecl) Address

func (n *FunctionDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*FunctionDecl) Children

func (n *FunctionDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*FunctionDecl) Position

func (n *FunctionDecl) Position() Position

Position returns the position in the original source code.

type FunctionNoProtoType added in v0.26.0

type FunctionNoProtoType struct {
	Addr        Address
	Type        string
	CallingConv string
	ChildNodes  []Node
}

FunctionNoProtoType is a function type without parameters.

Example:

int (*)()

func (*FunctionNoProtoType) AddChild added in v0.26.0

func (n *FunctionNoProtoType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*FunctionNoProtoType) Address added in v0.26.0

func (n *FunctionNoProtoType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*FunctionNoProtoType) Children added in v0.26.0

func (n *FunctionNoProtoType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*FunctionNoProtoType) Position added in v0.26.0

func (n *FunctionNoProtoType) Position() Position

Position returns the position in the original source code.

type FunctionProtoType

type FunctionProtoType struct {
	Addr       Address
	Type       string
	Kind       string
	ChildNodes []Node
}

FunctionProtoType is function proto type

func (*FunctionProtoType) AddChild

func (n *FunctionProtoType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*FunctionProtoType) Address

func (n *FunctionProtoType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*FunctionProtoType) Children

func (n *FunctionProtoType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*FunctionProtoType) Position added in v0.15.0

func (n *FunctionProtoType) Position() Position

Position returns the position in the original source code.

type GCCAsmStmt added in v0.16.1

type GCCAsmStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

GCCAsmStmt is node represent gcc assembler

func (*GCCAsmStmt) AddChild added in v0.16.1

func (n *GCCAsmStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*GCCAsmStmt) Address added in v0.16.1

func (n *GCCAsmStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*GCCAsmStmt) Children added in v0.16.1

func (n *GCCAsmStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*GCCAsmStmt) Position added in v0.16.1

func (n *GCCAsmStmt) Position() Position

Position returns the position in the original source code.

type GotoStmt added in v0.11.2

type GotoStmt struct {
	Addr       Address
	Pos        Position
	Name       string
	Position2  string
	ChildNodes []Node
}

GotoStmt is node represent 'goto'

func (*GotoStmt) AddChild added in v0.11.2

func (n *GotoStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*GotoStmt) Address added in v0.11.2

func (n *GotoStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*GotoStmt) Children added in v0.11.2

func (n *GotoStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*GotoStmt) Position added in v0.11.2

func (n *GotoStmt) Position() Position

Position returns the position in the original source code.

type HTMLEndTagComment added in v0.21.0

type HTMLEndTagComment struct {
	Addr       Address
	Pos        Position
	Name       string
	ChildNodes []Node
}

HTMLEndTagComment is a type of comment

func (*HTMLEndTagComment) AddChild added in v0.21.0

func (n *HTMLEndTagComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*HTMLEndTagComment) Address added in v0.21.0

func (n *HTMLEndTagComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*HTMLEndTagComment) Children added in v0.21.0

func (n *HTMLEndTagComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*HTMLEndTagComment) Position added in v0.21.0

func (n *HTMLEndTagComment) Position() Position

Position returns the position in the original source code.

type HTMLStartTagComment added in v0.21.0

type HTMLStartTagComment struct {
	Addr       Address
	Pos        Position
	Name       string
	ChildNodes []Node
}

HTMLStartTagComment is a type of comment

func (*HTMLStartTagComment) AddChild added in v0.21.0

func (n *HTMLStartTagComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*HTMLStartTagComment) Address added in v0.21.0

func (n *HTMLStartTagComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*HTMLStartTagComment) Children added in v0.21.0

func (n *HTMLStartTagComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*HTMLStartTagComment) Position added in v0.21.0

func (n *HTMLStartTagComment) Position() Position

Position returns the position in the original source code.

type IfStmt

type IfStmt struct {
	Addr       Address
	Pos        Position
	HasElse    bool
	ChildNodes []Node
}

IfStmt is node represent 'if'

func (*IfStmt) AddChild

func (n *IfStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*IfStmt) Address

func (n *IfStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*IfStmt) Children

func (n *IfStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*IfStmt) Position

func (n *IfStmt) Position() Position

Position returns the position in the original source code.

type ImplicitCastExpr

type ImplicitCastExpr struct {
	Addr               Address
	Pos                Position
	Type               string
	Type2              string
	Kind               string
	PartOfExplicitCast bool
	ChildNodes         []Node
}

ImplicitCastExpr is expression.

func (*ImplicitCastExpr) AddChild

func (n *ImplicitCastExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ImplicitCastExpr) Address

func (n *ImplicitCastExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ImplicitCastExpr) Children

func (n *ImplicitCastExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ImplicitCastExpr) Position

func (n *ImplicitCastExpr) Position() Position

Position returns the position in the original source code.

type ImplicitValueInitExpr added in v0.11.2

type ImplicitValueInitExpr struct {
	Addr          Address
	Pos           Position
	Type1         string
	Type2         string
	IsArrayFiller bool
	ChildNodes    []Node
}

ImplicitValueInitExpr is expression

func (*ImplicitValueInitExpr) AddChild added in v0.11.2

func (n *ImplicitValueInitExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ImplicitValueInitExpr) Address added in v0.11.2

func (n *ImplicitValueInitExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ImplicitValueInitExpr) Children added in v0.11.2

func (n *ImplicitValueInitExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ImplicitValueInitExpr) Position added in v0.11.2

func (n *ImplicitValueInitExpr) Position() Position

Position returns the position in the original source code.

type IncompleteArrayType added in v0.11.2

type IncompleteArrayType struct {
	Addr       Address
	Type       string
	ChildNodes []Node
}

IncompleteArrayType is incomplete array type

func (*IncompleteArrayType) AddChild added in v0.11.2

func (n *IncompleteArrayType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*IncompleteArrayType) Address added in v0.11.2

func (n *IncompleteArrayType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*IncompleteArrayType) Children added in v0.11.2

func (n *IncompleteArrayType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*IncompleteArrayType) Position added in v0.15.0

func (n *IncompleteArrayType) Position() Position

Position returns the position in the original source code.

type IndirectFieldDecl added in v0.13.7

type IndirectFieldDecl struct {
	Addr       Address
	Pos        Position
	Position2  string
	Implicit   bool
	Name       string
	Type       string
	ChildNodes []Node
}

IndirectFieldDecl is node represents a indirect field declaration.

func (*IndirectFieldDecl) AddChild added in v0.13.7

func (n *IndirectFieldDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*IndirectFieldDecl) Address added in v0.13.7

func (n *IndirectFieldDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*IndirectFieldDecl) Children added in v0.13.7

func (n *IndirectFieldDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*IndirectFieldDecl) Position added in v0.13.7

func (n *IndirectFieldDecl) Position() Position

Position returns the position in the original source code.

type InitListExpr added in v0.11.2

type InitListExpr struct {
	Addr       Address
	Pos        Position
	Type1      string
	Type2      string
	ChildNodes []Node
}

InitListExpr is expression.

func (*InitListExpr) AddChild added in v0.11.2

func (n *InitListExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*InitListExpr) Address added in v0.11.2

func (n *InitListExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*InitListExpr) Children added in v0.11.2

func (n *InitListExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*InitListExpr) Position added in v0.11.2

func (n *InitListExpr) Position() Position

Position returns the position in the original source code.

type InlineCommandComment added in v0.21.1

type InlineCommandComment struct {
	Addr       Address
	Pos        Position
	Other      string
	ChildNodes []Node
}

InlineCommandComment is a type of comment

func (*InlineCommandComment) AddChild added in v0.21.1

func (n *InlineCommandComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*InlineCommandComment) Address added in v0.21.1

func (n *InlineCommandComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*InlineCommandComment) Children added in v0.21.1

func (n *InlineCommandComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*InlineCommandComment) Position added in v0.21.1

func (n *InlineCommandComment) Position() Position

Position returns the position in the original source code.

type IntegerLiteral

type IntegerLiteral struct {
	Addr       Address
	Pos        Position
	Type       string
	Value      string
	ChildNodes []Node
}

IntegerLiteral is type of integer literal

func (*IntegerLiteral) AddChild

func (n *IntegerLiteral) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*IntegerLiteral) Address

func (n *IntegerLiteral) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*IntegerLiteral) Children

func (n *IntegerLiteral) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*IntegerLiteral) Position

func (n *IntegerLiteral) Position() Position

Position returns the position in the original source code.

type LabelStmt added in v0.11.2

type LabelStmt struct {
	Addr       Address
	Pos        Position
	Name       string
	ChildNodes []Node
}

LabelStmt is node represent a label

func (*LabelStmt) AddChild added in v0.11.2

func (n *LabelStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*LabelStmt) Address added in v0.11.2

func (n *LabelStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*LabelStmt) Children added in v0.11.2

func (n *LabelStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*LabelStmt) Position added in v0.11.2

func (n *LabelStmt) Position() Position

Position returns the position in the original source code.

type MallocAttr

type MallocAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

MallocAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*MallocAttr) AddChild

func (n *MallocAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*MallocAttr) Address

func (n *MallocAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*MallocAttr) Children

func (n *MallocAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*MallocAttr) Position

func (n *MallocAttr) Position() Position

Position returns the position in the original source code.

type MaxFieldAlignmentAttr added in v0.11.2

type MaxFieldAlignmentAttr struct {
	Addr       Address
	Pos        Position
	Size       int
	ChildNodes []Node
}

MaxFieldAlignmentAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*MaxFieldAlignmentAttr) AddChild added in v0.11.2

func (n *MaxFieldAlignmentAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*MaxFieldAlignmentAttr) Address added in v0.11.2

func (n *MaxFieldAlignmentAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*MaxFieldAlignmentAttr) Children added in v0.11.2

func (n *MaxFieldAlignmentAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*MaxFieldAlignmentAttr) Position added in v0.11.2

func (n *MaxFieldAlignmentAttr) Position() Position

Position returns the position in the original source code.

type MemberExpr

type MemberExpr struct {
	Addr                 Address
	Pos                  Position
	Type                 string
	Type2                string
	Name                 string
	IsLvalue             bool
	IsBitfield           bool
	Address2             string
	IsPointer            bool
	NonODRUseUnevaluated bool
	ChildNodes           []Node
}

MemberExpr is expression.

func (*MemberExpr) AddChild

func (n *MemberExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*MemberExpr) Address

func (n *MemberExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*MemberExpr) Children

func (n *MemberExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*MemberExpr) GetDeclRefExpr added in v0.13.3

func (n *MemberExpr) GetDeclRefExpr() *DeclRefExpr

GetDeclRefExpr gets DeclRefExpr from MemberExpr, or nil if there is no DeclRefExpr

func (*MemberExpr) Position

func (n *MemberExpr) Position() Position

Position returns the position in the original source code.

type ModeAttr

type ModeAttr struct {
	Addr       Address
	Pos        Position
	Name       string
	ChildNodes []Node
}

ModeAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*ModeAttr) AddChild

func (n *ModeAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ModeAttr) Address

func (n *ModeAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ModeAttr) Children

func (n *ModeAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ModeAttr) Position

func (n *ModeAttr) Position() Position

Position returns the position in the original source code.

type NoAliasAttr added in v0.24.7

type NoAliasAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

NoAliasAttr is a type of attribute that is optionally attached to a function declaration.

func (*NoAliasAttr) AddChild added in v0.24.7

func (n *NoAliasAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*NoAliasAttr) Address added in v0.24.7

func (n *NoAliasAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*NoAliasAttr) Children added in v0.24.7

func (n *NoAliasAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*NoAliasAttr) Position added in v0.24.7

func (n *NoAliasAttr) Position() Position

Position returns the position in the original source code.

type NoInlineAttr added in v0.11.2

type NoInlineAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

NoInlineAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*NoInlineAttr) AddChild added in v0.11.2

func (n *NoInlineAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*NoInlineAttr) Address added in v0.11.2

func (n *NoInlineAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*NoInlineAttr) Children added in v0.11.2

func (n *NoInlineAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*NoInlineAttr) Position added in v0.11.2

func (n *NoInlineAttr) Position() Position

Position returns the position in the original source code.

type NoThrowAttr

type NoThrowAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
	Implicit   bool
	Inherited  bool
}

NoThrowAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*NoThrowAttr) AddChild

func (n *NoThrowAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*NoThrowAttr) Address

func (n *NoThrowAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*NoThrowAttr) Children

func (n *NoThrowAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*NoThrowAttr) Position

func (n *NoThrowAttr) Position() Position

Position returns the position in the original source code.

type Node

type Node interface {
	Address() Address
	Children() []Node
	AddChild(node Node)
	Position() Position
}

Node represents any node in the AST.

func GetAllNodesOfType added in v0.13.7

func GetAllNodesOfType(root Node, t reflect.Type) []Node

GetAllNodesOfType returns all of the nodes of the tree that match the type provided. The type should be a pointer to an object in the ast package.

The nodes returned may reference each other and there is no guaranteed order in which the nodes are returned.

func Parse

func Parse(fullline string) Node

Parse takes the coloured output of the clang AST command and returns a root node for the AST.

type NonNullAttr

type NonNullAttr struct {
	Addr       Address
	Pos        Position
	Inherited  bool
	A          int
	B          int
	C          int
	D          int
	ChildNodes []Node
}

NonNullAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*NonNullAttr) AddChild

func (n *NonNullAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*NonNullAttr) Address

func (n *NonNullAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*NonNullAttr) Children

func (n *NonNullAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*NonNullAttr) Position

func (n *NonNullAttr) Position() Position

Position returns the position in the original source code.

type NotTailCalledAttr added in v0.22.2

type NotTailCalledAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

NotTailCalledAttr is a type of attribute that is optionally attached to function declaration.

func (*NotTailCalledAttr) AddChild added in v0.22.2

func (n *NotTailCalledAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*NotTailCalledAttr) Address added in v0.22.2

func (n *NotTailCalledAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*NotTailCalledAttr) Children added in v0.22.2

func (n *NotTailCalledAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*NotTailCalledAttr) Position added in v0.22.2

func (n *NotTailCalledAttr) Position() Position

Position returns the position in the original source code.

type OffsetOfExpr added in v0.11.2

type OffsetOfExpr struct {
	Addr       Address
	Pos        Position
	Type       string
	ChildNodes []Node
}

OffsetOfExpr is expression.

func (*OffsetOfExpr) AddChild added in v0.11.2

func (n *OffsetOfExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*OffsetOfExpr) Address added in v0.11.2

func (n *OffsetOfExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*OffsetOfExpr) Children added in v0.11.2

func (n *OffsetOfExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*OffsetOfExpr) Position added in v0.11.2

func (n *OffsetOfExpr) Position() Position

Position returns the position in the original source code.

type PackedAttr added in v0.11.2

type PackedAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

PackedAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*PackedAttr) AddChild added in v0.11.2

func (n *PackedAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*PackedAttr) Address added in v0.11.2

func (n *PackedAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*PackedAttr) Children added in v0.11.2

func (n *PackedAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*PackedAttr) Position added in v0.11.2

func (n *PackedAttr) Position() Position

Position returns the position in the original source code.

type ParagraphComment added in v0.21.0

type ParagraphComment struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

ParagraphComment is a type of comment

func (*ParagraphComment) AddChild added in v0.21.0

func (n *ParagraphComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ParagraphComment) Address added in v0.21.0

func (n *ParagraphComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ParagraphComment) Children added in v0.21.0

func (n *ParagraphComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ParagraphComment) Position added in v0.21.0

func (n *ParagraphComment) Position() Position

Position returns the position in the original source code.

type ParamCommandComment added in v0.21.0

type ParamCommandComment struct {
	Addr       Address
	Pos        Position
	Other      string
	ChildNodes []Node
}

ParamCommandComment is a type of comment

func (*ParamCommandComment) AddChild added in v0.21.0

func (n *ParamCommandComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ParamCommandComment) Address added in v0.21.0

func (n *ParamCommandComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ParamCommandComment) Children added in v0.21.0

func (n *ParamCommandComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ParamCommandComment) Position added in v0.21.0

func (n *ParamCommandComment) Position() Position

Position returns the position in the original source code.

type ParenExpr

type ParenExpr struct {
	Addr       Address
	Pos        Position
	Type       string
	Type2      string
	Lvalue     bool
	IsBitfield bool
	ChildNodes []Node
}

ParenExpr is expression.

func (*ParenExpr) AddChild

func (n *ParenExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ParenExpr) Address

func (n *ParenExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ParenExpr) Children

func (n *ParenExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ParenExpr) Position

func (n *ParenExpr) Position() Position

Position returns the position in the original source code.

type ParenType added in v0.9.0

type ParenType struct {
	Addr       Address
	Type       string
	Sugar      bool
	ChildNodes []Node
}

ParenType is paren type

func (*ParenType) AddChild added in v0.9.0

func (n *ParenType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ParenType) Address added in v0.9.0

func (n *ParenType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ParenType) Children added in v0.9.0

func (n *ParenType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ParenType) Position added in v0.15.0

func (n *ParenType) Position() Position

Position returns the position in the original source code.

type ParmVarDecl

type ParmVarDecl struct {
	Addr         Address
	Pos          Position
	Position2    string
	Name         string
	Type         string
	Type2        string
	IsUsed       bool
	IsReferenced bool
	IsRegister   bool
	ChildNodes   []Node
}

ParmVarDecl is node represents a parameter of variable declaration.

func (*ParmVarDecl) AddChild

func (n *ParmVarDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ParmVarDecl) Address

func (n *ParmVarDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ParmVarDecl) Children

func (n *ParmVarDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ParmVarDecl) Position

func (n *ParmVarDecl) Position() Position

Position returns the position in the original source code.

type PointerType

type PointerType struct {
	Addr       Address
	Type       string
	ChildNodes []Node
}

PointerType is pointer type

func (*PointerType) AddChild

func (n *PointerType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*PointerType) Address

func (n *PointerType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*PointerType) Children

func (n *PointerType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*PointerType) Position added in v0.15.0

func (n *PointerType) Position() Position

Position returns the position in the original source code.

type Position added in v0.11.3

type Position struct {
	File      string // The relative or absolute file path.
	Line      int    // Start line
	LineEnd   int    // End line
	Column    int    // Start column
	ColumnEnd int    // End column

	// This is the original string that was converted. This is used for
	// debugging. We could derive this value from the other properties to save
	// on a bit of memory, but let worry about that later.
	StringValue string
}

Position is type of position in source code

func NewPositionFromString added in v0.15.0

func NewPositionFromString(s string) Position

func (Position) GetSimpleLocation added in v0.21.2

func (p Position) GetSimpleLocation() (loc string)

GetSimpleLocation - return a string like : "file:line" in according to position Example : " /tmp/1.c:200 "

type PredefinedExpr

type PredefinedExpr struct {
	Addr       Address
	Pos        Position
	Type       string
	Name       string
	Lvalue     bool
	ChildNodes []Node
}

PredefinedExpr is expression.

func (*PredefinedExpr) AddChild

func (n *PredefinedExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*PredefinedExpr) Address

func (n *PredefinedExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*PredefinedExpr) Children

func (n *PredefinedExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*PredefinedExpr) Position

func (n *PredefinedExpr) Position() Position

Position returns the position in the original source code.

type PureAttr added in v0.9.0

type PureAttr struct {
	Addr       Address
	Pos        Position
	Implicit   bool
	Inherited  bool
	ChildNodes []Node
}

PureAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*PureAttr) AddChild added in v0.9.0

func (n *PureAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*PureAttr) Address added in v0.9.0

func (n *PureAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*PureAttr) Children added in v0.9.0

func (n *PureAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*PureAttr) Position added in v0.9.0

func (n *PureAttr) Position() Position

Position returns the position in the original source code.

type QualType

type QualType struct {
	Addr       Address
	Type       string
	Kind       string
	ChildNodes []Node
}

QualType is qual type

func (*QualType) AddChild

func (n *QualType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*QualType) Address

func (n *QualType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*QualType) Children

func (n *QualType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*QualType) Position added in v0.15.0

func (n *QualType) Position() Position

Position returns the position in the original source code.

type Record

type Record struct {
	Addr       Address
	Type       string
	ChildNodes []Node
}

Record struct

func (*Record) AddChild

func (n *Record) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*Record) Address

func (n *Record) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*Record) Children

func (n *Record) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*Record) Position added in v0.15.0

func (n *Record) Position() Position

Position returns the position in the original source code.

type RecordDecl

type RecordDecl struct {
	Addr       Address
	Pos        Position
	Prev       string
	Position2  string
	Kind       string
	Name       string
	Definition bool
	ChildNodes []Node
}

RecordDecl is node represents a record declaration.

func (*RecordDecl) AddChild

func (n *RecordDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*RecordDecl) Address

func (n *RecordDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*RecordDecl) Children

func (n *RecordDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*RecordDecl) Position

func (n *RecordDecl) Position() Position

Position returns the position in the original source code.

type RecordType

type RecordType struct {
	Addr       Address
	Type       string
	ChildNodes []Node
}

RecordType is record type

func (*RecordType) AddChild

func (n *RecordType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*RecordType) Address

func (n *RecordType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*RecordType) Children

func (n *RecordType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*RecordType) Position added in v0.15.0

func (n *RecordType) Position() Position

Position returns the position in the original source code.

type RestrictAttr

type RestrictAttr struct {
	Addr       Address
	Pos        Position
	Name       string
	ChildNodes []Node
}

RestrictAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*RestrictAttr) AddChild

func (n *RestrictAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*RestrictAttr) Address

func (n *RestrictAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*RestrictAttr) Children

func (n *RestrictAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*RestrictAttr) Position

func (n *RestrictAttr) Position() Position

Position returns the position in the original source code.

type ReturnStmt

type ReturnStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

ReturnStmt is node represent 'return'

func (*ReturnStmt) AddChild

func (n *ReturnStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ReturnStmt) Address

func (n *ReturnStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ReturnStmt) Children

func (n *ReturnStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ReturnStmt) Position

func (n *ReturnStmt) Position() Position

Position returns the position in the original source code.

type ReturnsTwiceAttr added in v0.11.2

type ReturnsTwiceAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
	Inherited  bool
	Implicit   bool
}

ReturnsTwiceAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*ReturnsTwiceAttr) AddChild added in v0.11.2

func (n *ReturnsTwiceAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*ReturnsTwiceAttr) Address added in v0.11.2

func (n *ReturnsTwiceAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*ReturnsTwiceAttr) Children added in v0.11.2

func (n *ReturnsTwiceAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*ReturnsTwiceAttr) Position added in v0.11.2

func (n *ReturnsTwiceAttr) Position() Position

Position returns the position in the original source code.

type SentinelAttr added in v0.18.7

type SentinelAttr struct {
	Addr       Address
	Pos        Position
	A          int
	B          int
	ChildNodes []Node
}

SentinelAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*SentinelAttr) AddChild added in v0.18.7

func (n *SentinelAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*SentinelAttr) Address added in v0.18.7

func (n *SentinelAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*SentinelAttr) Children added in v0.18.7

func (n *SentinelAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*SentinelAttr) Position added in v0.18.7

func (n *SentinelAttr) Position() Position

Position returns the position in the original source code.

type StmtExpr added in v0.16.2

type StmtExpr struct {
	Addr       Address
	Pos        Position
	Type       string
	ChildNodes []Node
}

StmtExpr is expression.

func (*StmtExpr) AddChild added in v0.16.2

func (n *StmtExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*StmtExpr) Address added in v0.16.2

func (n *StmtExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*StmtExpr) Children added in v0.16.2

func (n *StmtExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*StmtExpr) Position added in v0.16.2

func (n *StmtExpr) Position() Position

Position returns the position in the original source code.

type StringLiteral

type StringLiteral struct {
	Addr       Address
	Pos        Position
	Type       string
	Value      string
	Lvalue     bool
	ChildNodes []Node
}

StringLiteral is type of string literal

func (*StringLiteral) AddChild

func (n *StringLiteral) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*StringLiteral) Address

func (n *StringLiteral) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*StringLiteral) Children

func (n *StringLiteral) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*StringLiteral) Position

func (n *StringLiteral) Position() Position

Position returns the position in the original source code.

type SwitchStmt added in v0.9.2

type SwitchStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

SwitchStmt is node represent 'switch'

func (*SwitchStmt) AddChild added in v0.9.2

func (n *SwitchStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*SwitchStmt) Address added in v0.9.2

func (n *SwitchStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*SwitchStmt) Children added in v0.9.2

func (n *SwitchStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*SwitchStmt) Position added in v0.9.2

func (n *SwitchStmt) Position() Position

Position returns the position in the original source code.

type TextComment added in v0.21.0

type TextComment struct {
	Addr       Address
	Pos        Position
	Text       string
	ChildNodes []Node
}

TextComment is a type of comment

func (*TextComment) AddChild added in v0.21.0

func (n *TextComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*TextComment) Address added in v0.21.0

func (n *TextComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*TextComment) Children added in v0.21.0

func (n *TextComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*TextComment) Position added in v0.21.0

func (n *TextComment) Position() Position

Position returns the position in the original source code.

type TranslationUnitDecl

type TranslationUnitDecl struct {
	Addr       Address
	ChildNodes []Node
}

TranslationUnitDecl is node represents a translation unit declaration.

func (*TranslationUnitDecl) AddChild

func (n *TranslationUnitDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*TranslationUnitDecl) Address

func (n *TranslationUnitDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*TranslationUnitDecl) Children

func (n *TranslationUnitDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*TranslationUnitDecl) Position added in v0.15.0

func (n *TranslationUnitDecl) Position() Position

Position returns the position in the original source code.

type TransparentUnionAttr added in v0.9.0

type TransparentUnionAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

TransparentUnionAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*TransparentUnionAttr) AddChild added in v0.9.0

func (n *TransparentUnionAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*TransparentUnionAttr) Address added in v0.9.0

func (n *TransparentUnionAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*TransparentUnionAttr) Children added in v0.9.0

func (n *TransparentUnionAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*TransparentUnionAttr) Position added in v0.9.0

func (n *TransparentUnionAttr) Position() Position

Position returns the position in the original source code.

type Typedef

type Typedef struct {
	Addr       Address
	Type       string
	ChildNodes []Node
}

Typedef struct

func (*Typedef) AddChild

func (n *Typedef) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*Typedef) Address

func (n *Typedef) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*Typedef) Children

func (n *Typedef) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*Typedef) Position added in v0.15.0

func (n *Typedef) Position() Position

Position returns the position in the original source code.

type TypedefDecl

type TypedefDecl struct {
	Addr         Address
	Pos          Position
	Position2    string
	Name         string
	Type         string
	Type2        string
	IsImplicit   bool
	IsReferenced bool
	ChildNodes   []Node
}

TypedefDecl is node represents a typedef declaration.

func (*TypedefDecl) AddChild

func (n *TypedefDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*TypedefDecl) Address

func (n *TypedefDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*TypedefDecl) Children

func (n *TypedefDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*TypedefDecl) Position

func (n *TypedefDecl) Position() Position

Position returns the position in the original source code.

type TypedefType

type TypedefType struct {
	Addr       Address
	Type       string
	Tags       string
	ChildNodes []Node
}

TypedefType is typedef type

func (*TypedefType) AddChild

func (n *TypedefType) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*TypedefType) Address

func (n *TypedefType) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*TypedefType) Children

func (n *TypedefType) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*TypedefType) Position added in v0.15.0

func (n *TypedefType) Position() Position

Position returns the position in the original source code.

type UnaryExprOrTypeTraitExpr added in v0.11.0

type UnaryExprOrTypeTraitExpr struct {
	Addr       Address
	Pos        Position
	Type1      string
	Function   string
	Type2      string
	Type3      string
	ChildNodes []Node
}

UnaryExprOrTypeTraitExpr is expression.

func (*UnaryExprOrTypeTraitExpr) AddChild added in v0.11.0

func (n *UnaryExprOrTypeTraitExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*UnaryExprOrTypeTraitExpr) Address added in v0.11.0

func (n *UnaryExprOrTypeTraitExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*UnaryExprOrTypeTraitExpr) Children added in v0.11.0

func (n *UnaryExprOrTypeTraitExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*UnaryExprOrTypeTraitExpr) Position added in v0.11.0

func (n *UnaryExprOrTypeTraitExpr) Position() Position

Position returns the position in the original source code.

type UnaryOperator

type UnaryOperator struct {
	Addr           Address
	Pos            Position
	Type           string
	Type2          string
	IsLvalue       bool
	IsPrefix       bool
	Operator       string
	CannotOverflow bool
	ChildNodes     []Node
}

UnaryOperator is type of unary operator

func (*UnaryOperator) AddChild

func (n *UnaryOperator) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*UnaryOperator) Address

func (n *UnaryOperator) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*UnaryOperator) Children

func (n *UnaryOperator) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*UnaryOperator) Position

func (n *UnaryOperator) Position() Position

Position returns the position in the original source code.

type UnusedAttr added in v0.14.0

type UnusedAttr struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
	IsUnused   bool
}

UnusedAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*UnusedAttr) AddChild added in v0.14.0

func (n *UnusedAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*UnusedAttr) Address added in v0.14.0

func (n *UnusedAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*UnusedAttr) Children added in v0.14.0

func (n *UnusedAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*UnusedAttr) Position added in v0.14.0

func (n *UnusedAttr) Position() Position

Position returns the position in the original source code.

type VAArgExpr added in v0.11.2

type VAArgExpr struct {
	Addr       Address
	Pos        Position
	Type       string
	ChildNodes []Node
}

VAArgExpr is expression.

func (*VAArgExpr) AddChild added in v0.11.2

func (n *VAArgExpr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*VAArgExpr) Address added in v0.11.2

func (n *VAArgExpr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*VAArgExpr) Children added in v0.11.2

func (n *VAArgExpr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*VAArgExpr) Position added in v0.11.2

func (n *VAArgExpr) Position() Position

Position returns the position in the original source code.

type VarDecl

type VarDecl struct {
	Addr         Address
	Parent       Address
	Pos          Position
	Position2    string
	Name         string
	Type         string
	Type2        string
	IsExtern     bool
	IsUsed       bool
	IsNRVO       bool
	IsCInit      bool
	IsReferenced bool
	IsStatic     bool
	IsRegister   bool
	ChildNodes   []Node
}

VarDecl is node represents a variable declaration.

func (*VarDecl) AddChild

func (n *VarDecl) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*VarDecl) Address

func (n *VarDecl) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*VarDecl) Children

func (n *VarDecl) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*VarDecl) Position

func (n *VarDecl) Position() Position

Position returns the position in the original source code.

type VerbatimBlockComment added in v0.21.14

type VerbatimBlockComment struct {
	Addr       Address
	Pos        Position
	Name       string
	CloseName  string
	ChildNodes []Node
}

VerbatimBlockComment is a type of comment

func (*VerbatimBlockComment) AddChild added in v0.21.14

func (n *VerbatimBlockComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*VerbatimBlockComment) Address added in v0.21.14

func (n *VerbatimBlockComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*VerbatimBlockComment) Children added in v0.21.14

func (n *VerbatimBlockComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*VerbatimBlockComment) Position added in v0.21.14

func (n *VerbatimBlockComment) Position() Position

Position returns the position in the original source code.

type VerbatimBlockLineComment added in v0.21.14

type VerbatimBlockLineComment struct {
	Addr       Address
	Pos        Position
	Text       string
	ChildNodes []Node
}

VerbatimBlockLineComment is a type of comment

func (*VerbatimBlockLineComment) AddChild added in v0.21.14

func (n *VerbatimBlockLineComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*VerbatimBlockLineComment) Address added in v0.21.14

func (n *VerbatimBlockLineComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*VerbatimBlockLineComment) Children added in v0.21.14

func (n *VerbatimBlockLineComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*VerbatimBlockLineComment) Position added in v0.21.14

func (n *VerbatimBlockLineComment) Position() Position

Position returns the position in the original source code.

type VerbatimLineComment added in v0.21.0

type VerbatimLineComment struct {
	Addr       Address
	Pos        Position
	Text       string
	ChildNodes []Node
}

VerbatimLineComment is a type of comment

func (*VerbatimLineComment) AddChild added in v0.21.0

func (n *VerbatimLineComment) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*VerbatimLineComment) Address added in v0.21.0

func (n *VerbatimLineComment) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*VerbatimLineComment) Children added in v0.21.0

func (n *VerbatimLineComment) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*VerbatimLineComment) Position added in v0.21.0

func (n *VerbatimLineComment) Position() Position

Position returns the position in the original source code.

type VisibilityAttr added in v0.17.5

type VisibilityAttr struct {
	Addr        Address
	Pos         Position
	ChildNodes  []Node
	IsDefault   bool
	IsInherited bool
	IsHidden    bool
}

VisibilityAttr contains information for a VisibilityAttr AST line.

func (*VisibilityAttr) AddChild added in v0.17.5

func (n *VisibilityAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*VisibilityAttr) Address added in v0.17.5

func (n *VisibilityAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*VisibilityAttr) Children added in v0.17.5

func (n *VisibilityAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*VisibilityAttr) Position added in v0.17.5

func (n *VisibilityAttr) Position() Position

Position returns the position in the original source code.

type WarnUnusedResultAttr added in v0.9.0

type WarnUnusedResultAttr struct {
	Addr       Address
	Pos        Position
	Inherited  bool
	ChildNodes []Node
}

WarnUnusedResultAttr is a type of attribute that is optionally attached to a variable or struct field definition.

func (*WarnUnusedResultAttr) AddChild added in v0.9.0

func (n *WarnUnusedResultAttr) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*WarnUnusedResultAttr) Address added in v0.9.0

func (n *WarnUnusedResultAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*WarnUnusedResultAttr) Children added in v0.9.0

func (n *WarnUnusedResultAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*WarnUnusedResultAttr) Position added in v0.9.0

func (n *WarnUnusedResultAttr) Position() Position

Position returns the position in the original source code.

type WeakAttr added in v0.13.3

type WeakAttr struct {
	Addr       Address
	Pos        Position
	Inherited  bool
	ChildNodes []Node
}

WeakAttr for the WeakAttr node

func (*WeakAttr) AddChild added in v0.13.3

func (n *WeakAttr) AddChild(node Node)

AddChild method to implements Node interface

func (*WeakAttr) Address added in v0.13.3

func (n *WeakAttr) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*WeakAttr) Children added in v0.13.3

func (n *WeakAttr) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*WeakAttr) Position added in v0.13.3

func (n *WeakAttr) Position() Position

Position returns the position in the original source code.

type WhileStmt

type WhileStmt struct {
	Addr       Address
	Pos        Position
	ChildNodes []Node
}

WhileStmt is node represent 'while'

func (*WhileStmt) AddChild

func (n *WhileStmt) AddChild(node Node)

AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.

func (*WhileStmt) Address

func (n *WhileStmt) Address() Address

Address returns the numeric address of the node. See the documentation for the Address type for more information.

func (*WhileStmt) Children

func (n *WhileStmt) Children() []Node

Children returns the child nodes. If this node does not have any children or this node does not support children it will always return an empty slice.

func (*WhileStmt) Position

func (n *WhileStmt) Position() Position

Position returns the position in the original source code.

Source Files

Jump to

Keyboard shortcuts

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