class Taro::Compiler::Ast::FuncDef

Overview

A function definition. Parameters are supplied in parentheses. If the function does not accept parameters then parentheses can be omitted Must start with a lowercase letter Must have a return type

def main(param1 : String, param2 : Int32) : Unit { body }

Defined in:

compiler/parser/ast/func_def.cr

Constructors

Instance Method Summary

Instance methods inherited from class Taro::Compiler::Ast::Node

accept(visitor) accept, accept_children(visitor) accept_children, at(location : Location)
at(node : Node)
at(node : Nil)
at
, at_end(end_location : Location)
at_end(node : Node)
at_end(node : Nil)
at_end
, class_desc : String class_desc, end_location : Location | Nil end_location, end_location=(end_location : Location | Nil) end_location=, location : Location | Nil location, location=(location : Location | Nil) location=

Constructor Detail

def self.new(name : String, params : Array(Taro::Compiler::Ast::Param) = [] of Param, return_type : Taro::Compiler::Ast::ReturnType = Unit.new, body : Taro::Compiler::Ast::Node = Nop.new) #

[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def accept_children(visitor) #

[View source]
def body : Node #

[View source]
def body=(body : Node) #

[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def name : String #

[View source]
def name=(name : String) #

[View source]
def params : Array(Param) #

[View source]
def params=(params : Array(Param)) #

[View source]
def return_type : ReturnType #

[View source]
def return_type=(return_type : ReturnType) #

[View source]