Created
January 23, 2023 20:33
-
-
Save RoelofWobben/17e20821d335df5f29efdd6d0216c40e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 + 3 * 3 | |
eerst functie parse | |
tokens = lex("2+ 3 * 3] | |
tokens = [2, "+", 3 ,"*", 3] | |
parse1(readPrimary(), 0) | |
readPrimary | |
negative = false | |
als token[0] = "-" | |
2 = "-" False | |
2 = Number True | |
tokens = [+", 3, "*", 3] | |
return 2 | |
parse1 (2,0) | |
while precendence[token[0] >= minPrecedence | |
while precendence "+" >= 0 | |
while 1 >= 0 True | |
let operator = tokens.shift | |
let operator = "+" tokens = [3, "*", 3] | |
let rhs = readPrimary | |
readPrimary | |
negative = false | |
tokens[0] == "-" | |
3 = "-" False | |
return 3 tokens = ["*", 3] | |
while precendence(tokens[0] > precendence(operator) | |
while precendence "*" > precendence "+" | |
while 2 > 1 True | |
rhs = parse1(rhs, precendence(operator) + 1 | |
rhs = parse1 (3, 2) | |
parse1 | |
while precendence(token[0] >= minPrecendence | |
while precedence("*") >= 2 | |
while 2 > = 2 True | |
let operator = token.shift() | |
let operator = "*" tokens = [3] | |
let rhs = 3 tokens = [] | |
while precendence[token[0] > precende(operator) | |
while 0 > 2 False | |
value = * 3 3 | |
value = 9 | |
while precendence(token[0]> minPrencedence | |
while undefined > 2 False | |
while precendence(tokens[0] > precendence(operator) | |
while undefined > 2 False | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment