            module ::= module_open module_body module_close

       module_open ::= "module" <name> "implements" <name> "{"
      module_close ::= "}"
       module_body ::= module_definition method_definitions

 module_definition ::= "definition {" def_tokens "}"
        def_tokens ::= def_token def_tokens | NIL
         def_token ::= def_name "=" <value> ";"
          def_name ::= "name" | "icon" | "location"

method_definitions ::= method_definition method_definitions | NIL
 method_definition ::= "method" <name> "(" method_parameters ")" "{" method_body "}"

     method_params ::= method_parameters | NIL
 method_parameters ::= method_parameter | method_parameter "," method_parameters
  method_parameter ::= [ qualifier ] type <name> [ "default" <value> ]
       method_body ::= method_def method_body | NIL
        method_def ::= def_name "=" <value> ";"
          def_name ::= "callback" | "supportFile"

            <name> ::= alphanumeric, no spaces
           <value> ::= '"" < alphanum, " escaped with \ (\") > '"'
