This documentation is archived and is not being maintained.

2.3 Lexical analysis

Visual Studio .NET 2003

The input production defines the lexical structure of a C# source file. Each source file in a C# program must conform to this lexical grammar production.

input:
input-sectionopt
input-section:
input-section-part
input-section   input-section-part
input-section-part:
input-elementsopt   new-line
pp-directive
input-elements:
input-element
input-elements   input-element
input-element:
whitespace
comment
token

Five basic elements make up the lexical structure of a C# source file: Line terminators (Section 2.3.1), white space (Section 2.3.2), comments (Section 2.3.3), tokens (Section 2.4), and pre-processing directives (Section 2.5). Of these basic elements, only tokens are significant in the syntactic grammar of a C# program (Section 2.2.3).

The lexical processing of a C# source file consists of reducing the file into a sequence of tokens which becomes the input to the syntactic analysis. Line terminators, white space, and comments can serve to separate tokens, and pre-processing directives can cause sections of the source file to be skipped, but otherwise these lexical elements have no impact on the syntactic structure of a C# program.

When several lexical grammar productions match a sequence of characters in a source file, the lexical processing always forms the longest possible lexical element. For example, the character sequence // is processed as the beginning of a single-line comment because that lexical element is longer than a single / token.

Show: