fcn load_ast(file){ line:=file.readln().strip(); // one or two tokens if(line[0]==";") return(Void); parts,type,value := line.split(),parts[0],parts[1,*].concat(" "); type=all_syms[type]; if(value){ try{ value=value.toInt() }catch{} return(Node(type,value)); } left,right := load_ast(file),load_ast(file); Node(type,Void,left,right) }