文字描述可能不清晰,涉及迴圈與遞歸操作,以下用例子講解。
TokenValue(3) TokenMultiply TokenValue(7) …
堆疊分析:當前堆疊為空,將當前分析的 TokenRecord 壓棧。
TokenValue(3) 棧底
堆疊對應樹狀圖:

TokenValue(3) TokenMultiply TokenValue(7) …
堆疊分析:棧頂為 TokenValue,當前 TokenRecord 為 TokenMultiply,TokenValue 優先級最高。遵循「高出低入」,將 TokenValue 彈棧並添加到 TokenMultiply 的 ChildList,然後將 TokenMultiply 壓棧。
TokenMultiply 棧底
堆疊對應樹狀圖:

… TokenMultiply TokenValue(7) TokenPlus …
堆疊分析:棧頂為 TokenMultiply,當前 TokenRecord 為 TokenValue,TokenMultiply 優先級高於 TokenValue,則將 TokenValue 加入 TokenMultiply 的 ChildList。
TokenMultiply 棧底
堆疊對應樹狀圖:
