I'm looking for descriptions of the kinds of nodes in PIL. Below is what I gathered from digging through the source code (Compile.hs and Compile/PIR.hs). Could one of the lamdas correct the places where I'm misinterpreting the code and fill in what's missing?

--------
    PNil      A null value?
    PVal      A literal value
    PVar      A variable

    PNoop     No-op
    PAssign   Assignment operation
    PBind     Binding operation
    PApp      All other operations, function calls, or method calls

    PSub      A subroutine declaration
    PCode     A code block

    PExp      An expression
    PStmt     A statement
    PStmts    A sequence of statements

    PLit      An intermediate node for literal values?
    PRawName  An intermediate node for variable names?
    PThunk    An intermediate node? No semantic value?

    PPad      Create a new pad (or add a new element to a pad?)
    PPos      ?
--------

Thanks!
Allison

Reply via email to