tipc
A TIP to LLVM compiler
|
Abstract base class of all types. More...
#include <TipType.h>
Public Member Functions | |
virtual bool | operator== (const TipType &other) const =0 |
virtual bool | operator!= (const TipType &other) const =0 |
virtual | ~TipType ()=default |
virtual void | accept (TipTypeVisitor *visitor)=0 |
Protected Member Functions | |
virtual std::ostream & | print (std::ostream &out) const =0 |
Friends | |
std::ostream & | operator<< (std::ostream &os, const TipType &obj) |
Abstract base class of all types.
Defines equality comparisons, output operator, and accept for visitor. Type variables and operators, like mu, directly subtype TipType. All other types, e.g., ints, functions, etc., are subtypes of TipCons, since this allows type unification to just handle TipCons. Consequently, it means that if you want to extend the types supported you will need to subtype TipCons.
|
virtualdefault |
|
pure virtual |
Implemented in TipVar, TipRef, TipRecord, TipMu, TipInt, TipFunction, TipAlpha, and TipAbsentField.
|
pure virtual |
Implemented in TipVar, TipRef, TipRecord, TipMu, TipInt, TipFunction, TipAlpha, and TipAbsentField.
|
pure virtual |
Implemented in TipVar, TipRef, TipRecord, TipMu, TipInt, TipFunction, TipAlpha, and TipAbsentField.
|
protectedpure virtual |
Implemented in TipVar, TipRef, TipRecord, TipMu, TipInt, TipFunction, TipAlpha, and TipAbsentField.
|
friend |