Add support for closures
This commit is contained in:
@@ -366,6 +366,8 @@ class LessParser(object):
|
|||||||
""" variable_decl : variable ':' style_list ';'
|
""" variable_decl : variable ':' style_list ';'
|
||||||
"""
|
"""
|
||||||
p[0] = Variable(list(p)[1:-1], p.lineno(4))
|
p[0] = Variable(list(p)[1:-1], p.lineno(4))
|
||||||
|
p[0].parse(self.scope)
|
||||||
|
self.scope.add_variable(p[0])
|
||||||
|
|
||||||
#
|
#
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ class Deferred(Node):
|
|||||||
res = mixin.call(scope, args)
|
res = mixin.call(scope, args)
|
||||||
if res: break
|
if res: break
|
||||||
if res:
|
if res:
|
||||||
|
[scope.add_variable(v) for v in mixin.vars]
|
||||||
scope.deferred = ident
|
scope.deferred = ident
|
||||||
res = [p.parse(scope) for p in res if p]
|
res = [p.parse(scope) for p in res if p]
|
||||||
while(any(t for t in res if type(t) is Deferred)):
|
while(any(t for t in res if type(t) is Deferred)):
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ class Mixin(Node):
|
|||||||
self.name, args, self.guards = self.tokens[0]
|
self.name, args, self.guards = self.tokens[0]
|
||||||
self.args = [a for a in utility.flatten(args) if a]
|
self.args = [a for a in utility.flatten(args) if a]
|
||||||
self.body = Block([None, self.tokens[1]], 0)
|
self.body = Block([None, self.tokens[1]], 0)
|
||||||
self.scope = scope
|
self.vars = list(utility.flatten([list(v.values())
|
||||||
|
for v in [s['__variables__']
|
||||||
|
for s in scope]]))
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def raw(self):
|
def raw(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user