anchor.diff:          | Choice1Of2 lookaheadSets ->
               Lalr1.upgrade (Appel.``Grammar 3.26``, lr0ParserTable, productionRuleIds, lookaheadSets)
   
  -    let expectedActionTable =
  -        Map.empty
  -        |> Map.add (1<ParserStateIdentifier>, AugmentedTerminal.Terminal "*") (Action <| Shift 1<_>)
  -        |> Map.add (1<ParserStateIdentifier>, AugmentedTerminal.Terminal "x") (Action <| Shift 8<_>)
  -
  -        |> Map.add (2<ParserStateIdentifier>, AugmentedTerminal.Terminal "*") (Action <| Shift 1<_>)
  -        |> Map.add (2<ParserStateIdentifier>, AugmentedTerminal.Terminal "x") (Action <| Shift 8<_>)
  -
  -        |> Map.add (3<ParserStateIdentifier>, AugmentedTerminal.Terminal "*") (Action <| Shift 1<_>)
  -        |> Map.add (3<ParserStateIdentifier>, AugmentedTerminal.Terminal "x") (Action <| Shift 8<_>)
  -
  -        |> Map.add (4<ParserStateIdentifier>, AugmentedTerminal.Terminal "=") (Action <| Reduce 1<_>)
  -        |> Map.add (4<ParserStateIdentifier>, AugmentedTerminal.EndOfFile) (Action <| Reduce 1<_>)
  -
  -        |> Map.add (5<ParserStateIdentifier>, AugmentedTerminal.Terminal "=") (Action <| Shift 3<_>)
  -        |> Map.add (5<ParserStateIdentifier>, AugmentedTerminal.EndOfFile) (Action <| Reduce 1<_>)
  -
  -        |> Map.add (6<ParserStateIdentifier>, AugmentedTerminal.EndOfFile) (Action <| Reduce 2<_>)
  -
  -        |> Map.add (7<ParserStateIdentifier>, AugmentedTerminal.EndOfFile) (Action <| Reduce 5<_>)
  -
  -        |> Map.add (8<ParserStateIdentifier>, AugmentedTerminal.Terminal "=") (Action <| Reduce 3<_>)
  -        |> Map.add (8<ParserStateIdentifier>, AugmentedTerminal.EndOfFile) (Action <| Reduce 3<_>)
  -
  -        |> Map.add (9<ParserStateIdentifier>, AugmentedTerminal.Terminal "=") (Action <| Reduce 4<_>)
  -        |> Map.add (9<ParserStateIdentifier>, AugmentedTerminal.EndOfFile) (Action <| Reduce 4<_>)
  -
  -        |> Map.add (10<ParserStateIdentifier>, AugmentedTerminal.EndOfFile) (Action Accept)
  -
  -    let expectedGotoTable =
  -        Map.empty
  -        |> Map.add (1<ParserStateIdentifier>, AugmentedNonterminal.Nonterminal 'E') 9<_>
  -        |> Map.add (1<ParserStateIdentifier>, AugmentedNonterminal.Nonterminal 'V') 4<_>
  -
  -        |> Map.add (2<ParserStateIdentifier>, AugmentedNonterminal.Nonterminal 'E') 6<_>
  -        |> Map.add (2<ParserStateIdentifier>, AugmentedNonterminal.Nonterminal 'S') 10<_>
  -        |> Map.add (2<ParserStateIdentifier>, AugmentedNonterminal.Nonterminal 'V') 5<_>
  -
  -        |> Map.add (3<ParserStateIdentifier>, AugmentedNonterminal.Nonterminal 'E') 7<_>
  -        |> Map.add (3<ParserStateIdentifier>, AugmentedNonterminal.Nonterminal 'V') 4<_>
  -
       // Verify the ACTION table.
       lalr1ParserTable.ActionTable
       |> should equal expectedActionTable
  
positive.code: 
  [<TestCase>]
  let ``LALR(1) table for Grammar 3.26`` () =
      let lr0ParserTable = Lr0.createTable Appel.``Grammar 3.26``
  
      let lalr1ParserTable =
  
negative.code: 
  [<TestCase>]
  let ``SLR table for Grammar 3.23`` () =
      let expectedActionTable =
          Map.empty
          |> Table.term 1 "x" (Action <| Shift 3<_>)
  
          |> Table.term 2 "+" (Action <| Shift 5<_>)
          |> Table.eof 2 (Action <| Reduce 1<_>)
  
          |> Table.term 3 "+" (Action <| Reduce 2<_>)
          |> Table.eof 3 (Action <| Reduce 2<_>)
  
          |> Table.eof 4 (Action Accept)
  
          |> Table.term 5 "x" (Action <| Shift 3<_>)
  
          |> Table.eof 6 (Action <| Reduce 3<_>)
  
      let expectedGotoTable =
          Map.empty
          |> Table.nterm 1 'E' 4
          |> Table.nterm 1 'T' 2
          |> Table.nterm 5 'E' 6
          |> Table.nterm 5 'T' 2
  
      let lr0ParserTable = Lr0.createTable Appel.``Grammar 3.23``
  
      let slr1ParserTable =
          let productionRuleIds = Grammar.ProductionRuleIds Appel.``Grammar 3.23``
          Slr1.upgrade (Appel.``Grammar 3.23``, lr0ParserTable, productionRuleIds)
  
      // Verify the ACTION table.
      slr1ParserTable.ActionTable
      |> should equal expectedActionTable
  