Kaba class Class ed

...

Syntax ed

class Class
    var classes: Class&[]
    var constants: Constant&[]
    var elements: ClassElement[]
    var from_template: Class*
    var functions: Function&[]
    var name: string
    var namespace: Class*
    var param: Class&[]
    var parent: Class*
    var size: i32
    var static_variables: Variable&[]
    var traits: Class&[]

    # functions
    func pure cname(ns: Class*) -> string
    func pure get_func(name: string, return_type: Class*, params: Class*[]) -> Function*
    func pure has_trait(trait: Class*) -> bool
    func pure is_array() -> bool
    func pure is_derived_from(c: Class&) -> bool
    func pure is_dict() -> bool
    func pure is_enum() -> bool
    func pure is_interface() -> bool
    func pure is_list() -> bool
    func pure is_namespace() -> bool
    func pure is_pointer_raw() -> bool
    func pure is_some_pointer() -> bool
    func pure is_some_pointer_not_null() -> bool
    func pure is_struct() -> bool
    func pure is_template() -> bool
    func pure is_trait() -> bool
    func pure long_name() -> string

    # operators
    func pure __str__() -> string        # str(Class) -> string

Functions ed

func pure cname(ns: Class*) -> string
...

func pure get_func(name: string, return_type: Class*, params: Class*[]) -> Function*
...

func pure has_trait(trait: Class*) -> bool
...

func pure is_array() -> bool
...

func pure is_derived_from(c: Class&) -> bool
...

func pure is_dict() -> bool
...

func pure is_enum() -> bool
...

func pure is_interface() -> bool
...

func pure is_list() -> bool
...

func pure is_namespace() -> bool
...

func pure is_pointer_raw() -> bool
...

func pure is_some_pointer() -> bool
...

func pure is_some_pointer_not_null() -> bool
...

func pure is_struct() -> bool
...

func pure is_template() -> bool
...

func pure is_trait() -> bool
...

func pure long_name() -> string
...

Elements ed

var classes: Class&[]
...

var constants: Constant&[]
...

var elements: ClassElement[]
...

var from_template: Class*
...

var functions: Function&[]
...

var name: string
...

var namespace: Class*
...

var param: Class&[]
...

var parent: Class*
...

var size: i32
...

var static_variables: Variable&[]
...

var traits: Class&[]
...