code: function declaration() {
          match(/^([;\s]*)+/); // ignore empty declarations + whitespace
  
          const comment_regexp = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
          let prop = match(/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);
  
          if (!prop) {
              return;
          }
  
          prop = prop[0].trim();
  
          if (!match(/^:\s*/)) {
              return error('property missing \':\'');
          }
  
          // Quotes regex repeats verbatim inside and outside parentheses
          const val = match(/^((?:\/\*.*?\*\/|'(?:\\'|.)*?'|"(?:\\"|.)*?"|\((\s*'(?:\\'|.)*?'|"(?:\\"|.)*?"|[^)]*?)\s*\)|[^};])+)/);
          const ret = {
              type    : 'declaration',
              property: prop.replace(comment_regexp, ''),
              value   : val ? val[0].replace(comment_regexp, '').trim() : ''
          };
  
          match(/^[;\s]*/);
  
          return ret;
      }
docs: Declarations -------------------------------------------------------------------------