The src/object Directory

Namespace object. Wrappers around other modules accepting objects syntax.

File: libobject.* (src/object/)

The interface of the object module. It exports the bind, types_check, rename, desugar, raw_desugar, overfun_bind and overfun_types_check. Those are overloads accepting object-related constructs.

File: binder.* (src/object/)

The object::Binder visitor. Binds uses to definitions (works on syntax with objects). Inherits from bind::Binder.

File: overfun-binder.* (src/object/)

The object::OverfunBinder visitor. Binds uses to definitions (works on syntax with objects and with overloading support). Inherits from object::Binder and overload::Binder.

File: type-checker.* (src/object/)

The object::TypeChecker visitor. Computes the types of an AST and adds type labels to the corresponding nodes (works on syntax with objects). Inherits from type::TypeChecker.

File: overfun-type-checker.* (src/object/)

The object::OverfunTypeChecker visitor. Computes the types of an AST and adds type labels to the corresponding nodes (works on syntax with objects and with overloading support). Inherits from object::TypeChecker and overload::TypeChecker.

File: renamer.* (src/object/)

The object::Renamer visitor. Renames every identifier to a unique name (works on syntax with objects), and keeps a record of the names of the renamed classes. Inherits from bind::Renamer.

File: desugar-visitor.* (src/object/)

The object::DesugarVisitor visitor. Transforms an AST with objects into an AST without objects.