當前位置: 首頁>>代碼示例>>Python>>正文


Python compiler.walk方法代碼示例

本文整理匯總了Python中compiler.walk方法的典型用法代碼示例。如果您正苦於以下問題:Python compiler.walk方法的具體用法?Python compiler.walk怎麽用?Python compiler.walk使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在compiler的用法示例。


在下文中一共展示了compiler.walk方法的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: _visitFuncOrLambda

# 需要導入模塊: import compiler [as 別名]
# 或者: from compiler import walk [as 別名]
def _visitFuncOrLambda(self, node, isLambda=0):
        if not isLambda and node.decorators:
            for decorator in node.decorators.nodes:
                self.visit(decorator)
            ndecorators = len(node.decorators.nodes)
        else:
            ndecorators = 0

        gen = self.FunctionGen(node, self.scopes, isLambda,
                               self.class_name, self.get_module())
        walk(node.code, gen)
        gen.finish()
        self.set_lineno(node)
        for default in node.defaults:
            self.visit(default)
        self._makeClosure(gen, len(node.defaults))
        for i in range(ndecorators):
            self.emit('CALL_FUNCTION', 1) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:20,代碼來源:pycodegen.py

示例2: visitClass

# 需要導入模塊: import compiler [as 別名]
# 或者: from compiler import walk [as 別名]
def visitClass(self, node):
        gen = self.ClassGen(node, self.scopes,
                            self.get_module())
        walk(node.code, gen)
        gen.finish()
        self.set_lineno(node)
        self.emit('LOAD_CONST', node.name)
        for base in node.bases:
            self.visit(base)
        self.emit('BUILD_TUPLE', len(node.bases))
        self._makeClosure(gen, 0)
        self.emit('CALL_FUNCTION', 0)
        self.emit('BUILD_CLASS')
        self.storeName(node.name)

    # The rest are standard visitor methods

    # The next few implement control-flow statements 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:20,代碼來源:pycodegen.py

示例3: parseSymbols

# 需要導入模塊: import compiler [as 別名]
# 或者: from compiler import walk [as 別名]
def parseSymbols(self, tree):
        s = symbols.SymbolVisitor()
        walk(tree, s)
        return s.scopes 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:6,代碼來源:pycodegen.py

示例4: visitModule

# 需要導入模塊: import compiler [as 別名]
# 或者: from compiler import walk [as 別名]
def visitModule(self, node):
        self.scopes = self.parseSymbols(node)
        self.scope = self.scopes[node]
        self.emit('SET_LINENO', 0)
        if node.doc:
            self.emit('LOAD_CONST', node.doc)
            self.storeName('__doc__')
        lnf = walk(node.node, self.NameFinder(), verbose=0)
        self.locals.push(lnf.getLocals())
        self.visit(node.node)
        self.emit('LOAD_CONST', None)
        self.emit('RETURN_VALUE') 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:14,代碼來源:pycodegen.py

示例5: visitGenExpr

# 需要導入模塊: import compiler [as 別名]
# 或者: from compiler import walk [as 別名]
def visitGenExpr(self, node):
        gen = GenExprCodeGenerator(node, self.scopes, self.class_name,
                                   self.get_module())
        walk(node.code, gen)
        gen.finish()
        self.set_lineno(node)
        self._makeClosure(gen, 0)
        # precomputation of outmost iterable
        self.visit(node.code.quals[0].iter)
        self.emit('GET_ITER')
        self.emit('CALL_FUNCTION', 1) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:13,代碼來源:pycodegen.py

示例6: __init__

# 需要導入模塊: import compiler [as 別名]
# 或者: from compiler import walk [as 別名]
def __init__(self, tree):
        self.graph = pyassem.PyFlowGraph("<expression>", tree.filename)
        self.__super_init()
        walk(tree, self) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:6,代碼來源:pycodegen.py

示例7: findOp

# 需要導入模塊: import compiler [as 別名]
# 或者: from compiler import walk [as 別名]
def findOp(node):
    """Find the op (DELETE, LOAD, STORE) in an AssTuple tree"""
    v = OpFinder()
    walk(node, v, verbose=0)
    return v.op 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:7,代碼來源:pycodegen.py


注:本文中的compiler.walk方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。