::= int main(void) { } ::= { } ::= void ( ) { } | ( ) { } ::= ; | { } ; | = ; ::= , ... , ::= = ; | std::cout << ; | std::cin >> ; | | | | return; | return ; ::= ::= << ::= | | ( ) | | ::= | | ::= - | ! ::= + | - | * | / | % ::= && | || ::= == | != | < | <= | > | >= ::= "hello" | "" | " " | std::endl | ... | 42 | -23 | ... | 42.0 | 3.14159 | ... | 'a' | 'b' | ... | true | false ::= x | y0 | count | minValue | the_greatest | ... ::= = ; | ++; | --; | ++; | --; ::= if ( expression ) { block } | if ( expression ) { block } else { block }
 | if ( expression ) { block } else if ( expression ) { block } | if ( expression ) { block } else if ( expression ) { block } else { block } ... ::= while ( expression ) { block } | do { block } while ( expression ); | for ( statement ; expression ; statement ) { block }