Table of Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Notes DownloadECMA-334 C# Language Specification 5 Notational conventions
Paragraph 11 Lexical and syntactic grammars for C# are interspersed throughout this specification. 2 The lexical grammar defines how characters can be combined to form tokens (§9.4), the minimal lexical elements of the language. 3 The syntactic grammar defines how tokens can be combined to make valid C# programs.
Paragraph 21 Grammar productions include both non-terminal and terminal symbols. 2 In grammar productions, non-terminal symbols are shown in italic type, and terminal symbols are shown in a fixed-width font. 3 Each non-terminal is defined by a set of productions. 4 The first line of a set of productions is the name of the non-terminal, followed by a colon. 5 Each successive indented line contains the right-hand side for a production that has the non-terminal symbol as the left-hand side. 6 For example: class-modifier : new public protected internal private abstract sealed defines the class-modifier non-terminal as having seven productions.
Paragraph 31 Alternatives are normally listed on separate lines, as shown above, though in cases where there are many alternatives, the phrase "one of" precedes a list of the options. 2 This is simply shorthand for listing each of the alternatives on a separate line. 3 For example: decimal-digit : one of 0 1 2 3 4 5 6 7 8 9 is equivalent to: decimal-digit : 0 1 2 3 4 5 6 7 8 9
Paragraph 41 A subscripted suffix "opt", as in identifieropt, is used as shorthand to indicate an optional symbol. 2 The example: for-statement : for ( for-initializeropt ; for-conditionopt ; for-iteratoropt ) embedded-statement is equivalent to: for-statement : for ( ; ; ) embedded-statement for ( for-initializer ; ; ) embedded-statement for ( ; for-condition ; ) embedded-statement for ( ; ; for-iterator ) embedded-statement for ( for-initializer ; for-condition ; ) embedded-statement for ( ; for-condition ; for-iterator ) embedded-statement for ( for-initializer ; ; for-iterator ) embedded-statement for ( for-initializer ; for-condition ; for-iterator ) embedded-statement
Paragraph 51 All terminal characters are to be understood as the appropriate Unicode character from the ASCII range, as opposed to any similar-looking characters from other Unicode ranges.
|Jagger Software Ltd|
|Company # 4070126|
|VAT # 762 5213 42|