NOW:
  
  [X] make Canvas::Row less braindead with respect to mem reallocs (prealloc
      largeish chunk ahead of time, double size as needed, instead of growing
      a byte at a time)
  [X] Canvas: method to paste with parens
  [X] Canvas: method to draw integer
  [X] Canvas: implement method to draw string
  [X] Canvas::Row: paste
  [X] varargs for yyerror
  [X] yacc parser
  [X] power function
  [X] neg
  [X] variables
  [X] factorial
  [X] ellipsis
  [X] equal
  [X] greater/less
  [X] float
  [X] subscripts
  [X] conjugate
  [X] x-bar
  [X] ticks (eg f'(x))
  [X] aggregate exponents to symbols
  [X] roots
  [ ] abs
  [X] functions
  [X] integral
  [X] integral on interval
  [ ] derivative
  [X] sum
  [X] sum over interval
  [X] product
  [X] product on interval
  [X] limit
  [ ] strings (subclass of Expression, but output verbatim)
  [X] trig functions (when raised to a power should be rendered differently)
  [X] don't process numbers, treat them as strings
  [X] no spaces between multiplication of constant and variable
      (should add method to find out if subtree represents constant)
  [X] Integer/Float/Variable etc devem ser construidos pelo
      lexer (evitar strdup horrivel)
  [X] sum: evitar que coisas sobre/abaixo simbolo da somatoria sobrescrevam
      argumento
      suggestion: create method called render_sum_symb or something like
      that that will render the sigma + boundaries/var to a different canvas,
      called by render in superclass, override it in subclass -> could do
      the same for integral
  [X] error recovery
  [ ] command-line arguments: quiet mode
  [X] parse from string
  [X] interactive interface (libreadline support)
  [X] polish integral rendering (same as Sum/SumOverInterval)
  [X] get rid of shift-reduce conflicts
  [X] check if there are memory leaks with valgrind (looks ok)
  [ ] man page
  [X] Canvas::Row::paste_string
  [X] larger parentheses (?) --> LOOKS UGLY, SHOULD KEEP THEM?
  [ ] cooler examples
  [ ] nabla operator from vector calculus, e.g.
      __2
      \/ psi   --> laplacian of psi
  [X] vectors
  [X] matrices
  [ ] real man page
  [X] web page

MAYBE:

  [ ] show where error is (lineno and pos)
  [ ] division between two constants should be on the same line (e.g. 1/4)
  [ ] get rid of warnings on code generated by flex
  
DISTANT FUTURE:
  
  [ ] option to use non-ASCII characters (for greek letters, +-, etc)
  [ ] subclass Canvas: AsciiCanvas, GraphicalCanvas, generatePNG
  [ ] break expression in lines if it gets past col limit
