Error formatting macro: pagetree: java.lang.NullPointerException

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

https://docs.google.com/document/d/1DRN-tBIqhqVVyoHIDs7CMkduBFk-vqd_958ojeIBLHQ/edit

 

 

Notes from working with existing AST

  • Blocks
    • Inconsistent treatment of empty blocks
      • (let [x 1]) has four environments of interest: before the let form, at x's initializer, after x is 1, and after the let form. For an empty block, there is no where to get an environment with x in the locals.
    • Synthetic blocks
      • Would be a place to hang that :env
      • Could disallow special forms other than 'do from having blocks. Change (let* [x 1] 2 3) to (let* [x 1] (do 2 3))
      • let and letfn don't expose a :body-env, but try's catch does! would prefer explicit blocks nodes
    • (conj (vec statements ret)) pattern spills into client code
      • Inconsistent here too. Forcing children

...

...

 

 

...

    •  (fold that into this page?)
  • No root AST node type
    • Need a place to hang top-level info. File names, source data, etc.