ENTERING SEQUENCE P1 D1 Expr BEGIN STAMP SUM P1 D1 Sum ENTERING CHOICE P1 D1 Sum_Choice OPTION 1 CHOICE P1 D1 Sum_Choice ENTERING SEQUENCE P1 D1 Sum_Plus BEGIN STAMP SUM P1 D2 Sum ENTERING CHOICE P1 D2 Sum_Choice OPTION 1 CHOICE P1 D2 Sum_Choice ENTERING SEQUENCE P1 D2 Sum_Plus BEGIN STAMP SUM P1 D3 Sum ENTERING CHOICE P1 D3 Sum_Choice OPTION 1 CHOICE P1 D3 Sum_Choice ENTERING SEQUENCE P1 D3 Sum_Plus BEGIN STAMP SUM P1 D4 Sum ENTERING CHOICE P1 D4 Sum_Choice OPTION 1 CHOICE P1 D4 Sum_Choice ENTERING SEQUENCE P1 D4 Sum_Plus BEGIN STAMP SUM P1 D5 Sum ENTERING CHOICE P1 D5 Sum_Choice OPTION 1 CHOICE P1 D5 Sum_Choice ENTERING SEQUENCE P1 D5 Sum_Plus BEGIN STAMP SUM P1 D6 Sum ENTERING CHOICE P1 D6 Sum_Choice OPTION 1 CHOICE P1 D6 Sum_Choice ENTERING SEQUENCE P1 D6 Sum_Plus BEGIN STAMP SUM P1 D7 Sum CURTAILING AT P1 D7 STORING FAILURE C7 Sum p1 d7 Fail c7 FAIL STAMP SUM P1 D7 Sum STORING FAILURE C7 Sum_Plus p1 d6 Fail (Sum c7) FAILED SEQUENCE P1 D6 Sum_Plus OPTION 2 CHOICE P1 D6 Sum_Choice ENTERING SEQUENCE P1 D1 Sum_Minus BEGIN STAMP SUM P1 D7 Sum REUSING FAILURE C7 Reuse Sum p1 d7 Fail c7 FAIL STAMP SUM P1 D7 Sum STORING FAILURE C7 Sum_Minus p1 d1 Fail (Sum c7) FAILED SEQUENCE P1 D1 Sum_Minus OPTION 3 CHOICE P1 D6 Sum_Choice BEGIN STAMP FACTOR P1 D1 Factor ENTERING SATISFY P1 Sat_Number STORING SUCCESS 1 Sat_Number p1 Success SUCCESS SATISFY P1 Sat_Number STORING SUCCESS 1 Factor p1 d1 Success SUCCESS STAMP FACTOR P1 D1 Factor STORING SUCCESS 1 Sum_Choice p1 d6 Success 1 (Sum c7) SUCCESS CHOICE 1 P1 D6 Sum_Choice UPDATING FAILURE C7 WITH SUCCESS 1 Update Sum p1 d6 Success 1 (Sum c6?) SUCCESS STAMP SUM P1 D6 Sum CONT SEQUENCE P1 D5 Sum_Plus ENTERING SATISFY P2 Sat_Plus STORING FAILURE Sat_Plus p2 Fail FAILED SATISFY P2 Sat_Plus UPDATING FAILURE C7 WITH FAILURE Update Sum_Plus p1 d5 Fail (Sum c5?) FAILED SEQUENCE P1 D5 Sum_Plus OPTION 2 CHOICE P1 D5 Sum_Choice ENTERING SEQUENCE P1 D1 Sum_Minus NOT REUSABLE FAILURE C7 Ignore Sum_Minus p1 d1 (Sum c7) Fail since c5 < c7 BEGIN STAMP SUM P1 D6 Sum REUSING SUCCESS 1 Reuse Sum p1 d6 Success 1 (Sum c6?) SUCCESS STAMP SUM P1 D6 Sum CONT SEQUENCE P1 D1 Sum_Minus ENTERING SATISFY P2 Sat_Minus STORING SUCCESS 2 Sat_Minus p2 Success 2 SUCCESS SATISFY P2 Sat_Minus CONT SEQUENCE P1 D1 Sum_Minus BEGIN STAMP FACTOR P3 D1 Factor ENTERING SATISFY P3 Sat_Number STORING SUCCESS 3 Sat_Number p3 Success SUCCESS SATISFY P3 Sat_Number STORING SUCCESS 3 Factor p3 d1 Success SUCCESS STAMP FACTOR P3 D1 Factor UPDATING FAILURE C7 WITH SUCCESS 3 Update Sum_Minus p1 d1 Success 3 (Sum c5?) SUCCESS SEQUENCE 3 P1 D1 Sum_Minus OPTION 3 CHOICE P1 D5 Sum_Choice BEGIN STAMP FACTOR P1 D1 Factor REUSING SUCCESS 1 Reuse Factor p1 d1 Success 1 SUCCESS STAMP FACTOR P1 D1 Factor UPDATING SUCCESS 1 WITH SUCCESS 1 3 Update Sum_Choice p1 d5 Success 1 3 (Sum c5?) SUCCESS CHOICE 1 3 P1 D5 Sum_Choice UPDATING SUCCESS 1 WITH SUCCESS 1 3 Update Sum p1 d5 Success 1 3 (Sum c5?) SUCCESS STAMP SUM P1 D5 Sum CONT SEQUENCE P1 D4 Sum_Plus ENTERING SATISFY P2 Sat_Plus p2 REUSING FAILURE Reuse Sat_Plus p2 Fail FAILED SATISFY P2 Sat_Plus p2 ENTERING SATISFY P4 Sat_Plus p4 STORING FAILURE Sat_Plus p4 Fail FAILED SATISFY P4 Sat_Plus p4 UPDATING FAILURE WITH FAILURE Update Sum_Plus p1 d4 Fail (Sum d4?) FAILED SEQUENCE P1 D4 Sum_Plus OPTION 2 CHOICE P1 D4 Sum_Choice ENTERING SEQUENCE P1 D1 Sum_Minus REUSING SUCCESS 3 Reuse Sum_Minus p1 d1 Success 3 Is this right? SUCCESS SEQUENCE 3 P1 D1 Sum_Minus OPTION 3 CHOICE P1 D4 Sum_Choice BEGIN STAMP FACTOR P1 D1 Factor REUSING SUCCESS 1 Reuse Factor p1 d1 Success 1 SUCCESS STAMP FACTOR P1 D1 Factor UPDATING SUCCESS 1 3 WITH SUCCESS 1 3 Update Sum_Choice p1 d4 Success 1 3 SUCCESS CHOICE 1 3 P1 D4 Sum_Choice UPDATING SUCCESS 1 3 WITH SUCCESS 1 3 Update Sum p1 d4 Success 1 3 SUCCESS STAMP SUM P1 D4 Sum CONT SEQUENCE P1 D3 Sum_Plus ENTERING SATISFY P2 Sat_Plus p2 REUSING FAILURE Reuse Sat_Plus p2 Fail FAILED SATISFY P2 Sat_Plus p2 ENTERING SATISFY P4 Sat_Plus p4 REUSING FAILURE Reuse Sat_Plus p4 Fail FAILED SATISFY P4 Sat_Plus p4 UPDATING FAILURE WITH FAILURE Update Sum_Plus p1 d3 Fail FAILED SEQUENCE P1 D3 Sum_Plus OPTION 2 CHOICE P1 D3 ENTERING SEQUENCE P1 D1 REUSING SUCCESS 3 SUCCESS SEQUENCE 3 P1 D1 OPTION 3 CHOICE P1 D3 BEGIN STAMP FACTOR P1 D1 REUSING SUCCESS 1 SUCCESS STAMP FACTOR P1 D1 UPDATING SUCCESS 1 3 WITH SUCCESS 1 3 SUCCESS CHOICE 1 3 P1 D3 UPDATING SUCCESS 1 3 WITH SUCCESS 1 3 SUCCESS STAMP SUM P1 D3 CONT SEQUENCE P1 D2 ENTERING SATISFY P2 REUSING FAILURE FAILED SATISFY P2 ENTERING SATISFY P4 REUSING FAILURE FAILED SATISFY P4 UPDATING FAILURE WITH FAILURE FAILED SEQUENCE P1 D2 OPTION 2 CHOICE P1 D2 ENTERING SEQUENCE P1 D1 REUSING SUCCESS 3 SUCCESS SEQUENCE 3 P1 D1 OPTION 3 CHOICE P1 D2 BEGIN STAMP FACTOR P1 D1 REUSING SUCCESS 1 SUCCESS STAMP FACTOR P1 D1 UPDATING SUCCESS 1 3 WITH SUCCESS 1 3 SUCCESS CHOICE 1 3 P1 D2 UPDATING SUCCESS 1 3 WITH SUCCESS 1 3 SUCCESS STAMP SUM P1 D2 CONT SEQUENCE P1 D1 ENTERING SATISFY P2 REUSING FAILURE FAILED SATISFY P2 ENTERING SATISFY P4 REUSING FAILURE FAILED SATISFY P4 UPDATING FAILURE WITH FAILURE FAILED SEQUENCE P1 D1 OPTION 2 CHOICE P1 D1 ENTERING SEQUENCE P1 D1 REUSING SUCCESS 3 SUCCESS SEQUENCE 3 P1 D1 OPTION 3 CHOICE P1 D1 BEGIN STAMP FACTOR P1 D1 REUSING SUCCESS 1 SUCCESS STAMP FACTOR P1 D1 UPDATING SUCCESS 1 3 WITH SUCCESS 1 3 SUCCESS CHOICE 1 3 P1 D1 UPDATING SUCCESS 1 3 WITH SUCCESS 1 3 SUCCESS STAMP SUM P1 D1 CONT SEQUENCE P1 D1 FAILED END OF INPUT AT POSITION 2 FAILED END OF INPUT AT POSITION 4 STORING FAILURE FAILED SEQUENCE P1 D1 STARTING FINISH ROOT BREAKPOINT ONE REACHED ABOUT TO RETURN EMPTY GRAPH Input: 1 - 2 - 3 Lexer token output: Token NUMBER at input position 1 with value length 1 Token OPERATOR at input position 3 with value length 1 Token NUMBER at input position 5 with value length 1 Token OPERATOR at input position 7 with value length 1 Token NUMBER at input position 9 with value length 1 Parser graph output: Root tokens: