see boost spirit: http://blog.csdn.net/gw569453350game/article/details/47807123
http://programmers.stackexchange.com/questions/254074/how-exactly-is-an-abstract-syntax-tree-created
https://en.wikipedia.org/wiki/Shunting-yard_algorithm
https://en.wikipedia.org/wiki/Operator-precedence_parser
各种语言实现的 Shunting-yard 算法例子: http://rosettacode.org/wiki/Parsing/Shunting-yard_algorithm#C
实现一个small parser 的必要组件&步骤:
http://lisperator.net/pltut/