AST
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
AST
Kind: global class Properties
Name
Type
Description
withPositions
Boolean
Should locate any node (by default false)
withSource
Boolean
Should extract the node original code (by default false)
asT.swapLocations()
Change parent node informations after swapping childs
Kind: instance method of AST
asT.resolvePrecedence()
Check and fix precence, by default using right
Kind: instance method of AST
asT.prepare(kind, parser) ⇒ function
function
Prepares an AST node
Kind: instance method of AST
Param
Type
Description
kind
String
| null
Defines the node type (if null, the kind must be passed at the function call)
parser
Parser
The parser instance (use for extracting locations)
Last updated
Was this helpful?