Definition of quirk21b. Quirk21b is a language with the same semantics as quirk21a but with the following differences in syntax: Every contains a section delimited by { and }. Every ends with a semicolon. Every ends with a semicolon. The body of a lambda expression is delimited by { and }. Formal parameters are declared as in Java. Compound statements are written as in Java, not as in Pascal. **************************************************************** Syntax of quirk21b. [Revision 0] Revision history: **************************************************************** ::= where ::= export from { } | export from { where } ::= variables | functions ::= = ; ::= = ; ::= | ::= | ::= | ::= boolean | int ::= ( -> ) ::= void | ::= lambda ( ) : { } ::= ::= | | let in | if then else | while do | for to do | { } ::= | ::= | ::= | ::= | ::= | ::= | | ( ) | ::= | ( ) ::= true | false | stringliteral | intliteral ::= | ::= | , ::= | ::= | ; ::= | ::= | , ::= | ::= | ::= | ::= | * ::= | ::= | , ::= or ::= and ::= == | != | < | <= | > | >= ::= + | - ::= * | / ::= ! | - ::= id