"mismatched tree node: DOCUMENT expecting DOCUMENT" I'm not having very good luck trying to do simple things apparently. My ToStringTree: (DOCUMENT (PRINT 'variable')) My tree grammar: document : ^(DOCUMENT statement*) ; statement : ^(PRINT LITERAL) ;