conf.py, [...]: Improve support for Ada highlighting.
authorArnaud Charlet <charlet@adacore.com>
Fri, 8 Sep 2017 12:35:58 +0000 (12:35 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 8 Sep 2017 12:35:58 +0000 (14:35 +0200)
        * doc/share/conf.py, doc/share/latex_elements.py,
        doc/share/ada_pygments.py, doc/Makefile: Improve support for Ada
        highlighting.

From-SVN: r251890

gcc/ada/ChangeLog
gcc/ada/doc/Makefile
gcc/ada/doc/share/ada_pygments.py
gcc/ada/doc/share/conf.py
gcc/ada/doc/share/latex_elements.py

index 53a0aaf2255c7615d13c0e345f9475353a5c5e9b..0ee9488bd3aeb2127624b1e0b9821f318d57b55b 100644 (file)
@@ -1,3 +1,9 @@
+2017-09-08  Arnaud Charlet <charlet@adacore.com>
+
+       * doc/share/conf.py, doc/share/latex_elements.py,
+       doc/share/ada_pygments.py, doc/Makefile: Improve support for Ada
+       highlighting.
+
 2017-09-08  Arnaud Charlet <charlet@adacore.com>
 
        * gnat_rm.texi, gnat_ugn.texi,
index df10fca169aba781ea295054e62e0eb23de1346b..812cc8f288ca6fa71ad9886fedce54f06e9a4abc 100644 (file)
@@ -47,7 +47,6 @@ clean:
 
 %.pdf:
        $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/$*/pdf
-       cp $(SOURCEDIR)/share/sphinx.sty $(BUILDDIR)/$*/pdf
        $(MAKE) -C $(BUILDDIR)/$*/pdf all-pdf LATEXOPTS="-interaction=nonstopmode"
 
 %.txt:
index c23005dd2901962551595484543c255ee6df0704..66f6a2045f077d5fdbf566dc54e11bff59c69719 100644 (file)
@@ -1,4 +1,4 @@
-"""Alternate Ada and Project Files parsers for Sphinx/Rest"""
+"""Alternate Ada and Project Files parsers for Sphinx/Rest."""
 
 import re
 from pygments.lexer import RegexLexer, bygroups
@@ -7,12 +7,12 @@ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
 
 
 def get_lexer_tokens(tag_highlighting=False, project_support=False):
-    """Return the tokens needed for RegexLexer
+    """Return the tokens needed for RegexLexer.
 
     :param tag_highlighting: if True we support tag highlighting. See
         AdaLexerWithTags documentation
     :type tag_highlighting: bool
-    :param project_support: if True support additional keywors associated
+    :param project_support: if True support additional keywords associated
         with project files.
     :type project_support:  bool
 
@@ -21,7 +21,8 @@ def get_lexer_tokens(tag_highlighting=False, project_support=False):
     """
     if project_support:
         project_pattern = r'project\s+|'
-        project_pattern2 = r'project|'
+        project_pattern2 = \
+            r'aggregate|extends|external|external_as_list|library|project|'
     else:
         project_pattern = r''
         project_pattern2 = r''
@@ -46,7 +47,7 @@ def get_lexer_tokens(tag_highlighting=False, project_support=False):
             # Match use and with statements
             # The first part of the pattern is be sure we don't match
             # for/use constructs.
-            (r'(\n\s*|;\s*)(with|use)(\s+[\w\.]+)',
+            (r'(\n\s*|;\s*)(with|use)(\s+[\w\.]+\s*;)',
              bygroups(Punctuation, Keyword.Reserved, Name.Namespace)),
             # Match procedure, package and function declarations
             (r'end\s+(if|loop|record)', Keyword),
@@ -62,7 +63,7 @@ def get_lexer_tokens(tag_highlighting=False, project_support=False):
              r'Version|Value_Size|Value|Valid_Scalars|VADS_Size|Valid|Val|'
              r'Update|Unrestricted_Access|Universal_Literal_String|'
              r'Unconstrained_Array|Unchecked_Access|Unbiased_Rounding|'
-             r'Truncation|Type_Class|To_Address|Tick|Terminated|'
+             r'UET_Address|Truncation|Type_Class|To_Address|Tick|Terminated|'
              r'Target_Name|Tag|System_Allocator_Alignment|Succ|Stub_Type|'
              r'Stream_Size|Storage_Unit|Storage_Size|Storage_Pool|Small|Size|'
              r'Simple_Storage_Pool|Signed_Zeros|Scaling|Scale|'
@@ -112,7 +113,8 @@ def get_lexer_tokens(tag_highlighting=False, project_support=False):
             # Builtin values
             (r'False|True', Keyword.Constant),
             # Identifiers
-            (r'[\w\.]+', Name)], }
+            (r'[\w\.]+', Name),
+            (r'.', Text)]}
 
     # Insert tag highlighting before identifiers
     if tag_highlighting:
@@ -122,7 +124,7 @@ def get_lexer_tokens(tag_highlighting=False, project_support=False):
 
 
 class AdaLexer(RegexLexer):
-    """Alternate Pygments lexer for Ada source code and project files
+    """Alternate Pygments lexer for Ada source code and project files.
 
     The default pygments lexer always fails causing disabling of syntax
     highlighting in Sphinx. This lexer is simpler but safer.
@@ -149,7 +151,7 @@ class AdaLexer(RegexLexer):
 
 
 class TaggedAdaLexer(AdaLexer):
-    """Alternate Pygments lexer for Ada source code with tags
+    """Alternate Pygments lexer for Ada source code with tags.
 
     A tag is a string of the form::
 
@@ -165,7 +167,7 @@ class TaggedAdaLexer(AdaLexer):
 
 
 class GNATProjectLexer(RegexLexer):
-    """Pygment lexer for project files
+    """Pygment lexer for project files.
 
     This is the same as the AdaLexer but with support of ``project``
     keyword.
index c6c45b08aa878e06bb983351e4182c862ee3f999..173648b26ea1c147a171df740638f1ca1c49ced9 100644 (file)
@@ -112,14 +112,25 @@ if os.path.isfile('favicon.ico'):
 
 html_static_path = ['_static']
 
+latex_additional_files = ['gnat.sty']
+
+copyright_macros = {
+    'date': time.strftime("%b %d, %Y"),
+    'edition': 'GNAT %s Edition' % 'Pro' if get_gnat_build_type() == 'PRO'
+               else 'GPL',
+    'name': u'GNU Ada',
+    'tool': u'GNAT',
+    'version': version}
+
 latex_elements = {
-    'preamble': latex_elements.TOC_DEPTH +
+    'preamble': '\\usepackage{gnat}\n' +
+    latex_elements.TOC_DEPTH +
     latex_elements.PAGE_BLANK +
     latex_elements.TOC_CMD +
     latex_elements.LATEX_HYPHEN +
     latex_elements.doc_settings(DOCS[doc_name]['title'],
                                 get_gnat_version()),
-    'tableofcontents': latex_elements.TOC}
+    'tableofcontents': latex_elements.TOC % copyright_macros}
 
 latex_documents = [
     (master_doc, '%s.tex' % doc_name, project, u'AdaCore', 'manual')]
index cf8fbe1a949c4b59cc10bb092b71fcd67461b67e..f23b2aff6be1ec87261880e5253b04247c68b4f2 100644 (file)
@@ -46,11 +46,16 @@ TOC_CMD = r'''
 \makeatother
 '''
 
+with open('copyright.tex', 'r') as fd:
+    copyright = fd.read()
+
 TOC = r'''
 \cleardoublepage
+%s
+\cleardoublepage
 \tableofcontents
 \cleardoublepage\pagestyle{plain}
-'''
+''' % copyright
 
 LATEX_HYPHEN = r'''
 \hyphenpenalty=5000