27#ifndef IDLFE_AST_VALUETYPE_H_
28#define IDLFE_AST_VALUETYPE_H_
91 template <
class T>
friend class Ptr;
100 const char* modifier_name () const noexcept;
102 void set_truncatable ()
104 assert (modifier_ == Modifier::NONE);
108 void add_base (
const ValueType& vt)
110 bases_.push_back (&vt);
113 void add_supports (
const Interface& itf)
115 supports_.push_back (&itf);
118 void get_all_interfaces (IV_Bases& all)
const;
141 template <
class T>
friend class Ptr;
The common base for Interface and ValueType.
@ VALUE_TYPE
class ValueType
@ VALUE_TYPE_DECL
class ValueTypeDecl
Items which have repository identifiers derive from this class.
const Identifier & name() const noexcept
The IDL simple declarator.
Value type forward declaration.
bool is_abstract() const noexcept
const ValueTypes & bases() const noexcept
Modifier modifier() const noexcept
Modifier
Value type modifier.
const Interfaces & supports() const noexcept
Abstract Syntax Tree namespace.
std::vector< const Interface * > Interfaces
The sequence of interfaces.
std::vector< const ValueType * > ValueTypes
The sequence of value types.