### 1 `compile()`のエミュレーション

たくさんの有用な演算を構文解析とバイトコード生成の間に行うことができますが、もっとも単純な演算は何もしないことです。このため、`parser`モジュールを使って中間データ構造を作ることは次のコードと等価です。

    >>> code = compile('a + 5', 'file.py', 'eval')
    >>> a = 5
    >>> eval(code)
    10

`parser`モジュールを使った等価な演算はやや長くなりますが、ASTオブジェクトとして中間内部解析木が維持されるようにします:

    >>> import parser
    >>> ast = parser.expr('a + 5')
    >>> code = ast.compile('file.py')
    >>> a = 5
    >>> eval(code)
    10

ASTとコードオブジェクトの両方が必要なアプリケーションでは、このコードを簡単に利用できる関数にまとめることができます:

    import parser

    def load_suite(source_string):
        ast = parser.suite(source_string)
        return ast, ast.compile()

    def load_expression(source_string):
        ast = parser.expr(source_string)
        return ast, ast.compile()