Elsa ast nodes: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (added machine readable list of nodes in comment)
mNo edit summary
 
(6 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.


== Elsa Ast Supertype nodes ==
<!-- OLMAR SEPARATION LINE: ADD YOUR MODIFICATIONS OBOVE! -->
== Olmar Ast Supertype nodes without subtypes ==


<!-- OLMAR SEPARATION LINE: ADD YOUR MODIFICATIONS OBOVE! -->
<!-- output of oast_wiki -super -->
* [[Elsa Ast Type ASTTypeId|ASTTypeId]]
* [[Elsa Ast Type ASTTypeId|ASTTypeId]]
* [[Elsa Ast Type ASTTypeof|ASTTypeof]]
* [[Elsa Ast Type ASTTypeof|ASTTypeof]]
* [[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 TS_typeof_expr|TS_typeof_expr]]
** [[Elsa Ast Type AST_typeof_expr|AST_typeof_expr]]
** [[Elsa Ast Type TS_typeof_type|TS_typeof_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 69: 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 78: 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 110: 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 120: 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 152: 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 158: 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 213: 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
<!-- 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  
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  
ASTTypeId  
ASTTypeof TS_typeof_expr TS_typeof_type
PQName PQ_qualifier PQ_name PQ_operator PQ_template PQ_variable
ArgExpression
TypeSpecifier TS_name TS_simple TS_elaborated TS_classSpec TS_enumSpec TS_type TS_typeof
ArgExpressionListOpt
Attribute AT_empty AT_word AT_func
AttributeSpecifier
AttributeSpecifierList
BaseClassSpec  
BaseClassSpec  
Condition CN_expr CN_decl
Declaration
Declarator
Designator FieldDesignator SubscriptDesignator
Enumerator  
Enumerator  
MemberList
Member MR_decl MR_func MR_access MR_usingDecl MR_template
ExceptionSpec  
ExceptionSpec  
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_statement E_compoundLit E___builtin_constant_p E___builtin_va_arg E_alignofType E_alignofExpr E_gnuCond E_addrOfLabel  
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  
FullExpression  
FullExpressionAnnot
ArgExpression
Function
ArgExpressionListOpt
Handler
IDeclarator D_name D_pointer D_reference D_func D_array D_bitfield D_ptrToMember D_grouping
InheritedTemplateParams
Initializer IN_expr IN_compound IN_ctor IN_designated  
Initializer IN_expr IN_compound IN_ctor IN_designated  
Member MR_decl MR_func MR_access MR_usingDecl MR_template
MemberInit
MemberList
NamespaceDecl ND_alias ND_usingDecl ND_usingDir
OperatorName ON_newDel ON_operator ON_conversion
PQName PQ_qualifier PQ_name PQ_operator PQ_template PQ_variable
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
TemplateArgument TA_type TA_nontype TA_templateUsed
TemplateDeclaration TD_func TD_decl TD_tmember  
TemplateDeclaration TD_func TD_decl TD_tmember  
TemplateInfo
TemplateParameter TP_type TP_nontype  
TemplateParameter TP_type TP_nontype  
TopForm TF_decl TF_func TF_template TF_explicitInst TF_linkage TF_one_linkage TF_asm TF_namespaceDefn TF_namespaceDecl
TemplateArgument TA_type TA_nontype TA_templateUsed
TranslationUnit
NamespaceDecl ND_alias ND_usingDecl ND_usingDir
TypeSpecifier TS_name TS_simple TS_elaborated TS_classSpec TS_enumSpec TS_type TS_typeof
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  
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 -->
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

Olmar Ast Supertype nodes with subtypes