Add macro parsing.

This request is reviewed on master branch. Just changed its branch to macro-parsing to only pull request on macro parsing not on others such as static variable parsing. Do not review this. David has reviewed this.