Skip to content

Latest commit

 

History

History
135 lines (126 loc) · 3.17 KB

AST.md

File metadata and controls

135 lines (126 loc) · 3.17 KB

Abstract Syntax Tree

You can see the AST as a DOM document, the source code of the program beeing the graphical text output, and the DOM beeing a representation of it.

The main node is the program node, and it's structured like this :

  {
    "kind": "program",
    "children": [
      // array of nodes
    ]
  }

Nodes

Every node has a common structure enabling you to scan them and act accordingly.

NOTE : This structure depends also on what options you enable.

  {
    "kind": "node name",
    "loc": {
      ""
    },
    // the location node
    "loc": {
      "source": "original source code of the node",
      "start": {
        "line": 1, // 1 based
        "column": 0, // 0 based
        "offset": 0 // offset from the source code
      },
      "end": {
        // same structure as start
      }
    },
    "leadingComments": [
      // array of comments nodes
    ]
  }

Nodes hierarchy