Skip to content

Instantly share code, notes, and snippets.

@kermit-klein
Created August 24, 2021 20:56
Show Gist options
  • Save kermit-klein/268b66d94bb0a063316712ccf4b5c54b to your computer and use it in GitHub Desktop.
Save kermit-klein/268b66d94bb0a063316712ccf4b5c54b to your computer and use it in GitHub Desktop.
function calculate(obj) {
switch (obj.type) {
case "number":
return parseInt(obj.value);
case "^":
return calculate(obj.left) ** calculate(obj.right);
case "+":
return calculate(obj.left) + calculate(obj.right);
case "-":
return calculate(obj.left) - calculate(obj.right);
case "*":
return calculate(obj.left) * calculate(obj.right);
case "/":
return calculate(obj.left) / calculate(obj.right);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment