Elsa ast nodes: Difference between revisions
Jump to navigation
Jump to search
Hendrik Tews (talk | contribs) (sorted subtype node list) |
mNo edit summary |
||
| (7 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
<!-- Besides the intro at the top this page has been generated\n | |||
-- with the olmar wiki bot on behalf of Hendrik Tews. | |||
--> | |||
This documents [http://askra.de/software/olmar/ Olmar] which was used to [https://blog.mozilla.org/tglek/2007/07/13/dehydra-prcheck-squash-in-mercurial/ analyze the Mozilla code base] | |||
This page gives an overview over all Elsa Ast node types. For | This page gives an overview over all Elsa Ast node types. For | ||
each node type it links to a page describing this type. | each node type it links to a page describing this type. | ||
| Line 14: | Line 19: | ||
below there is also a table with all subtype nodes. | below there is also a table with all subtype nodes. | ||
== | <!-- OLMAR SEPARATION LINE: ADD YOUR MODIFICATIONS OBOVE! --> | ||
== Olmar Ast Supertype nodes without subtypes == | |||
* [[Elsa Ast Type ASTTypeId|ASTTypeId]] | * [[Elsa Ast Type ASTTypeId|ASTTypeId]] | ||
| Line 22: | Line 26: | ||
* [[Elsa Ast Type ArgExpression|ArgExpression]] | * [[Elsa Ast Type ArgExpression|ArgExpression]] | ||
* [[Elsa Ast Type ArgExpressionListOpt|ArgExpressionListOpt]] | * [[Elsa Ast Type ArgExpressionListOpt|ArgExpressionListOpt]] | ||
* [[Elsa Ast Type AtomicType|AtomicType]] | |||
* [[Elsa Ast Type Attribute|Attribute]] | * [[Elsa Ast Type Attribute|Attribute]] | ||
* [[Elsa Ast Type AttributeSpecifier|AttributeSpecifier]] | * [[Elsa Ast Type AttributeSpecifier|AttributeSpecifier]] | ||
* [[Elsa Ast Type AttributeSpecifierList|AttributeSpecifierList]] | * [[Elsa Ast Type AttributeSpecifierList|AttributeSpecifierList]] | ||
* [[Elsa Ast Type BaseClass|BaseClass]] | |||
* [[Elsa Ast Type BaseClassSpec|BaseClassSpec]] | * [[Elsa Ast Type BaseClassSpec|BaseClassSpec]] | ||
* [[Elsa Ast Type BaseClassSubobj|BaseClassSubobj]] | |||
* [[Elsa Ast Type CType|CType]] | |||
* [[Elsa Ast Type CompilationUnit|CompilationUnit]] | |||
* [[Elsa Ast Type Condition|Condition]] | * [[Elsa Ast Type Condition|Condition]] | ||
* [[Elsa Ast Type Declaration|Declaration]] | * [[Elsa Ast Type Declaration|Declaration]] | ||
* [[Elsa Ast Type Declarator|Declarator]] | * [[Elsa Ast Type Declarator|Declarator]] | ||
* [[Elsa Ast Type Designator|Designator]] | * [[Elsa Ast Type Designator|Designator]] | ||
* [[Elsa Ast Type EnumValue|EnumValue]] | |||
* [[Elsa Ast Type Enumerator|Enumerator]] | * [[Elsa Ast Type Enumerator|Enumerator]] | ||
* [[Elsa Ast Type ExceptionSpec|ExceptionSpec]] | * [[Elsa Ast Type ExceptionSpec|ExceptionSpec]] | ||
| Line 36: | Line 46: | ||
* [[Elsa Ast Type FullExpressionAnnot|FullExpressionAnnot]] | * [[Elsa Ast Type FullExpressionAnnot|FullExpressionAnnot]] | ||
* [[Elsa Ast Type Function|Function]] | * [[Elsa Ast Type Function|Function]] | ||
* [[Elsa Ast Type FunctionExnSpec|FunctionExnSpec]] | |||
* [[Elsa Ast Type Handler|Handler]] | * [[Elsa Ast Type Handler|Handler]] | ||
* [[Elsa Ast Type IDeclarator|IDeclarator]] | * [[Elsa Ast Type IDeclarator|IDeclarator]] | ||
| Line 45: | Line 56: | ||
* [[Elsa Ast Type NamespaceDecl|NamespaceDecl]] | * [[Elsa Ast Type NamespaceDecl|NamespaceDecl]] | ||
* [[Elsa Ast Type OperatorName|OperatorName]] | * [[Elsa Ast Type OperatorName|OperatorName]] | ||
* [[Elsa Ast Type OverloadSet|OverloadSet]] | |||
* [[Elsa Ast Type PQName|PQName]] | * [[Elsa Ast Type PQName|PQName]] | ||
* [[Elsa Ast Type STemplateArgument|STemplateArgument]] | |||
* [[Elsa Ast Type Scope|Scope]] | |||
* [[Elsa Ast Type Statement|Statement]] | * [[Elsa Ast Type Statement|Statement]] | ||
* [[Elsa Ast Type TemplateArgument|TemplateArgument]] | * [[Elsa Ast Type TemplateArgument|TemplateArgument]] | ||
| Line 56: | Line 70: | ||
* [[Elsa Ast Type Variable|Variable]] | * [[Elsa Ast Type Variable|Variable]] | ||
== Olmar Ast Supertype nodes with subtypes == | |||
== | |||
* [[Elsa Ast Type ASTTypeId|ASTTypeId]] : no subnodes | * [[Elsa Ast Type ASTTypeId|ASTTypeId]] : no subnodes | ||
* [[Elsa Ast Type ASTTypeof|ASTTypeof]] subnodes: | * [[Elsa Ast Type ASTTypeof|ASTTypeof]] subnodes: | ||
** [[Elsa Ast Type | ** [[Elsa Ast Type AST_typeof_expr|AST_typeof_expr]] | ||
** [[Elsa Ast Type | ** [[Elsa Ast Type AST_typeof_type|AST_typeof_type]] | ||
* [[Elsa Ast Type ArgExpression|ArgExpression]] : no subnodes | * [[Elsa Ast Type ArgExpression|ArgExpression]] : no subnodes | ||
* [[Elsa Ast Type ArgExpressionListOpt|ArgExpressionListOpt]] : no subnodes | * [[Elsa Ast Type ArgExpressionListOpt|ArgExpressionListOpt]] : no subnodes | ||
* [[Elsa Ast Type AtomicType|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]] | |||
* [[Elsa Ast Type Attribute|Attribute]] subnodes: | * [[Elsa Ast Type Attribute|Attribute]] subnodes: | ||
** [[Elsa Ast Type AT_empty|AT_empty]] | ** [[Elsa Ast Type AT_empty|AT_empty]] | ||
| Line 71: | Line 91: | ||
* [[Elsa Ast Type AttributeSpecifier|AttributeSpecifier]] : no subnodes | * [[Elsa Ast Type AttributeSpecifier|AttributeSpecifier]] : no subnodes | ||
* [[Elsa Ast Type AttributeSpecifierList|AttributeSpecifierList]] : no subnodes | * [[Elsa Ast Type AttributeSpecifierList|AttributeSpecifierList]] : no subnodes | ||
* [[Elsa Ast Type BaseClass|BaseClass]] : no subnodes | |||
* [[Elsa Ast Type BaseClassSpec|BaseClassSpec]] : no subnodes | * [[Elsa Ast Type BaseClassSpec|BaseClassSpec]] : no subnodes | ||
* [[Elsa Ast Type BaseClassSubobj|BaseClassSubobj]] : no subnodes | |||
* [[Elsa Ast Type CType|CType]] subnodes: | |||
** [[Elsa Ast Type TY_Array|TY_Array]] | |||
** [[Elsa Ast Type TY_CVAtomic|TY_CVAtomic]] | |||
** [[Elsa Ast Type TY_DependentSizedArray|TY_DependentSizedArray]] | |||
** [[Elsa Ast Type TY_Function|TY_Function]] | |||
** [[Elsa Ast Type TY_Pointer|TY_Pointer]] | |||
** [[Elsa Ast Type TY_PointerToMember|TY_PointerToMember]] | |||
** [[Elsa Ast Type TY_Reference|TY_Reference]] | |||
* [[Elsa Ast Type CompilationUnit|CompilationUnit]] : no subnodes | |||
* [[Elsa Ast Type Condition|Condition]] subnodes: | * [[Elsa Ast Type Condition|Condition]] subnodes: | ||
** [[Elsa Ast Type CN_decl|CN_decl]] | ** [[Elsa Ast Type CN_decl|CN_decl]] | ||
| Line 80: | Line 111: | ||
** [[Elsa Ast Type FieldDesignator|FieldDesignator]] | ** [[Elsa Ast Type FieldDesignator|FieldDesignator]] | ||
** [[Elsa Ast Type SubscriptDesignator|SubscriptDesignator]] | ** [[Elsa Ast Type SubscriptDesignator|SubscriptDesignator]] | ||
* [[Elsa Ast Type EnumValue|EnumValue]] : no subnodes | |||
* [[Elsa Ast Type Enumerator|Enumerator]] : no subnodes | * [[Elsa Ast Type Enumerator|Enumerator]] : no subnodes | ||
* [[Elsa Ast Type ExceptionSpec|ExceptionSpec]] : no subnodes | * [[Elsa Ast Type ExceptionSpec|ExceptionSpec]] : no subnodes | ||
| Line 112: | Line 144: | ||
** [[Elsa Ast Type E_sizeofType|E_sizeofType]] | ** [[Elsa Ast Type E_sizeofType|E_sizeofType]] | ||
** [[Elsa Ast Type E_statement|E_statement]] | ** [[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_stringLit|E_stringLit]] | ||
** [[Elsa Ast Type E_this|E_this]] | ** [[Elsa Ast Type E_this|E_this]] | ||
| Line 122: | Line 155: | ||
* [[Elsa Ast Type FullExpressionAnnot|FullExpressionAnnot]] : no subnodes | * [[Elsa Ast Type FullExpressionAnnot|FullExpressionAnnot]] : no subnodes | ||
* [[Elsa Ast Type Function|Function]] : no subnodes | * [[Elsa Ast Type Function|Function]] : no subnodes | ||
* [[Elsa Ast Type FunctionExnSpec|FunctionExnSpec]] : no subnodes | |||
* [[Elsa Ast Type Handler|Handler]] : no subnodes | * [[Elsa Ast Type Handler|Handler]] : no subnodes | ||
* [[Elsa Ast Type IDeclarator|IDeclarator]] subnodes: | * [[Elsa Ast Type IDeclarator|IDeclarator]] subnodes: | ||
| Line 154: | Line 188: | ||
** [[Elsa Ast Type ON_newDel|ON_newDel]] | ** [[Elsa Ast Type ON_newDel|ON_newDel]] | ||
** [[Elsa Ast Type ON_operator|ON_operator]] | ** [[Elsa Ast Type ON_operator|ON_operator]] | ||
* [[Elsa Ast Type OverloadSet|OverloadSet]] : no subnodes | |||
* [[Elsa Ast Type PQName|PQName]] subnodes: | * [[Elsa Ast Type PQName|PQName]] subnodes: | ||
** [[Elsa Ast Type PQ_name|PQ_name]] | ** [[Elsa Ast Type PQ_name|PQ_name]] | ||
| Line 160: | Line 195: | ||
** [[Elsa Ast Type PQ_template|PQ_template]] | ** [[Elsa Ast Type PQ_template|PQ_template]] | ||
** [[Elsa Ast Type PQ_variable|PQ_variable]] | ** [[Elsa Ast Type PQ_variable|PQ_variable]] | ||
* [[Elsa Ast Type STemplateArgument|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]] | |||
* [[Elsa Ast Type Scope|Scope]] : no subnodes | |||
* [[Elsa Ast Type Statement|Statement]] subnodes: | * [[Elsa Ast Type Statement|Statement]] subnodes: | ||
** [[Elsa Ast Type S_asm|S_asm]] | ** [[Elsa Ast Type S_asm|S_asm]] | ||
| Line 215: | Line 262: | ||
** [[Elsa Ast Type TS_typeof|TS_typeof]] | ** [[Elsa Ast Type TS_typeof|TS_typeof]] | ||
* [[Elsa Ast Type Variable|Variable]] : no subnodes | * [[Elsa Ast Type Variable|Variable]] : no subnodes | ||
<!-- easy to parse list of all node types | |||
Renamings: PointerToMemberType DependentSizedArrayType ArrayType FunctionType ReferenceType PointerType CVAtomicType DependentQType TypeVariable PseudoInstantiation EnumType CompoundType SimpleType TS_typeof_type TS_typeof_expr | |||
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 AST_typeof_expr AST_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_CVAtomic TY_Pointer TY_Reference TY_Function TY_Array TY_DependentSizedArray TY_PointerToMember | |||
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 --> | |||
Latest revision as of 17:36, 18 March 2015
This documents Olmar which was used to analyze the Mozilla code base
This page gives an overview over all Elsa Ast node types. For 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.
Elsa Ast nodes use a variant scheme with super- and subtypes. For
instance there is the node type
Statement with variants for each
different statement type, for instance
S_if for if-statements and
S_while for while loops.
It first follows a table with just the supertype nodes. Further below there is also a table with all subtype nodes.
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:
- ArgExpression : no subnodes
- ArgExpressionListOpt : no subnodes
- AtomicType subnodes:
- Attribute subnodes:
- AttributeSpecifier : no subnodes
- AttributeSpecifierList : no subnodes
- BaseClass : no subnodes
- BaseClassSpec : no subnodes
- BaseClassSubobj : no subnodes
- CType subnodes:
- CompilationUnit : no subnodes
- Condition subnodes:
- Declaration : no subnodes
- Declarator : no subnodes
- Designator subnodes:
- EnumValue : no subnodes
- Enumerator : no subnodes
- ExceptionSpec : no subnodes
- Expression subnodes:
- E___builtin_constant_p
- E___builtin_va_arg
- E_addrOf
- E_addrOfLabel
- E_alignofExpr
- E_alignofType
- E_arrow
- E_assign
- E_binary
- E_boolLit
- E_cast
- E_charLit
- E_compoundLit
- E_cond
- E_constructor
- E_delete
- E_deref
- E_effect
- E_fieldAcc
- E_floatLit
- E_funCall
- E_gnuCond
- E_grouping
- E_intLit
- E_keywordCast
- E_new
- E_sizeof
- E_sizeofType
- E_statement
- E_stdConv
- E_stringLit
- E_this
- E_throw
- E_typeidExpr
- E_typeidType
- E_unary
- E_variable
- FullExpression : no subnodes
- FullExpressionAnnot : no subnodes
- Function : no subnodes
- FunctionExnSpec : no subnodes
- Handler : no subnodes
- IDeclarator subnodes:
- InheritedTemplateParams : no subnodes
- Initializer subnodes:
- Member subnodes:
- MemberInit : no subnodes
- MemberList : no subnodes
- NamespaceDecl subnodes:
- OperatorName subnodes:
- OverloadSet : no subnodes
- PQName subnodes:
- STemplateArgument subnodes:
- Scope : no subnodes
- Statement subnodes:
- TemplateArgument subnodes:
- TemplateDeclaration subnodes:
- TemplateInfo : no subnodes
- TemplateParameter subnodes:
- TopForm subnodes:
- TranslationUnit : no subnodes
- TypeSpecifier subnodes:
- Variable : no subnodes