X hits on this document

1057 views

0 shares

0 downloads

0 comments

65 / 396

C# LANGUAGE SPECIFICATION

corresponds exactly to the lexical processing of a conditional compilation directive of the form:

#if true ... #endif

2.5.7 Line directives

Line directives may be used to alter the line numbers and source file names that are reported by the compiler in output such as warnings and errors.

Line directives are most commonly used in meta-programming tools that generate C# source code from some other text input.

pp-line: whitespaceopt   #   whitespaceopt   line   whitespace   line-indicator   pp-new-line

line-indicator: decimal-digits   whitespace   file-name decimal-digits default hidden

file-name: "   file-name-characters   "

file-name-characters: file-name-character file-name-characters   file-name-character

file-name-character: Any input-character except "

When no #line directives are present, the compiler reports true line numbers and source file names in its output. The #line directive is most commonly used in meta-programming tools that generate C# source code from some other text input. When processing a #line directive that includes a line-indicator that is not default, the compiler treats the line after the directive as having the given line number (and file name, if specified).

A #line default directive reverses the effect of all preceding #line directives. The compiler reports true line information for subsequent lines, precisely as if no #line directives had been processed.

A #line hidden directive has no effect on the file and line numbers reported in error messages, but does affect source level debugging. When debugging, all lines between a #line hidden directive and the subsequent #line directive (that is not #line hidden) have no line number information. When stepping through code in the debugger, these lines will be skipped entirely.

Note that a file-name differs from a regular string literal in that escape characters are not processed; the ‘\character simply designates an ordinary backslash character within a file-name.

52Copyright Microsoft Corporation 1999-2003. All Rights Reserved.

Document info
Document views1057
Page views1057
Page last viewedSat Dec 10 16:53:56 UTC 2016
Pages396
Paragraphs9401
Words133190

Comments