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.