Building an abstract syntax tree to learn how interpreted languages work