https://boxbase.org/entries/2019/oct/14/lr1-parsing-tables/ +search lr 1 parsing table online generator S' -> S S -> A b c S -> a b d A -> a ---- '•', 'ε' ---- alphabet: 'a', 'b', 'c', 'd', '$' # 0 S' ->•S S ->•A b c S ->•a b d A ->•a # 1 ( from #0, in 'a' ) S' -> S S -> A•b c S -> a•b d A -> a• # 2 ( from #1, in 'b' ) S' -> S S -> A b•c S -> a b•d A -> a # 3 ( from #2, in 'c' ) S' -> S• S -> A b c• S -> a b d A -> a # 4 ( from #2, in 'd' ) S' -> S• S -> A b c S -> a b d• A -> a ---- if each point that a '•' can be is like one bit, then states can be represented somewhat efficiently as long binary numbers (maybe) review with: ``` S -> X X -> '(' X ')' X -> 'x' ``` .. proof that a stack is needed ---- alphabet: '(', 'x', ')', '$' #0 ( begin ) S ->•X X ->•'(' X ')' X ->•'x' #1 ( from #0, in '(' ), ( from #1, in '(' ) S -> X X ->•'('•X ')' X ->•'x' #2 ( from #1, in 'x' ) S -> X X -> '(' X•')' X -> 'x'• [ TODO from #0, in 'x' ] #3 ( from #2, in ')' ) S -> X• X ->•'(' X•')'• X ->•'x' #4 ( from #3, in '$' ) accept .., only if stack is empty #5 ( from #0, in 'x' ) S -> X• X -> '(' X ')' X -> 'x'• [ consider a rule `X -> '('+ X ')' ]