checkpoint nested
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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(' &', '')
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
6
lesscpy/test/css/variables.min.css
vendored
6
lesscpy/test/css/variables.min.css
vendored
@@ -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;}
|
||||
|
||||
Reference in New Issue
Block a user