1. 程式人生 > >哇哈哈哈,Tang腳本語言初步成果

哇哈哈哈,Tang腳本語言初步成果

void play 目前 代碼 visit 語句 last ast color

技術分享


額,現在已經有了while語句,支持四則運算,比較運算,賦值表達式,所有變量都是double浮點數類型,在運行完程序後自動將所有變量的值顯示出來。


目前語法樹是這樣的:

技術分享


當然用了訪問者模式,每個繼承IVisitor的類都能有自己的功能,比如求值啊,格式化代碼(將語法樹轉換成代碼),求導啊(只對表達式有用)。我覺得這種模式真的方便地不得了。


再貼一下運行的代碼吧:

技術分享


這裏是求帶一個封號的表達式,帶大括號的語句塊,while語句塊的執行過程。前面兩個都好辦,直接執行就行了。後面的while語句的condition由於Visit的返回值只能是void,所以建了一個mLastResult變量,用來保存每次返回的值。然後每次執行body判斷一下嘍。


功能還在加。

哇哈哈哈,Tang腳本語言初步成果