NAME

Zuzu::Parser::_Impl - recursive-descent parser implementation

DESCRIPTION

Implements token-driven parsing routines that build typed AST node objects and enforce basic syntax rules.

INHERITANCE

Inherits from Moo::Object.

ROLES

None.

ATTRIBUTES

lexer

Type: InstanceOf["Zuzu::Lexer"].

Lexer instance that provides the token stream.

filename

Type: Maybe[Str].

Filename attached to generated tokens and parser errors.

tok

Type: InstanceOf["Zuzu::Token"].

Current lookahead token.

scopes

Type: ArrayRef[HashRef].

Stack of parser-declared symbol tables for lexical scopes.

METHODS

new

Constructs and returns a new instance of this class.

parse_program

Parses a program construct and returns its AST node.

parse_statement

Parses a statement construct and returns its AST node.

parse_block

Parses a block construct and returns its AST node.

parse_let

Parses a let construct and returns its AST node.

parse_function_def

Parses a function def construct and returns its AST node.

parse_class_def

Parses a class def construct and returns its AST node.

parse_trait_def

Parses a trait def construct and returns its AST node.

parse_type_ref

Parses a type ref construct and returns its AST node.

parse_method_def

Parses a method def construct and returns its AST node.

parse_if

Parses a if construct and returns its AST node.

parse_while

Parses a while construct and returns its AST node.

parse_for

Parses a for construct and returns its AST node.

parse_return

Parses a return construct and returns its AST node.

parse_import

Parses a import construct and returns its AST node.

parse_expression

Parses a expression construct and returns its AST node.

parse_prefix

Parses a prefix construct and returns its AST node.

parse_primary

Parses a primary construct and returns its AST node.

parse_postfix

Parses a postfix construct and returns its AST node.

parse_array_literal

Parses a array literal construct and returns its AST node.

parse_dict_literal

Parses a dict literal construct and returns its AST node.

parse_set_literal

Parses a set literal construct and returns its AST node.

parse_bag_literal

Parses a bag literal construct and returns its AST node.

SEE ALSO

Subclasses: none in this distribution.

COPYRIGHT AND LICENCE

Zuzu::Parser::_Impl is copyright Toby Inkster.

It is free software; you may redistribute it and/or modify it under the terms of either the Artistic License 1.0 or the GNU General Public License version 2.