class

Parser

Inherits TopLevelItemParser < TokenNavigation < Reference < Object

Constructors

new(lexer : Lexer, log : Logger, declarations : Array(Ast::TopLevelItem) = [] of Ast::TopLevelItem)
Source
new(text : String, file_path : String, starting_line, log_level : Logger::Level = Logger::Level::Warning)
Source
new(tokens : Array(Token), log : Logger, declarations : Array(Ast::TopLevelItem) = [] of Ast::TopLevelItem)
Source

Instance methods

current_line_indent

property lexer : Lexer @peeked : Token? = nil

Source
current_line_indent=(current_line_indent : UInt32)

property lexer : Lexer @peeked : Token? = nil

Source
declarations
Source
log=(log : Logger)
Source
parse

== Main Entry Point ==

Source
parse_expression(expression_indent : UInt32, stop_at : StopAt = StopAt::Normal)
Source
parse_expression(stop : StopAt = StopAt::Normal)
Source
tree_branch(loc : Location, block_indent : UInt32, &)
Source
tree_branch(loc : Location, &)

perform a block of code once if the parser finds a single line of code, or multiple times if it finds indented items loc is the location of the beginning of the expression/definition

Source

Nested types