Zuzu::AST::Stmt::Class(3)

NAME
Zuzu::AST::Stmt::Class - AST node for class statements

DESCRIPTION
Represents a class declaration with optional inheritance, fields, methods, and nested classes.

INHERITANCE
Inherits from "Moo::Object".

ROLES
Consumes "Zuzu::AST::Role::Node".

ATTRIBUTES

  name
Type: Str.

Identifier name declared or referenced by the node/value.

  parent
Type: Maybe[InstanceOf["Zuzu::AST::Expr::TypeRef"]].

Optional parent class name used for inheritance lookup.

  traits
Type: ArrayRef[InstanceOf["Zuzu::AST::Expr::TypeRef"]].

Trait references mixed into this class via "with" or "but".

  fields
Type: ArrayRef[HashRef].

Ordered field declarations with "name", "is_const", and "init".

  methods
Type: ArrayRef[InstanceOf["Zuzu::AST::Stmt::Method"]].

Instance methods declared in this class.

  static_methods
Type: ArrayRef[InstanceOf["Zuzu::AST::Stmt::Method"]].

Static methods declared in this class.

  classes
Type: ArrayRef[InstanceOf["Zuzu::AST::Stmt::Class"]].

Nested class declarations scoped within this class.

METHODS

  evaluate
Dispatches this AST node to the matching runtime evaluator.

SEE ALSO
"Zuzu::AST::Role::Node".

Subclasses: none in this distribution.

COPYRIGHT AND LICENCE
Zuzu::AST::Stmt::Class 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.