Managed to use delimited_list parser to compile a working 13-level expression AST