LR(0) derivation example

Grammar

Z -> E $
E -> T
E -> E + T
T -> i
T -> ( E )

Input

i + i + i $

STEP 1

Stack  :

Input  : i + i + i $

Action : shift

STEP 2

Stack  :
i

Input  : + i + i $

Action : goto

STEP 3

Stack  :
i

Input  : + i + i $

Action : reduce T -> i .

STEP 4

Stack  :
T
└── i

Input  : + i + i $

Action : goto

STEP 5

Stack  :
T
└── i

Input  : + i + i $

Action : reduce E -> T .

STEP 6

Stack  :
E
└── T
    └── i

Input  : + i + i $

Action : goto

STEP 7

Stack  :
E
└── T
    └── i

Input  : + i + i $

Action : shift

STEP 8

Stack  :
E
└── T
    └── i
+

Input  : i + i $

Action : goto

STEP 9

Stack  :
E
└── T
    └── i
+

Input  : i + i $

Action : shift

STEP 10

Stack  :
E
└── T
    └── i
+
i

Input  : + i $

Action : goto

STEP 11

Stack  :
E
└── T
    └── i
+
i

Input  : + i $

Action : reduce T -> i .

STEP 12

Stack  :
E
└── T
    └── i
+
T
└── i

Input  : + i $

Action : goto

STEP 13

Stack  :
E
└── T
    └── i
+
T
└── i

Input  : + i $

Action : reduce E -> E + T .

STEP 14

Stack  :
E
├── E
│   └── T
│       └── i
├── +
└── T
    └── i

Input  : + i $

Action : goto

STEP 15

Stack  :
E
├── E
│   └── T
│       └── i
├── +
└── T
    └── i

Input  : + i $

Action : shift

STEP 16

Stack  :
E
├── E
│   └── T
│       └── i
├── +
└── T
    └── i
+

Input  : i $

Action : goto

STEP 17

Stack  :
E
├── E
│   └── T
│       └── i
├── +
└── T
    └── i
+

Input  : i $

Action : shift

STEP 18

Stack  :
E
├── E
│   └── T
│       └── i
├── +
└── T
    └── i
+
i

Input  : $

Action : goto

STEP 19

Stack  :
E
├── E
│   └── T
│       └── i
├── +
└── T
    └── i
+
i

Input  : $

Action : reduce T -> i .

STEP 20

Stack  :
E
├── E
│   └── T
│       └── i
├── +
└── T
    └── i
+
T
└── i

Input  : $

Action : goto

STEP 21

Stack  :
E
├── E
│   └── T
│       └── i
├── +
└── T
    └── i
+
T
└── i

Input  : $

Action : reduce E -> E + T .

STEP 22

Stack  :
E
├── E
│   ├── E
│   │   └── T
│   │       └── i
│   ├── +
│   └── T
│       └── i
├── +
└── T
    └── i

Input  : $

Action : goto

STEP 23

Stack  :
E
├── E
│   ├── E
│   │   └── T
│   │       └── i
│   ├── +
│   └── T
│       └── i
├── +
└── T
    └── i

Input  : $

Action : shift

STEP 24

Stack  :
E
├── E
│   ├── E
│   │   └── T
│   │       └── i
│   ├── +
│   └── T
│       └── i
├── +
└── T
    └── i
$

Input  :

Action : goto

STEP 25

Stack  :
E
├── E
│   ├── E
│   │   └── T
│   │       └── i
│   ├── +
│   └── T
│       └── i
├── +
└── T
    └── i
$

Input  :

Action : reduce Z -> E $ .

STEP 26

Stack  :
Z
├── E
│   ├── E
│   │   ├── E
│   │   │   └── T
│   │   │       └── i
│   │   ├── +
│   │   └── T
│   │       └── i
│   ├── +
│   └── T
│       └── i
└── $

Input  :

Action : accept

Z
├── E
│   ├── E
│   │   ├── E
│   │   │   └── T
│   │   │       └── i
│   │   ├── +
│   │   └── T
│   │       └── i
│   ├── +
│   └── T
│       └── i
└── $

Automaton


The example on this page is auto-generated with dOvs teaching LR parser generator tool. The tool and the webpage is maintained by Aslan Askarov.