Git Product home page Git Product logo

cxxparser's People

Contributors

asresearch avatar athrunarthur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cxxparser's Issues

Grammar railroad diagram

I've done a experimental tool to convert bison grammars to a kind of EBNF understood by https://www.bottlecaps.de/rr/ui to generate railroad diagrams see bellow the converted CxxParser.y and with some hand made changes to allow view it at https://www.bottlecaps.de/rr/ui the order of the rules could be changed to a better view of the railroad diagrams. Copy and paste the EBNF bellow on https://www.bottlecaps.de/rr/ui tab Edit Grammar then switch to the tab View Diagram.



identifier_word ::=
	Identifier

identifier ::=
	identifier_word

id ::=
	identifier
	| identifier template_test '+' template_argument_list '>'
	| identifier template_test '+' '>'
	| identifier template_test '-'
	| template_id

template_test ::=
	'<'

global_scope ::=
	SCOPE
	| TEMPLATE global_scope

id_scope ::=
	id SCOPE

nested_id ::=
	id
	| id_scope nested_id

scoped_id ::=
	nested_id
	| global_scope nested_id

destructor_id ::=
	'~' id
	| TEMPLATE destructor_id

special_function_id ::=
	conversion_function_id
	| operator_function_id
	| TEMPLATE special_function_id

nested_special_function_id ::=
	special_function_id
	| id_scope destructor_id
	| id_scope nested_special_function_id

scoped_special_function_id ::=
	nested_special_function_id
	| global_scope nested_special_function_id

declarator_id ::=
	scoped_id
	| scoped_special_function_id
	| destructor_id

built_in_type_id ::=
	built_in_type_specifier
	| built_in_type_id built_in_type_specifier

pseudo_destructor_id ::=
	built_in_type_id SCOPE '~' built_in_type_id
	| '~' built_in_type_id
	| TEMPLATE pseudo_destructor_id

nested_pseudo_destructor_id ::=
	pseudo_destructor_id
	| id_scope nested_pseudo_destructor_id

scoped_pseudo_destructor_id ::=
	nested_pseudo_destructor_id
	| global_scope scoped_pseudo_destructor_id

string ::=
	StringLiteral

literal ::=
	IntegerLiteral
	| CharacterLiteral
	| FloatingLiteral
	| string
	| boolean_literal

boolean_literal ::=
	FALSE
	| TRUE

translation_unit ::=
	declaration_seq.opt

primary_expression ::=
	literal
	| THIS
	| suffix_decl_specified_ids
	| abstract_expression

abstract_expression ::=
	parenthesis_clause
	| '[' expression.opt ']'
	| TEMPLATE parenthesis_clause

type1_parameters ::=
	parameter_declaration_list ';'
	| type1_parameters parameter_declaration_list ';'

mark_type1 ::=
	/* empty */

postfix_expression ::=
	primary_expression
	| postfix_expression parenthesis_clause mark_type1 '-'
	| postfix_expression parenthesis_clause mark_type1 '+' type1_parameters mark '{' error
	| postfix_expression parenthesis_clause mark_type1 '+' type1_parameters mark error
	| postfix_expression parenthesis_clause mark_type1 '+' error
	| postfix_expression '[' expression.opt ']'
	| postfix_expression '.' declarator_id
	| postfix_expression '.' scoped_pseudo_destructor_id
	| postfix_expression ARROW declarator_id
	| postfix_expression ARROW scoped_pseudo_destructor_id
	| postfix_expression INC
	| postfix_expression DEC
	| DYNAMIC_CAST '<' type_id '>' '(' expression ')'
	| STATIC_CAST '<' type_id '>' '(' expression ')'
	| REINTERPRET_CAST '<' type_id '>' '(' expression ')'
	| CONST_CAST '<' type_id '>' '(' expression ')'
	| TYPEID parameters_clause

expression_list.opt ::=
	/* empty */
	| expression_list

expression_list ::=
	assignment_expression
	| expression_list ',' assignment_expression

unary_expression ::=
	postfix_expression
	| INC cast_expression
	| DEC cast_expression
	| ptr_operator cast_expression
	| suffix_decl_specified_scope star_ptr_operator cast_expression
	| '+' cast_expression
	| '-' cast_expression
	| '!' cast_expression
	| '~' cast_expression
	| SIZEOF unary_expression
	| new_expression
	| global_scope new_expression
	| delete_expression
	| global_scope delete_expression

delete_expression ::=
	DELETE cast_expression

new_expression ::=
	NEW new_type_id new_initializer.opt
	| NEW parameters_clause new_type_id new_initializer.opt
	| NEW parameters_clause
	| NEW parameters_clause parameters_clause new_initializer.opt

new_type_id ::=
	type_specifier ptr_operator_seq.opt
	| type_specifier new_declarator
	| type_specifier new_type_id

new_declarator ::=
	ptr_operator new_declarator
	| direct_new_declarator

direct_new_declarator ::=
	'[' expression ']'
	| direct_new_declarator '[' constant_expression ']'

new_initializer.opt ::=
	/* empty */
	| '(' expression_list.opt ')'

cast_expression ::=
	unary_expression
	| abstract_expression cast_expression

pm_expression ::=
	cast_expression
	| pm_expression DOT_STAR cast_expression
	| pm_expression ARROW_STAR cast_expression

multiplicative_expression ::=
	pm_expression
	| multiplicative_expression star_ptr_operator pm_expression
	| multiplicative_expression '/' pm_expression
	| multiplicative_expression '%' pm_expression

additive_expression ::=
	multiplicative_expression
	| additive_expression '+' multiplicative_expression
	| additive_expression '-' multiplicative_expression

shift_expression ::=
	additive_expression
	| shift_expression SHL additive_expression
	| shift_expression SHR additive_expression

relational_expression ::=
	shift_expression
	| relational_expression '<' shift_expression
	| relational_expression '>' shift_expression
	| relational_expression LE shift_expression
	| relational_expression GE shift_expression

equality_expression ::=
	relational_expression
	| equality_expression EQ relational_expression
	| equality_expression NE relational_expression

and_expression ::=
	equality_expression
	| and_expression '&' equality_expression

exclusive_or_expression ::=
	and_expression
	| exclusive_or_expression '^' and_expression

inclusive_or_expression ::=
	exclusive_or_expression
	| inclusive_or_expression '|' exclusive_or_expression

logical_and_expression ::=
	inclusive_or_expression
	| logical_and_expression LOG_AND inclusive_or_expression

logical_or_expression ::=
	logical_and_expression
	| logical_or_expression LOG_OR logical_and_expression

conditional_expression ::=
	logical_or_expression
	| logical_or_expression '?' expression ':' assignment_expression

assignment_expression ::=
	conditional_expression
	| logical_or_expression assignment_operator assignment_expression
	| logical_or_expression '=' braced_initializer
	| throw_expression

assignment_operator ::=
	'='
	| ASS_ADD
	| ASS_AND
	| ASS_DIV
	| ASS_MOD
	| ASS_MUL
	| ASS_OR
	| ASS_SHL
	| ASS_SHR
	| ASS_SUB
	| ASS_XOR

expression.opt ::=
	/* empty */
	| expression

expression ::=
	assignment_expression
	| expression_list ',' assignment_expression

constant_expression ::=
	conditional_expression

templated_relational_expression ::=
	shift_expression
	| templated_relational_expression '<' shift_expression
	| templated_relational_expression LE shift_expression
	| templated_relational_expression GE shift_expression

templated_equality_expression ::=
	templated_relational_expression
	| templated_equality_expression EQ templated_relational_expression
	| templated_equality_expression NE templated_relational_expression

templated_and_expression ::=
	templated_equality_expression
	| templated_and_expression '&' templated_equality_expression

templated_exclusive_or_expression ::=
	templated_and_expression
	| templated_exclusive_or_expression '^' templated_and_expression

templated_inclusive_or_expression ::=
	templated_exclusive_or_expression
	| templated_inclusive_or_expression '|' templated_exclusive_or_expression

templated_logical_and_expression ::=
	templated_inclusive_or_expression
	| templated_logical_and_expression LOG_AND templated_inclusive_or_expression

templated_logical_or_expression ::=
	templated_logical_and_expression
	| templated_logical_or_expression LOG_OR templated_logical_and_expression

templated_conditional_expression ::=
	templated_logical_or_expression
	| templated_logical_or_expression '?' templated_expression ':' templated_assignment_expression

templated_assignment_expression ::=
	templated_conditional_expression
	| templated_logical_or_expression assignment_operator templated_assignment_expression
	| templated_throw_expression

templated_expression ::=
	templated_assignment_expression
	| templated_expression_list ',' templated_assignment_expression

templated_expression_list ::=
	templated_assignment_expression
	| templated_expression_list ',' templated_assignment_expression

looping_statement ::=
	start_search looped_statement

looped_statement ::=
	statement
	| advance_search '+' looped_statement
	| advance_search '-'

statement ::=
	control_statement
	| compound_statement
	| declaration_statement
	| try_block

control_statement ::=
	labeled_statement
	| selection_statement
	| iteration_statement
	| jump_statement

labeled_statement ::=
	identifier_word ':' looping_statement
	| CASE constant_expression ':' looping_statement
	| DEFAULT ':' looping_statement

compound_statement ::=
	'{' statement_seq.opt '}'
	| '{' statement_seq.opt looping_statement '#' bang error '}'

statement_seq.opt ::=
	/* empty */
	| statement_seq.opt looping_statement
	| statement_seq.opt looping_statement '#' bang error ';'

selection_statement ::=
	IF '(' condition ')' looping_statement
	| IF '(' condition ')' looping_statement ELSE looping_statement
	| SWITCH '(' condition ')' looping_statement

condition.opt ::=
	/* empty */
	| condition

condition ::=
	parameter_declaration_list

iteration_statement ::=
	WHILE '(' condition ')' looping_statement
	| DO looping_statement WHILE '(' expression ')' ';'
	| FOR '(' for_init_statement condition.opt ';' expression.opt ')' looping_statement

for_init_statement ::=
	simple_declaration

jump_statement ::=
	BREAK ';'
	| CONTINUE ';'
	| RETURN expression.opt ';'
	| GOTO identifier ';'

declaration_statement ::=
	block_declaration

compound_declaration ::=
	'{' nest declaration_seq.opt '}'
	| '{' nest declaration_seq.opt util looping_declaration '#' bang error '}'

declaration_seq.opt ::=
	/* empty */
	| declaration_seq.opt util looping_declaration
	| declaration_seq.opt util looping_declaration '#' bang error ';'

looping_declaration ::=
	start_search1 looped_declaration

looped_declaration ::=
	declaration
	| advance_search '+' looped_declaration
	| advance_search '-'

declaration ::=
	block_declaration
	| function_definition
	| template_declaration
	| explicit_specialization
	| specialised_declaration

specialised_declaration ::=
	linkage_specification
	| namespace_definition
	| TEMPLATE specialised_declaration

block_declaration ::=
	simple_declaration
	| specialised_block_declaration

specialised_block_declaration ::=
	asm_definition
	| namespace_alias_definition
	| using_declaration
	| using_directive
	| TEMPLATE specialised_block_declaration

simple_declaration ::=
	';'
	| init_declaration ';'
	| init_declarations ';'
	| decl_specifier_prefix simple_declaration

suffix_built_in_decl_specifier.raw ::=
	built_in_type_specifier
	| suffix_built_in_decl_specifier.raw built_in_type_specifier
	| suffix_built_in_decl_specifier.raw decl_specifier_suffix

suffix_built_in_decl_specifier ::=
	suffix_built_in_decl_specifier.raw
	| TEMPLATE suffix_built_in_decl_specifier

suffix_named_decl_specifier ::=
	scoped_id
	| elaborate_type_specifier
	| suffix_named_decl_specifier decl_specifier_suffix

suffix_named_decl_specifier.bi ::=
	suffix_named_decl_specifier
	| suffix_named_decl_specifier suffix_built_in_decl_specifier.raw

suffix_named_decl_specifiers ::=
	suffix_named_decl_specifier.bi
	| suffix_named_decl_specifiers suffix_named_decl_specifier.bi

suffix_named_decl_specifiers.sf ::=
	scoped_special_function_id
	| suffix_named_decl_specifiers
	| suffix_named_decl_specifiers scoped_special_function_id

suffix_decl_specified_ids ::=
	suffix_built_in_decl_specifier
	| suffix_built_in_decl_specifier suffix_named_decl_specifiers.sf
	| suffix_named_decl_specifiers.sf

suffix_decl_specified_scope ::=
	suffix_named_decl_specifiers SCOPE
	| suffix_built_in_decl_specifier suffix_named_decl_specifiers SCOPE
	| suffix_built_in_decl_specifier SCOPE

decl_specifier_affix ::=
	storage_class_specifier
	| function_specifier
	| FRIEND
	| TYPEDEF
	| cv_qualifier

decl_specifier_suffix ::=
	decl_specifier_affix

decl_specifier_prefix ::=
	decl_specifier_affix
	| TEMPLATE decl_specifier_prefix

storage_class_specifier ::=
	REGISTER
	| STATIC
	| MUTABLE
	| EXTERN
	| AUTO

function_specifier ::=
	EXPLICIT
	| INLINE
	| VIRTUAL

type_specifier ::=
	simple_type_specifier
	| elaborate_type_specifier
	| cv_qualifier

elaborate_type_specifier ::=
	class_specifier
	| enum_specifier
	| elaborated_type_specifier
	| TEMPLATE elaborate_type_specifier

simple_type_specifier ::=
	scoped_id
	| built_in_type_specifier

built_in_type_specifier ::=
	CHAR
	| WCHAR_T
	| BOOL
	| SHORT
	| INT
	| LONG
	| SIGNED
	| UNSIGNED
	| FLOAT
	| DOUBLE
	| VOID

elaborated_type_specifier ::=
	elaborated_class_specifier
	| elaborated_enum_specifier
	| TYPENAME scoped_id

elaborated_enum_specifier ::=
	ENUM scoped_id

enum_specifier ::=
	ENUM scoped_id enumerator_clause
	| ENUM enumerator_clause

enumerator_clause ::=
	'{' enumerator_list_ecarb
	| '{' enumerator_list enumerator_list_ecarb
	| '{' enumerator_list ',' enumerator_definition_ecarb

enumerator_list_ecarb ::=
	'}'
	| bang error '}'

enumerator_definition_ecarb ::=
	'}'
	| bang error '}'

enumerator_definition_filler ::=
	/* empty */
	| bang error ','

enumerator_list_head ::=
	enumerator_definition_filler
	| enumerator_list ',' enumerator_definition_filler

enumerator_list ::=
	enumerator_list_head enumerator_definition

enumerator_definition ::=
	enumerator
	| enumerator '=' constant_expression

enumerator ::=
	identifier

namespace_definition ::=
	NAMESPACE scoped_id compound_declaration
	| NAMESPACE compound_declaration

namespace_alias_definition ::=
	NAMESPACE scoped_id '=' scoped_id ';'

using_declaration ::=
	USING declarator_id ';'
	| USING TYPENAME declarator_id ';'

using_directive ::=
	USING NAMESPACE scoped_id ';'

asm_definition ::=
	ASM '(' string ')' ';'

linkage_specification ::=
	EXTERN string looping_declaration
	| EXTERN string compound_declaration

init_declarations ::=
	assignment_expression ',' init_declaration
	| init_declarations ',' init_declaration

init_declaration ::=
	assignment_expression

star_ptr_operator ::=
	'*'
	| star_ptr_operator cv_qualifier

nested_ptr_operator ::=
	star_ptr_operator
	| id_scope nested_ptr_operator

ptr_operator ::=
	'&'
	| nested_ptr_operator
	| global_scope nested_ptr_operator

ptr_operator_seq ::=
	ptr_operator
	| ptr_operator ptr_operator_seq

ptr_operator_seq.opt ::=
	/* empty */
	| ptr_operator ptr_operator_seq.opt

cv_qualifier_seq.opt ::=
	/* empty */
	| cv_qualifier_seq.opt cv_qualifier

cv_qualifier ::=
	CONST
	| VOLATILE

type_id ::=
	type_specifier abstract_declarator.opt
	| type_specifier type_id

abstract_declarator.opt ::=
	/* empty */
	| ptr_operator abstract_declarator.opt
	| direct_abstract_declarator

direct_abstract_declarator.opt ::=
	/* empty */
	| direct_abstract_declarator

direct_abstract_declarator ::=
	direct_abstract_declarator.opt parenthesis_clause
	| direct_abstract_declarator.opt '[' ']'
	| direct_abstract_declarator.opt '[' constant_expression ']'

parenthesis_clause ::=
	parameters_clause cv_qualifier_seq.opt
	| parameters_clause cv_qualifier_seq.opt exception_specification

parameters_clause ::=
	'(' parameter_declaration_clause ')'

parameter_declaration_clause ::=
	/* empty */
	| parameter_declaration_list
	| parameter_declaration_list ELLIPSIS

parameter_declaration_list ::=
	parameter_declaration
	| parameter_declaration_list ',' parameter_declaration

abstract_pointer_declaration ::=
	ptr_operator_seq
	| multiplicative_expression star_ptr_operator ptr_operator_seq.opt

abstract_parameter_declaration ::=
	abstract_pointer_declaration
	| and_expression '&'
	| and_expression '&' abstract_pointer_declaration

special_parameter_declaration ::=
	abstract_parameter_declaration
	| abstract_parameter_declaration '=' assignment_expression
	| ELLIPSIS

parameter_declaration ::=
	assignment_expression
	| special_parameter_declaration
	| decl_specifier_prefix parameter_declaration

templated_parameter_declaration ::=
	templated_assignment_expression
	| templated_abstract_declaration
	| templated_abstract_declaration '=' templated_assignment_expression
	| decl_specifier_prefix templated_parameter_declaration

templated_abstract_declaration ::=
	abstract_pointer_declaration
	| templated_and_expression '&'
	| templated_and_expression '&' abstract_pointer_declaration

function_definition ::=
	ctor_definition
	| func_definition

func_definition ::=
	assignment_expression function_try_block
	| assignment_expression function_body
	| decl_specifier_prefix func_definition

ctor_definition ::=
	constructor_head function_try_block
	| constructor_head function_body
	| decl_specifier_prefix ctor_definition

constructor_head ::=
	bit_field_init_declaration
	| constructor_head ',' assignment_expression

function_try_block ::=
	TRY function_block handler_seq

function_block ::=
	ctor_initializer.opt function_body

function_body ::=
	compound_statement

initializer_clause ::=
	assignment_expression
	| braced_initializer

braced_initializer ::=
	'{' initializer_list '}'
	| '{' initializer_list ',' '}'
	| '{' '}'
	| '{' looping_initializer_clause '#' bang error '}'
	| '{' initializer_list ',' looping_initializer_clause '#' bang error '}'

initializer_list ::=
	looping_initializer_clause
	| initializer_list ',' looping_initializer_clause

looping_initializer_clause ::=
	start_search looped_initializer_clause

looped_initializer_clause ::=
	initializer_clause
	| advance_search '+' looped_initializer_clause
	| advance_search '-'

colon_mark ::=
	':'

elaborated_class_specifier ::=
	class_key scoped_id
	| class_key scoped_id colon_mark error

class_specifier_head ::=
	class_key scoped_id colon_mark base_specifier_list '{'
	| class_key ':' base_specifier_list '{'
	| class_key scoped_id '{'
	| class_key '{'

class_key ::=
	CLASS
	| STRUCT
	| UNION

class_specifier ::=
	class_specifier_head member_specification.opt '}'
	| class_specifier_head member_specification.opt util looping_member_declaration '#' bang error '}'

member_specification.opt ::=
	/* empty */
	| member_specification.opt util looping_member_declaration
	| member_specification.opt util looping_member_declaration '#' bang error ';'

looping_member_declaration ::=
	start_search looped_member_declaration

looped_member_declaration ::=
	member_declaration
	| advance_search '+' looped_member_declaration
	| advance_search '-'

member_declaration ::=
	accessibility_specifier
	| simple_member_declaration
	| function_definition
	| using_declaration
	| template_declaration

simple_member_declaration ::=
	';'
	| assignment_expression ';'
	| constructor_head ';'
	| member_init_declarations ';'
	| decl_specifier_prefix simple_member_declaration

member_init_declarations ::=
	assignment_expression ',' member_init_declaration
	| constructor_head ',' bit_field_init_declaration
	| member_init_declarations ',' member_init_declaration

member_init_declaration ::=
	assignment_expression
	| bit_field_init_declaration

accessibility_specifier ::=
	access_specifier ':'

bit_field_declaration ::=
	assignment_expression ':' bit_field_width
	| ':' bit_field_width

bit_field_width ::=
	logical_or_expression
	| logical_or_expression '?' bit_field_width ':' bit_field_width

bit_field_init_declaration ::=
	bit_field_declaration
	| bit_field_declaration '=' initializer_clause

base_specifier_list ::=
	base_specifier
	| base_specifier_list ',' base_specifier

base_specifier ::=
	scoped_id
	| access_specifier base_specifier
	| VIRTUAL base_specifier

access_specifier ::=
	PRIVATE
	| PROTECTED
	| PUBLIC

conversion_function_id ::=
	OPERATOR conversion_type_id

conversion_type_id ::=
	type_specifier ptr_operator_seq.opt
	| type_specifier conversion_type_id

ctor_initializer.opt ::=
	/* empty */
	| ctor_initializer

ctor_initializer ::=
	':' mem_initializer_list
	| ':' mem_initializer_list bang error

mem_initializer_list ::=
	mem_initializer
	| mem_initializer_list_head mem_initializer

mem_initializer_list_head ::=
	mem_initializer_list ','
	| mem_initializer_list bang error ','

mem_initializer ::=
	mem_initializer_id '(' expression_list.opt ')'

mem_initializer_id ::=
	scoped_id

operator_function_id ::=
	OPERATOR operator

operator ::=
	NEW
	| DELETE
	| '+'
	| '-'
	| '*'
	| '/'
	| '%'
	| '^'
	| '&'
	| '|'
	| '~'
	| '!'
	| '='
	| '<'
	| '>'
	| ASS_ADD
	| ASS_SUB
	| ASS_MUL
	| ASS_DIV
	| ASS_MOD
	| ASS_XOR
	| ASS_AND
	| ASS_OR
	| SHL
	| SHR
	| ASS_SHR
	| ASS_SHL
	| EQ
	| NE
	| LE
	| GE
	| LOG_AND
	| LOG_OR
	| INC
	| DEC
	| ','
	| ARROW_STAR
	| ARROW
	| '(' ')'
	| '[' ']'

template_declaration ::=
	template_parameter_clause declaration
	| EXPORT template_declaration

template_parameter_clause ::=
	TEMPLATE '<' template_parameter_list '>'

template_parameter_list ::=
	template_parameter
	| template_parameter_list ',' template_parameter

template_parameter ::=
	simple_type_parameter
	| simple_type_parameter '=' type_id
	| templated_type_parameter
	| templated_type_parameter '=' identifier
	| templated_parameter_declaration
	| bang error

simple_type_parameter ::=
	CLASS
	| TYPENAME

templated_type_parameter ::=
	template_parameter_clause CLASS
	| template_parameter_clause CLASS identifier

template_id ::=
	TEMPLATE identifier '<' template_argument_list '>'
	| TEMPLATE template_id

template_argument_list ::=
	template_argument
	| template_argument_list ',' template_argument

template_argument ::=
	templated_parameter_declaration

explicit_specialization ::=
	TEMPLATE '<' '>' declaration

try_block ::=
	TRY compound_statement handler_seq

handler_seq ::=
	handler
	| handler handler_seq

handler ::=
	CATCH '(' exception_declaration ')' compound_statement

exception_declaration ::=
	parameter_declaration

throw_expression ::=
	THROW
	| THROW assignment_expression

templated_throw_expression ::=
	THROW
	| THROW templated_assignment_expression

exception_specification ::=
	THROW '(' ')'
	| THROW '(' type_id_list ')'

type_id_list ::=
	type_id
	| type_id_list ',' type_id

advance_search ::=
	error

bang ::=
	/* empty */

mark ::=
	/* empty */

nest ::=
	/* empty */

start_search ::=
	/* empty */

start_search1 ::=
	/* empty */

util ::=

// Tokens

ASM ::= "asm"
AUTO ::= "auto"
BOOL ::= "bool"
BREAK ::= "break"
CASE ::= "case"
CATCH ::= "catch"
CHAR ::= "char"
CLASS ::= "class"
CONST ::= "const"
CONST_CAST ::= "const_cast"
CONTINUE ::= "continue"
DEFAULT ::= "default"
DELETE ::= "delete"
DO ::= "do"
DOUBLE ::= "double"
DYNAMIC_CAST ::= "dynamic_cast"
ELSE ::= "else"
ENUM ::= "enum"
EXPLICIT ::= "explicit"
EXPORT ::= "export"
EXTERN ::= "extern"
FALSE ::= "false"
FLOAT ::= "float"
FOR ::= "for"
FRIEND ::= "friend"
GOTO ::= "goto"
IF ::= "if"
INLINE ::= "inline"
INT ::= "int"
LONG ::= "long"
MUTABLE ::= "mutable"
NAMESPACE ::= "namespace"
NEW ::= "new"
OPERATOR ::= "operator"
PRIVATE ::= "private"
PROTECTED ::= "protected"
PUBLIC ::= "public"
REGISTER ::= "register"
REINTERPRET_CAST ::= "reinterpret_cast"
RETURN ::= "return"
SHORT ::= "short"
SIGNED ::= "signed"
SIZEOF ::= "sizeof"
STATIC ::= "static"
STATIC_CAST ::= "static_cast"
STRUCT ::= "struct"
SWITCH ::= "switch"
TEMPLATE ::= "template"
THIS ::= "this"
THROW ::= "throw"
TRUE ::= "true"
TRY ::= "try"
TYPEDEF ::= "typedef"
TYPEID ::= "typeid"
TYPENAME ::= "typename"
UNION ::= "union"
UNSIGNED ::= "unsigned"
USING ::= "using"
VIRTUAL ::= "virtual"
VOID ::= "void"
VOLATILE ::= "volatile"
WCHAR_T ::= "wchar_t"
WHILE ::= "while"

SCOPE ::= "::"
ELLIPSIS ::= "..."
SHL ::= "<<"
SHR ::= ">>"
EQ ::= "=="
NE ::= "!="
LE ::= "<="
GE ::= ">="
LOG_AND ::= "&&"
LOG_OR ::= "||"
INC ::= "++"
DEC ::= "--"
ARROW_STAR ::= "->*"
ARROW ::= "->"
DOT_STAR ::= ".*"
ASS_ADD ::= "+="
ASS_SUB ::= "-="
ASS_MUL ::= "*="
ASS_DIV ::= "/="
ASS_MOD ::= "%="
ASS_XOR ::= "^="
ASS_AND ::= "&="
ASS_OR ::= "|="
ASS_SHR ::= ">>="
ASS_SHL ::= "<<="

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.