Preprocessor Grammar
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
#define identifier token-stringopt
# define identifier[( identifieropt, ... , identifieropt )] token-stringopt
defined( identifier )
defined identifier
#include "path-spec"
#include <path-spec>
#line digit-sequence " filename "opt
# undef identifier
#error token-string
#pragma token-string
conditional :
if-part elif-partsoptelse-partoptendif-line
if-part :
if-linetext
if-line :
#if constant-expression
#ifdef identifier
#ifndef identifier
elif-parts :
elif-line text
elif-parts elif-line text
elif-line :
#elif constant-expression
else-part :
else-linetext
else-line :#else
endif-line :#endif
digit-sequence :
digit
digit-sequence digit
digit : one of
0 1 2 3 4 5 6 7 8 9
token-string :
String of tokens
token :
keyword
identifier
constant
operator
punctuator
filename :
Legal operating system filename
path-spec :
Legal file path
text :
Any sequence of text
The following nonterminals are expanded in Appendix A, Grammar Summary, of the C++ Language Reference: |