Guest User

Compiler operator precedence

a guest
Jan 29th, 2024
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | Source Code | 0 0
  1.  
  2. Value* parse_value(..., int prio) {
  3. tok = token();
  4. value = ... value logic ...
  5. else throw invalid value token
  6. // Trailing tokens
  7. tok = token();
  8. if prio == 0 || prio >= 10 {
  9. while(tok == "*" || tok == "/"){
  10. left = value;
  11. right = parse_value(..., 10);
  12. tok = token();
  13. }
  14. }
  15. if prio == 0 || prio >= 20 {
  16. while(tok == "+" || tok == "-"){
  17. left = value;
  18. right = parse_value(..., 20);
  19. tok = token();
  20. }
  21. }
  22. token_back(); // Not a trailing token, move parser back 1 token
  23. }
  24.  
  25. Usage:
  26. Value* val = parse_value(..., 0);
  27.  
Advertisement
Add Comment
Please, Sign In to add comment