Appearance
最容易理解递归过程的图
txt
parseExpression(LOWEST)
└── left = IntegerLiteral(1)
└── peekToken = +
└── parseInfixExpression(left = 1)
└── parseExpression(SUM) // ← 递归
└── left = IntegerLiteral(2)
└── peekToken = + (优先级 SUM == SUM,不进入 for 循环)
← return 2
← return (1 + 2)
← 回到最初的 parseExpression(LOWEST),继续 while
└── peekToken = +
└── parseInfixExpression(left = (1 + 2))
└── parseExpression(SUM)
└── return IntegerLiteral(3)
← return ((1 + 2) + 3)
← return ((1 + 2) + 3)