Trees
Trees are not commonly used as intermediate code, but in my opinion trees are the best:
The only disadvantage of trees is that they may take more storage; but modern computers have plenty of storage for compilation.