parser.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:thrift2doc 作者: j2gg-s 项目源码 文件源码
def parse(path, module_name=None, lexer=None, parser=None):
    if lexer is None:
        lexer = lex.lex()
    if parser is None:
        parser = yacc.yacc(debug=False, write_tables=0)

    with open(path) as f:
        data = f.read()

    if module_name is None:
        basename = os.path.basename(path)
        module_name = os.path.splitext(basename)[0]

    thrift = types.ModuleType(module_name)
    setattr(thrift, '__thrift_file__', path)
    thrift_stack.append(thrift)
    lexer.lineno = 1
    parser.parse(data)
    thrift_stack.pop()

    return thrift
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号