// 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.