[lex.operators] # 5 Lexical conventions [[lex]](./#lex) ## 5.8 Operators and punctuators [lex.operators] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lex.tex#L774) The lexical representation of C++ programs includes a number of preprocessing tokens that are used in the syntax of the preprocessor or are converted into tokens for operators and punctuators: [preprocessing-op-or-punc:](#nt:preprocessing-op-or-punc "5.8 Operators and punctuators [lex.operators]") [*preprocessing-operator*](#nt:preprocessing-operator "5.8 Operators and punctuators [lex.operators]") [*operator-or-punctuator*](#nt:operator-or-punctuator "5.8 Operators and punctuators [lex.operators]") [preprocessing-operator:](#nt:preprocessing-operator "5.8 Operators and punctuators [lex.operators]") one of # ## %: %:%: [operator-or-punctuator:](#nt:operator-or-punctuator "5.8 Operators and punctuators [lex.operators]") one of { } [ ] ( ) [: :] <% %> <: :> ; : ... ? :: . .* -> ->* ^^ ~ ! + - * / % ^ & | = += -= *= /= %= ^= &= |= == != < > <= >= <=> && || << >> <<= >>= ++ -- , and or xor not bitand bitor compl and_eq or_eq xor_eq not_eq Each [*operator-or-punctuator*](#nt:operator-or-punctuator "5.8 Operators and punctuators [lex.operators]") is converted to a single token in translation phase 7 ([[lex.phases]](lex.phases "5.2 Phases of translation"))[.](#1.sentence-2)