4 #ifndef ILANG_ILA_OBJECT_H__
5 #define ILANG_ILA_OBJECT_H__
28 typedef std::shared_ptr<Object>
ObjPtr;
37 virtual bool is_instr()
const {
return false; }
39 virtual bool is_ast()
const {
return false; }
43 virtual std::ostream&
Print(std::ostream& out)
const = 0;
59 #endif // ILANG_ILA_OBJECT_H__
virtual bool is_ast() const
Is type Ast.
Definition: object.h:39
virtual bool is_instr_lvl_abs() const
Is type InstrLvlAbs.
Definition: object.h:35
virtual bool is_instr() const
Is type Instr.
Definition: object.h:37
virtual ~Object()
Default destructor.
virtual std::ostream & Print(std::ostream &out) const =0
Output function.
std::shared_ptr< Object > ObjPtr
Pointer type for normal use of Object.
Definition: object.h:28
The basest type in the ILA structure. It can be either Ast, Instr, or InstrLvlAbs.
Definition: object.h:17
The symbol is the name and ID of an object. Every object has an unique symbol.
Definition: symbol.h:16
Object::ObjPtr ObjPtr
Pointer type for normal use of Object.
Definition: object.h:55
Object()
Default constructor.
const Symbol & name() const
Get the symbol (name).