27#ifndef IDLFE_AST_CODEGEN_H_ 
   28#define IDLFE_AST_CODEGEN_H_ 
   31#if __cplusplus < 201703L && _MSVC_LANG < 201703L 
   32#error C++17 compliant compiler is required. 
The attribute specification.
 
Base for code generators. Abstract class.
 
virtual void leaf(const Struct &)=0
struct
 
virtual void begin(const Interface &)=0
interface begin.
 
virtual void end(const ValueType &)=0
valuetype end.
 
virtual void leaf(const Include &)=0
#include
 
virtual void leaf(const Native &)=0
native
 
virtual void end(const Root &)
 
virtual void leaf(const TypeDef &)=0
typedef
 
virtual void end(const ModuleItems &)=0
module end.
 
virtual void leaf(const StateMember &)=0
valuetype state member.
 
virtual void leaf(const StructDecl &)=0
struct forward declaration.
 
virtual void begin(const ModuleItems &)=0
module begin.
 
virtual void leaf(const Enum &)=0
enum
 
virtual void begin(const Root &)
 
virtual void leaf(const UnionDecl &)=0
union forward declaration.
 
virtual void leaf(const Operation &)=0
Operation.
 
virtual void leaf(const Union &)=0
union
 
virtual void end(const Interface &)=0
interface end.
 
virtual void leaf(const Exception &)=0
exception
 
virtual void leaf(const Attribute &)=0
attribute
 
virtual void leaf(const Constant &)=0
const
 
virtual void leaf(const ValueBox &)=0
Boxed valuetype.
 
virtual void leaf(const InterfaceDecl &)=0
interface forward declaration.
 
virtual void begin(const ValueType &)=0
valuetype begin.
 
virtual void leaf(const ValueTypeDecl &)=0
valuetype forward declaration.
 
virtual void leaf(const ValueFactory &)=0
factory
 
The exception declaration.
 
Interface forward declaration.
 
The seqence of items in a module.
 
Abstract Syntax Tree root.
 
The struct forward declaration.
 
union forward declaration.
 
Value type factory operation.
 
Value type forward declaration.
 
Abstract Syntax Tree namespace.