Class: SyntaxTree::Node
- Inherits:
-
Object
show all
- Defined in:
- lib/syntax_tree/node.rb
Overview
This is the parent node of all of the syntax tree nodes. It’s pretty much exclusively here to make it easier to operate with the tree in cases where you’re trying to monkey-patch or strictly type.
Direct Known Subclasses
ARef, ARefField, AliasNode, ArgBlock, ArgParen, ArgStar, Args, ArgsForward, ArrayLiteral, AryPtn, Assign, Assoc, AssocSplat, BEGINBlock, Backref, Backtick, BareAssocHash, Begin, Binary, BlockArg, BlockNode, BlockVar, BodyStmt, Break, CHAR, CVar, CallNode, Case, ClassDeclaration, Comma, Command, CommandCall, Comment, Const, ConstPathField, ConstPathRef, ConstRef, DefNode, Defined, DynaSymbol, ENDBlock, Else, Elsif, EmbDoc, EmbExprBeg, EmbExprEnd, EmbVar, EndContent, Ensure, ExcessedComma, Field, FloatLiteral, FndPtn, For, GVar, HashLiteral, Heredoc, HeredocBeg, HeredocEnd, HshPtn, IVar, Ident, IfNode, IfOp, Imaginary, In, Int, Kw, KwRestParam, LBrace, LBracket, LParen, Label, LabelEnd, Lambda, LambdaVar, MAssign, MLHS, MLHSParen, MRHS, MethodAddBlock, ModuleDeclaration, Next, Not, Op, OpAssign, Params, Paren, Period, PinnedBegin, PinnedVarRef, Program, QSymbols, QSymbolsBeg, QWords, QWordsBeg, RAssign, RBrace, RBracket, RParen, RangeNode, RationalLiteral, Redo, RegexpBeg, RegexpContent, RegexpEnd, RegexpLiteral, Rescue, RescueEx, RescueMod, RestParam, Retry, ReturnNode, SClass, Statements, StringConcat, StringContent, StringDVar, StringEmbExpr, StringLiteral, Super, SymBeg, SymbolContent, SymbolLiteral, Symbols, SymbolsBeg, TLamBeg, TLambda, TStringBeg, TStringContent, TStringEnd, TopConstField, TopConstRef, Unary, Undef, UnlessNode, UntilNode, VCall, VarField, VarRef, VoidStmt, When, WhileNode, Word, Words, WordsBeg, XString, XStringLiteral, YieldNode, ZSuper
Instance Attribute Summary collapse
Instance Method Summary
collapse
Instance Attribute Details
#location ⇒ Object
- Location
-
the location of this node
107
108
109
|
# File 'lib/syntax_tree/node.rb', line 107
def location
@location
end
|
Instance Method Details
#accept(visitor) ⇒ Object
109
110
111
|
# File 'lib/syntax_tree/node.rb', line 109
def accept(visitor)
raise NotImplementedError
end
|
#child_nodes ⇒ Object
113
114
115
|
# File 'lib/syntax_tree/node.rb', line 113
def child_nodes
raise NotImplementedError
end
|
#construct_keys ⇒ Object
139
140
141
|
# File 'lib/syntax_tree/node.rb', line 139
def construct_keys
PrettierPrint.format(+"") { |q| Visitor::MatchVisitor.new(q).visit(self) }
end
|
#deconstruct ⇒ Object
117
118
119
|
# File 'lib/syntax_tree/node.rb', line 117
def deconstruct
raise NotImplementedError
end
|
#deconstruct_keys(keys) ⇒ Object
121
122
123
|
# File 'lib/syntax_tree/node.rb', line 121
def deconstruct_keys(keys)
raise NotImplementedError
end
|
125
126
127
|
# File 'lib/syntax_tree/node.rb', line 125
def format(q)
raise NotImplementedError
end
|
#pretty_print(q) ⇒ Object
129
130
131
132
|
# File 'lib/syntax_tree/node.rb', line 129
def pretty_print(q)
visitor = Visitor::PrettyPrintVisitor.new(q)
visitor.visit(self)
end
|
#to_json(*opts) ⇒ Object
134
135
136
137
|
# File 'lib/syntax_tree/node.rb', line 134
def to_json(*opts)
visitor = Visitor::JSONVisitor.new
visitor.visit(self).to_json(*opts)
end
|