S -> as | fd S A OK f ERROR d ERROR # OK ERROR A a false s false # true false S A ERROR B ERROR # OK ERROR A A1 true a true false A1 a false a true false B B1 true a false c true false B1 b true false E -> a | b | c | d | fjsdklfhali E a true b true c true d true ... B b true a false c true false A -> aa | a A -> a | aa A -> XY X -> a Y -> a | ϵ Y -> Z | ϵ Z -> a A X false Y true false X a true false Y a true W true W f false false A X true false Y true false