scalan
package scalan
- Alphabetic
- By Inheritance
- scalan
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
abstract
class
Base extends AnyRef
The Base trait houses common AST nodes.
The Base trait houses common AST nodes. It also manages a list of encountered definitions which allows for common sub-expression elimination (CSE).
- trait DefRewriting extends AnyRef
- trait Entities extends TypeDescs
- trait MethodCalls extends Base with GraphVizExport
- trait Modules extends Base
-
class
Scalan extends TypeDescs with MethodCalls with Tuples with NumericOps with UnBinOps with LogicalOps with OrderingOps with Equal with UniversalOps with Functions with IfThenElse with Transforming with GraphVizExport with Thunks with Entities with Modules with DefRewriting
Aggregate cake with all inter-dependent modules assembled together.
Aggregate cake with all inter-dependent modules assembled together. Each instance of this class contains independent IR context, thus many instances can be created simultaneously. However, the inner types declared in the traits are path-dependant. This in particular means that ctx1.Ref[_] and ctx2.Ref[_] are different types. The typical usage is to create
val ctx = new Scalan
and then import inner declarations usingimport ctx._
. This way the declaration will be directly available as if they were global declarations. At the same time cake design pattern allow tooverride
many methods and values in classed derived fromScalan
, this is significant benefit over *everything is global* design. - abstract class TypeDescs extends Base