diff options
author | Jannick <unknown> | 2018-12-12 08:38:19 +1100 |
---|---|---|
committer | Jannick <unknown> | 2018-12-12 08:38:19 +1100 |
commit | cb6e496d5fef85a7305db64e0874fdb0b78fd04b (patch) | |
tree | 1b7797e48519b2e5e2f39a43bf5cb77f354da992 /src | |
parent | 94a64113360712aeee95725ebd3a97a21b3abb61 (diff) | |
download | scintilla-mirror-cb6e496d5fef85a7305db64e0874fdb0b78fd04b.tar.gz |
Backport: Bug [#2069]. LexCPP: fix bug in arithmetic calculation by adding precedence levels
The precedence for the implemented arithmetic operators +,-,%,*,/
is added, such that the calculations produce the correct results
honoring the standard precedence levels.
* Replace characterset setArithmeticOp by setAddOp and setMultOp.
* Replace precedence precArithmetic by precMult and precAdd
* (EvaluateTokens): Apply new precedences.
This fixes the bug in the arithmetic calculation:
// lines with 'false' should not be highlighted,
// those with 'true' should be.
#if 1 + 2 * 3 == 9
false
#endif
#if (1 + 2) * 3 == 9
true
#endif
#if 1 + 2 * 3 == 7
true
#endif
#if 1 == 5 % 2
true
#endif
#if 6 - 7 == -1
true
#endif
#if 25 / 5 * 5 == 25
true
#endif
#if 1 + 2 * 3 % 2 == 1
true
#endif
#if 1 + 2 * 3 % 2 == 2 + 1
false
#endif
Backport of changeset 7184:48861f53f719.
Diffstat (limited to 'src')
0 files changed, 0 insertions, 0 deletions