ast nodes, lexer tokens, and parsing rules for user-defined functions