anchor.diff:  access_expr -> bracket_at_expr : '$1'.
   access_expr -> bracket_expr : '$1'.
   access_expr -> capture_op_eol int : build_unary_op('$1', number_value('$2')).
  -access_expr -> fn_eoe stab end_eoe : build_fn('$1', reverse('$2')).
  -access_expr -> open_paren stab close_paren : build_stab(reverse('$2')).
  -access_expr -> open_paren stab ';' close_paren : build_stab(reverse('$2')).
  -access_expr -> open_paren ';' stab ';' close_paren : build_stab(reverse('$3')).
  -access_expr -> open_paren ';' stab close_paren : build_stab(reverse('$3')).
  -access_expr -> open_paren ';' close_paren : build_stab([]).
  +access_expr -> fn_eoe stab end_eoe : build_fn('$1', reverse('$2'), '$3').
  +access_expr -> open_paren stab close_paren : build_stab('$1', reverse('$2'), '$3').
  +access_expr -> open_paren stab ';' close_paren : build_stab('$1', reverse('$2'), '$4').
  +access_expr -> open_paren ';' stab ';' close_paren : build_stab('$1', reverse('$3'), '$5').
  +access_expr -> open_paren ';' stab close_paren : build_stab('$1', reverse('$3'), '$4').
  +access_expr -> open_paren ';' close_paren : build_stab('$1', [], '$3').
   access_expr -> empty_paren : warn_empty_paren('$1'), nil.
   access_expr -> number : '$1'.
   access_expr -> list : element(1, '$1').
  
positive.code: %% The following directive is needed for (significantly) faster
  %% compilation of the generated .erl file by the HiPE compiler
  -compile([{hipe, [{regalloc, linear_scan}]}]).
  -import(lists, [reverse/1, reverse/2]).
  
  meta_from_token(Token) ->
    meta_from_location(?location(Token)).
  
  meta_from_location({Line, {_Column, _EndColumn}, _}) when is_integer(Line) ->
    [{line, Line}].
  
  %% Handle metadata in literals
  
  
negative.code: build_stab([{'->', Meta, [Left, Right]} | T]) ->
    build_stab(Meta, T, Left, [Right], []);
  
  build_stab(Other) ->
    build_block(Other).
  
  build_stab(Before, Stab, After) ->
    case build_stab(Stab) of
      {'__block__', _, Block} ->
        {'__block__', meta_from_token_with_endline(Before, After), Block};
      Other ->
        Other
    end.
  
  build_stab(Old, [{'->', New, [Left, Right]} | T], Marker, Temp, Acc) ->
    H = {'->', Old, [Marker, build_block(reverse(Temp))]},
  