Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Value* parse_value(..., int prio) {
- tok = token();
- value = ... value logic ...
- else throw invalid value token
- // Trailing tokens
- tok = token();
- if prio == 0 || prio >= 10 {
- while(tok == "*" || tok == "/"){
- left = value;
- right = parse_value(..., 10);
- tok = token();
- }
- }
- if prio == 0 || prio >= 20 {
- while(tok == "+" || tok == "-"){
- left = value;
- right = parse_value(..., 20);
- tok = token();
- }
- }
- token_back(); // Not a trailing token, move parser back 1 token
- }
- Usage:
- Value* val = parse_value(..., 0);
Advertisement
Add Comment
Please, Sign In to add comment