This post is part of the Introduction to parsing series. In the last part we have finished adapting our parser to use our AST structure. This time, we’re going to work on supporting user-defined functions. The code changes for this part are here. Defining user functions Currently our parser supports a limited sets of pre-defined functions, implemented in C++ (although actually we have only used functions from the standard library).