users-guide: Improve documentaion of CPP extension
authorTakenobu Tani <takenobu.hs@gmail.com>
Mon, 21 Oct 2019 11:35:22 +0000 (20:35 +0900)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Tue, 5 Nov 2019 07:45:31 +0000 (02:45 -0500)
Currently, the description of CPP extension is given in the section of
command-line options.
Therefore, it is a little difficult to understand that it is a language
extension.

This commit explicitly adds a description for it.

[skip ci]

docs/users_guide/phases.rst

index f047959..d0afe80 100644 (file)
@@ -233,6 +233,19 @@ Options affecting the C pre-processor
 
     :since: 6.8.1
 
+    The :extension:`CPP` language extension enables the C pre-processor.
+    This can be turned into a command-line flag by prefixing it with
+    ``-X``; For example:
+
+    .. code-block:: sh
+
+        $ ghc -XCPP foo.hs
+
+    The :extension:`CPP` language extension can also be enabled using
+    the :ref:`LANGUAGE <language-pragma>` pragma; For example: ::
+
+        {-# LANGUAGE CPP #-}
+
 .. index::
    single: pre-processing: cpp
    single: C pre-processor options
@@ -243,8 +256,8 @@ Options affecting the C pre-processor
     :type: dynamic
     :category: cpp
 
-    The C pre-processor :command:`cpp` is run over your Haskell code only if
-    the ``-cpp`` option -cpp option is given. Unless you are building a
+    The C pre-processor :command:`cpp` is run over your Haskell code if
+    the ``-cpp`` option or ``-XCPP`` extension are given. Unless you are building a
     large system with significant doses of conditional compilation, you
     really shouldn't need it.