idl-specification ::= declaration* exception-decl ::= ["published"] "exception" identifier [single-inheritance] "{" struct-member-decl* "}" ";" constants-decl ::= ["published"] identifier "{" const-decl+ "}" ";" module-decl ::= "module" identifier "{" declaration* "}" ";" accumulated-service-decl ::= ["published"] "service" identifier "{" service-member-decl* "}" ";"