compiler construction - Syntax Tree Generation in Clojure -


i'm writing compiler, educational purposes. have generated tokens input , want generate ast. have function takes list of tokens , recurses generate ast. in parsers you'd have pointer lexer every time process tokens in tree you'd advance lexer. dont know how advance lexer when hit part needs generate deeper nodes in tree since can't modify structure of lexer list.

as example clojure program (+ 1 2 (+ 1 1)). advance + , recurse , generate node properly, lexer reprocesses + 1 1 after returns generating node, end tree this:

root ---> + ---> 1 ---> 2 -----> + -----> 1 -----> 1 ---> + ---> 1 ---> 1 

in lisp/clojure program directly abstract syntax tree expressed via lisp data structures. moreover, can programmatically act on lisp data structures leading macros. so, in conclusion have ast.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -