class

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)
Source

Instance methods

accept_with_indent(node : Expressions)
Source
accept_with_indent(node : Nop)
Source
accept_with_indent(node : ASTNode)
Source
append_indent
Source
in_parenthesis(need_parens, &)
Source
in_parenthesis(need_parens, node)
Source
indent_string
Source
inside_macro
Source
needs_suffix?(node : NumberLiteral)
Source
newline
Source
outside_macro
Source
to_s(io : IO) : Nil

Appends 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>
Source
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.

Source
to_s_binary(node, op)
Source
visit(node : Nop)
Source
visit(node : BoolLiteral)
Source
visit(node : NumberLiteral)
Source
visit(node : CharLiteral)
Source
visit(node : SymbolLiteral)
Source
visit(node : StringLiteral)
Source
visit(node : StringInterpolation)
Source
visit(node : ArrayLiteral)
Source
visit(node : HashLiteral)
Source
visit(node : NamedTupleLiteral)
Source
visit(node : NilLiteral)
Source
visit(node : Expressions)
Source
visit(node : If)
Source
visit(node : Unless)
Source
visit(node : ClassDef)
Source
visit(node : ModuleDef)
Source
visit(node : AnnotationDef)
Source
visit(node : Call)
Source
visit(node : NamedArgument)
Source
visit(node : Assign)
Source
visit(node : OpAssign)
Source
visit(node : MultiAssign)
Source
visit(node : While)
Source
visit(node : Until)
Source
visit(node : Out)
Source
visit(node : Var)
Source
visit(node : ProcLiteral)
Source
visit(node : ProcPointer)
Source
visit(node : Def)
Source
visit(node : Macro)
Source
visit(node : MacroExpression)
Source
visit(node : MacroIf)
Source
visit(node : MacroFor)
Source
visit(node : MacroVar)
Source
visit(node : MacroLiteral)
Source
visit(node : MacroVerbatim)
Source
visit(node : ExternalVar)
Source
visit(node : Arg)
Source
visit(node : ProcNotation)
Source
visit(node : Self)
Source
visit(node : Path)
Source
visit(node : Generic)
Source
visit(node : Underscore)
Source
visit(node : Splat)
Source
visit(node : DoubleSplat)
Source
visit(node : Union)
Source
visit(node : Metaclass)
Source
visit(node : InstanceVar)
Source
visit(node : ReadInstanceVar)
Source
visit(node : ClassVar)
Source
visit(node : Yield)
Source
visit(node : Return)
Source
visit(node : Break)
Source
visit(node : Next)
Source
visit(node : RegexLiteral)
Source
visit(node : TupleLiteral)
Source
visit(node : TypeDeclaration)
Source
visit(node : UninitializedVar)
Source
visit(node : Block)
Source
visit(node : Include)
Source
visit(node : Extend)
Source
visit(node : And)
Source
visit(node : Or)
Source
visit(node : Not)
Source
visit(node : VisibilityModifier)
Source
visit(node : Global)
Source
visit(node : LibDef)
Source
visit(node : FunDef)
Source
visit(node : TypeDef)
Source
visit(node : CStructOrUnionDef)
Source
visit(node : EnumDef)
Source
visit(node : RangeLiteral)
Source
visit(node : PointerOf)
Source
visit(node : SizeOf)
Source
visit(node : InstanceSizeOf)
Source
visit(node : OffsetOf)
Source
visit(node : IsA)
Source
visit(node : Cast)
Source
visit(node : NilableCast)
Source
visit(node : RespondsTo)
Source
visit(node : Require)
Source
visit(node : Case)
Source
visit(node : When)
Source
visit(node : Select)
Source
visit(node : ImplicitObj)
Source
visit(node : ExceptionHandler)
Source
visit(node : Rescue)
Source
visit(node : Alias)
Source
visit(node : TypeOf)
Source
visit(node : Annotation)
Source
visit(node : MagicConstant)
Source
visit(node : Asm)
Source
visit(node : AsmOperand)
Source
visit_any(node)
Source
visit_backtick(exp)
Source
visit_call(node, ignore_obj = false)
Source
visit_cast(node, keyword)
Source
visit_control(node, keyword)
Source
visit_if_or_unless(prefix, node)
Source
visit_interpolation(node, &)
Source
visit_named_arg_name(name)
Source
visit_symbol_literal_value(value : String)
Source
visit_while_or_until(node, name)
Source
with_indent
Source