/*
* CPPParser: P a r s e r H e a d e r
*
* Generated from: cplusplus.g
*
* Terence Parr, Russell Quong, Will Cohen, and Hank Dietz: 1989-1995
* Parr Research Corporation
* with Purdue University Electrical Engineering
* with AHPCRC, University of Minnesota
* ANTLR Version 1.33j
*/
#ifndef CPPParser_h
#define CPPParser_h
#ifdef _MSC_VER
// Disable some warnings that appear commonly in Rogue Wave STL
#pragma warning (disable:4786) // long debug names
#pragma warning (disable:4146) // unary minus operator applied to unsigned type
#pragma warning (disable:4018) // '>' : signed/unsigned mismatch
#endif
#include "CPPCommon.h"
#include "AParser.h"
class CPPParser : public ANTLRParser {
public:
enum ANTLRConstants { ConstLLK = 1 };
protected:
static const ANTLRChar * const _token_tbl[];
public:
static const ANTLRChar* const * GetTokenTable() { return _token_tbl; }
private:
#include "CPPParserMembers.h"
protected:
#define PARSER_PURE_VIRTUAL = 0
#include "CPPParserVirtual.h"
#undef PARSER_PURE_VIRTUAL
static SetWordType err1[24];
static SetWordType BUILTIN_TOKCLASS_set[24];
static SetWordType err3[24];
static SetWordType err4[24];
static SetWordType err5[24];
static SetWordType err6[24];
static SetWordType err7[24];
static SetWordType err8[24];
static SetWordType CONSTANT_TOKCLASS_set[24];
static SetWordType err10[24];
static SetWordType setwd1[191];
static SetWordType err11[24];
static SetWordType err12[24];
static SetWordType err13[24];
static SetWordType err14[24];
static SetWordType err15[24];
static SetWordType setwd2[191];
static SetWordType err16[24];
static SetWordType err17[24];
static SetWordType err18[24];
static SetWordType err19[24];
static SetWordType err20[24];
static SetWordType err21[24];
static SetWordType setwd3[191];
static SetWordType setwd4[191];
static SetWordType err22[24];
static SetWordType err23[24];
static SetWordType err24[24];
static SetWordType setwd5[191];
static SetWordType err25[24];
static SetWordType err26[24];
static SetWordType err27[24];
static SetWordType setwd6[191];
static SetWordType err28[24];
static SetWordType err29[24];
static SetWordType err30[24];
static SetWordType err31[24];
static SetWordType err32[24];
static SetWordType err33[24];
static SetWordType err34[24];
static SetWordType err35[24];
static SetWordType setwd7[191];
static SetWordType err36[24];
static SetWordType err37[24];
static SetWordType err38[24];
static SetWordType err39[24];
static SetWordType err40[24];
static SetWordType ADDITIVE_TOKCLASS_set[24];
static SetWordType setwd8[191];
static SetWordType ASSIGN_TOKCLASS_set[24];
static SetWordType err43[24];
static SetWordType EQUALITY_TOKCLASS_set[24];
static SetWordType err45[24];
static SetWordType err46[24];
static SetWordType MULTIPLICATIVE_TOKCLASS_set[24];
static SetWordType err48[24];
static SetWordType setwd9[191];
static SetWordType err49[24];
static SetWordType PM_TOKCLASS_set[24];
static SetWordType CAST_TOKCLASS_set[24];
static SetWordType err52[24];
static SetWordType setwd10[191];
static SetWordType err53[24];
static SetWordType err54[24];
static SetWordType RELATIONAL_TOKCLASS_set[24];
static SetWordType SHIFT_TOKCLASS_set[24];
static SetWordType UNARYOP_TOKCLASS_set[24];
static SetWordType setwd11[191];
static SetWordType err58[24];
static SetWordType err59[24];
static SetWordType err60[24];
static SetWordType CURLY_TOKCLASS_set[24];
static SetWordType err62[24];
static SetWordType RCURLY_EOF_TOKCLASS_set[24];
static SetWordType err64[24];
static SetWordType setwd12[191];
static SetWordType err65[24];
static SetWordType OPTOR_SIMPLE_TOKCLASS_set[24];
static SetWordType err67[24];
static SetWordType err68[24];
static SetWordType setwd13[191];
static SetWordType err69[24];
static SetWordType err70[24];
static SetWordType err71[24];
static SetWordType err72[24];
static SetWordType err73[24];
static SetWordType err74[24];
static SetWordType err75[24];
static SetWordType setwd14[191];
static SetWordType err76[24];
static SetWordType setwd15[191];
static SetWordType err77[24];
static SetWordType err78[24];
static SetWordType err79[24];
static SetWordType CURLY_SEMICOLON_TOKCLASS_set[24];
static SetWordType err81[24];
static SetWordType setwd16[191];
static SetWordType err82[24];
static SetWordType err83[24];
static SetWordType err84[24];
static SetWordType err85[24];
static SetWordType err86[24];
static SetWordType err87[24];
static SetWordType err88[24];
static SetWordType setwd17[191];
static SetWordType err89[24];
static SetWordType err90[24];
static SetWordType err91[24];
static SetWordType err92[24];
static SetWordType err93[24];
static SetWordType setwd18[191];
static SetWordType err94[24];
static SetWordType err95[24];
static SetWordType err96[24];
static SetWordType err97[24];
static SetWordType err98[24];
static SetWordType setwd19[191];
static SetWordType err99[24];
static SetWordType err100[24];
static SetWordType err101[24];
static SetWordType setwd20[191];
private:
void zzdflthandlers( int _signal, int *_retsignal );
public:
struct _rv5 {
CPPTypeRefI classType;
CPPConst::TypeSpecifier ts ;
};
struct _rv6 {
CPPTypeRefI classType;
CPPConst::TypeSpecifier ts ;
};
struct _rv9 {
JLStr declName;
StrListRefI argNameList;
CPPScopeRefI declScope;
CPPScopeRefI argScope;
CPPTypeRefI outputType;
bool usedInnerTemplateParms
;
};
struct _rv18 {
CPPConst::StorageClass sc;
CPPConst::DeclModifier dm ;
};
struct _rv19 {
CPPTypeRefI type;
CPPConst::StorageClass scout;
CPPConst::DeclModifier dmout ;
};
struct _rv20 {
CPPConst::CVQualifier cvout;
CPPConst::StorageClass scout;
CPPConst::DeclModifier dmout ;
};
struct _rv21 {
CPPTypeRefI type;
CPPConst::StorageClass scout;
CPPConst::DeclModifier dmout ;
};
struct _rv22 {
JLStr declName;
StrListRefI argNameList;
CPPScopeRefI declScope;
CPPScopeRefI argScope;
CPPTypeRefI outputType;
bool usedInnerTemplateParms
;
};
struct _rv23 {
JLStr declName;
StrListRefI argNameList;
CPPScopeRefI declScope;
CPPScopeRefI argScope;
CPPTypeRefI outputType;
bool usedInnerTemplateParms
;
};
struct _rv27 {
JLStr declName;
CPPTypeRefI outputType ;
};
struct _rv32 {
StrListRefI argNameList;
CPPScopeRefI argScope;
CPPTypeRefI outputType ;
};
struct _rv33 {
StrListRefI argNameList;
CPPScopeRefI argScope;
CPPTypeRefI outputType ;
};
struct _rv57 {
CPPTypeRefI cppType;
CPPExprRefI exprArraySize ;
};
struct _rv69 {
JLStr argName;
CPPTypeRefI outputType ;
};
struct _rv70 {
StrListRefI argNameList;
CPPTypeRefI outputType ;
};
struct _rv71 {
StrListRefI argNameList;
CPPTypeRefI outputType ;
};
struct _rv72 {
StrListRefI argNameList;
CPPTypeRefI outputType ;
};
struct _rv74 {
JLStr name;
bool usedInnerTemplateParms ;
};
struct _rv77 {
CPPTypeRefI classType;
bool usedInnerTemplateParms ;
};
struct _rv94 {
TemplateArgumentRefI argRef;
bool usedInnerTemplateParms ;
};
struct _rv95 {
TemplateArgumentListRefI argList;
bool usedInnerTemplateParms ;
};
struct _rv102 {
JLStr specializationName;
CPPTypeRefI specializationType;
bool usedInnerTemplateParms ;
};
CPPParser(ANTLRTokenBuffer *input);
CPPConst::AccessSpecifier access_specifier(void);
void base_clause( CPPTypeRefI classType );
void base_specifier( CPPTypeRefI classType );
CPPConst::TypeSpecifier builtin_type_specifier(void);
struct _rv5 class_specifier(void);
struct _rv6 class_specifier_simple(void);
CPPConst::CallingConvention compiler_specific_calling_convention(void);
ANTLRTokenPtr constant(void);
struct _rv9 ctor_declarator(void);
void ctor_initializer(void);
void ctor_member_init(void);
CPPConst::CVQualifier cv_qualifier(void);
CPPConst::CVQualifier cv_qualifier_seq(void);
void declaration_external(void);
void declaration_external_or_member( bool memberDecl );
void declaration_member(void);
CPPConst::DeclModifier declaration_modifier(void);
struct _rv18 declaration_sc_or_dm_seq(void);
struct _rv19 declaration_specifiers( CPPConst::StorageClass scin, CPPConst::DeclModifier dmin );
struct _rv20 declaration_specifiers_qualifier( CPPConst::CVQualifier cvin, CPPConst::StorageClass scin, CPPConst::DeclModifier dmin );
struct _rv21 declaration_specifiers_simple( CPPConst::StorageClass scin, CPPConst::DeclModifier dmin );
struct _rv22 declarator( CPPTypeRefI inputType, CPPConst::CallingConvention cc );
struct _rv23 declarator_direct( CPPTypeRefI inputType, CPPConst::CallingConvention cc );
void declarator_function_or_init_list(
CPPTypeRefI declSpecType,
CPPConst::StorageClass sc,
CPPConst::DeclModifier dm,
bool memberDecl
);
void declarator_init( CPPTypeRefI inputType, CPPConst::StorageClass sc, CPPConst::DeclModifier dm );
void declarator_init_list( CPPTypeRefI declSpecType, CPPConst::StorageClass sc, CPPConst::DeclModifier dm );
struct _rv27 declarator_opt_abstract( CPPTypeRefI inputType );
CPPTypeRefI declarator_ptr( CPPTypeRefI inputType );
CPPTypeRefI declarator_ptr_to_member( CPPTypeRefI inputType );
CPPTypeRefI declarator_suffix_array( CPPTypeRefI inputType );
CPPTypeRefI declarator_suffix_bitfield( CPPTypeRefI inputType );
struct _rv32 declarator_suffix_function( CPPTypeRefI inputType, CPPConst::CallingConvention cc );
struct _rv33 declarator_suffixes( CPPTypeRefI inputType, CPPConst::CallingConvention cc );
CPPTypeRefI enum_specifier(void);
CPPTypeRefI enum_specifier_simple(void);
CPPExprRefI enumerator( CPPTypeRefI enumType, CPPExprRefI exprIn );
void enumerator_list( CPPTypeRefI enumType );
CPPExprRefI expression(void);
CPPExprRefI expression_list(void);
CPPExprRefI expr_additive(void);
CPPExprRefI expr_and(void);
CPPExprRefI expr_assignment(void);
CPPExprRefI expr_cast(void);
CPPExprRefI expr_conditional(void);
CPPExprRefI expr_constant(void);
CPPExprRefI expr_delete( bool global );
CPPExprRefI expr_equality(void);
CPPExprRefI expr_exclusive_or(void);
CPPExprRefI expr_id( CPPExprRefI objectExpr );
CPPExprRefI expr_inclusive_or(void);
CPPExprRefI expr_literal(void);
CPPExprRefI expr_logical_and(void);
CPPExprRefI expr_logical_or(void);
CPPExprRefI expr_multiplicative(void);
CPPExprRefI expr_new( bool global );
CPPExprRefI expr_new_initializer(void);
struct _rv57 expr_new_type_id(void);
CPPExprRefI expr_pm(void);
CPPExprRefI expr_postfix(void);
CPPExprRefI expr_primary(void);
CPPExprRefI expr_relational(void);
CPPExprRefI expr_shift(void);
CPPExprRefI expr_unary(void);
void generic_block(void);
CPPExprRefI initializer(void);
void linkage_specification(void);
CPPTypeRefI optor_conversion(void);
JLStr optor_simple(void);
struct _rv69 parameter_declaration( CPPTypeRefI inputType );
struct _rv70 parameter_declaration_list( CPPTypeRefI inputType );
struct _rv71 parameter_list( CPPTypeRefI inputType );
struct _rv72 parameter_list_opt( CPPTypeRefI inputType );
void pragma_line(void);
struct _rv74 qualified_id( bool allowType, bool allowCtor, bool allowAnyDtor );
CPPTypeRefI qualified_type(void);
bool scope_override(void);
struct _rv77 scope_segment( CPPScopeState scopeState, bool isTemplate, bool isVerified );
bool scope_segment_list( CPPScopeState scopeState, bool isVerified );
CPPTypeRefI simple_type_specifier(void);
void statement(void);
void statement_asm(void);
void statement_catch(void);
void statement_compound(void);
void statement_declaration(void);
void statement_exception_declaration(void);
void statement_iteration(void);
void statement_jump(void);
void statement_labeled(void);
void statement_list(void);
void statement_selection(void);
void statement_throw(void);
void statement_try_block(void);
CPPConst::StorageClass storage_class_specifier(void);
struct _rv94 template_argument(void);
struct _rv95 template_argument_list(void);
void template_declaration( CPPScopeRefI preTemplateScope, bool memberDecl );
void template_declaration_class(
CPPScopeRefI preTemplateScope,
TemplateParameterListRefI templateParameters,
bool memberDecl,
CPPScopeState templateScopeState
);
void template_declaration_function_or_data(
CPPScopeRefI preTemplateScope,
TemplateParameterListRefI templateParameters,
bool memberDecl,
CPPScopeState templateScopeState,
CPPScopeRefI templateParameterScope
);
TemplateParameterListRefI template_head(void);
TemplateParameterRefI template_parameter( short parameterIdx );
TemplateParameterListRefI template_parameter_list(void);
struct _rv102 template_specialization( const JLStr& name, CPPScopeState scopeState, const ANTLRTokenPtr& errTok );
void template_specialization_reparse(void);
void translation_unit(void);
CPPTypeRefI type_name(void);
static SetWordType EXTERNAL_SYNC_TOKCLASS_set[24];
static SetWordType EXTERNAL_SYNC2_TOKCLASS_set[24];
static SetWordType MEMBER_SYNC_TOKCLASS_set[24];
static SetWordType STATEMENT_SYNC_TOKCLASS_set[24];
static SetWordType DECLSPEC_DECLARATOR_AMBIG_TOKCLASS_set[24];
};
#endif /* CPPParser_h */