<program> ---> <command or definition>* <command or definition> ---> <command> | <definition> | <syntax definition> | (begin <command or definition>+) <definition> ---> (define <variable> <expression>) | (define (<variable> <def formals>) <body>) | (begin <definition>*) <def formals> ---> <variable>* | <variable>* . <variable> <syntax definition> ---> (define-syntax <keyword> <transformer spec>)