The lexical grammar of C# is presented in 9.3, 9.4, and 9.5. The terminal symbols of the lexical grammar are the characters of the Unicode character set, and the lexical grammar specifies how characters are combined to form tokens (9.4), white space (9.3.3), comments (9.3.2), and pre-processing directives (9.5). Every source file in a C# program must conform to the input production of the lexical grammar (9.3).