Documentation ¶
Overview ¶
Package ast parses the clang AST output into AST structures.
Index ¶
- Constants
- Variables
- func Atos(node Node) string
- func FixPositions(nodes []Node)
- type Address
- type AlignedAttr
- type AllocSizeAttr
- type AlwaysInlineAttr
- type ArrayFiller
- type ArraySubscriptExpr
- type AsmLabelAttr
- type AvailabilityAttr
- type BinaryOperator
- type BreakStmt
- type BuiltinType
- type CStyleCastExpr
- type CallExpr
- type CaseStmt
- type CharacterLiteral
- type CompoundAssignOperator
- type CompoundLiteralExpr
- type CompoundStmt
- type ConditionalOperator
- type ConstAttr
- type ConstantArrayType
- type ContinueStmt
- type DeclRefExpr
- type DeclStmt
- type DefaultStmt
- type DeprecatedAttr
- type DisableTailCallsAttr
- type DoStmt
- type ElaboratedType
- type EmptyDecl
- type Enum
- type EnumConstantDecl
- type EnumDecl
- type EnumType
- type Field
- type FieldDecl
- type FloatingLiteral
- type FloatingLiteralError
- type ForStmt
- type FormatAttr
- type FunctionDecl
- type FunctionProtoType
- type GCCAsmStmt
- type GotoStmt
- type IfStmt
- type ImplicitCastExpr
- type ImplicitValueInitExpr
- type IncompleteArrayType
- type IndirectFieldDecl
- type InitListExpr
- type IntegerLiteral
- type LabelStmt
- type MallocAttr
- type MaxFieldAlignmentAttr
- type MemberExpr
- type ModeAttr
- type NoInlineAttr
- type NoThrowAttr
- type Node
- type NonNullAttr
- type OffsetOfExpr
- type PackedAttr
- type ParenExpr
- type ParenType
- type ParmVarDecl
- type PointerType
- type Position
- type PredefinedExpr
- type PureAttr
- type QualType
- type Record
- type RecordDecl
- type RecordType
- type RestrictAttr
- type ReturnStmt
- type ReturnsTwiceAttr
- type SentinelAttr
- type StmtExpr
- type StringLiteral
- type SwitchStmt
- type TranslationUnitDecl
- type TransparentUnionAttr
- type Typedef
- type TypedefDecl
- type TypedefType
- type UnaryExprOrTypeTraitExpr
- type UnaryOperator
- type UnusedAttr
- type VAArgExpr
- type VarDecl
- type VisibilityAttr
- type WarnUnusedResultAttr
- type WeakAttr
- type WhileStmt
Constants ¶
const ImplicitCastExprArrayToPointerDecay = "ArrayToPointerDecay"
ImplicitCastExprArrayToPointerDecay - constant
Variables ¶
var CStyleCastExprNullToPointer = "NullToPointer"
CStyleCastExprNullToPointer - string of kind NullToPointer
var CStyleCastExprToVoid = "ToVoid"
CStyleCastExprToVoid - string of kind ToVoid
var FunctionDeclRefExpr = "Function"
FunctionDeclRefExpr - value of DeclRefExpr.For for function
var PositionBuiltIn = "<built-in>"
PositionBuiltIn - default value for fix position
Functions ¶
func FixPositions ¶ added in v0.15.0
func FixPositions(nodes []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
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
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 ¶
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
}
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 }
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 AvailabilityAttr ¶
type AvailabilityAttr struct { Addr Address Pos Position OS string Version string Unknown1 float64 Unknown2 int Message1 string Message2 string IsInherited bool ChildNodes []Node }
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 }
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 BreakStmt ¶
func (*BreakStmt) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*BreakStmt) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type BuiltinType ¶
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 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 ¶
CallExpr is expression.
func (*CallExpr) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*CallExpr) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type CaseStmt ¶ added in v0.9.2
func (*CaseStmt) AddChild ¶ added in v0.9.2
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*CaseStmt) Address ¶ added in v0.9.2
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type CharacterLiteral ¶
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 CompoundAssignOperator ¶ added in v0.10.4
type CompoundAssignOperator struct { Addr Address Pos Position Type string Opcode string ComputationLHSType string ComputationResultType string ChildNodes []Node }
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 }
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 ¶
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 ¶
func (*ConstAttr) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*ConstAttr) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type ConstantArrayType ¶
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 ContinueStmt ¶ added in v0.10.2
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 DeclRefExpr ¶
type DeclRefExpr struct { Addr Address Pos Position Type string Type1 string Lvalue bool For string Address2 string Name string Type2 string Type3 string 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 ¶
func (*DeclStmt) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*DeclStmt) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type DefaultStmt ¶ added in v0.9.2
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 }
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
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
func (*DoStmt) AddChild ¶ added in v0.9.0
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*DoStmt) Address ¶ added in v0.9.0
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type ElaboratedType ¶
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
EmptyDecl - element of AST
func (*EmptyDecl) AddChild ¶ added in v0.17.4
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*EmptyDecl) Address ¶ added in v0.17.4
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type Enum ¶
func (*Enum) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*Enum) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type EnumConstantDecl ¶
type EnumConstantDecl struct { Addr Address Pos Position Position2 string Referenced bool Name string Type string ChildNodes []Node }
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 ¶
func (*EnumDecl) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*EnumDecl) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type EnumType ¶
func (*EnumType) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*EnumType) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type Field ¶ added in v0.15.1
func (*Field) AddChild ¶ added in v0.15.1
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*Field) Address ¶ added in v0.15.1
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type FieldDecl ¶
type FieldDecl struct { Addr Address Pos Position Position2 string Name string Type string Type2 string Implicit bool Referenced bool ChildNodes []Node }
func (*FieldDecl) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*FieldDecl) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type FloatingLiteral ¶
type FloatingLiteral struct { Addr Address Pos Position Type string Value float64 ChildNodes []Node }
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 ¶
func (*ForStmt) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*ForStmt) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type FormatAttr ¶
type FormatAttr struct { Addr Address Pos Position Implicit bool Inherited bool FunctionName string Unknown1 int Unknown2 int ChildNodes []Node }
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 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 }
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 FunctionProtoType ¶
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
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
func (*GotoStmt) AddChild ¶ added in v0.11.2
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*GotoStmt) Address ¶ added in v0.11.2
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type IfStmt ¶
func (*IfStmt) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*IfStmt) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type ImplicitCastExpr ¶
type ImplicitCastExpr struct { Addr Address Pos Position Type string Type2 string Kind string 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 ChildNodes []Node }
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
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 }
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
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 IntegerLiteral ¶
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
func (*LabelStmt) AddChild ¶ added in v0.11.2
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*LabelStmt) Address ¶ added in v0.11.2
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type MallocAttr ¶
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
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 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 ¶
func (*ModeAttr) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*ModeAttr) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type NoInlineAttr ¶ added in v0.11.2
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 }
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 ¶
Node represents any node in the AST.
func GetAllNodesOfType ¶ added in v0.13.7
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.
type NonNullAttr ¶
type NonNullAttr struct { Addr Address Pos Position Inherited bool A int B int C int D int ChildNodes []Node }
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 OffsetOfExpr ¶ added in v0.11.2
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
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 ParenExpr ¶
type ParenExpr struct { Addr Address Pos Position Type string Type2 string Lvalue bool IsBitfield bool ChildNodes []Node }
ParenExpr is expression.
func (*ParenExpr) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*ParenExpr) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type ParenType ¶ added in v0.9.0
func (*ParenType) AddChild ¶ added in v0.9.0
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*ParenType) Address ¶ added in v0.9.0
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type ParmVarDecl ¶
type ParmVarDecl struct { Addr Address Pos Position Position2 string Name string Type string Type2 string IsUsed bool IsReferenced bool ChildNodes []Node }
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 ¶
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 }
func NewPositionFromString ¶ added in v0.15.0
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
func (*PureAttr) AddChild ¶ added in v0.9.0
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*PureAttr) Address ¶ added in v0.9.0
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type QualType ¶
func (*QualType) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*QualType) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type Record ¶
func (*Record) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*Record) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type RecordDecl ¶
type RecordDecl struct { Addr Address Pos Position Prev string Position2 string Kind string Name string Definition bool ChildNodes []Node }
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 ¶
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 ¶
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 ¶
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 }
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
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
StmtExpr is expression.
func (*StmtExpr) AddChild ¶ added in v0.16.2
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*StmtExpr) Address ¶ added in v0.16.2
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type StringLiteral ¶
type StringLiteral struct { Addr Address Pos Position Type string Value string Lvalue bool ChildNodes []Node }
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
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 TranslationUnitDecl ¶
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
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 ¶
func (*Typedef) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*Typedef) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type TypedefDecl ¶
type TypedefDecl struct { Addr Address Pos Position Position2 string Name string Type string Type2 string IsImplicit bool IsReferenced bool ChildNodes []Node }
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 ¶
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 ChildNodes []Node }
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
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
VAArgExpr is expression.
func (*VAArgExpr) AddChild ¶ added in v0.11.2
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*VAArgExpr) Address ¶ added in v0.11.2
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type VarDecl ¶
type VarDecl struct { Addr Address Pos Position Position2 string Name string Type string Type2 string IsExtern bool IsUsed bool IsCInit bool IsReferenced bool IsStatic bool IsRegister bool ChildNodes []Node }
func (*VarDecl) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*VarDecl) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type VisibilityAttr ¶ added in v0.17.5
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
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
WeakAttr for the WeakAttr node
func (*WeakAttr) Address ¶ added in v0.13.3
Address returns the numeric address of the node. See the documentation for the Address type for more information.
type WhileStmt ¶
func (*WhileStmt) AddChild ¶
AddChild adds a new child node. Child nodes can then be accessed with the Children attribute.
func (*WhileStmt) Address ¶
Address returns the numeric address of the node. See the documentation for the Address type for more information.
Source Files ¶
- aligned_attr.go
- alloc_size_attr.go
- always_inline_attr.go
- array_filler.go
- array_subscript_expr.go
- asm_label_attr.go
- ast.go
- availability_attr.go
- binary_operator.go
- break_stmt.go
- builtin_type.go
- c_style_cast_expr.go
- call_expr.go
- case_stmt.go
- character_literal.go
- compound_assign_operator.go
- compound_literal_expr.go
- compound_stmt.go
- conditional_operator.go
- const_attr.go
- constant_array_type.go
- continue_stmt.go
- decl_ref_expr.go
- decl_stmt.go
- default_stmt.go
- deprecated_attr.go
- disable_tail_calls_attr.go
- do_stmt.go
- elaborated_type.go
- empty_decl.go
- enum.go
- enum_constant_decl.go
- enum_decl.go
- enum_type.go
- field.go
- field_decl.go
- floating_literal.go
- for_stmt.go
- format_attr.go
- function_decl.go
- function_proto_type.go
- gcc_asm_stmt.go
- go_stmt.go
- if_stmt.go
- implicit_cast_expr.go
- implicit_value_init_expr.go
- incomplete_array_type.go
- indirect_field_decl.go
- init_list_expr.go
- integer_literal.go
- label_stmt.go
- malloc_attr.go
- max_field_alignment_attr.go
- member_expr.go
- mode_attr.go
- no_inline_attr.go
- no_throw_attr.go
- non_null_attr.go
- offset_of_expr.go
- packed_attr.go
- paren_expr.go
- paren_type.go
- parm_var_decl.go
- pointer_type.go
- position.go
- predefined_expr.go
- pure_attr.go
- qual_type.go
- record.go
- record_decl.go
- record_type.go
- restrict_attr.go
- return_stmt.go
- returns_twice_attr.go
- sentinel_attr.go
- stmt_expr.go
- string_literal.go
- switch_stmt.go
- translation_unit_decl.go
- transparent_union_attr.go
- traverse.go
- typedef.go
- typedef_decl.go
- typedef_type.go
- unary_expr_or_type_trait_expr.go
- unary_operator.go
- unused_attr.go
- util.go
- va_arg_expr.go
- var_decl.go
- visibility_attr.go
- warn_unused_result_attr.go
- weak_attr.go
- while_stmt.go