This specification presents the syntax of the C# programming language using two grammars. The lexical grammar (9.2.1) defines how Unicode characters are combined to form line terminators, white space, comments, tokens, and pre-processing directives. The syntactic grammar (9.2.2) defines how the tokens resulting from the lexical grammar are combined to form C# programs.