Sandbox: Difference between revisions

11,163 bytes added ,  22 November 2007
no edit summary
(wiki bot test)
No edit summary
Line 1: Line 1:
<!-- Besides the comments at the end this page has been generated
This page gives an overview over all Elsa Ast node types. For
  -- with the olmar wiki bot on behalf of Hendrik Tews
each node type it links to a page describing this type.
  -->
'''Disclaimer: The information here has been generated automatically from the [[Olmar]] branch and might therefore be not completely accurate for Elsa.'''


The Elsa ast class type SimpleType has been renamed to [[Elsa Ast Type ATY_Simple|ATY_Simple]] in Olmar.
See there for further information.


=== Comments ===
Elsa Ast nodes use a variant scheme with super- and subtypes. For
instance there is the node type
[[Elsa Ast Type Statement|Statement]] with variants for each
different statement type, for instance
[[Elsa Ast Type S_if|S_if]] for if-statements and
[[Elsa Ast Type S_while|S_while]] for while loops.


''Please make your modifications only below, because the content above will be regenerated automatically from time to time.''
It first follows a table with just the supertype nodes. Further
below there is also a table with all subtype nodes.


<!-- OLMAR SEPARATION LINE: ADD YOUR MODIFICATIONS BELOW! -->
== Elsa Ast Supertype nodes ==


comment
<!-- OLMAR SEPARATION LINE: ADD YOUR MODIFICATIONS OBOVE! -->
== Olmar Ast Supertype nodes without subtypes ==
 
* ASTTypeId
* ASTTypeof
* ArgExpression
* ArgExpressionListOpt
* AtomicType
* Attribute
* AttributeSpecifier
* AttributeSpecifierList
* BaseClass
* BaseClassSpec
* BaseClassSubobj
* CType
* CompilationUnit
* Condition
* Declaration
* Declarator
* Designator
* EnumValue
* Enumerator
* ExceptionSpec
* Expression
* FullExpression
* FullExpressionAnnot
* Function
* FunctionExnSpec
* Handler
* IDeclarator
* InheritedTemplateParams
* Initializer
* Member
* MemberInit
* MemberList
* NamespaceDecl
* OperatorName
* OverloadSet
* PQName
* STemplateArgument
* Scope
* Statement
* TemplateArgument
* TemplateDeclaration
* TemplateInfo
* TemplateParameter
* TopForm
* TranslationUnit
* TypeSpecifier
* Variable
 
== Olmar Ast Supertype nodes with subtypes ==
 
* ASTTypeId : no subnodes
* ASTTypeof subnodes:
** [[Elsa Ast Type TS_typeof_expr|TS_typeof_expr]]
** [[Elsa Ast Type TS_typeof_type|TS_typeof_type]]
* ArgExpression : no subnodes
* ArgExpressionListOpt : no subnodes
* AtomicType subnodes:
** [[Elsa Ast Type ATY_Compound|ATY_Compound]]
** [[Elsa Ast Type ATY_DependentQ|ATY_DependentQ]]
** [[Elsa Ast Type ATY_Enum|ATY_Enum]]
** [[Elsa Ast Type ATY_PseudoInstantiation|ATY_PseudoInstantiation]]
** [[Elsa Ast Type ATY_Simple|ATY_Simple]]
** [[Elsa Ast Type ATY_TypeVariable|ATY_TypeVariable]]
* Attribute subnodes:
** [[Elsa Ast Type AT_empty|AT_empty]]
** [[Elsa Ast Type AT_func|AT_func]]
** [[Elsa Ast Type AT_word|AT_word]]
* AttributeSpecifier : no subnodes
* AttributeSpecifierList : no subnodes
* BaseClass : no subnodes
* BaseClassSpec : no subnodes
* BaseClassSubobj : no subnodes
* CType subnodes:
** [[Elsa Ast Type TY_ArrayType|TY_ArrayType]]
** [[Elsa Ast Type TY_CVAtomicType|TY_CVAtomicType]]
** [[Elsa Ast Type TY_DependentSizedArrayType|TY_DependentSizedArrayType]]
** [[Elsa Ast Type TY_FunctionType|TY_FunctionType]]
** [[Elsa Ast Type TY_PointerToMemberType|TY_PointerToMemberType]]
** [[Elsa Ast Type TY_PointerType|TY_PointerType]]
** [[Elsa Ast Type TY_ReferenceType|TY_ReferenceType]]
* CompilationUnit : no subnodes
* Condition subnodes:
** [[Elsa Ast Type CN_decl|CN_decl]]
** [[Elsa Ast Type CN_expr|CN_expr]]
* Declaration : no subnodes
* Declarator : no subnodes
* Designator subnodes:
** [[Elsa Ast Type FieldDesignator|FieldDesignator]]
** [[Elsa Ast Type SubscriptDesignator|SubscriptDesignator]]
* EnumValue : no subnodes
* Enumerator : no subnodes
* ExceptionSpec : no subnodes
* Expression subnodes:
** [[Elsa Ast Type E___builtin_constant_p|E___builtin_constant_p]]
** [[Elsa Ast Type E___builtin_va_arg|E___builtin_va_arg]]
** [[Elsa Ast Type E_addrOf|E_addrOf]]
** [[Elsa Ast Type E_addrOfLabel|E_addrOfLabel]]
** [[Elsa Ast Type E_alignofExpr|E_alignofExpr]]
** [[Elsa Ast Type E_alignofType|E_alignofType]]
** [[Elsa Ast Type E_arrow|E_arrow]]
** [[Elsa Ast Type E_assign|E_assign]]
** [[Elsa Ast Type E_binary|E_binary]]
** [[Elsa Ast Type E_boolLit|E_boolLit]]
** [[Elsa Ast Type E_cast|E_cast]]
** [[Elsa Ast Type E_charLit|E_charLit]]
** [[Elsa Ast Type E_compoundLit|E_compoundLit]]
** [[Elsa Ast Type E_cond|E_cond]]
** [[Elsa Ast Type E_constructor|E_constructor]]
** [[Elsa Ast Type E_delete|E_delete]]
** [[Elsa Ast Type E_deref|E_deref]]
** [[Elsa Ast Type E_effect|E_effect]]
** [[Elsa Ast Type E_fieldAcc|E_fieldAcc]]
** [[Elsa Ast Type E_floatLit|E_floatLit]]
** [[Elsa Ast Type E_funCall|E_funCall]]
** [[Elsa Ast Type E_gnuCond|E_gnuCond]]
** [[Elsa Ast Type E_grouping|E_grouping]]
** [[Elsa Ast Type E_intLit|E_intLit]]
** [[Elsa Ast Type E_keywordCast|E_keywordCast]]
** [[Elsa Ast Type E_new|E_new]]
** [[Elsa Ast Type E_sizeof|E_sizeof]]
** [[Elsa Ast Type E_sizeofType|E_sizeofType]]
** [[Elsa Ast Type E_statement|E_statement]]
** [[Elsa Ast Type E_stdConv|E_stdConv]]
** [[Elsa Ast Type E_stringLit|E_stringLit]]
** [[Elsa Ast Type E_this|E_this]]
** [[Elsa Ast Type E_throw|E_throw]]
** [[Elsa Ast Type E_typeidExpr|E_typeidExpr]]
** [[Elsa Ast Type E_typeidType|E_typeidType]]
** [[Elsa Ast Type E_unary|E_unary]]
** [[Elsa Ast Type E_variable|E_variable]]
* FullExpression : no subnodes
* FullExpressionAnnot : no subnodes
* Function : no subnodes
* FunctionExnSpec : no subnodes
* Handler : no subnodes
* IDeclarator subnodes:
** [[Elsa Ast Type D_array|D_array]]
** [[Elsa Ast Type D_bitfield|D_bitfield]]
** [[Elsa Ast Type D_func|D_func]]
** [[Elsa Ast Type D_grouping|D_grouping]]
** [[Elsa Ast Type D_name|D_name]]
** [[Elsa Ast Type D_pointer|D_pointer]]
** [[Elsa Ast Type D_ptrToMember|D_ptrToMember]]
** [[Elsa Ast Type D_reference|D_reference]]
* InheritedTemplateParams : no subnodes
* Initializer subnodes:
** [[Elsa Ast Type IN_compound|IN_compound]]
** [[Elsa Ast Type IN_ctor|IN_ctor]]
** [[Elsa Ast Type IN_designated|IN_designated]]
** [[Elsa Ast Type IN_expr|IN_expr]]
* Member subnodes:
** [[Elsa Ast Type MR_access|MR_access]]
** [[Elsa Ast Type MR_decl|MR_decl]]
** [[Elsa Ast Type MR_func|MR_func]]
** [[Elsa Ast Type MR_template|MR_template]]
** [[Elsa Ast Type MR_usingDecl|MR_usingDecl]]
* MemberInit : no subnodes
* MemberList : no subnodes
* NamespaceDecl subnodes:
** [[Elsa Ast Type ND_alias|ND_alias]]
** [[Elsa Ast Type ND_usingDecl|ND_usingDecl]]
** [[Elsa Ast Type ND_usingDir|ND_usingDir]]
* OperatorName subnodes:
** [[Elsa Ast Type ON_conversion|ON_conversion]]
** [[Elsa Ast Type ON_newDel|ON_newDel]]
** [[Elsa Ast Type ON_operator|ON_operator]]
* OverloadSet : no subnodes
* PQName subnodes:
** [[Elsa Ast Type PQ_name|PQ_name]]
** [[Elsa Ast Type PQ_operator|PQ_operator]]
** [[Elsa Ast Type PQ_qualifier|PQ_qualifier]]
** [[Elsa Ast Type PQ_template|PQ_template]]
** [[Elsa Ast Type PQ_variable|PQ_variable]]
* STemplateArgument subnodes:
** [[Elsa Ast Type STA_ATOMIC|STA_ATOMIC]]
** [[Elsa Ast Type STA_DEPEXPR|STA_DEPEXPR]]
** [[Elsa Ast Type STA_ENUMERATOR|STA_ENUMERATOR]]
** [[Elsa Ast Type STA_INT|STA_INT]]
** [[Elsa Ast Type STA_MEMBER|STA_MEMBER]]
** [[Elsa Ast Type STA_NONE|STA_NONE]]
** [[Elsa Ast Type STA_POINTER|STA_POINTER]]
** [[Elsa Ast Type STA_REFERENCE|STA_REFERENCE]]
** [[Elsa Ast Type STA_TEMPLATE|STA_TEMPLATE]]
** [[Elsa Ast Type STA_TYPE|STA_TYPE]]
* Scope : no subnodes
* Statement subnodes:
** [[Elsa Ast Type S_asm|S_asm]]
** [[Elsa Ast Type S_break|S_break]]
** [[Elsa Ast Type S_case|S_case]]
** [[Elsa Ast Type S_compound|S_compound]]
** [[Elsa Ast Type S_computedGoto|S_computedGoto]]
** [[Elsa Ast Type S_continue|S_continue]]
** [[Elsa Ast Type S_decl|S_decl]]
** [[Elsa Ast Type S_default|S_default]]
** [[Elsa Ast Type S_doWhile|S_doWhile]]
** [[Elsa Ast Type S_expr|S_expr]]
** [[Elsa Ast Type S_for|S_for]]
** [[Elsa Ast Type S_function|S_function]]
** [[Elsa Ast Type S_goto|S_goto]]
** [[Elsa Ast Type S_if|S_if]]
** [[Elsa Ast Type S_label|S_label]]
** [[Elsa Ast Type S_namespaceDecl|S_namespaceDecl]]
** [[Elsa Ast Type S_rangeCase|S_rangeCase]]
** [[Elsa Ast Type S_return|S_return]]
** [[Elsa Ast Type S_skip|S_skip]]
** [[Elsa Ast Type S_switch|S_switch]]
** [[Elsa Ast Type S_try|S_try]]
** [[Elsa Ast Type S_while|S_while]]
* TemplateArgument subnodes:
** [[Elsa Ast Type TA_nontype|TA_nontype]]
** [[Elsa Ast Type TA_templateUsed|TA_templateUsed]]
** [[Elsa Ast Type TA_type|TA_type]]
* TemplateDeclaration subnodes:
** [[Elsa Ast Type TD_decl|TD_decl]]
** [[Elsa Ast Type TD_func|TD_func]]
** [[Elsa Ast Type TD_tmember|TD_tmember]]
* TemplateInfo : no subnodes
* TemplateParameter subnodes:
** [[Elsa Ast Type TP_nontype|TP_nontype]]
** [[Elsa Ast Type TP_type|TP_type]]
* TopForm subnodes:
** [[Elsa Ast Type TF_asm|TF_asm]]
** [[Elsa Ast Type TF_decl|TF_decl]]
** [[Elsa Ast Type TF_explicitInst|TF_explicitInst]]
** [[Elsa Ast Type TF_func|TF_func]]
** [[Elsa Ast Type TF_linkage|TF_linkage]]
** [[Elsa Ast Type TF_namespaceDecl|TF_namespaceDecl]]
** [[Elsa Ast Type TF_namespaceDefn|TF_namespaceDefn]]
** [[Elsa Ast Type TF_one_linkage|TF_one_linkage]]
** [[Elsa Ast Type TF_template|TF_template]]
* TranslationUnit : no subnodes
* TypeSpecifier subnodes:
** [[Elsa Ast Type TS_classSpec|TS_classSpec]]
** [[Elsa Ast Type TS_elaborated|TS_elaborated]]
** [[Elsa Ast Type TS_enumSpec|TS_enumSpec]]
** [[Elsa Ast Type TS_name|TS_name]]
** [[Elsa Ast Type TS_simple|TS_simple]]
** [[Elsa Ast Type TS_type|TS_type]]
** [[Elsa Ast Type TS_typeof|TS_typeof]]
* Variable : no subnodes
 
<!-- easy to parse list of all node types
%s PointerToMemberType DependentSizedArrayType ArrayType FunctionType ReferenceType PointerType CVAtomicType DependentQType TypeVariable PseudoInstantiation EnumType CompoundType SimpleType
wiki page name prefix:  Elsa Ast Type
CompilationUnit
TranslationUnit
TopForm TF_decl TF_func TF_template TF_explicitInst TF_linkage TF_one_linkage TF_asm TF_namespaceDefn TF_namespaceDecl
Function
MemberInit
Declaration
ASTTypeId
PQName PQ_qualifier PQ_name PQ_operator PQ_template PQ_variable
TypeSpecifier TS_name TS_simple TS_elaborated TS_classSpec TS_enumSpec TS_type TS_typeof
BaseClassSpec
Enumerator
MemberList
Member MR_decl MR_func MR_access MR_usingDecl MR_template
ExceptionSpec
OperatorName ON_newDel ON_operator ON_conversion
Statement S_skip S_label S_case S_default S_expr S_compound S_if S_switch S_while S_doWhile S_for S_break S_continue S_return S_goto S_decl S_try S_asm S_namespaceDecl S_function S_rangeCase S_computedGoto
Condition CN_expr CN_decl
Handler
Expression E_boolLit E_intLit E_floatLit E_stringLit E_charLit E_this E_variable E_funCall E_constructor E_fieldAcc E_sizeof E_unary E_effect E_binary E_addrOf E_deref E_cast E_cond E_sizeofType E_assign E_new E_delete E_throw E_keywordCast E_typeidExpr E_typeidType E_grouping E_arrow E_stdConv E_statement E_compoundLit E___builtin_constant_p E___builtin_va_arg E_alignofType E_alignofExpr E_gnuCond E_addrOfLabel
FullExpression
ArgExpression
ArgExpressionListOpt
Initializer IN_expr IN_compound IN_ctor IN_designated
TemplateDeclaration TD_func TD_decl TD_tmember
TemplateParameter TP_type TP_nontype
TemplateArgument TA_type TA_nontype TA_templateUsed
NamespaceDecl ND_alias ND_usingDecl ND_usingDir
Declarator
IDeclarator D_name D_pointer D_reference D_func D_array D_bitfield D_ptrToMember D_grouping
FullExpressionAnnot
ASTTypeof TS_typeof_expr TS_typeof_type
Designator FieldDesignator SubscriptDesignator
AttributeSpecifierList
AttributeSpecifier
Attribute AT_empty AT_word AT_func
Variable
OverloadSet
TemplateInfo
InheritedTemplateParams
BaseClass
BaseClassSubobj
EnumValue
AtomicType ATY_Simple ATY_Compound ATY_Enum ATY_PseudoInstantiation ATY_TypeVariable ATY_DependentQ
FunctionExnSpec
CType TY_CVAtomicType TY_PointerType TY_ReferenceType TY_FunctionType TY_ArrayType TY_DependentSizedArrayType TY_PointerToMemberType
STemplateArgument STA_NONE STA_TYPE STA_INT STA_ENUMERATOR STA_REFERENCE STA_POINTER STA_MEMBER STA_DEPEXPR STA_TEMPLATE STA_ATOMIC
Scope
end of node type list -->