diff options
author | German M. Bravo <german.mb@deipi.com> | 2013-08-18 10:17:14 -0500 |
---|---|---|
committer | German M. Bravo <german.mb@deipi.com> | 2013-08-18 10:17:14 -0500 |
commit | ae4988f1d3f3a8cdc2d3d1fbd1c8f6013f5c07da (patch) | |
tree | def1a9bc8094a4249669de0e9fd397149948c491 | |
parent | 679ec38e1e454e9441249ea122c5e39e29b3a9b0 (diff) | |
download | pyscss-ae4988f1d3f3a8cdc2d3d1fbd1c8f6013f5c07da.tar.gz |
Function declarations need parentheses at the start and at the end in Ruby as well
-rw-r--r-- | scss/__init__.py | 34 | ||||
-rw-r--r-- | scss/tests/files/regressions/mixins-vars.css | 3 | ||||
-rw-r--r-- | scss/tests/files/regressions/mixins-vars.scss | 8 |
3 files changed, 4 insertions, 41 deletions
diff --git a/scss/__init__.py b/scss/__init__.py index e58b88c..540fcfb 100644 --- a/scss/__init__.py +++ b/scss/__init__.py @@ -611,33 +611,7 @@ class Scss(object): value = 0 rule.options[option.replace('-', '_')] = value - # def _get_funct_def(self, calculator, argument, definition=True): - # # !!EXPERIMENTAL!! (for mixins-vars.scss test) - # ID_RE = re.compile(r'[-a-zA-Z_][-a-zA-Z0-9_]*') - # m = ID_RE.match(argument) - # if not m: - # raise SyntaxError("No function name found!" % (argument,)) - - # funct = argument[:m.end()] - # argstr = argument[m.end():].strip() - # funct = calculator.do_glob_math(funct) - # funct = normalize_var(funct.strip()) - - # if argstr: - # if definition: - # if argstr[0] != '(': - # raise SyntaxError("Expected '(', after function name: %r" % (argument,)) - # if argstr[-1] != ')': - # raise SyntaxError("Expected ')', found end of line: %r" % (argument,)) - # argstr = argstr[1:-1] - - # # Has arguments; parse them with the argspec rule - # argspec_node = calculator.parse_expression(argstr, target='goal_argspec') if argstr else None - # # print(argstr, repr(argspec_node)) - # return funct, argspec_node - # return funct, None - - def _get_funct_def(self, calculator, argument, definition=True): + def _get_funct_def(self, rule, calculator, argument): funct, lpar, argstr = argument.partition('(') funct = calculator.do_glob_math(funct) funct = normalize_var(funct.strip()) @@ -646,7 +620,7 @@ class Scss(object): if lpar: # Has arguments; parse them with the argspec rule if not argstr.endswith(')'): - raise SyntaxError("Expected ')', found end of line: %r" % (argument,)) + raise SyntaxError("Expected ')', found end of line for %s (%s)" % (funct, rule.file_and_line)) argstr = argstr[:-1].strip() argspec_node = calculator.parse_expression(argstr, target='goal_argspec') if argstr else None # print(argstr, repr(argspec_node)) @@ -663,7 +637,7 @@ class Scss(object): raise SyntaxError("%s requires a function name (%s)" % (block.directive, rule.file_and_line)) calculator = Calculator(rule.namespace) - funct, argspec_node = self._get_funct_def(calculator, block.argument, definition=False) + funct, argspec_node = self._get_funct_def(rule, calculator, block.argument) defaults = {} new_params = [] @@ -760,7 +734,7 @@ class Scss(object): Implements @include, for @mixins """ calculator = Calculator(rule.namespace.derive()) - funct, argspec_node = self._get_funct_def(calculator, block.argument) + funct, argspec_node = self._get_funct_def(rule, calculator, block.argument) if argspec_node: argspec = list(argspec_node.iter_call_argspec()) diff --git a/scss/tests/files/regressions/mixins-vars.css b/scss/tests/files/regressions/mixins-vars.css deleted file mode 100644 index 11802f7..0000000 --- a/scss/tests/files/regressions/mixins-vars.css +++ /dev/null @@ -1,3 +0,0 @@ -div { - box-shadow: black 0 0.08em 0.1em 1px inset, white 1px 1px 0 0; -} diff --git a/scss/tests/files/regressions/mixins-vars.scss b/scss/tests/files/regressions/mixins-vars.scss deleted file mode 100644 index 135cdab..0000000 --- a/scss/tests/files/regressions/mixins-vars.scss +++ /dev/null @@ -1,8 +0,0 @@ -@option compress:no; - -@mixin box-shadow($first, $second) { - box-shadow: $first, second -} -div { - @include box-shadow(darken(red, 9) 0 0.08em 0.1em 1px inset), rgba(white, lightness(green) / 3) 1px 1px 0 0; -} |