13 lines
372 B
Plaintext
13 lines
372 B
Plaintext
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)
|
|
}
|