This is a fork from alx71hu/hcb, which seemed to be abandoned. I updated the XML file with the current C++20 grammar and plan to extend it to cover the upcoming C++23 and the older grammar versions as well, back to C++11. I will keep the design by the original author until it gets messy with all the different grammar versions.
The updated hyperlinked BNF can be found here.
Original README:
See the hyperlinked BNF here.
README.md
: this filebnf.xml
: C++ grammar description in valid XML (according tobnf.xsd
)bnf.xsd
: XML Schema used to validate the grammar described inbnf.xml
html.xsl
: XSLT style sheet to render the hyperlinked grammar to HTML
From the technical perspective you should grasp the following concepts:
- XML
- XML Schema
- XSL Transformation
Given the knowledge above, you should be able to:
- update the XML representation of the BNF (
bnf.xml
) - validate it using the provided XML Schema definition (
bnf.xsd
) - transform it to HTML using the provided XSL Transformation to HTML (
html.xsl
)
On a Debian system you can validate bnf.xml
using xmllint
:
xmllint --schema bnf.xsd bnf.xml --noout
If you plan to contribute to this project, it is assumed that you are able to map the command above to any other operating system and platform.
On a Debian system you can transform bnf.xml
to HTML using xsltproc
:
xsltproc -o bnf.html html.xsl bnf.xml
The command above generates the HTML representation of this BNF into file bnf.html
.
If you plan to contribute to this project, it is assumed that you are able to
map the command above to any other operating system and platform.
See bnf.xsd
and the comments therein.