History log of /seL4-camkes-master/kernel/manual/tools/parse_doxygen_xml.py
Revision Date Author Comments
# 79da0792 01-Mar-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

Convert license tags to SPDX identifiers

This commit also converts our own copyright headers to directly use
SPDX, but leaves all other copyright header intact, only adding the
SPDX ident. As far as possible this commit also merges multiple
Data61 copyright statements/headers into one for consistency.


# 7b25653d 10-Aug-2019 Anna Lyons <anna@gh.st>

manual: parse all doxygen xml for refdict

Previously the manual would only parse the doxygen for a single xml
file, which meant references to symbols on other files would break.
Parse all doxygen files when constructing the ref dict to fix this.


# bc61a7f3 24-Jun-2019 Anna Lyons <anna@gh.st>

python2 --> python3

Update all scripts and build system to call python3, given python2's
upcoming doom. Use sys.maxsize instead of sys.maxint in one script
(maxint does not exist in python3).


# cf57914c 26-Mar-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

style: run autopep8 on python files


# bc4580c6 03-Sep-2018 Adam Felizzi <Adam.Felizzi@data61.csiro.au>

parse_doxygen: Removed tab in Markdown doc format

Removed a trailing tab character in the Markdown API doc format
string.


# f3dc34f4 13-May-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: add missing newline

fixes a missing new line in generated markdown


# d9780ec7 09-May-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: label object groups in parse_doxygen_xml.py

This change adds a label to the latex generated object groups.


# b5ee12f0 09-May-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: group generated API methods by object type

This change generates doxygen groups for each object type, which allows us to create sections in
output documents for each object. This has the advantage that we can later label those sections and
link to them from the main document. Additionally, it improves nagivation of the API docs.


# da1e73fe 09-May-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: use int level in parse_doxygen_xml.py

The level argument to parse_doxygen_xml.py was previously a latex section header (either subsection
or subsubsection). This change converts the argument to numerical which is more robust and is not
limited to 2 specific levels.

This change
- alters the level argument to be an int, where 0 = highest level header,
- removes the translation of latex header to markdown,
- adds a new 'level_to_header' function to the generator class, which translates the level number
to a header for that specific output type.


# e9b43006 17-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Added command line option for Markdown

Added a command line option for the user to specify the output
format i.e markdown or latex. The command option is used to either
create a Latex or Markdown class.


# 8afce61b 23-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Updated comments

Minor comment changes to the parse_doxygen_xml.py script.


# 8ab5b3b7 23-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Markdown Generator Implementation

Added Markdown Generator implementation. This is a child class
to the Generator class. The Markdown generator class overrides
specific parsing table elements and methods to achieve Markdown
specific output, similar to the Latex Generator.


# 336b7373 26-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Updated escape character regex

Updated the text_escape function to regex escape characters in the
generators escape set. This is for the case when a generators
special character set collides with regex's special character
set.


# 8fd604eb 23-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Added <docref> XML Tag to Doxygen

Introduced a new Doxygen XML tag '<docref>'. The intention of
this tag is to indicate a section of text in the Doxygen XML that
will contain a reference to another section in the Manual e.g.
"See \autoref<sec:x>". As other generation formats aren't aware of
other chapters/sections in the manual, the <docref> encapsulation
allows it to omit the text from the output. The Latex generator
has been modified to continue parsing the 'docref' contents.


# 33f2fe7d 30-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Added "heading" field to ref_dict

Updated the reference dictionary with a heading field. This is
the heading title given to the api doc section.


# 0e6c45f6 18-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Added "original_name" field to ref_dict

Updated the reference dictionary with a non text escaped name
field. This is in case the generator doesn't need the name field
text escaped.


# 50bffce0 17-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Parameterised escape in 'parse_prototype'

The option to escape the text when parsing the prototype can be
specified to the parse_prototype function. Markdown does not
require special C code characters to be escaped.


# a0ce040a 13-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Generalised param_string generation

Moved Latex specific param string generation out of the Generator
class. Added functions to generate the desired param string
format that the Latex class can then override.


# 886e5f59 13-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Generalised Generator Class

Generalised the Generator class, removing Latex specific format
code. Generator class returns empty or plain text when used
by itself.


# f636155a 13-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Added LatexGenerator Child class

Implemented LatexGenerator child class which extends the
Generator class. The Latex class overrides methods of the
Generator with Latex specific format. Currently a lot of
duplication between Generator and Latex class, need to
generalise the Generator class.


# b51ca046 13-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Renamed methods in Generator class

Renamed select methods to more generic names that don't suggest
they create Latex output.


# 561e0057 20-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Moved location of get_parse_table function

Code tidying. Moved get_parse_table to the top of the class
implementation to make it more clear/distinct from the other
methods.


# a8ffb6e5 13-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Moved escape regex into latex_escape func

New generator classes are expected to override the ESCAPE_PATTERNS
variable. Moving the regex into an object method allows it to use
the overriden escape patterns.


# 334514a7 13-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Parameterised the generator class

Parameterised the generator class for the
'generate_general_syscall_doc' method. This will allow the caller
to pass the desired generator to the function.


# d64ebe47 13-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Created generate_api_doc methods

Moved api doc string format into a seperate function within the
Generator class. This will allow new generators to override the
function with their own api doc format.


# 326c6fbf 13-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Moved functionality into Generator class

Moved the parsing functionality into a object. The goal is to
refactor the script into an object model such that we can extend
and override parsing functions to output the doxygen to different
formats. Additionally updated the various methods and variable
accesses to use 'self' inorder to work in the new object oriented
paradigm.


# e9611eaa 13-Apr-2018 Adam Felizzi <a.felizzi@student.unsw.edu.au>

manual: Moved parse table to function

The parse table has been moved to a function. Updated use
of the PARSE_TABLE to call the function instead.


# 76dd101f 17-Sep-2017 Kent McLeod <Kent.Mcleod@data61.csiro.au>

manual: fix python script to be python3 compatible


# 192a4162 27-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: allow non sec autorefs

Previously anything in an autoref block was assumed to reference
a section, which isn't true. Change 'sec' to 'label' and move the
'sec' prefix into the label itself.


# adb79160 19-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: fix double escaping bug


# cd9e1c9a 18-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: support for itemized lists


# 93d2ed6a 18-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: fix script licenses


# 4d7c272b 18-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: appease pylint


# b1ef79e3 17-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: refactor + cleanup parse_doxygen_xml.py

- use 'recursive=False' rather than 'content' to only search children
- use a parse table instead of if a long if/else
- fix nested lists
- use get_text from beautiful_soup rather than home brewed
- don't call latex_escape explicitly


# 10801bd8 16-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-962: allow API level description in manual


# c6056ecb 16-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-961: allow lists in API docs

this change

- converts ordered doxygen lists to enumerate
- also wraps the benchmark config names in texttt


# 6b690246 16-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

manual: use BeautifulSoup in parse_doxygen_xml

Use BeautifulSoup instead of minidom, for more powerful features


# e5c0d63c 25-May-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

manual: Explicitly say TODO where doc is missing


# 7ee77f29 24-May-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

manual: Comments to docstrings


# 748f5718 24-May-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

manual: Include prototypes for undocumented fns


# fee7c9bd 24-May-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

manual: More robust hanlding of xml errors

When generating latex from doxygen-generated xml, if an expected element
is not found in the xml, raise a meaningful exception.


# d8e6a001 24-May-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

manual: Improve handling of return type docs

If no documentation is provided for the return value of a function, the
documentation generator will attempt to infer the documentation based on
the return type.


# e426676c 23-May-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

manual: Handle case where api has no methods


# 58cbddec 23-May-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

manual: Parameterize \apidoc cmd with section type


# e0d4bc7f 28-Nov-2016 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

manual: Fixed bug where params out of order in doc

JIRA: SELFOUR-606


# 7dd19afc 28-Nov-2016 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

manual: More tags recognised by doxy xml parser

JIRA: SELFOUR-606


# c464470d 13-Sep-2016 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Syscalls docs in manual generated by doxygen

This adds a dummy header with syscall prototypes with doxygen comments.
The build process for the manual includes parsing these comments using
doxygen. Doxygen produces an xml file which is parsed by a script to
generate latex which is included in the manual. This approach was chosen
over doxygen's native latex output to gain greater control over the
formatting of the generated documentation, and to take advantage of
existing api-formatting support in the sel4 manual.

Related issue: SELFOUR-606