One small program, shown as Lisp, Python, JavaScript or Forth: every node of its syntax tree is a component with a view and an edit view per notation, and the editor pushes the pair you pick over the whole tree. Switch to Edit to change values, operators and functions, clear a node with ✕ and fill a ? with a new one.