aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2017-09-08 12:35:58 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2017-09-08 14:35:58 +0200
commit4bd3809078fee7f16cefac724db4439c75c2b74f (patch)
treeab2f1389361fd5fee0acd3a34d90c929a97f7fe3 /gcc/ada
parent08705a15833a3df17b372fcf2a03ea9b017b2453 (diff)
downloadgcc-4bd3809078fee7f16cefac724db4439c75c2b74f.zip
gcc-4bd3809078fee7f16cefac724db4439c75c2b74f.tar.gz
gcc-4bd3809078fee7f16cefac724db4439c75c2b74f.tar.bz2
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
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/doc/Makefile1
-rw-r--r--gcc/ada/doc/share/ada_pygments.py22
-rw-r--r--gcc/ada/doc/share/conf.py15
-rw-r--r--gcc/ada/doc/share/latex_elements.py7
5 files changed, 37 insertions, 14 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 53a0aaf..0ee9488 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,11 @@
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,
doc/gnat_ugn/the_gnat_compilation_model.rst,
doc/gnat_ugn/getting_started_with_gnat.rst,
diff --git a/gcc/ada/doc/Makefile b/gcc/ada/doc/Makefile
index df10fca..812cc8f 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 c23005d..66f6a20 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 c6c45b0..173648b 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 cf8fbe1..f23b2af 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