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

仿 SQL 查詢分析器的 C# 計算器(十二):語法分析堆疊狀態圖解(步驟 7-9)

     編輯:關於C語言

7. 列表分析狀態

…… TokenDivide TokenValue(8) TokenMinus …

堆疊分析:棧頂為 TokenDivide,當前 TokenRecord 為 TokenValue,TokenDivide 優先級高於 TokenValue。遵循「高出低入」,將 TokenValue 加入 TokenDivide 的 ChildList。

TokenDivide
TokenPlus  棧底

堆疊對應樹狀圖:

8. 列表分析狀態

…… TokenValue(8) TokenMinus TokenValue(2) …

堆疊分析:棧頂為 TokenDivide,當前 TokenRecord 為 TokenMinus,TokenDivide 優先級高於 TokenMinus。遵循「高出低入」,將 TokenDivide 彈棧到暫存變數。檢測堆疊不為空,棧頂為 TokenPlus,TokenPlus 優先級與 TokenMinus 相同。相同優先級按高優先級處理,遵循「高出低入」,將暫存變數中的 TokenDivide 加入高優先級 TokenPlus 的 ChildList。繼續用「高出低入」,將 TokenPlus 彈棧並加入 TokenMinus 的 ChildList,再將 TokenMinus 壓棧。

TokenMinus  棧底

堆疊對應樹狀圖:

9. 列表分析狀態

…… TokenMinus TokenValue(2) TokenMultiply …

堆疊分析:棧頂為 TokenMinus,當前 TokenRecord 為 TokenValue,TokenMinus 優先級低於 TokenValue。遵循「高出低入」,將 TokenValue 壓棧。

TokenValue(2)
TokenMinus  棧底

堆疊對應樹狀圖:

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