News for hackers. Stuff that matters.
Re:IronCalc – Open-Source Spreadsheet Engine by bonzini on Saturday November 09, 2024 @04:16PM (#42096944)
You're conflating parsing of expressions with operator precedence parsers (aka Pratt parsers). IronCalc uses a recursive descent parser, and Pratt parsers are an optimization of recursive descent parsers. Pratt parsers have one function that implements all precedence levels, while recursive descent parsers have one function per precedence level, but they contain basically the same logic.

Source: 20 years ago I converted GCC's C++ parser from recursive descent to an operator precedence parser; obviously GCC respected precedence even before my work, which was purely an optimization. In fact the code I replaced had the note "The expression parser recurses through the various levels of precedence as specified in the grammar, rather than using an operator-precedence technique".

https://github.com/gcc-mirror/gcc/commit/b8b94c5ba81744d325f...

Re:IronCalc – Open-Source Spreadsheet Engine by fatih-erikli-cg on Saturday November 09, 2024 @04:36PM (#42097033)
Operator precedence is an addition to parsing of expressions. Both of them is needed if you accept "2 + 1" kind of expression. "2 + 2 * 2" must be evaluated like "2 + (2 * 2)". Only expression parsing will evaluate them like 8.
Re:IronCalc – Open-Source Spreadsheet Engine by bonzini on Sunday November 10, 2024 @12:51AM (#42098707)
You can choose: learn recursive descent parsing, or keep on being confidently incorrect.