From: Arnaud Charlet Date: Fri, 8 Sep 2017 12:35:58 +0000 (+0000) Subject: conf.py, [...]: Improve support for Ada highlighting. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4bd3809078fee7f16cefac724db4439c75c2b74f;p=gcc.git conf.py, [...]: Improve support for Ada highlighting. * doc/share/conf.py, doc/share/latex_elements.py, doc/share/ada_pygments.py, doc/Makefile: Improve support for Ada highlighting. From-SVN: r251890 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 53a0aaf2255..0ee9488bd3a 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2017-09-08 Arnaud Charlet + + * 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 * gnat_rm.texi, gnat_ugn.texi, diff --git a/gcc/ada/doc/Makefile b/gcc/ada/doc/Makefile index df10fca169a..812cc8f288c 100644 --- a/gcc/ada/doc/Makefile +++ b/gcc/ada/doc/Makefile @@ -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: diff --git a/gcc/ada/doc/share/ada_pygments.py b/gcc/ada/doc/share/ada_pygments.py index c23005dd290..66f6a2045f0 100644 --- a/gcc/ada/doc/share/ada_pygments.py +++ b/gcc/ada/doc/share/ada_pygments.py @@ -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. diff --git a/gcc/ada/doc/share/conf.py b/gcc/ada/doc/share/conf.py index c6c45b08aa8..173648b26ea 100644 --- a/gcc/ada/doc/share/conf.py +++ b/gcc/ada/doc/share/conf.py @@ -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')] diff --git a/gcc/ada/doc/share/latex_elements.py b/gcc/ada/doc/share/latex_elements.py index cf8fbe1a949..f23b2aff6be 100644 --- a/gcc/ada/doc/share/latex_elements.py +++ b/gcc/ada/doc/share/latex_elements.py @@ -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