Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program := definitions
- definitions := definition [definitions]
- definition := variable-definition
- := namespace-definition
- := function-definition
- pointer-modifier := '*' ['const']
- array-modifier := '[' expression ']' [array-modifier] [pointer-modifier]
- reference-modifier := '&'
- := '&&'
- type-modifiers := pointer-modifier
- := array-modifier
- := reference-modifier
- type-base := identifier
- := expression
- := type-literal
- := 'auto'
- type-definition := ['const'] ['volatile'] type-base [type-modifiers]
- variable-definition := ['static'] [type-definition] identifier = expression
- := ['static'] [type-definition] identifier function-call
- := ['static'] [type-definition] identifier
- namespace-definition := 'namespace' identifier '{' [definitions] '}'
- function-definition := [type-definition] identifier function-arguments-list compound-statement
- function-arguments-list := '(' function-arguments ')' [function-arguments-list]
- function-arguments := [type-definition] identifier
- variable-modifiers := ['static'] ['auto'] [type-definition]
- type-definition-list := type-definition [',' type-definition-list]
- function-call-expression := expression function-call
- function-call := '(' [expression-list] ')'
- identifier := [_\w][_\w\d]*
- cast-expression := 'static_cast' function-call
- := 'dynamic_cast' function-call
- := 'reinterpret_cast' function-call
- := 'const_cast' function-call
- arithmetic-expression := expression '*' expression
- := expression '+' expression
- := expression '/' expression
- := expression '-' expression
- := '+' expression
- := '-' expression
- := expression '+=' expression
- := expression '*=' expression
- := expression '/=' expression
- := expression '-=' expression
- boolean-expression := expression '>' expression
- := expression '<' expression
- := expression '==' expression
- := expression '!=' expression
- := expression '<=' expression
- := expression '>=' expression
- := '!' expression
- member-expression := expression '.' identifier
- := expression '->' identifier
- bitwise-expression := expression '>>' expression
- := expression '<<' expression
- := expression '>>=' expression
- := expression '<<=' expression
- := '~' expression
- := expression '&' expression
- := expression '|' expression
- := expression '^' expression
- type-literal := 'type' [':' type-definition-list] '{' [definitions] '}'
- integral-literal := \d+
- := '0x' [\dA-F]+
- string-literal := \"(\\.|[^\\"])*\"
- floating-point-literal := \d+ '.' \d+
- literal-expression := type-literal
- := integral-literal
- := floating-point-literal
- := string-literal
- access-expression := expression '[' expression ']'
- assignment-expression := expression '=' expression
- this-expression := 'this'
- expression-list := [expression [',' expression-list]]
- initializer-expression := expression
- := variable-definition
- expression := member-expression
- := boolean-expression
- := arithmetic-expression
- := cast-expression
- := function-call-expression
- := access-expression
- := assignment-expression
- := identifier
- := this-expression
- := literal-expression
- := bitwise-expression
- := type-definition
- if-statement := 'if' '(' initializer-expression ')' statement [else-statement]
- else-statement := 'else' statement
- label-statement := identifier ':'
- goto-statement := 'goto' identifier
- return-statement := 'return' expression
- throw-statement := 'throw' expression
- try-statement := 'try' compound-statement catch-statement
- catch-statement := 'catch' '(' type-definition identifier ')' compound-statement [catch-statement]
- := 'catch' '(' '...' ')' compound-statement
- for-statement := 'for' '(' initializer-expression ';' expression ';' expression ')' compound-statement
- while-statement := 'while' '(' initializer-expression ')' compound-statement
- do-while-statement := 'do' compound-statement 'while' '(' expression ')'
- case-statement := 'case' expression ':' statement-list [case-statement]
- := 'default' ':' statement-list
- switch-statement := 'switch' '(' initializer-expression ')' '{' case-statement '}'
- break-statement := 'break'
- continue-statement := 'continue'
- statement := expression
- := return-statement
- := if-statement
- := throw-statement
- := try-statement
- := compound-statement
- := label-statement
- := goto-statement
- := for-statement
- := while-statement
- := do-while-statement
- := switch-statement
- := break-statement
- := continue-statement
- statement-list := statement [statement-list]
- compound-statement := '{' [statement-list] '}'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement