Compile Unit Grammar

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 | typedef‑declaration | concept‑definition | function‑definition | class‑definition | interface‑definition | enum‑type‑definition | constant‑definition | delegate‑definition | class‑delegate‑definition | global‑variable‑definition
namespace‑definition → namespace (qualified‑id | <empty>) { namespace‑content }
typedef‑declaration → typedef
concept‑definition → concept
function‑definition → function
class‑definition → class
interface‑definition → interface
enum‑type‑definition → enum‑type
constant‑definition → constant
delegate‑definition → delegate
class‑delegate‑definition → class‑delegate
global‑variable‑definition → global‑variable