Alien-SmokeQt
view release on metacpan or search on metacpan
generator/parser/ast.h view on Meta::CPAN
};
struct InitializerAST: public AST
{
DECLARE_AST_NODE(Initializer)
InitializerClauseAST *initializer_clause;
ExpressionAST *expression;
};
struct InitializerClauseAST: public AST
{
DECLARE_AST_NODE(InitializerClause)
// either 'expression' or 'initializer_list' or neither are used.
// neither are used when the clause represents the empty initializer "{}"
// assignment expression
ExpressionAST *expression;
const ListNode<InitializerClauseAST*> *initializer_list;
};
struct LabeledStatementAST: public StatementAST
{
DECLARE_AST_NODE(LabeledStatement)
std::size_t label;
//The constant label expression
ExpressionAST *expression;
StatementAST* statement;
};
struct LinkageBodyAST: public AST
{
DECLARE_AST_NODE(LinkageBody)
const ListNode<DeclarationAST*> *declarations;
};
struct LinkageSpecificationAST: public DeclarationAST
{
DECLARE_AST_NODE(LinkageSpecification)
std::size_t extern_type;
LinkageBodyAST *linkage_body;
DeclarationAST *declaration;
};
struct MemInitializerAST: public AST
{
DECLARE_AST_NODE(MemInitializer)
NameAST *initializer_id;
ExpressionAST *expression;
};
struct NameAST: public AST
{
DECLARE_AST_NODE(Name)
bool global;
const ListNode<UnqualifiedNameAST*> *qualified_names;
UnqualifiedNameAST *unqualified_name;
};
struct NamespaceAST: public DeclarationAST
{
DECLARE_AST_NODE(Namespace)
std::size_t namespace_name;
LinkageBodyAST *linkage_body;
};
struct NamespaceAliasDefinitionAST: public DeclarationAST
{
DECLARE_AST_NODE(NamespaceAliasDefinition)
std::size_t namespace_name;
NameAST *alias_name;
};
struct NewDeclaratorAST: public AST
{
DECLARE_AST_NODE(NewDeclarator)
PtrOperatorAST *ptr_op;
NewDeclaratorAST *sub_declarator;
const ListNode<ExpressionAST*> *expressions;
};
struct NewExpressionAST: public ExpressionAST
{
DECLARE_AST_NODE(NewExpression)
std::size_t scope_token;
std::size_t new_token;
ExpressionAST *expression;
TypeIdAST *type_id;
NewTypeIdAST *new_type_id;
NewInitializerAST *new_initializer;
};
struct NewInitializerAST: public AST
{
DECLARE_AST_NODE(NewInitializer)
ExpressionAST *expression;
};
struct NewTypeIdAST: public AST
{
DECLARE_AST_NODE(NewTypeId)
TypeSpecifierAST *type_specifier;
NewInitializerAST *new_initializer;
NewDeclaratorAST *new_declarator;
};
struct OperatorAST: public AST
{
DECLARE_AST_NODE(Operator)
( run in 0.621 second using v1.01-cache-2.11-cpan-13bb782fe5a )