module

TopLevelItemParser

Instance methods

parse_abstract_method(loc : Location, receiver : Ast::Parameter, inherited_type_params : Slice(Ast::TypeParameter) | Nil, trait_methods : Array(Ast::AbstractMethod))
Source
parse_colon_and_block(block_base_indent : UInt32 = @current_line_indent) : Ast::Expr

Parses : BLOCK_OF_STATEMENTS

Source
parse_constraints

Parses : Trait & Trait[Int]

Source
parse_constructor(loc : Location, return_type : Ast::Type, type_params : Slice(Ast::TypeParameter) | Nil = nil)
Source
parse_enum(decl_loc : Location) : Ast::Enum | Nil
Source
parse_extend(decl_loc : Location) : Ast::Extend | Nil
Source
parse_field(loc : Location) : Ast::Field
Source
parse_fn_block(fn_loc : Location, inherited_type_params : Slice(Ast::TypeParameter) | Nil = nil, receiver : Ast::Parameter | Nil = nil, trait_method_array : Array(Ast::AbstractMethod) | Nil = nil, external = false)
Source
parse_import(decl_loc : Location) : Ast::Import | Nil
Source
parse_method(loc : Location, receiver : Ast::Parameter, inherited_type_params : Slice(Ast::TypeParameter) | Nil = nil)

Parses a def method in a type declaration block. Examples:

  • fn method_name(param String) -> return_type: <function body>
  • fn mut mutable_method(param Int): <function body>
  • fn foo[T](a T) -> let T: <function body>
  • fn +(other Self) -> Self: <function body> -- overloads + operator
  • fn field_name -> FieldType: <function body> -- acts as a getter
  • fn String String: <function body> -- overloads String constructor
Source
parse_parameter
Source
parse_parameters(params : Array(Ast::Parameter))
Source
parse_parameters?

Parses (p1: Type, p2: Type)

Source
parse_signature(sig_loc : Location, inherited_type_params : Slice(Ast::TypeParameter) | Nil = nil, receiver : Ast::Parameter | Nil = nil) : Ast::Signature | Nil
Source
parse_static(loc : Location, type_name : String, inherited_type_params : Slice(Ast::TypeParameter) | Nil = nil)
Source
parse_struct(decl_loc : Location) : Ast::Struct | Nil

parses a struct, including traits, fields, methods, and any other sub-items

struct Point is Stringable
  field x Int
  field y Int
Source
parse_top_level_item
Source
parse_trait(decl_loc : Location) : Ast::Trait | Nil
Source
parse_traits?

Parses is Trait & Trait[Int]

Source
parse_type_args?

Parses type arguments, e.g., [Arg1, Arg2]

Source
parse_type_expression

Parses a type expression, e.g., MyType, MyGenericType[Arg1, Arg2]

Source
parse_type_header
Source
parse_type_parameters?(inherited_type_params : Slice(Ast::TypeParameter) | Nil = nil) : Slice(Ast::TypeParameter) | Nil

Parses [T, U: Constraint] or [A, B: Constraint1 & Constraint2]

Source
parse_variant(loc : Location, name : String) : Ast::Variant
Source