This is the base class of all AST nodes. This methods are available to all AST nodes.
Returns true
if this node's textual representation is not the same as the other node.
Returns true
if this node's textual representation is the same as the other node.
Returns a StringLiteral
that contains this node's name.
Returns the column number where this node begins.
Returns the column number where this node ends.
Returns the line number where this node ends.
Returns the filename where this node is located.
Returns this node as a MacroId
.
Returns the line number where this node begins.
Gives a compile-time error with the given message.
Returns a StringLiteral
that contains this node's textual representation.
Returns a SymbolLiteral
that contains this node's textual representation.
Reference
Reference
Object
Object
Returns true
if this node's textual representation is not the same as the other node.
Returns true
if this node's textual representation is the same as the other node.
Returns a StringLiteral
that contains this node's name.
macro test {{ "foo".class_name }} end puts test # => prints StringLiteral
Returns the column number where this node begins. Might return nil
if the location is not known.
The first column number in a line is 1
.
Returns the column number where this node ends. Might return nil
if the location is not known.
The first column number in a line is 1
.
Returns the line number where this node ends. Might return nil
if the location is not known.
The first line number in a file is 1
.
Returns the filename where this node is located. Might return nil
if the location is not known.
Returns this node as a MacroId
. Useful when you need an identifier out of a StringLiteral
, SymbolLiteral
, Var
or Call
.
macro define_method(name, content) def {{name.id}} {{content}} end end define_method :foo, 1 define_method "bar", 2 define_method baz, 3 puts foo # => prints 1 puts bar # => prints 2 puts baz # => prints 3
Returns the line number where this node begins. Might return nil
if the location is not known.
The first line number in a file is 1.
Gives a compile-time error with the given message. This will highlight this node in the error message.
Returns a StringLiteral
that contains this node's textual representation. Note that invoking stringify on a string literal will return a StringLiteral
that contains a string literal.
macro test {{ "foo".stringify }} end puts test # prints "foo" (including the double quotes)
Returns a SymbolLiteral
that contains this node's textual representation.
{{ "foo".id.symbolize }} # => :foo
© 2012–2020 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.35.1/Crystal/Macros/ASTNode.html