From a2c53f47d1ef781a8bfc81b0ca86979ab77fcb6e Mon Sep 17 00:00:00 2001 From: jtm Date: Sat, 25 Feb 2012 22:03:08 +0000 Subject: [PATCH] checkpoint --- lesscpy/plib/block.py | 22 ++++++++++++++-------- lesscpy/plib/identifier.py | 13 ++++++++----- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/lesscpy/plib/block.py b/lesscpy/plib/block.py index 9029e1a..316eb08 100644 --- a/lesscpy/plib/block.py +++ b/lesscpy/plib/block.py @@ -1,5 +1,6 @@ """ """ +import copy from .node import Node from lesscpy.lessc import utility class Block(Node): @@ -8,13 +9,14 @@ class Block(Node): def parse(self, scope): """ """ + scope = copy.deepcopy(scope) ident, inner = self.tokens self.name = ident.parse(scope) if not inner: inner = [] self.parsed = [p.parse(scope) for p in inner if p and type(p) is not type(self)] - scope.current = (self.name, ' ') + scope.current = self.name self.inner = [p.parse(scope) for p in inner if p and type(p) is type(self)] @@ -23,10 +25,14 @@ class Block(Node): def format(self, fills): """ """ - f = "%(identifier)s%(ws)s{%(nl)s%(proplist)s}%(nl)s%(endblock)s" - fills.update({ - 'identifier': self.name, - 'proplist': ''.join([p.format(fills) for p in self.parsed]), - 'endblock': ''.join([p.format(fills) for p in self.inner]), - }) - return f % fills \ No newline at end of file + out = [] + if self.parsed: + f = "%(identifier)s%(ws)s{%(nl)s%(proplist)s}%(nl)s" + fills.update({ + 'identifier': self.name.strip(), + 'proplist': ''.join([p.format(fills) for p in self.parsed]), + }) + out.append(f % fills) + if self.inner: + out.append(''.join([p.format(fills) for p in self.inner])) + return ''.join(out) diff --git a/lesscpy/plib/identifier.py b/lesscpy/plib/identifier.py index 7cfc102..0678464 100644 --- a/lesscpy/plib/identifier.py +++ b/lesscpy/plib/identifier.py @@ -6,9 +6,12 @@ class Identifier(Node): def parse(self, scope): """ """ + scopename = [] if scope: - scopename = [name for name in scope.scopename] - scopename.extend(self.tokens) - else: - scopename = self.tokens - return ''.join(utility.flatten(scopename)).strip() + scopename.extend(scope.scopename) + scopename = ''.join(scopename) + name = ''.join(utility.flatten(self.tokens)) + if name.startswith('&'): + scopename = scopename.strip() + name = name[1:] + return scopename + name