Add support for closures

This commit is contained in:
robotis
2012-05-06 09:28:41 +00:00
parent fb96b234fa
commit f81e8b5c8e
3 changed files with 6 additions and 1 deletions

View File

@@ -366,6 +366,8 @@ class LessParser(object):
""" variable_decl : variable ':' style_list ';'
"""
p[0] = Variable(list(p)[1:-1], p.lineno(4))
p[0].parse(self.scope)
self.scope.add_variable(p[0])
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -60,6 +60,7 @@ class Deferred(Node):
res = mixin.call(scope, args)
if res: break
if res:
[scope.add_variable(v) for v in mixin.vars]
scope.deferred = ident
res = [p.parse(scope) for p in res if p]
while(any(t for t in res if type(t) is Deferred)):

View File

@@ -30,7 +30,9 @@ class Mixin(Node):
self.name, args, self.guards = self.tokens[0]
self.args = [a for a in utility.flatten(args) if a]
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
def raw(self):