首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

以 C# 打造四則運算解譯器(四):建構抽象語法樹(AST)

     編輯:關於C語言

建構 AST 需考慮兩點

  1. 運算子優先順序:+、- 低;*、/ 高。
  2. 同層級運算子結合性:左至右。

逐步建構範例:1 + 2 + 3 + 4

  1. AST 為空,Root = null。
  2. 讀入 NumToken 1 → 設為根節點。
    步驟 1
  3. 讀入 OpToken + → 將 + 設為新根,原樹為左子樹。
    步驟 2
  4. 讀入 NumToken 2 → 掛在根節點右側。
    步驟 3
  5. 讀入 OpToken +(同層級,左結合)→ 新 + 成根,現有樹成左子樹,以此類推。

最終樹根為最後執行的運算子,葉節點為優先執行的運算(如乘除)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved