当前位置: 首页>>代码示例>>Python>>正文


Python Parsing.p_module方法代码示例

本文整理汇总了Python中Parsing.p_module方法的典型用法代码示例。如果您正苦于以下问题:Python Parsing.p_module方法的具体用法?Python Parsing.p_module怎么用?Python Parsing.p_module使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Parsing的用法示例。


在下文中一共展示了Parsing.p_module方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: parse

# 需要导入模块: import Parsing [as 别名]
# 或者: from Parsing import p_module [as 别名]
 def parse(self, source_filename, scope, pxd):
     # Parse the given source file and return a parse tree.
     f = open(source_filename, "rU")
     s = PyrexScanner(f, source_filename, scope = scope, context = self)
     try:
         tree = Parsing.p_module(s, pxd)
     finally:
         f.close()
     if Errors.num_errors > 0:
         raise CompileError
     return tree
开发者ID:Distrotech,项目名称:Pyrex,代码行数:13,代码来源:Main.py

示例2: parse_from_strings

# 需要导入模块: import Parsing [as 别名]
# 或者: from Parsing import p_module [as 别名]
def parse_from_strings(name, code, pxds=None, level=None, initial_pos=None,
                       context=None, allow_struct_enum_decorator=False):
    """
    Utility method to parse a (unicode) string of code. This is mostly
    used for internal Cython compiler purposes (creating code snippets
    that transforms should emit, as well as unit testing).

    code - a unicode string containing Cython (module-level) code
    name - a descriptive name for the code source (to use in error messages etc.)

    RETURNS

    The tree, i.e. a ModuleNode. The ModuleNode's scope attribute is
    set to the scope used when parsing.
    """
    if pxds is None:
        pxds = {}
    if context is None:
        context = StringParseContext(name)
    # Since source files carry an encoding, it makes sense in this context
    # to use a unicode string so that code fragments don't have to bother
    # with encoding. This means that test code passed in should not have an
    # encoding header.
    assert isinstance(code, unicode), "unicode code snippets only please"
    encoding = "UTF-8"

    module_name = name
    if initial_pos is None:
        initial_pos = (name, 1, 0)
    code_source = StringSourceDescriptor(name, code)

    scope = context.find_module(module_name, pos = initial_pos, need_pxd = 0)

    buf = StringIO(code)

    scanner = PyrexScanner(buf, code_source, source_encoding = encoding,
                     scope = scope, context = context, initial_pos = initial_pos)
    ctx = Parsing.Ctx(allow_struct_enum_decorator=allow_struct_enum_decorator)

    if level is None:
        tree = Parsing.p_module(scanner, 0, module_name, ctx=ctx)
        tree.scope = scope
        tree.is_pxd = False
    else:
        tree = Parsing.p_code(scanner, level=level, ctx=ctx)

    tree.scope = scope
    return tree
开发者ID:runt18,项目名称:mojo,代码行数:50,代码来源:TreeFragment.py

示例3: parse

# 需要导入模块: import Parsing [as 别名]
# 或者: from Parsing import p_module [as 别名]
 def parse(self, source_desc, scope, pxd, full_module_name):
     if not isinstance(source_desc, FileSourceDescriptor):
         raise RuntimeError("Only file sources for code supported")
     source_filename = Utils.encode_filename(source_desc.filename)
     # Parse the given source file and return a parse tree.
     try:
         f = Utils.open_source_file(source_filename, "rU")
         try:
             s = PyrexScanner(f, source_desc, source_encoding = f.encoding,
                              scope = scope, context = self)
             tree = Parsing.p_module(s, pxd, full_module_name)
         finally:
             f.close()
     except UnicodeDecodeError, msg:
         #import traceback
         #traceback.print_exc()
         error((source_desc, 0, 0), "Decoding error, missing or incorrect coding=<encoding-name> at top of source (%s)" % msg)
开发者ID:enyst,项目名称:plexnet,代码行数:19,代码来源:Main.py

示例4: parse

# 需要导入模块: import Parsing [as 别名]
# 或者: from Parsing import p_module [as 别名]
    def parse(self, source_desc, scope, pxd, full_module_name):
        if not isinstance(source_desc, FileSourceDescriptor):
            raise RuntimeError("Only file sources for code supported")
        source_filename = source_desc.filename
        scope.cpp = self.cpp
        # Parse the given source file and return a parse tree.
        num_errors = Errors.num_errors
        try:
            f = Utils.open_source_file(source_filename, "rU")
            try:
                import Parsing

                s = PyrexScanner(f, source_desc, source_encoding=f.encoding, scope=scope, context=self)
                tree = Parsing.p_module(s, pxd, full_module_name)
            finally:
                f.close()
        except UnicodeDecodeError, e:
            # import traceback
            # traceback.print_exc()
            line = 1
            column = 0
            msg = e.args[-1]
            position = e.args[2]
            encoding = e.args[0]

            f = open(source_filename, "rb")
            try:
                byte_data = f.read()
            finally:
                f.close()

            # FIXME: make this at least a little less inefficient
            for idx, c in enumerate(byte_data):
                if c in (ord("\n"), "\n"):
                    line += 1
                    column = 0
                if idx == position:
                    break

                column += 1

            error(
                (source_desc, line, column),
                "Decoding error, missing or incorrect coding=<encoding-name> "
                "at top of source (cannot decode with encoding %r: %s)" % (encoding, msg),
            )
开发者ID:qlb7707,项目名称:webrtc_src,代码行数:48,代码来源:Main.py


注:本文中的Parsing.p_module方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。