Converts WC3 JASS to an abstract syntax tree
npm install jass-to-astjavascript
import parse from "jass-to-ast";parse(
function flip takes nothing returns nothing
local boolean previousState = flipped
set flipped = true
return previousState
endfunction.trim() );
> Program [
Globals {
globals: Statements [
Variable { type: 'boolean', name: 'flipped', value: false }
]
},
EmptyLine {},
JASSFunction {
name: 'flip',
statements: Statements [
Variable {
type: 'boolean',
name: 'previousState',
value: [String (Name): 'flipped']
},
JASSSet { name: 'flipped', value: true },
Return { data: [ [String (Name): 'previousState'] ] }
]
}
]
`
`bash``
> jass-to-ast example.j
Program [
Globals {
globals: Statements [
Variable { type: 'boolean', name: 'flipped', value: false }
]
},
EmptyLine {},
JASSFunction {
name: 'flip',
statements: Statements [
Variable {
type: 'boolean',
name: 'previousState',
value: [String (Name): 'flipped']
},
JASSSet { name: 'flipped', value: true },
Return { data: [ [String (Name): 'previousState'] ] }
]
}
]