| compile‑unit | → | namespace‑content |
| namespace‑content | → | using‑directives definitions |
| using‑directives | → | using‑directive* |
| using‑directive | → | using‑alias‑directive | using‑namespace‑directive |
| using‑alias‑directive | → | using identifier = qualified‑id ; |
| using‑namespace‑directive | → | using qualified‑id ; |
| definitions | → | definition* |
| definition | → | namespace‑definition | function‑definition | class‑definition | interface‑definition | enum‑type‑definition | constant‑definition | delegate‑definition | class‑delegate‑definition | |
| namespace‑definition | → | namespace qualified‑id { namespace‑content } |
| function‑definition | → | function |
| class‑definition | → | class |
| interface‑definition | → | interface |
| enum‑type‑definition | → | enumerated‑type |
| constant‑definition | → | constant |
| delegate‑definition | → | delegate |
| class‑delegate‑definition | → | class‑delegate |
| project | → |
project
project‑name
; project‑declaration* |
| project‑name | → | id‑char‑sequence ( . id‑char‑sequence )* |
| project‑declaration | → | reference‑declaration | source‑file‑declaration | target‑declaration |
| reference‑declaration | → | reference file‑path ; |
| source‑file‑declaration | → | source file‑path ; |
| target‑declaration | → | target = (program | library) ; |
| file‑path | → | < [^ >]+ > |
| solution | → |
solution
solution‑name
; solution‑declaration* |
| solution‑name | → | id‑char‑sequence ( . id‑char‑sequence )* |
| solution‑declaration | → | solution‑project‑declaration |
| solution‑project‑declaration | → | project file‑path ; |