'Allow ()
(@foo[:value]) or
(@foo1[:value1], @foo2[:value2], ... @fooN[:valueN])'

def _parse_mixin_declaration(self, current_name):

    mixin_vars = []
    self._less_mixins[current_name] = mixin_vars
    tok = self._tokenizer.get_next_token()
    if self._classifier.is_operator(tok, ')'):
        return
    if self._classifier.is_operator(tok, '@'):
        while True:
            if (not self._classifier.is_operator(tok, '@')):
                self._add_result("expecting    ')'    or    a    directive", tok)
                raise SyntaxError()
            tok = self._tokenizer.get_next_token()
            if (not self._classifier.is_directive(tok)):
                self._add_result('expecting    a    variable    name', tok)
                raise SyntaxError()
            mixin_vars.append(tok['text'])
            tok = self._tokenizer.get_next_token()
            if self._classifier.is_operator(tok, ':'):
                self._parse_expression(consumeCommas=False)
                tok = self._tokenizer.get_next_token()
            if self._classifier.is_operator(tok, ','):
                tok = self._tokenizer.get_next_token()
            elif self._classifier.is_operator(tok, ')'):
                return
            else:
                self._add_result("expecting    ','    or    ')'", tok)
                raise SyntaxError()
    self._parse_mixin_invocation()
    self._inserted_mixin = True
