Consider #!strongSpaces for keyword operators too.

When #!strongSpaces is on, every  operator affected by it gains priority higher than any operator not affected by it. This includes comparison operators, addition, etc.
It seems that counting spaces for keywords operators don't break anything in the parser. Of course, they can't have 0 spaces between their operands, but at least their precedence will work accordingly to their 1+ spaces.
This commit is contained in:
ReneSac
2015-04-08 01:00:14 -03:00
parent d170a51f54
commit 6a528bc7e9

View File

@@ -227,11 +227,12 @@ proc getPrecedence(tok: TToken, strongSpaces: bool): int =
of '.': considerAsgn(6)
of '?': result = considerStrongSpaces(2)
else: considerAsgn(2)
of tkDiv, tkMod, tkShl, tkShr: result = 9
of tkIn, tkNotin, tkIs, tkIsnot, tkNot, tkOf, tkAs: result = 5
of tkDiv, tkMod, tkShl, tkShr: result = considerStrongSpaces(9)
of tkIn, tkNotin, tkIs, tkIsnot, tkNot, tkOf, tkAs:
result = considerStrongSpaces(5)
of tkDotDot: result = considerStrongSpaces(6)
of tkAnd: result = 4
of tkOr, tkXor, tkPtr, tkRef: result = 3
of tkAnd: result = considerStrongSpaces(4)
of tkOr, tkXor, tkPtr, tkRef: result = considerStrongSpaces(3)
else: result = -10
proc isOperator(tok: TToken): bool =