Download presentation
Presentation is loading. Please wait.
Published byClement Gaines Modified over 6 years ago
1
Bottom-up parsing Goal of parser : build a derivation
Top-down parser : build a derivation by working from the start symbol towards the input. Builds parse tree from root to leaves Builds leftmost derivation Bottom-up parser : build a derivation by working from the input back toward the start symbol Builds parse tree from leaves to root Builds reverse rightmost derivation
2
Bottom-up parsing The parser looks for a substring of the parse tree's frontier... ...that matches the rhs of a production and ...whose reduction to the non-terminal on the lhs represents on step along the reverse of a rightmost derivation Such a substring is called a handle. Important: Not all substrings that match a rhs are handles.
3
Bottom-up parsing techniques
LR Parsing Also called “Shift-Reduce Parsing” Shift input symbols until a handle is found. Then, reduce the substring to the non-terminal on the lhs of the corresponding production. Operator-precedence parsing Based on shift-reduce parsing. Identifies handles based on precedence rules.
4
Example: Shift-reduce parsing
STACK ACTION $ Shift Grammar: $ id1 Reduce (rule 5) 1. S E 2. E E + E 3. E E * E 4. E num 5. E id $ E Shift $ E + Shift $ E + num Reduce (rule 4) $ E + E Shift $ E + E * Shift $ E + E * id2 Reduce (rule 5) Input to parse: id1 + num * id2 $ E + E * E Reduce (rule 3) $ E + E Reduce (rule 2) $ E Reduce (rule 1) Handles: underlined $ S Accept
5
Shift-Reduce parsing A shift-reduce parser has 4 actions:
Shift -- next input symbol is shifted onto the stack Reduce -- handle is at top of stack pop handle push appropriate lhs Accept -- stop parsing & report success Error -- call error reporting/recovery routine
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.