Syntax::ToSVisitor
Inherits Syntax::Visitor < Reference < Object
Constants
UNARY_OPERATORS = {"+", "-", "~", "&+", "&-"}
Constructors
new(str : IO = IO::Memory.new, macro_expansion_pragmas : Nil | Hash(Int32, Array(Syntax::Lexer::LocPopPragma | Syntax::Lexer::LocPushPragma | Syntax::Lexer::LocSetPragma)) = nil, emit_doc : Bool = false)
SourceInstance methods
accept_with_indent(node : Expressions)
Sourceaccept_with_indent(node : Nop)
Sourceaccept_with_indent(node : ASTNode)
Sourceappend_indent
Sourcein_parenthesis(need_parens, &)
Sourcein_parenthesis(need_parens, node)
Sourceindent_string
Sourceinside_macro
Sourceneeds_suffix?(node : NumberLiteral)
Sourcenewline
Sourceoutside_macro
SourceAppends a short String representation of this object which includes its class name and its object address.
class Person
def initialize(@name : String, @age : Int32)
end
end
Person.new("John", 32).to_s # => #<Person:0x10a199f20>
to_s
Returns a nicely readable and concise string representation of this object, typically intended for users.
This method should usually not be overridden. It delegates to
#to_s(IO) which can be overridden for custom implementations.
Also see #inspect.
to_s_binary(node, op)
Sourcevisit(node : Nop)
Sourcevisit(node : BoolLiteral)
Sourcevisit(node : NumberLiteral)
Sourcevisit(node : CharLiteral)
Sourcevisit(node : SymbolLiteral)
Sourcevisit(node : StringLiteral)
Sourcevisit(node : StringInterpolation)
Sourcevisit(node : ArrayLiteral)
Sourcevisit(node : HashLiteral)
Sourcevisit(node : NamedTupleLiteral)
Sourcevisit(node : NilLiteral)
Sourcevisit(node : Expressions)
Sourcevisit(node : If)
Sourcevisit(node : Unless)
Sourcevisit(node : ClassDef)
Sourcevisit(node : ModuleDef)
Sourcevisit(node : AnnotationDef)
Sourcevisit(node : Call)
Sourcevisit(node : NamedArgument)
Sourcevisit(node : Assign)
Sourcevisit(node : OpAssign)
Sourcevisit(node : MultiAssign)
Sourcevisit(node : While)
Sourcevisit(node : Until)
Sourcevisit(node : Out)
Sourcevisit(node : Var)
Sourcevisit(node : ProcLiteral)
Sourcevisit(node : ProcPointer)
Sourcevisit(node : Def)
Sourcevisit(node : Macro)
Sourcevisit(node : MacroExpression)
Sourcevisit(node : MacroIf)
Sourcevisit(node : MacroFor)
Sourcevisit(node : MacroVar)
Sourcevisit(node : MacroLiteral)
Sourcevisit(node : MacroVerbatim)
Sourcevisit(node : ExternalVar)
Sourcevisit(node : Arg)
Sourcevisit(node : ProcNotation)
Sourcevisit(node : Self)
Sourcevisit(node : Generic)
Sourcevisit(node : Underscore)
Sourcevisit(node : Splat)
Sourcevisit(node : DoubleSplat)
Sourcevisit(node : Metaclass)
Sourcevisit(node : InstanceVar)
Sourcevisit(node : ReadInstanceVar)
Sourcevisit(node : ClassVar)
Sourcevisit(node : Yield)
Sourcevisit(node : Return)
Sourcevisit(node : Break)
Sourcevisit(node : Next)
Sourcevisit(node : RegexLiteral)
Sourcevisit(node : TupleLiteral)
Sourcevisit(node : TypeDeclaration)
Sourcevisit(node : UninitializedVar)
Sourcevisit(node : Block)
Sourcevisit(node : Include)
Sourcevisit(node : Extend)
Sourcevisit(node : And)
Sourcevisit(node : Or)
Sourcevisit(node : Not)
Sourcevisit(node : VisibilityModifier)
Sourcevisit(node : Global)
Sourcevisit(node : LibDef)
Sourcevisit(node : FunDef)
Sourcevisit(node : TypeDef)
Sourcevisit(node : CStructOrUnionDef)
Sourcevisit(node : EnumDef)
Sourcevisit(node : RangeLiteral)
Sourcevisit(node : PointerOf)
Sourcevisit(node : SizeOf)
Sourcevisit(node : InstanceSizeOf)
Sourcevisit(node : OffsetOf)
Sourcevisit(node : IsA)
Sourcevisit(node : Cast)
Sourcevisit(node : NilableCast)
Sourcevisit(node : RespondsTo)
Sourcevisit(node : Require)
Sourcevisit(node : Case)
Sourcevisit(node : When)
Sourcevisit(node : Select)
Sourcevisit(node : ImplicitObj)
Sourcevisit(node : ExceptionHandler)
Sourcevisit(node : Rescue)
Sourcevisit(node : Alias)
Sourcevisit(node : TypeOf)
Sourcevisit(node : Annotation)
Sourcevisit(node : MagicConstant)
Sourcevisit(node : Asm)
Sourcevisit(node : AsmOperand)
Sourcevisit_any(node)
Sourcevisit_backtick(exp)
Sourcevisit_call(node, ignore_obj = false)
Sourcevisit_cast(node, keyword)
Sourcevisit_control(node, keyword)
Sourcevisit_if_or_unless(prefix, node)
Sourcevisit_interpolation(node, &)
Sourcevisit_named_arg_name(name)
Sourcevisit_while_or_until(node, name)
Sourcewith_indent
Source