struct operator {
	const char *name;
	int val;
};
%%
=,	TOK_EQUAL
+,	TOK_PLUS
===,	TOK_TRIPLE_EQUAL
>>>,	TOK_DOUBLESHIFT_RIGHT
!==,	TOK_NOT_DOUBLEEQUAL
<<,	TOK_SHIFT_LEFT
<=,	TOK_LESSEQUAL
==,	TOK_EQUAL_EQUAL
>=,	TOK_GREATEREQUAL
>>,	TOK_SHIFT_RIGHT
||,	TOK_OR_OR
--,	TOK_MINUSMINUS
!=,	TOK_NOT_EQUAL
&&,	TOK_AND_AND
++,	TOK_PLUSPLUS
*=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
/=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
"%=", 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
+=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
-=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
<<=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
>>=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
>>>=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
&=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
^=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
|=, 	TOK_ASSIGNMENT_OPERATOR_NOEQUAL
&,	TOK_AND
:,	TOK_COLON
/,	TOK_DIVIDE
!,	TOK_EXCLAMATION
>,	TOK_GREATER
<,	TOK_LESS
-,	TOK_MINUS
*,	TOK_MULTIPLY
|,	TOK_OR
"%",	TOK_PERCENT
?,	TOK_QUESTIONMARK
~,	TOK_TILDE
^,	TOK_XOR