checkpoint nested

This commit is contained in:
jtm
2012-02-26 17:04:50 +00:00
parent 821e55d626
commit 1799f482bc
7 changed files with 21 additions and 22 deletions

View File

@@ -202,7 +202,8 @@ class LessParser(object):
def p_block_open(self, p):
""" block_open : identifier brace_open
"""
p[0] = p[1]
p[0] = p[1].parse(self.scope)
self.scope.current = p[1].real
def p_media_open(self, p):
""" block_open : css_media t_ws identifier brace_open

View File

@@ -28,7 +28,12 @@ class Scope(list):
@property
def scopename(self):
return [r['__current__'] for r in self if r['__current__']]
"""
"""
return [r['__current__']
for r in self
if r['__current__']]
def add_block(self, block):
"""

View File

@@ -1,6 +1,6 @@
"""
"""
import copy, re
import re
from .node import Node
from lesscpy.lessc import utility
class Block(Node):
@@ -10,8 +10,7 @@ class Block(Node):
"""
"""
if not self.parsed:
ident, inner = self.tokens
self.name = ident.parse(scope)
self.name, inner = self.tokens
if not inner: inner = []
self.parsed = [p.parse(scope)
for p in inner
@@ -22,8 +21,6 @@ class Block(Node):
self. inner = [p for p in inner
if p and type(p) is type(self)]
if self.inner:
scope = copy.deepcopy(scope)
scope.current = self.name
self.inner = [p.parse(scope) for p in self.inner]
return self

View File

@@ -16,7 +16,7 @@ class Expression(Node):
if type(e) is tuple
else e
for e in expr
if e != ' ']
if str(e).strip()]
try:
a, ua = utility.analyze_number(A, 'Illegal element in expression')
b, ub = utility.analyze_number(B, 'Illegal element in expression')

View File

@@ -6,15 +6,11 @@ class Identifier(Node):
def parse(self, scope):
"""
"""
scopename = []
if scope:
scopename.extend(scope.scopename)
scopename = ''.join(scopename)
scopename = scope.scopename if scope else []
name = ''.join([t + ' '
if t in '*>~+'
else t
for t in utility.flatten(self.tokens)])
if name.startswith('&'):
scopename = scopename.strip()
name = name[1:]
return scopename + name
self.real = name
scopename.append(name)
return ''.join(scopename).replace(' &', '')

View File

@@ -29,14 +29,14 @@
color: blue;
border-color: black;
}
.scope2 {
.scope1 .scope2 {
color: blue;
}
.scope3 {
.scope1 .scope2 .scope3 {
color: red;
border-color: black;
background-color: white;
}
.scope4 {
.scope1 .scope2 .scope3 .scope4 {
color: black;
}

View File

@@ -6,6 +6,6 @@
.alpha{filter:alpha(opacity=42);}
.lazy-eval{width:100%;}
.scope1{color:blue;border-color:black;}
.scope2{color:blue;}
.scope3{color:red;border-color:black;background-color:white;}
.scope4{color:black;}
.scope1 .scope2{color:blue;}
.scope1 .scope2 .scope3{color:red;border-color:black;background-color:white;}
.scope1 .scope2 .scope3 .scope4{color:black;}