Skip to content

Instantly share code, notes, and snippets.

@RoelofWobben
Created January 23, 2023 20:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RoelofWobben/17e20821d335df5f29efdd6d0216c40e to your computer and use it in GitHub Desktop.
Save RoelofWobben/17e20821d335df5f29efdd6d0216c40e to your computer and use it in GitHub Desktop.
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