Update of /cvsroot/cpptool/CppParser/examples/parser
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20423/examples/parser
Added Files:
grammar_tree.txt
Log Message:
* possible grammar tree. used to clean-up the tree produced by the grammar for easier analysis
--- NEW FILE: grammar_tree.txt ---
/* C++ grammar Tree */
translation_unit[
n declaration_error
| namespace_alias_def[
id
namespace_specifier
~ n id]
| using_declaration[
using_id
~ n id]
| using_directive[
~ n id]
| simple_declaration[
[ typedef_decl_specifiers
cv_qualifiers
[ fundamental_type_specifier
| type_name
| enum_specifier[
id
n enumerator_definition[
id
constant_expression[...]
] ]
| class_specifier[...]
| elaborated_type_specifier[
]
? cv_qualifiers
| friend_specifier[
!content same as declaration_specifier
]
| declaration_specifier[
!content same as friend_specifier
? storage_class_specifier
? function_specifier
? cv_qualifiers
workaround_type_specifier ! same as typedef_decl_specifiers
? cv_qualifiers
]
]
? init_declarators[
n init_declarator[
declarator[...]
? assign_initializer[
[ assignment_expression[...] // = 1234
| n initializer_clause ] // = {1,2,3,4}
| expression_list[...] // (1,2,3,4) ctor
]
]
]
]
]
| linkage_specification[
'extern'
$string
[ '{' !declaration_seq '}' => same as translation_unit
| declaration[...] ]
]
| named_namespace_def[
id
namespace_body[ !declaration_seq ]
]
| unnamed_namespace_def[
namespace_body[ !declaration_seq ]
]
| function_definition[ ... ]
| template_declaration[ ... ]
| explicit_template_instantiation[...]
| explicit_template_specialization[...]
/////////////////////////////////
class_specifier[
class_name
? dll_macro[
id]
? nested_name_specifier[...]
id[
id]
| template_id[...]
? class_bases[
n base_specifier[
base_class_access
? 'virtual'
%access_specifier
? 'virtual']
base_class_name[
? nested_name_specifier
id]
]
? member_specification[
n access_specification[
%access_specifier ]
| member_declaration[
member_function_definition[
function_definition[
? function_return_type
declarator_id[~ n id]
function_parameters[
n function_parameter[
declaration_specifier[
]
declarator[
? ptr_operator_declarator[
'*' ? cv_qualifier_seq[...]
| '&'
| pointer_to_member[
nested_name_specifier[..] ?cv_qualifier_seq[...]
]
]
declarator_id[...]
| braced_declarator[ declarator[...] ]
function_parameters[...]
| abstract_array_declarator[
constant_expression[...] ]
? assign_initializer[
assignment_expression[...]
] ]
? ellipsis_parameter[ '...' ] ? cv_qualifiers ? exception_specification
]
? cv_qualifiers[
n cv_qualifier]
? exception_specification[
type_id_list[
type_id[...] ] ]
]
| member_error[...]
]
]
|