Let '^' through the lexer

so that the (existing) code in parser and expression evaluator
actually get to see it and handle it as XOR.  Also adjust docu
to match what's there.
This commit is contained in:
Michael Matz
2023-07-12 15:10:10 +02:00
parent 22e90ac5af
commit f6f78318fc
2 changed files with 21 additions and 16 deletions

View File

@@ -6818,19 +6818,21 @@ the standard bindings and precedence levels:
@ifnottex
@c END TEXI2ROFF-KILL
@smallexample
precedence associativity Operators Notes
precedence associativity Operators Notes
(highest)
1 left ! - ~ (1)
1 left ! - ~ (1)
2 left * / %
3 left + -
4 left >> <<
5 left == != > < <= >=
6 left &
7 left |
8 left &&
9 left ||
10 right ? :
11 right &= += -= *= /= (2)
5 left > < <= >=
6 left == !=
7 left &
8 left ^
9 left |
10 left &&
11 left ||
12 right ? :
13 right += -= *= /= <<= >>= &= |= (2)
(lowest)
@end smallexample
Notes:
@@ -6856,13 +6858,15 @@ height2pt&\omit&&\omit&&\omit&\cr
&2&&left&&* / \%&\cr
&3&&left&&+ -&\cr
&4&&left&&>> <<&\cr
&5&&left&&== != > < <= >=&\cr
&6&&left&&\&&\cr
&7&&left&&|&\cr
&8&&left&&{\&\&}&\cr
&9&&left&&||&\cr
&10&&right&&? :&\cr
&11&&right&&\qquad\&= += -= *= /=\qquad\ddag&\cr
&5&&left&& > < <= >=&\cr
&6&&left&&== !=&\cr
&7&&left&&\&&\cr
&8&&left&&^&\cr
&9&&left&&|&\cr
&10&&left&&{\&\&}&\cr
&11&&left&&||&\cr
&12&&right&&? :&\cr
&13&&right&&\qquad += -= *= /= <<= >>= \&= |=\qquad\ddag&\cr
&lowest&&&&&\cr
height2pt&\omit&&\omit&&\omit&\cr}
\hrule}

View File

@@ -247,6 +247,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<EXPRESSION,MRI>"/" { RTOKEN('/'); }
<EXPRESSION,MRI>"%" { RTOKEN('%'); }
<EXPRESSION,MRI>"<" { RTOKEN('<'); }
<EXPRESSION,MRI>"^" { RTOKEN('^'); }
<SCRIPT,EXPRESSION,MRI,WILD>"=" { RTOKEN('='); }
<SCRIPT,EXPRESSION,MRI,WILD>"}" { RTOKEN('}'); }
<SCRIPT,EXPRESSION,MRI,WILD>"{" { RTOKEN('{'); }