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, Alias, ArgBlock, ArgParen, ArgStar, Args, ArgsForward, ArrayLiteral, AryPtn, Assign, Assoc, AssocSplat, BEGINBlock, Backref, Backtick, BareAssocHash, Begin, Binary, BlockArg, BlockVar, BodyStmt, BraceBlock, Break, CHAR, CVar, Call, Case, ClassDeclaration, Comma, Command, CommandCall, Comment, Const, ConstPathField, ConstPathRef, ConstRef, Def, DefEndless, Defined, Defs, DoBlock, Dot2, Dot3, DynaSymbol, ENDBlock, Else, Elsif, EmbDoc, EmbExprBeg, EmbExprEnd, EmbVar, EndContent, Ensure, ExcessedComma, FCall, Field, FloatLiteral, FndPtn, For, GVar, HashLiteral, Heredoc, HeredocBeg, HshPtn, IVar, Ident, If, IfMod, 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, RationalLiteral, Redo, RegexpBeg, RegexpContent, RegexpEnd, RegexpLiteral, Rescue, RescueEx, RescueMod, RestParam, Retry, Return, Return0, SClass, Statements, StringConcat, StringContent, StringDVar, StringEmbExpr, StringLiteral, Super, SymBeg, SymbolContent, SymbolLiteral, Symbols, SymbolsBeg, TLamBeg, TLambda, TStringBeg, TStringContent, TStringEnd, TopConstField, TopConstRef, Unary, Undef, Unless, UnlessMod, Until, UntilMod, VCall, VarAlias, VarField, VarRef, VoidStmt, When, While, WhileMod, Word, Words, WordsBeg, XString, XStringLiteral, Yield, Yield0, ZSuper
Instance Attribute Summary collapse
Instance Method Summary
collapse
Instance Attribute Details
#location ⇒ Object
- Location
-
the location of this node
93
94
95
|
# File 'lib/syntax_tree/node.rb', line 93
def location
@location
end
|
Instance Method Details
#accept(visitor) ⇒ Object
95
96
97
|
# File 'lib/syntax_tree/node.rb', line 95
def accept(visitor)
raise NotImplementedError
end
|
#child_nodes ⇒ Object
99
100
101
|
# File 'lib/syntax_tree/node.rb', line 99
def child_nodes
raise NotImplementedError
end
|
#construct_keys ⇒ Object
125
126
127
|
# File 'lib/syntax_tree/node.rb', line 125
def construct_keys
PrettierPrint.format(+"") { |q| Visitor::MatchVisitor.new(q).visit(self) }
end
|
#deconstruct ⇒ Object
103
104
105
|
# File 'lib/syntax_tree/node.rb', line 103
def deconstruct
raise NotImplementedError
end
|
#deconstruct_keys(keys) ⇒ Object
107
108
109
|
# File 'lib/syntax_tree/node.rb', line 107
def deconstruct_keys(keys)
raise NotImplementedError
end
|
111
112
113
|
# File 'lib/syntax_tree/node.rb', line 111
def format(q)
raise NotImplementedError
end
|
#pretty_print(q) ⇒ Object
115
116
117
118
|
# File 'lib/syntax_tree/node.rb', line 115
def pretty_print(q)
visitor = Visitor::PrettyPrintVisitor.new(q)
visitor.visit(self)
end
|
#to_json(*opts) ⇒ Object
120
121
122
123
|
# File 'lib/syntax_tree/node.rb', line 120
def to_json(*opts)
visitor = Visitor::JSONVisitor.new
visitor.visit(self).to_json(*opts)
end
|