preprocessing-file:
group![]()
group:
group-part
group group-part
group-part:
pp-tokensnew-line
if-section
control-line
if-section:
if-group elif-groupselse-group
endif-line
if-group:
# ifconstant-expression new-line group![]()
# ifdefidentifier new-line group![]()
# ifndefidentifier new-line group![]()
elif-groups:
elif-group
elif-groups elif-group
elif-group:
# elifconstant-expression new-line group![]()
else-group:
# elsenew-line group![]()
endif-line:
# endifnew-line
control-line:
# includepp-tokens new-line
# defineidentifier replacement-list new-line
# defineidentifier lparen identifier-list![]()
)replacement-list new-line
# undefidentifier new-line
# linepp-tokens new-line
# errorpp-tokensnew-line
# pragmapp-tokensnew-line
#new-line
lparen:
the left-parenthesis character without preceding white-space
replacement-list:
pp-tokens![]()
pp-tokens:
preprocessing-token
pp-tokens preprocessing-token
new-line:
the new-line character