add ast.h and ast.cpp.