AstNodeBase Class
Represents an abstract AST (abstract syntax tree) node implementation that is intended to be used as a base class for type-specific AST nodes.
public abstract class AstNodeBase : IAstNode
- Inheritance:
- System.Object Object
- Derived:
- AccessorBody AccessorDeclaration Argument ArrayReallocateClause Attribute AttributeArgument AttributeSection CatchClause ClassBody CompilationUnit CompilationUnitOption ConstructorBody Designation DocumentationComment ElseIfSection EnumerationBody EventBody Expression ExternalAliasDirective ExternalAliasDirectiveSection FixedSizeBufferDeclarator InterfaceBody LocalFunctionStatementBody MethodBody NamespaceBody NamespaceDeclaration OperatorBody Ordering ParameterDeclaration Pattern PreprocessorDirective PropertyBody QualifiedName QueryOperator RangeVariableDeclaration RangeVariableDeclarator ReturnTypeDeclaration Statement StructureBody SubPattern SwitchExpressionArm SwitchLabel SwitchSection TupleLiteralDeclarator TypeDeclaration TypeMemberDeclaration TypeParameter UsingDirective UsingDirectiveSection VariableDeclarator ArrayInitializerExpression ArrayPattern AssignmentExpression AssignmentPattern AssignmentProperty AwaitExpression BinaryOperatorExpression BlockStatement BreakStatement CallExpression CatchClause ClassBody ClassDeclaration ClassExpression CompilationUnit ConditionalExpression ContinueStatement DebuggerStatement DoStatement ExpressionStatement ForInStatement ForStatement FunctionBody FunctionDeclaration FunctionExpression Identifier IfStatement ImportExpression InstanceExpression LabeledStatement LiteralExpression MemberAccess MethodDefinition ModuleDeclaration ModuleSpecifier ObjectCreationExpression ObjectInitializerExpression ObjectPattern ParenthesizedExpression Property RestElement ReturnStatement SequenceExpression SuperExpression SwitchSection SwitchStatement TaggedTemplateExpression ThrowStatement TryStatement UnaryOperatorExpression VariableDeclaration VariableDeclarator WhileStatement WithStatement YieldExpression Argument CompilationUnit ComprehensionClauseBase Decorator Expression IfStatementCondition Parameter SliceItem Statement TryStatementExceptClause CDataSection Comment CompilationUnit Declaration Element ElementAttribute ElementContent EndTag ProcessingInstruction
- Implements:
- IAstNode
Constructors
AstNodeBase()
protected AstNodeBase()
Properties
Children
Gets the list containing the child AST nodes of this AST node.
public IList<IAstNode> Children { get; }
Property Value
- System.Collections.Generic.IList<IAstNode>:
The list containing the child AST nodes of this AST node.
EndOffset
Gets or sets the end offset of this AST node, if known.
public int? EndOffset { get; set; }
Property Value
- System.Nullable<System.Int32>:
The end offset of this AST node, if known.
HasChildren
Gets whether the AST node contains any child AST nodes.
public bool HasChildren { get; }
Property Value
- System.Boolean:
true
if the AST node contains any child AST nodes; otherwise,false
.
Id
Gets an integer value that identifies the type of AST node, if known.
public virtual int Id { get; }
Property Value
- System.Int32:
An integer value that identifies the type of AST node, if known.
Remarks
This class' default implementation always returns 0
.
Length
Gets the character length of this AST node, if known.
public int Length { get; }
Property Value
- System.Int32:
The character length of this AST node, if known.
Parent
Gets or sets the parent IAstNode of this AST node, if known.
public IAstNode Parent { get; set; }
Property Value
Root
Gets the root IAstNode of this AST node hierarchy, if known.
public IAstNode Root { get; }
Property Value
Remarks
The root node is found by walking up the Parent tree.
StartOffset
Gets or sets the start offset of this AST node, if known.
public int? StartOffset { get; set; }
Property Value
- System.Nullable<System.Int32>:
The start offset of this AST node, if known.
Value
Gets or sets the string-based value for the AST node.
public virtual string Value { get; set; }
Property Value
- System.String:
The string-based value for the AST node.
Methods
Contains(Int32)
Returns whether the AST node contains the specified offset.
public bool Contains(int offset)
Parameter | Type | Description |
---|---|---|
offset | System.Int32 | The offset to examine. |
Returns
- System.Boolean:
true
if the AST node contains the specified offset; otherwise,false
.
Remarks
This method returns false
if the offset falls on the EndOffset offset
since this method indicates if the offset is encompassed by the AST node.
This method also returns false
if the AST node doesn't have known offsets.
FindChildNode(Int32)
Searches through the child nodes for a node that contains the specified offset.
public IAstNode FindChildNode(int offset)
Parameter | Type | Description |
---|---|---|
offset | System.Int32 | The offset to check. |
Returns
FindDescendantNode(Int32)
Recursively searches through the descendant nodes for a node that contains the specified offset.
public IAstNode FindDescendantNode(int offset)
Parameter | Type | Description |
---|---|---|
offset | System.Int32 | The offset to check. |
Returns
GetChildrenEnumerator()
Retrieves an IEnumerator
object that can iterate the child IAstNode objects in this node.
protected virtual IEnumerator<IAstNode> GetChildrenEnumerator()
Returns
ToString()
Returns a String
that represents the current Object
.
public override string ToString()
Returns
- System.String:
A
String
that represents the currentObject
.
ToTreeString(Int32)
Outputs the contents of the AST node in tree form.
public string ToTreeString(int indentLevel)
Parameter | Type | Description |
---|---|---|
indentLevel | System.Int32 | The indentation level. |
Returns
- System.String:
A string containing the tree form of the AST node.
Inherited Members
- System.Object.Equals(System.Object)
- System.Object.Equals(System.Object, System.Object)
- System.Object.ReferenceEquals(System.Object, System.Object)
- System.Object.GetHashCode()
- System.Object.GetType()
- System.Object.MemberwiseClone()