fznslurp.pl 227 Bytes
% == No, Emacs this is -*-Prolog-*- code, not what you thought... =============

load_ast(AST) :- load_ast(_>[], [], AST).

load_ast(end_of_file, AST, AST).
load_ast(IN > INT,    IN,  OUT) :- read(OP), load_ast(OP, INT, OUT).