Module 07 · AST Lab
AST Lab
A from-scratch JS-subset compiler: tokenizer, recursive-descent parser, AST transformer with composable visitors, and code generator. No Babel, no Acorn.
Hand-written. ~900 LoC across 5 core files. Pure functions; no framework.
tokens: 114nodes: 54parse: 2.14mstokenize: 1.57mstransform: 0.01mscodegen: 0.38msin: 340Bout: 336B+0 / -0
rename:→
Sourceeditable
Tokens114 tokens
constgreeting="hello";constaudience="world";functionadd(a,b){returna+b;}constsum=add(21,21);console.log(`${greeting}, ${audience} — sum=${sum}`);constitems=[1,2,3].map(x=>x*2);constmeta={lang:"demo",count:items.length};if(sum>40){console.log("big");}else{console.log("small");}eof
AST tree54 nodes · live
Output336B · +0/-0