[gram.lex]

# Annex A (informative) Grammar summary [[gram]](./#gram)

## A.3 Lexical conventions [gram.lex]

[n-char:](lex.universal.char#nt:n-char "5.3.2 Universal character names [lex.universal.char]")  
any member of the translation character set except the U+007d right curly bracket or new-line character

[n-char-sequence:](lex.universal.char#nt:n-char-sequence "5.3.2 Universal character names [lex.universal.char]")  
[*n-char*](lex.universal.char#nt:n-char "5.3.2 Universal character names [lex.universal.char]") [*n-char-sequence*](lex.universal.char#nt:n-char-sequence "5.3.2 Universal character names [lex.universal.char]")opt

[named-universal-character:](lex.universal.char#nt:named-universal-character "5.3.2 Universal character names [lex.universal.char]")  
\N{ [*n-char-sequence*](lex.universal.char#nt:n-char-sequence "5.3.2 Universal character names [lex.universal.char]") }

[hex-quad:](lex.universal.char#nt:hex-quad "5.3.2 Universal character names [lex.universal.char]")  
[*hexadecimal-digit*](lex.icon#nt:hexadecimal-digit "5.13.2 Integer literals [lex.icon]") [*hexadecimal-digit*](lex.icon#nt:hexadecimal-digit "5.13.2 Integer literals [lex.icon]") [*hexadecimal-digit*](lex.icon#nt:hexadecimal-digit "5.13.2 Integer literals [lex.icon]") [*hexadecimal-digit*](lex.icon#nt:hexadecimal-digit "5.13.2 Integer literals [lex.icon]")

[simple-hexadecimal-digit-sequence:](lex.universal.char#nt:simple-hexadecimal-digit-sequence "5.3.2 Universal character names [lex.universal.char]")  
[*hexadecimal-digit*](lex.icon#nt:hexadecimal-digit "5.13.2 Integer literals [lex.icon]") [*simple-hexadecimal-digit-sequence*](lex.universal.char#nt:simple-hexadecimal-digit-sequence "5.3.2 Universal character names [lex.universal.char]")opt

[universal-character-name:](lex.universal.char#nt:universal-character-name "5.3.2 Universal character names [lex.universal.char]")  
\u [*hex-quad*](lex.universal.char#nt:hex-quad "5.3.2 Universal character names [lex.universal.char]")  
\U [*hex-quad*](lex.universal.char#nt:hex-quad "5.3.2 Universal character names [lex.universal.char]") [*hex-quad*](lex.universal.char#nt:hex-quad "5.3.2 Universal character names [lex.universal.char]")  
\u{ [*simple-hexadecimal-digit-sequence*](lex.universal.char#nt:simple-hexadecimal-digit-sequence "5.3.2 Universal character names [lex.universal.char]") }  
[*named-universal-character*](lex.universal.char#nt:named-universal-character "5.3.2 Universal character names [lex.universal.char]")

[preprocessing-token:](lex.pptoken#nt:preprocessing-token "5.5 Preprocessing tokens [lex.pptoken]")  
[*header-name*](lex.header#nt:header-name "5.6 Header names [lex.header]")  
import-keyword  
module-keyword  
export-keyword  
[*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]")  
[*pp-number*](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]")  
[*character-literal*](lex.ccon#nt:character-literal "5.13.3 Character literals [lex.ccon]")  
[*user-defined-character-literal*](lex.ext#nt:user-defined-character-literal "5.13.9 User-defined literals [lex.ext]")  
[*string-literal*](lex.string#nt:string-literal "5.13.5 String literals [lex.string]")  
[*user-defined-string-literal*](lex.ext#nt:user-defined-string-literal "5.13.9 User-defined literals [lex.ext]")  
[*preprocessing-op-or-punc*](lex.operators#nt:preprocessing-op-or-punc "5.8 Operators and punctuators [lex.operators]")  
each non-whitespace character that cannot be one of the above

[header-name:](lex.header#nt:header-name "5.6 Header names [lex.header]")  
< [*h-char-sequence*](lex.header#nt:h-char-sequence "5.6 Header names [lex.header]") >  
" [*q-char-sequence*](lex.header#nt:q-char-sequence "5.6 Header names [lex.header]") "

[h-char-sequence:](lex.header#nt:h-char-sequence "5.6 Header names [lex.header]")  
[*h-char*](lex.header#nt:h-char "5.6 Header names [lex.header]") [*h-char-sequence*](lex.header#nt:h-char-sequence "5.6 Header names [lex.header]")opt

[h-char:](lex.header#nt:h-char "5.6 Header names [lex.header]")  
any member of the translation character set except new-line and U+003e greater-than sign

[q-char-sequence:](lex.header#nt:q-char-sequence "5.6 Header names [lex.header]")  
[*q-char*](lex.header#nt:q-char "5.6 Header names [lex.header]") [*q-char-sequence*](lex.header#nt:q-char-sequence "5.6 Header names [lex.header]")opt

[q-char:](lex.header#nt:q-char "5.6 Header names [lex.header]")  
any member of the translation character set except new-line and U+0022 quotation mark

[pp-number:](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]")  
[*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")  
. [*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")  
[*pp-number*](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") [*identifier-continue*](lex.name#nt:identifier-continue "5.11 Identifiers [lex.name]")  
[*pp-number*](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") ' [*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")  
[*pp-number*](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") ' [*nondigit*](lex.name#nt:nondigit "5.11 Identifiers [lex.name]")  
[*pp-number*](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") e [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")  
[*pp-number*](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") E [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")  
[*pp-number*](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") p [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")  
[*pp-number*](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") P [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")  
[*pp-number*](lex.ppnumber#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") .

[preprocessing-op-or-punc:](lex.operators#nt:preprocessing-op-or-punc "5.8 Operators and punctuators [lex.operators]")  
[*preprocessing-operator*](lex.operators#nt:preprocessing-operator "5.8 Operators and punctuators [lex.operators]")  
[*operator-or-punctuator*](lex.operators#nt:operator-or-punctuator "5.8 Operators and punctuators [lex.operators]")

[preprocessing-operator:](lex.operators#nt:preprocessing-operator "5.8 Operators and punctuators [lex.operators]") one of  
# ## %: %:%:

[operator-or-punctuator:](lex.operators#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

[token:](lex.token#nt:token "5.10 Tokens [lex.token]")  
[*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]")  
[*keyword*](lex.key#nt:keyword "5.12 Keywords [lex.key]")  
[*literal*](lex.literal.kinds#nt:literal "5.13.1 Kinds of literals [lex.literal.kinds]")  
[*operator-or-punctuator*](lex.operators#nt:operator-or-punctuator "5.8 Operators and punctuators [lex.operators]")

[identifier:](lex.name#nt:identifier "5.11 Identifiers [lex.name]")  
[*identifier-start*](lex.name#nt:identifier-start "5.11 Identifiers [lex.name]")  
[*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]") [*identifier-continue*](lex.name#nt:identifier-continue "5.11 Identifiers [lex.name]")

[identifier-start:](lex.name#nt:identifier-start "5.11 Identifiers [lex.name]")  
[*nondigit*](lex.name#nt:nondigit "5.11 Identifiers [lex.name]")  
an element of the translation character set with the Unicode property XID_Start

[identifier-continue:](lex.name#nt:identifier-continue "5.11 Identifiers [lex.name]")  
[*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")  
[*nondigit*](lex.name#nt:nondigit "5.11 Identifiers [lex.name]")  
an element of the translation character set with the Unicode property XID_Continue

[nondigit:](lex.name#nt:nondigit "5.11 Identifiers [lex.name]") one of  
a b c d e f g h i j k l m  
n o p q r s t u v w x y z  
A B C D E F G H I J K L M  
N O P Q R S T U V W X Y Z _

[digit:](lex.name#nt:digit "5.11 Identifiers [lex.name]") one of  
0 1 2 3 4 5 6 7 8 9

[keyword:](lex.key#nt:keyword "5.12 Keywords [lex.key]")  
any identifier listed in Table [5](lex.key#tab:lex.key "Table 5: Keywords")  
*import-keyword*  
*module-keyword*  
*export-keyword*

[literal:](lex.literal.kinds#nt:literal "5.13.1 Kinds of literals [lex.literal.kinds]")  
[*integer-literal*](lex.icon#nt:integer-literal "5.13.2 Integer literals [lex.icon]")  
[*character-literal*](lex.ccon#nt:character-literal "5.13.3 Character literals [lex.ccon]")  
[*floating-point-literal*](lex.fcon#nt:floating-point-literal "5.13.4 Floating-point literals [lex.fcon]")  
[*string-literal*](lex.string#nt:string-literal "5.13.5 String literals [lex.string]")  
[*boolean-literal*](lex.bool#nt:boolean-literal "5.13.7 Boolean literals [lex.bool]")  
[*pointer-literal*](lex.nullptr#nt:pointer-literal "5.13.8 Pointer literals [lex.nullptr]")  
[*user-defined-literal*](lex.ext#nt:user-defined-literal "5.13.9 User-defined literals [lex.ext]")

[integer-literal:](lex.icon#nt:integer-literal "5.13.2 Integer literals [lex.icon]")  
[*binary-literal*](lex.icon#nt:binary-literal "5.13.2 Integer literals [lex.icon]") [*integer-suffix*](lex.icon#nt:integer-suffix "5.13.2 Integer literals [lex.icon]")opt  
[*octal-literal*](lex.icon#nt:octal-literal "5.13.2 Integer literals [lex.icon]") [*integer-suffix*](lex.icon#nt:integer-suffix "5.13.2 Integer literals [lex.icon]")opt  
[*decimal-literal*](lex.icon#nt:decimal-literal "5.13.2 Integer literals [lex.icon]") [*integer-suffix*](lex.icon#nt:integer-suffix "5.13.2 Integer literals [lex.icon]")opt  
[*hexadecimal-literal*](lex.icon#nt:hexadecimal-literal "5.13.2 Integer literals [lex.icon]") [*integer-suffix*](lex.icon#nt:integer-suffix "5.13.2 Integer literals [lex.icon]")opt

[binary-literal:](lex.icon#nt:binary-literal "5.13.2 Integer literals [lex.icon]")  
0b [*binary-digit*](lex.icon#nt:binary-digit "5.13.2 Integer literals [lex.icon]")  
0B [*binary-digit*](lex.icon#nt:binary-digit "5.13.2 Integer literals [lex.icon]")  
[*binary-literal*](lex.icon#nt:binary-literal "5.13.2 Integer literals [lex.icon]") 'opt [*binary-digit*](lex.icon#nt:binary-digit "5.13.2 Integer literals [lex.icon]")

[octal-literal:](lex.icon#nt:octal-literal "5.13.2 Integer literals [lex.icon]")  
0  
[*octal-literal*](lex.icon#nt:octal-literal "5.13.2 Integer literals [lex.icon]") 'opt [*octal-digit*](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]")

[decimal-literal:](lex.icon#nt:decimal-literal "5.13.2 Integer literals [lex.icon]")  
[*nonzero-digit*](lex.icon#nt:nonzero-digit "5.13.2 Integer literals [lex.icon]")  
[*decimal-literal*](lex.icon#nt:decimal-literal "5.13.2 Integer literals [lex.icon]") 'opt [*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")

[hexadecimal-literal:](lex.icon#nt:hexadecimal-literal "5.13.2 Integer literals [lex.icon]")  
[*hexadecimal-prefix*](lex.icon#nt:hexadecimal-prefix "5.13.2 Integer literals [lex.icon]") [*hexadecimal-digit-sequence*](lex.icon#nt:hexadecimal-digit-sequence "5.13.2 Integer literals [lex.icon]")

[binary-digit:](lex.icon#nt:binary-digit "5.13.2 Integer literals [lex.icon]") one of  
0 1

[octal-digit:](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]") one of  
0 1 2 3 4 5 6 7

[nonzero-digit:](lex.icon#nt:nonzero-digit "5.13.2 Integer literals [lex.icon]") one of  
1 2 3 4 5 6 7 8 9

[hexadecimal-prefix:](lex.icon#nt:hexadecimal-prefix "5.13.2 Integer literals [lex.icon]") one of  
0x 0X

[hexadecimal-digit-sequence:](lex.icon#nt:hexadecimal-digit-sequence "5.13.2 Integer literals [lex.icon]")  
[*hexadecimal-digit*](lex.icon#nt:hexadecimal-digit "5.13.2 Integer literals [lex.icon]")  
[*hexadecimal-digit-sequence*](lex.icon#nt:hexadecimal-digit-sequence "5.13.2 Integer literals [lex.icon]") 'opt [*hexadecimal-digit*](lex.icon#nt:hexadecimal-digit "5.13.2 Integer literals [lex.icon]")

[hexadecimal-digit:](lex.icon#nt:hexadecimal-digit "5.13.2 Integer literals [lex.icon]") one of  
0 1 2 3 4 5 6 7 8 9  
a b c d e f  
A B C D E F

[integer-suffix:](lex.icon#nt:integer-suffix "5.13.2 Integer literals [lex.icon]")  
[*unsigned-suffix*](lex.icon#nt:unsigned-suffix "5.13.2 Integer literals [lex.icon]") [*long-suffix*](lex.icon#nt:long-suffix "5.13.2 Integer literals [lex.icon]")opt   
[*unsigned-suffix*](lex.icon#nt:unsigned-suffix "5.13.2 Integer literals [lex.icon]") [*long-long-suffix*](lex.icon#nt:long-long-suffix "5.13.2 Integer literals [lex.icon]")opt   
[*unsigned-suffix*](lex.icon#nt:unsigned-suffix "5.13.2 Integer literals [lex.icon]") [*size-suffix*](lex.icon#nt:size-suffix "5.13.2 Integer literals [lex.icon]")opt   
[*long-suffix*](lex.icon#nt:long-suffix "5.13.2 Integer literals [lex.icon]") [*unsigned-suffix*](lex.icon#nt:unsigned-suffix "5.13.2 Integer literals [lex.icon]")opt   
[*long-long-suffix*](lex.icon#nt:long-long-suffix "5.13.2 Integer literals [lex.icon]") [*unsigned-suffix*](lex.icon#nt:unsigned-suffix "5.13.2 Integer literals [lex.icon]")opt   
[*size-suffix*](lex.icon#nt:size-suffix "5.13.2 Integer literals [lex.icon]") [*unsigned-suffix*](lex.icon#nt:unsigned-suffix "5.13.2 Integer literals [lex.icon]")opt

[unsigned-suffix:](lex.icon#nt:unsigned-suffix "5.13.2 Integer literals [lex.icon]") one of  
u U

[long-suffix:](lex.icon#nt:long-suffix "5.13.2 Integer literals [lex.icon]") one of  
l L

[long-long-suffix:](lex.icon#nt:long-long-suffix "5.13.2 Integer literals [lex.icon]") one of  
ll LL

[size-suffix:](lex.icon#nt:size-suffix "5.13.2 Integer literals [lex.icon]") one of  
z Z

[character-literal:](lex.ccon#nt:character-literal "5.13.3 Character literals [lex.ccon]")  
[*encoding-prefix*](lex.ccon#nt:encoding-prefix "5.13.3 Character literals [lex.ccon]")opt ' [*c-char-sequence*](lex.ccon#nt:c-char-sequence "5.13.3 Character literals [lex.ccon]") '

[encoding-prefix:](lex.ccon#nt:encoding-prefix "5.13.3 Character literals [lex.ccon]") one of  
u8 u U L

[c-char-sequence:](lex.ccon#nt:c-char-sequence "5.13.3 Character literals [lex.ccon]")  
[*c-char*](lex.ccon#nt:c-char "5.13.3 Character literals [lex.ccon]") [*c-char-sequence*](lex.ccon#nt:c-char-sequence "5.13.3 Character literals [lex.ccon]")opt

[c-char:](lex.ccon#nt:c-char "5.13.3 Character literals [lex.ccon]")  
[*basic-c-char*](lex.ccon#nt:basic-c-char "5.13.3 Character literals [lex.ccon]")  
[*escape-sequence*](lex.ccon#nt:escape-sequence "5.13.3 Character literals [lex.ccon]")  
[*universal-character-name*](lex.universal.char#nt:universal-character-name "5.3.2 Universal character names [lex.universal.char]")

[basic-c-char:](lex.ccon#nt:basic-c-char "5.13.3 Character literals [lex.ccon]")  
any member of the translation character set except the U+0027 apostrophe,  
 U+005c reverse solidus, or new-line character

[escape-sequence:](lex.ccon#nt:escape-sequence "5.13.3 Character literals [lex.ccon]")  
[*simple-escape-sequence*](lex.ccon#nt:simple-escape-sequence "5.13.3 Character literals [lex.ccon]")  
[*numeric-escape-sequence*](lex.ccon#nt:numeric-escape-sequence "5.13.3 Character literals [lex.ccon]")  
[*conditional-escape-sequence*](lex.ccon#nt:conditional-escape-sequence "5.13.3 Character literals [lex.ccon]")

[simple-escape-sequence:](lex.ccon#nt:simple-escape-sequence "5.13.3 Character literals [lex.ccon]")  
\ [*simple-escape-sequence-char*](lex.ccon#nt:simple-escape-sequence-char "5.13.3 Character literals [lex.ccon]")

[simple-escape-sequence-char:](lex.ccon#nt:simple-escape-sequence-char "5.13.3 Character literals [lex.ccon]") one of  
' " ? \ a b f n r t v

[numeric-escape-sequence:](lex.ccon#nt:numeric-escape-sequence "5.13.3 Character literals [lex.ccon]")  
[*octal-escape-sequence*](lex.ccon#nt:octal-escape-sequence "5.13.3 Character literals [lex.ccon]")  
[*hexadecimal-escape-sequence*](lex.ccon#nt:hexadecimal-escape-sequence "5.13.3 Character literals [lex.ccon]")

[simple-octal-digit-sequence:](lex.ccon#nt:simple-octal-digit-sequence "5.13.3 Character literals [lex.ccon]")  
[*octal-digit*](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]") [*simple-octal-digit-sequence*](lex.ccon#nt:simple-octal-digit-sequence "5.13.3 Character literals [lex.ccon]")opt

[octal-escape-sequence:](lex.ccon#nt:octal-escape-sequence "5.13.3 Character literals [lex.ccon]")  
\ [*octal-digit*](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]")  
\ [*octal-digit*](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]") [*octal-digit*](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]")  
\ [*octal-digit*](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]") [*octal-digit*](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]") [*octal-digit*](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]")  
\o{ [*simple-octal-digit-sequence*](lex.ccon#nt:simple-octal-digit-sequence "5.13.3 Character literals [lex.ccon]") }

[hexadecimal-escape-sequence:](lex.ccon#nt:hexadecimal-escape-sequence "5.13.3 Character literals [lex.ccon]")  
\x [*simple-hexadecimal-digit-sequence*](lex.universal.char#nt:simple-hexadecimal-digit-sequence "5.3.2 Universal character names [lex.universal.char]")  
\x{ [*simple-hexadecimal-digit-sequence*](lex.universal.char#nt:simple-hexadecimal-digit-sequence "5.3.2 Universal character names [lex.universal.char]") }

[conditional-escape-sequence:](lex.ccon#nt:conditional-escape-sequence "5.13.3 Character literals [lex.ccon]")  
\ [*conditional-escape-sequence-char*](lex.ccon#nt:conditional-escape-sequence-char "5.13.3 Character literals [lex.ccon]")

[conditional-escape-sequence-char:](lex.ccon#nt:conditional-escape-sequence-char "5.13.3 Character literals [lex.ccon]")  
any member of the basic character set that is not an [*octal-digit*](lex.icon#nt:octal-digit "5.13.2 Integer literals [lex.icon]"), a [*simple-escape-sequence-char*](lex.ccon#nt:simple-escape-sequence-char "5.13.3 Character literals [lex.ccon]"), or the characters N, o, u, U, or x

[floating-point-literal:](lex.fcon#nt:floating-point-literal "5.13.4 Floating-point literals [lex.fcon]")  
[*decimal-floating-point-literal*](lex.fcon#nt:decimal-floating-point-literal "5.13.4 Floating-point literals [lex.fcon]")  
[*hexadecimal-floating-point-literal*](lex.fcon#nt:hexadecimal-floating-point-literal "5.13.4 Floating-point literals [lex.fcon]")

[decimal-floating-point-literal:](lex.fcon#nt:decimal-floating-point-literal "5.13.4 Floating-point literals [lex.fcon]")  
[*fractional-constant*](lex.fcon#nt:fractional-constant "5.13.4 Floating-point literals [lex.fcon]") [*exponent-part*](lex.fcon#nt:exponent-part "5.13.4 Floating-point literals [lex.fcon]")opt [*floating-point-suffix*](lex.fcon#nt:floating-point-suffix "5.13.4 Floating-point literals [lex.fcon]")opt  
[*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]") [*exponent-part*](lex.fcon#nt:exponent-part "5.13.4 Floating-point literals [lex.fcon]") [*floating-point-suffix*](lex.fcon#nt:floating-point-suffix "5.13.4 Floating-point literals [lex.fcon]")opt

[hexadecimal-floating-point-literal:](lex.fcon#nt:hexadecimal-floating-point-literal "5.13.4 Floating-point literals [lex.fcon]")  
[*hexadecimal-prefix*](lex.icon#nt:hexadecimal-prefix "5.13.2 Integer literals [lex.icon]") [*hexadecimal-fractional-constant*](lex.fcon#nt:hexadecimal-fractional-constant "5.13.4 Floating-point literals [lex.fcon]") [*binary-exponent-part*](lex.fcon#nt:binary-exponent-part "5.13.4 Floating-point literals [lex.fcon]") [*floating-point-suffix*](lex.fcon#nt:floating-point-suffix "5.13.4 Floating-point literals [lex.fcon]")opt  
[*hexadecimal-prefix*](lex.icon#nt:hexadecimal-prefix "5.13.2 Integer literals [lex.icon]") [*hexadecimal-digit-sequence*](lex.icon#nt:hexadecimal-digit-sequence "5.13.2 Integer literals [lex.icon]") [*binary-exponent-part*](lex.fcon#nt:binary-exponent-part "5.13.4 Floating-point literals [lex.fcon]") [*floating-point-suffix*](lex.fcon#nt:floating-point-suffix "5.13.4 Floating-point literals [lex.fcon]")opt

[fractional-constant:](lex.fcon#nt:fractional-constant "5.13.4 Floating-point literals [lex.fcon]")  
[*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]")opt . [*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]")  
[*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]") .

[hexadecimal-fractional-constant:](lex.fcon#nt:hexadecimal-fractional-constant "5.13.4 Floating-point literals [lex.fcon]")  
[*hexadecimal-digit-sequence*](lex.icon#nt:hexadecimal-digit-sequence "5.13.2 Integer literals [lex.icon]")opt . [*hexadecimal-digit-sequence*](lex.icon#nt:hexadecimal-digit-sequence "5.13.2 Integer literals [lex.icon]")  
[*hexadecimal-digit-sequence*](lex.icon#nt:hexadecimal-digit-sequence "5.13.2 Integer literals [lex.icon]") .

[exponent-part:](lex.fcon#nt:exponent-part "5.13.4 Floating-point literals [lex.fcon]")  
e [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")opt [*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]")  
E [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")opt [*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]")

[binary-exponent-part:](lex.fcon#nt:binary-exponent-part "5.13.4 Floating-point literals [lex.fcon]")  
p [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")opt [*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]")  
P [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")opt [*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]")

[sign:](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]") one of  
+ -

[digit-sequence:](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]")  
[*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")  
[*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]") 'opt [*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")

[floating-point-suffix:](lex.fcon#nt:floating-point-suffix "5.13.4 Floating-point literals [lex.fcon]") one of  
f l f16 f32 f64 f128 bf16 F L F16 F32 F64 F128 BF16

[string-literal:](lex.string#nt:string-literal "5.13.5 String literals [lex.string]")  
[*encoding-prefix*](lex.ccon#nt:encoding-prefix "5.13.3 Character literals [lex.ccon]")opt " [*s-char-sequence*](lex.string#nt:s-char-sequence "5.13.5 String literals [lex.string]")opt "  
[*encoding-prefix*](lex.ccon#nt:encoding-prefix "5.13.3 Character literals [lex.ccon]")opt R [*raw-string*](lex.string#nt:raw-string "5.13.5 String literals [lex.string]")

[s-char-sequence:](lex.string#nt:s-char-sequence "5.13.5 String literals [lex.string]")  
[*s-char*](lex.string#nt:s-char "5.13.5 String literals [lex.string]") [*s-char-sequence*](lex.string#nt:s-char-sequence "5.13.5 String literals [lex.string]")opt

[s-char:](lex.string#nt:s-char "5.13.5 String literals [lex.string]")  
[*basic-s-char*](lex.string#nt:basic-s-char "5.13.5 String literals [lex.string]")  
[*escape-sequence*](lex.ccon#nt:escape-sequence "5.13.3 Character literals [lex.ccon]")  
[*universal-character-name*](lex.universal.char#nt:universal-character-name "5.3.2 Universal character names [lex.universal.char]")

[basic-s-char:](lex.string#nt:basic-s-char "5.13.5 String literals [lex.string]")  
any member of the translation character set except the U+0022 quotation mark,  
 U+005c reverse solidus, or new-line character

[raw-string:](lex.string#nt:raw-string "5.13.5 String literals [lex.string]")  
" [*d-char-sequence*](lex.string#nt:d-char-sequence "5.13.5 String literals [lex.string]")opt ( [*r-char-sequence*](lex.string#nt:r-char-sequence "5.13.5 String literals [lex.string]")opt ) [*d-char-sequence*](lex.string#nt:d-char-sequence "5.13.5 String literals [lex.string]")opt "

[r-char-sequence:](lex.string#nt:r-char-sequence "5.13.5 String literals [lex.string]")  
[*r-char*](lex.string#nt:r-char "5.13.5 String literals [lex.string]") [*r-char-sequence*](lex.string#nt:r-char-sequence "5.13.5 String literals [lex.string]")opt

[r-char:](lex.string#nt:r-char "5.13.5 String literals [lex.string]")  
any member of the translation character set, except a U+0029 right parenthesis followed by  
 the initial [*d-char-sequence*](lex.string#nt:d-char-sequence "5.13.5 String literals [lex.string]") (which may be empty) followed by a U+0022 quotation mark

[d-char-sequence:](lex.string#nt:d-char-sequence "5.13.5 String literals [lex.string]")  
[*d-char*](lex.string#nt:d-char "5.13.5 String literals [lex.string]") [*d-char-sequence*](lex.string#nt:d-char-sequence "5.13.5 String literals [lex.string]")opt

[d-char:](lex.string#nt:d-char "5.13.5 String literals [lex.string]")  
any member of the basic character set except:  
 U+0020 space, U+0028 left parenthesis, U+0029 right parenthesis, U+005c reverse solidus,  
 U+0009 character tabulation, U+000b line tabulation, U+000c form feed, and new-line

[unevaluated-string:](lex.string.uneval#nt:unevaluated-string "5.13.6 Unevaluated strings [lex.string.uneval]")  
[*string-literal*](lex.string#nt:string-literal "5.13.5 String literals [lex.string]")

[boolean-literal:](lex.bool#nt:boolean-literal "5.13.7 Boolean literals [lex.bool]")  
false  
true

[pointer-literal:](lex.nullptr#nt:pointer-literal "5.13.8 Pointer literals [lex.nullptr]")  
nullptr

[user-defined-literal:](lex.ext#nt:user-defined-literal "5.13.9 User-defined literals [lex.ext]")  
[*user-defined-integer-literal*](lex.ext#nt:user-defined-integer-literal "5.13.9 User-defined literals [lex.ext]")  
[*user-defined-floating-point-literal*](lex.ext#nt:user-defined-floating-point-literal "5.13.9 User-defined literals [lex.ext]")  
[*user-defined-string-literal*](lex.ext#nt:user-defined-string-literal "5.13.9 User-defined literals [lex.ext]")  
[*user-defined-character-literal*](lex.ext#nt:user-defined-character-literal "5.13.9 User-defined literals [lex.ext]")

[user-defined-integer-literal:](lex.ext#nt:user-defined-integer-literal "5.13.9 User-defined literals [lex.ext]")  
[*decimal-literal*](lex.icon#nt:decimal-literal "5.13.2 Integer literals [lex.icon]") [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")  
[*octal-literal*](lex.icon#nt:octal-literal "5.13.2 Integer literals [lex.icon]") [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")  
[*hexadecimal-literal*](lex.icon#nt:hexadecimal-literal "5.13.2 Integer literals [lex.icon]") [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")  
[*binary-literal*](lex.icon#nt:binary-literal "5.13.2 Integer literals [lex.icon]") [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")

[user-defined-floating-point-literal:](lex.ext#nt:user-defined-floating-point-literal "5.13.9 User-defined literals [lex.ext]")  
[*fractional-constant*](lex.fcon#nt:fractional-constant "5.13.4 Floating-point literals [lex.fcon]") [*exponent-part*](lex.fcon#nt:exponent-part "5.13.4 Floating-point literals [lex.fcon]")opt [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")  
[*digit-sequence*](lex.fcon#nt:digit-sequence "5.13.4 Floating-point literals [lex.fcon]") [*exponent-part*](lex.fcon#nt:exponent-part "5.13.4 Floating-point literals [lex.fcon]") [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")  
[*hexadecimal-prefix*](lex.icon#nt:hexadecimal-prefix "5.13.2 Integer literals [lex.icon]") [*hexadecimal-fractional-constant*](lex.fcon#nt:hexadecimal-fractional-constant "5.13.4 Floating-point literals [lex.fcon]") [*binary-exponent-part*](lex.fcon#nt:binary-exponent-part "5.13.4 Floating-point literals [lex.fcon]") [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")  
[*hexadecimal-prefix*](lex.icon#nt:hexadecimal-prefix "5.13.2 Integer literals [lex.icon]") [*hexadecimal-digit-sequence*](lex.icon#nt:hexadecimal-digit-sequence "5.13.2 Integer literals [lex.icon]") [*binary-exponent-part*](lex.fcon#nt:binary-exponent-part "5.13.4 Floating-point literals [lex.fcon]") [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")

[user-defined-string-literal:](lex.ext#nt:user-defined-string-literal "5.13.9 User-defined literals [lex.ext]")  
[*string-literal*](lex.string#nt:string-literal "5.13.5 String literals [lex.string]") [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")

[user-defined-character-literal:](lex.ext#nt:user-defined-character-literal "5.13.9 User-defined literals [lex.ext]")  
[*character-literal*](lex.ccon#nt:character-literal "5.13.3 Character literals [lex.ccon]") [*ud-suffix*](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")

[ud-suffix:](lex.ext#nt:ud-suffix "5.13.9 User-defined literals [lex.ext]")  
[*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]")
