    // Generated by pandoc-plot 1.5.5

    digraph CompilationProcess {
        graph [
            label="Compilation process"
            labelloc="t"
            fontname="Helvetica,Arial,sans-serif"
        ]
        node [
            fontname="Helvetica,Arial,sans-serif"
            shape=record
            style=filled
            fillcolor=gray95
        ]
        edge [fontname="Helvetica,Arial,sans-serif"]

        Lexer [
            shape=plain
            label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
                <tr> <td> <b>Lexer</b> </td> </tr>
            </table>>
        ]

        edge [arrowhead=vee]
        Lexer -> Parser [xlabel="tokens"]

        Parser [
            shape=plain
            label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
                <tr> <td> <b>Parser</b> </td> </tr>

            </table>>
        ]

        edge [arrowhead=vee]
        Parser -> Symbols [xlabel="Container"]

        Symbols [
            shape=plain
            label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
                <tr> <td> <b>Symbols</b> </td> </tr>
                <tr> <td>
                    <table border="0" cellborder="0" cellspacing="0" >

                        <tr> <td port="ss1" align="left" >- Pseudo-entity resolution    </td> </tr>
                        <tr> <td port="ss2" align="left" >- Name collision detection    </td> </tr>
                    </table>
                </td> </tr>

            </table>>
        ]

        edge [arrowhead=vee]
        Symbols -> Dependency [xlabel="Container"]

        Dependency [
            shape=plain
            label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
                <tr> <td> <b>Dependency</b> </td> </tr>
                <tr> <td>
                    <table border="0" cellborder="0" cellspacing="0" >

                        <tr> <td port="ss1" align="left" >- Dependency generation    </td> </tr>
                        <tr> <td port="ss2" align="left" >- Linearization    </td> </tr>
                    </table>
                </td> </tr>

            </table>>
        ]

        edge [arrowhead=vee]
        Dependency -> TypeCheckCodeGen [xlabel="DNodes"]

        TypeCheckCodeGen [
            shape=plain
            label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
                <tr> <td> <b>TC/GC</b> </td> </tr>
                <tr> <td>
                    <table border="0" cellborder="0" cellspacing="0" >
                        <tr> <td port="ss1" align="left" >- Type checking    </td> </tr>
                        <tr> <td port="ss2" align="left" >- Code generation    </td> </tr>
                    </table>
                </td> </tr>

            </table>>
        ]

        edge [arrowhead=vee]
        TypeCheckCodeGen -> InstructionEmit [xlabel="Instructions"]

        InstructionEmit [
            shape=plain
            label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
                <tr> <td> <b>Emit</b> </td> </tr>
                <tr> <td>
                    <table border="0" cellborder="0" cellspacing="0" >
                        <tr> <td port="ss1" align="left" >- Instruction transformation    </td> </tr>
                        <tr> <td port="ss2" align="left" >- Symbol mapping    </td> </tr>
                    </table>
                </td> </tr>

            </table>>
        ]

    }

Click here to see how this plot was generated.