$PreRead, $Pre, $Post, $PrePrint

The evaluation of expressions can be affected by definitions assigned to symbols
$PreRead, MakeExpression, $Pre, $Post, $PrePrint, Format, MakeBoxes. The process of going from input cell to output cell is as follows.

   (1)  Input Boxes are processed using $PreRead.
   (2)  The boxes $PreRead returns are converted to an expression using MakeExpression.
   (3)  The expression MakeExpression returns is processed using $Pre.
   (4)  The expression $Pre returns is evaluated.
   (5)  The expression returned by evaluation is processed by $Post.
   (6)  The expression $Post returns is assigned to (%n) and stored in DownValues[Out].
   (7)  The expression that was assigned to (%n) is processed by $PrePrint.
   (8)  The expression $PrePrint returns is processed using Format.
   (9)  The expression Format returns is converted to boxes using MakeBoxes.