we should probably rename this function now. it was named this way because originally we compiled the regexes into regex patterns here, but all that is behind us. maybe `build_ast` ?