![](https://cos-cdn.shuashuati.com/pipixue-wap/2020-1230-1107-56/ti_inject-812ce.png)
Create the canonical LR(1) collection of the sets of LR(1) items for the given grammar. Find each core; find all sets having that same core; replace those sets having same cores with a single set which is their union. C={I 0 , ...,I n } ⇒ C'={J 1 ,...,J m } where m £ n Create the parsing tables (action and goto tables) same as the construction of the parsing tables of LR(1) parser. Note that: If J=I 1 È ... È I k since I 1 ,...,I k have same cores ⇒ cores of goto(I 1 ,X),...,goto(I 2 ,X) must be same. So, goto(J,X)=K where K is the union of all sets of items having same cores as goto(I 1 ,X). If no conflict is introduced, the grammar is LALR(1) grammar. (We may only introduce reduce/reduce conflicts; we cannot introduce a shift/reduce conflict)