From 6c123eebf04d2aa9de44e87f4b8e3ee30285113e Mon Sep 17 00:00:00 2001 From: jam Date: Mon, 14 Dec 2015 21:23:19 -0800 Subject: Remove directories in mojo/public/third_party that just mirrored third_party. This isn't needed now that the SDK is in the chrome repo. Review URL: https://codereview.chromium.org/1530433002 Cr-Commit-Position: refs/heads/master@{#365158} --- mojo/public/third_party/jinja2/optimizer.py | 68 ----------------------------- 1 file changed, 68 deletions(-) delete mode 100644 mojo/public/third_party/jinja2/optimizer.py (limited to 'mojo/public/third_party/jinja2/optimizer.py') diff --git a/mojo/public/third_party/jinja2/optimizer.py b/mojo/public/third_party/jinja2/optimizer.py deleted file mode 100644 index 00eab11..0000000 --- a/mojo/public/third_party/jinja2/optimizer.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- -""" - jinja2.optimizer - ~~~~~~~~~~~~~~~~ - - The jinja optimizer is currently trying to constant fold a few expressions - and modify the AST in place so that it should be easier to evaluate it. - - Because the AST does not contain all the scoping information and the - compiler has to find that out, we cannot do all the optimizations we - want. For example loop unrolling doesn't work because unrolled loops would - have a different scoping. - - The solution would be a second syntax tree that has the scoping rules stored. - - :copyright: (c) 2010 by the Jinja Team. - :license: BSD. -""" -from jinja2 import nodes -from jinja2.visitor import NodeTransformer - - -def optimize(node, environment): - """The context hint can be used to perform an static optimization - based on the context given.""" - optimizer = Optimizer(environment) - return optimizer.visit(node) - - -class Optimizer(NodeTransformer): - - def __init__(self, environment): - self.environment = environment - - def visit_If(self, node): - """Eliminate dead code.""" - # do not optimize ifs that have a block inside so that it doesn't - # break super(). - if node.find(nodes.Block) is not None: - return self.generic_visit(node) - try: - val = self.visit(node.test).as_const() - except nodes.Impossible: - return self.generic_visit(node) - if val: - body = node.body - else: - body = node.else_ - result = [] - for node in body: - result.extend(self.visit_list(node)) - return result - - def fold(self, node): - """Do constant folding.""" - node = self.generic_visit(node) - try: - return nodes.Const.from_untrusted(node.as_const(), - lineno=node.lineno, - environment=self.environment) - except nodes.Impossible: - return node - - visit_Add = visit_Sub = visit_Mul = visit_Div = visit_FloorDiv = \ - visit_Pow = visit_Mod = visit_And = visit_Or = visit_Pos = visit_Neg = \ - visit_Not = visit_Compare = visit_Getitem = visit_Getattr = visit_Call = \ - visit_Filter = visit_Test = visit_CondExpr = fold - del fold -- cgit v1.1