Synopsis - Synopsis/Parser.hh Details

# Synopsis/Parser.hh

source code

## Includes from this file:

- include Synopsis/PTree.hh
- include Synopsis/SymbolFactory.hh

## Declarations in this file:

### Classes in Synopsis

Lexer

a Lexer reads tokens from a stream.

Parser

C++ Parser

### Classes in Synopsis::Parser

Error

Error is used to cache parse errors encountered during the execution of the parse method.

StatusGuard

A StatusGuard manages a tentative parse.

### Data members in Synopsis::Parser::StatusGuard

my_committed
my_error_mark
my_errors
my_lexer
my_token_mark

### Data members in Synopsis::Parser

my_comments
my_errors
my_gt_is_operator

If true, > is interpreted as ther greater-than operator.

my_in_template_decl
my_lexer
my_ruleset
my_scope_is_valid

Record whether the current scope is valid.

my_symbols

### Enums in Synopsis::Parser

DeclKind
RuleSet

RuleSet defines non-standard optional rules that can be chosen at runtime.

TemplateDeclKind

### Member functions in Synopsis::Parser::Error

write(std::ostream&)const
~Error()

### Member functions in Synopsis::Parser

Parser(Lexer&,SymbolFactory&,int)

### Member functions in Synopsis::Parser::StatusGuard

StatusGuard(Parser&)

### Member functions in Synopsis::Parser

class_body(PTree::ClassBody*&)
class_spec(PTree::ClassSpec*&,PTree::Encoding&)
compound_statement(PTree::Block*&,bool)

compound-statement:

const_declaration(PTree::Declaration*&,PTree::Encoding&,PTree::Node*,PTree::Node*)
declaration(PTree::Declaration*&)
declarator(PTree::Node*&,DeclKind,bool,PTree::Encoding&,PTree::Encoding&,bool,bool)
declarator2(PTree::Node*&,DeclKind,bool,PTree::Encoding&,PTree::Encoding&,bool,bool,PTree::Node**)
definition(PTree::Node*&)
enum_spec(PTree::EnumSpec*&,PTree::Encoding&)
function_body(PTree::Block*&)

function-body:

init_declarator_list(PTree::Node*&,PTree::Encoding&,bool,bool)

[gram.dcl.decl]

integral_declaration(PTree::Declaration*&,PTree::Encoding&,PTree::Node*,PTree::Node*,PTree::Node*)
is_allocate_expr(Token::Type)
is_ptr_to_member(int)
maybe_typename_or_class_template(Token&)
namespace_alias(PTree::NamespaceAlias*&)
namespace_spec(PTree::NamespaceSpec*&)
new_declarator(PTree::Declarator*&,PTree::Encoding&)
opt_integral_type_or_class_spec(PTree::Node*&,PTree::Encoding&)
origin(const char*,std::string&)const

Return the origin of the given pointer (filename and line number)

parameter_declaration(PTree::ParameterDeclaration*&,PTree::Encoding&)

parameter-declaration:

parameter_declaration_list_or_init(PTree::Node*&,bool&,PTree::Encoding&,bool)
show_message_head(const char*)
template_decl2(PTree::TemplateDecl*&,TemplateDeclKind&)
template_parameter_list(PTree::List*&)

template-parameter-list:

type_specifier(PTree::Node*&,bool,PTree::Encoding&)
typedef_(PTree::Typedef*&)
using_declaration(PTree::UsingDeclaration*&)
using_directive(PTree::UsingDirective*&)

### Member function templates in Synopsis::Parser

declare(T*)

### Structs in Synopsis::Parser

ScopeGuard

### Typedefs in Synopsis::Parser

ErrorList