| export‑module‑declaration | → | export module module‑name ; |
| imports | → | import* |
| import | → | import‑prefix? import module‑name |
| import‑prefix | → | interface‑prefix | implementation‑prefix |
| interface‑prefix | → | [ interface ] |
| implementation‑prefix | → | [ implementation ] |
| module‑name | → | qualified‑id |
| file‑path | → | <[^\n>]*> |
| qualified‑id | → | identifier (. identifier)* |
| identifier | → | Unicode identifier |
| string‑literal | → | " (schar | escape)* " |
| schar | → | [^\"\\\n\r] |
| char‑literal | → | ' (cchar | escape)+ ' |
| cchar | → | [^'\\\n\r] |
| escape | → |
\ ( (x|X) hex‑digit+ | (d|D) digit+ | octal‑digit+ | uhex4 | Uhex8 | (a|b|f|n|r|t|v|.)) |
| integer‑literal | → | octal‑literal | decimal‑literal | hex‑literal |
| floating‑literal | → | fraction exponent? | digit+ exponent |
| fraction | → | digit* . digit+ | digit+ . |
| exponent | → | (e | E) sign? digit+ |
| sign | → | + | - |
| decimal‑literal | → | [1-9] digit* |
| digit‑sequence | → | digit+ |
| digit | → | [0-9] |
| hex‑literal | → | (0x|0X) hex‑digit+ |
| hex8 | → | hex4 hex4 |
| hex4 | → | hex‑digit hex‑digit hex‑digit hex‑digit |
| hex‑digit | → | [0-9a-fA-F] |
| octal‑literal | → | 0 octal‑digit* |
| octal‑digit | → | [0-7] |