For each grammar, the start symbol is the LHS of the first rule. For a given grammar, the symbols that appear on a LHS are nonterminals; the others are terminals. The first and last grammars can use predictive parsing. The second and fourth have direct or indirect left recursion. S -> NP VP NP -> Det N VP -> V NP Det -> the V -> chased N -> dog N -> cat Expr -> Expr Op Expr Expr -> < Expr > Expr -> Var Var -> x Var -> y Op -> * Op -> + Expr -> Term Op Expr Expr -> Term Term -> Factor Op Term Term -> Factor Factor -> Var Factor -> < Expr > Var -> x Var -> y A -> w B -> x C -> y D -> z A -> D w C -> B x D -> C y B -> A z Cond -> if Test then Block else Block endif Cond -> if Test then Block endif Test -> < Var Op Var> Var -> x Var -> y Op -> = Op -> /= Block -> begin Statements end Block -> begin end Statements -> Statement Statements -> Statement Statements Statement -> Var := Var Cond -> ShortIf RestIf ShortIf -> if Test then Block RestIf -> else Block endif RestIf -> endif Test -> < Var Op Var> Var -> x Var -> y Op -> = Op -> /= Block -> begin RestBlock RestBlock -> end RestBlock -> Statement Statements Statements -> end Statements -> Statement Statements Statement -> Var := Var