anchor.diff:  The parser returns an abstract syntax tree consisting of symbols, strings, Hashes and Arrays.
   Each expression 'node' of the AST is one of the following forms:
   
  -Sequence::
  +AsciiMath::
  +`asciimath` is converted to a an Array of expressions.
  +An empty Array is converted to nil by the parser.
  +A single element Array is unwrapped to just the element.
   +
   Sequences of expressions are returned as an Array of nodes.
   
  -Symbols::
  -+
  -Mathematical operators, function names, arrows, accents, greek letters, etc. are all represented as Symbol objects.
  -
  -Literals::
  -+
  -Literal text strings are represented as String objects.
  -
   Parentheses::
  +`lparen asciimath rparen` is converted to a Hash of the following form
   +
   [source]
   ----
  
positive.code: }
  ----
  
  == Symbol Table
  
  |===
  |Asciimath |Symbol |Codepoint |Value
  
  |+ |:plus |https://codepoints.net/U+002B[U+002B] |+
  |- |:minus |https://codepoints.net/U+2212[U+2212] |−
  
negative.code: }
  ----
  
  Constants::
  +
  `symbol` (mathematical operators, function names, arrows, accents, greek letters, etc.) are all converted to Symbols.
  The <<symbol_table>> below list all the symbols that are recognized by the parser.
  +
  `text`, `number` and `identifier` are converted to Strings.
  
  Matrices::
  Matrices in AsciiMath are a special case of nested `paren_expr`.
  The matrix itself can be any `paren_expr`.
  Inside this outer matrix `paren_expr` each row should be represented as a `paren_expr` using either `()` or `[]`.
  Rows must be separated by commas (`,`).
  The elements of each row must also be separated by commas.
  Each row must contain the same number of elements.
  +
  When the parser detects a well-formed matrix expression it will strip away the `paren_expr` representation of the matrix and each row.
  Instead it returns a Hash of the following form.
  The `rows` value contains an Array with one element per row.
  Each row Array contains one element per column.
  Each column element is represented using the appropriate AST type.
  +
  [source]
  ----
  