There's two types of translations that occur in Mito, writing spreadsheet formulas, and then everything else (merging, pivoting, etc.)
For the spreadsheet formula part, we parse the formula in the Jupyter Python kernel and convert it to Pandas code. We actually found a bit of a trick to make this easier. TLDR: We defined Python functions that have the same name as the spreadsheet formulas, it helps us avoid building writing a formal language grammar + syntax tree. If you're interested in reading about it a bit more, we actually have a short blog post that you can checkout: https://trymito.io/blog/transpiler
The second type of translation (merging, pivoting, etc) sends a message to the backend with the parameters configured from the point and click tool. And then executes the equivalent Pandas code in the Python kernel and writes the code to the Jupyter Cell.