require'format/printf' (opcodes)=: opcodes=: ;:{{)n fetch store push add sub mul div mod lt gt le ge eq ne and or neg not jmp jz prtc prts prti halt }}-.LF (ndDisp)=: ndDisp=:;:{{)n Sequence Multiply Divide Mod Add Subtract Negate Less LessEqual Greater GreaterEqual Equal NotEqual Not And Or Prts Assign Prti x If x x x While x x Prtc x Identifier String Integer }}-.LF ndDisp,.ndOps=:;: {{)n x mul div mod add sub neg lt le gt ge eq ne not and or x x x x x x x x x x x x x x x x }} -.LF load_ast=: {{ 'node_types node_values'=: 2{.|:(({.,&<&<}.@}.)~ i.&' ');._2 y 1{::0 load_ast '' : node_type=. x{::node_types if. node_type-:,';' do. x;a: return.end. node_value=. x{::node_values if. -.''-:node_value do.x;