2.棧頂TokenRecord的優先級低於當前TokenRecord的優先級,則將當前TokenRecord直接壓棧。
可能文字表述的並不清晰,其中涉及到循環和遞歸的操作,具體的過程通過下面的例子來講解。
1.列表分析狀態:
TokenValue(3) TokenMultiplay TokenValue(7) …...堆棧分析:當前堆棧為空,將當前分析的TokenRecord壓棧。
TokenValue(3) 棧底堆棧對應樹視圖:
2.列表分析狀態:
TokenValue(3) TokenMultiply TokenValue(7) …...堆棧分析:棧頂為TokenValue,當前TokenRecord為TokenMultiply,TokenValue優先級最高。遵循高出低入原則,將TokenValue彈棧並添加 到TokenMultiply的ChildList中,然後將TokenMultiplay壓棧。
TokenMultiply 棧底堆棧對應樹視圖:
3.列表分析狀態
…... TokenMultiply TokenValue(7) TokenPlus …...堆棧分析:棧頂為TokenMultiplay,當前TokenRecord為TokenValue,TokenMultiply優先級高於TokenValue,則將TokenValue加入 TokenMultiplay的ChildList中。
TokenMultiply 棧底堆棧對應樹視圖: