1 / 23

LR Parsing – The Items

LR Parsing – The Items. Lecture 10 Fri, Feb 13, 2004. LR Parsers. A bottom-up parser follows a rightmost derivation from the bottom up. Such parsers typically use the LR algorithm and are called LR parsers . L means process tokens from L eft to right.

clark
Download Presentation

LR Parsing – The Items

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LR Parsing – The Items Lecture 10 Fri, Feb 13, 2004

  2. LR Parsers • A bottom-up parser follows a rightmost derivation from the bottom up. • Such parsers typically use the LR algorithm and are called LR parsers. • L means process tokens from Left to right. • R means follow a Rightmost derivation.

  3. LR Parsers • Furthermore, in LR parsing, the production is applied only after the pattern has been matched. • In LL (predictive) parsing, the production was selected, and then the tokens were matched to it.

  4. Rightmost Derivations • Let the grammar be EE + T | T TT * F | F F (E) | id | num

  5. Rightmost Derivations • A rightmost derivation of (id + num)*id is E T  T*F  T*id  F*id  (E)*id  (E + T)*id  (E + F)*id  (E + num)*id  (T + num)*id  (F + num)*id  (id + num)*id.

  6. LR Parsers • An LR parser uses a parsing table, an input buffer, and a stack of “states.” • If performs three operations. • Shift a token from the input buffer to the stack. • Reduce the content of the stack by applying a production. • Go to a new state.

  7. LR(0) Items • To build an LR parsing table, we must first find the LR(0) items. • An LR(0) item is a production with a special marker () marking a position within the string on the right side of the production. • LR(0) parsing is also called SLR parsing (“simple” LR).

  8. Example: LR(0) Items • If the production is EE + T, then the possible LR(0) items are • [EE + T] • [EE + T] • [EE + T] • [EE + T]

  9. LR(0) Items • The interpretation of [A  ] is “We have processed  and we might process  next.” • Whether we do actually process  will be borne out by the subsequent sequence of tokens.

  10. LR Parsing • We will build a PDA whose states are sets of LR(0) items. • First we augment the grammar with a new start symbol S'. S'S. • This guarantees that the start symbol will not recurse.

  11. States of the PDA • The initial state is called I0. • State I0 is the closure of the set {[S'S]}. • To form the closure of a set of items • For each item [A  B] in the set and for each production B, add the item [B] to the set. • Let us call [B] an initial B-item. • Continue in this manner until there is no further change.

  12. Example: LR Parsing • Continuing with the example, the augmented grammar is E'E EE + T | T TT * F | F F (E) | id | num

  13. Example: LR Parsing • The state I0 consists of the items the closure of item [E'E]. [E'E] [EE + T] [ET] [TT * F] [TF] [F (E)] [Fid] [Fnum]

  14. Transitions • There will be a transition from one state to another state for each grammar symbol in an item that immediately follows the marker  in an item in that state. • If an item in the state is [A  X], then • The transition from that state occurs when the symbol X is processed. • The transition is to the state that is the closure of the item [AX  ].

  15. Example: LR Parsing • Thus, from the state I0, there will be transitions for the symbols E, T, F, (, id, and num. • On processing E, the items [E'E] and [E E + T] become [E'E] and [EE + T].

  16. E I0 I1 Example: LR Parsing • Let state I1 be the closure of these items. I1: [E'E] [EE + T] • Thus the PDA has the transition

  17. Example: LR Parsing • Similarly we determine the other transitions from I0. • Process T: I2: [ET] [TT * F] • Process F: I3: [TF]

  18. Example: LR Parsing • Process (: I4: [F (  E)] [EE + T] [ET] [TT + F] [TF] [F (E)] [Fid] [Fnum]

  19. Example: LR Parsing • Process id: I5: [Fid] • Process num: I6: [Fnum]

  20. Example: LR Parsing • Now find the transitions from states I1 through I6 to other states, and so on, until no new states appear.

  21. Example: LR Parsing • I7: [EE + T] [T T * F] [T F] [F  (E)] [F id] [F num]

  22. Example: LR Parsing • I8: [T T * F] [F  (E)] [F id] [F num] • I9: [F (E )] [EE + T]

  23. Example: LR Parsing • I10: [E E + T] [T T * F] • I11: [T T * F] • I12: [F (E) ]

More Related