diff options
Diffstat (limited to 'third_party/CppHeaderParser/README.html')
-rw-r--r-- | third_party/CppHeaderParser/README.html | 544 |
1 files changed, 544 insertions, 0 deletions
diff --git a/third_party/CppHeaderParser/README.html b/third_party/CppHeaderParser/README.html new file mode 100644 index 00000000..eb1d6d0f --- /dev/null +++ b/third_party/CppHeaderParser/README.html @@ -0,0 +1,544 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" /> +<title></title> +<style type="text/css"> + +/* +:Author: David Goodger (goodger@python.org) +:Id: $Id: html4css1.css 6253 2010-03-02 00:24:53Z milde $ +:Copyright: This stylesheet has been placed in the public domain. + +Default cascading style sheet for the HTML output of Docutils. + +See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to +customize this style sheet. +*/ + +/* used to remove borders from tables and images */ +.borderless, table.borderless td, table.borderless th { + border: 0 } + +table.borderless td, table.borderless th { + /* Override padding for "table.docutils td" with "! important". + The right padding separates the table cells. */ + padding: 0 0.5em 0 0 ! important } + +.first { + /* Override more specific margin styles with "! important". */ + margin-top: 0 ! important } + +.last, .with-subtitle { + margin-bottom: 0 ! important } + +.hidden { + display: none } + +a.toc-backref { + text-decoration: none ; + color: black } + +blockquote.epigraph { + margin: 2em 5em ; } + +dl.docutils dd { + margin-bottom: 0.5em } + +/* Uncomment (and remove this text!) to get bold-faced definition list terms +dl.docutils dt { + font-weight: bold } +*/ + +div.abstract { + margin: 2em 5em } + +div.abstract p.topic-title { + font-weight: bold ; + text-align: center } + +div.admonition, div.attention, div.caution, div.danger, div.error, +div.hint, div.important, div.note, div.tip, div.warning { + margin: 2em ; + border: medium outset ; + padding: 1em } + +div.admonition p.admonition-title, div.hint p.admonition-title, +div.important p.admonition-title, div.note p.admonition-title, +div.tip p.admonition-title { + font-weight: bold ; + font-family: sans-serif } + +div.attention p.admonition-title, div.caution p.admonition-title, +div.danger p.admonition-title, div.error p.admonition-title, +div.warning p.admonition-title { + color: red ; + font-weight: bold ; + font-family: sans-serif } + +/* Uncomment (and remove this text!) to get reduced vertical space in + compound paragraphs. +div.compound .compound-first, div.compound .compound-middle { + margin-bottom: 0.5em } + +div.compound .compound-last, div.compound .compound-middle { + margin-top: 0.5em } +*/ + +div.dedication { + margin: 2em 5em ; + text-align: center ; + font-style: italic } + +div.dedication p.topic-title { + font-weight: bold ; + font-style: normal } + +div.figure { + margin-left: 2em ; + margin-right: 2em } + +div.footer, div.header { + clear: both; + font-size: smaller } + +div.line-block { + display: block ; + margin-top: 1em ; + margin-bottom: 1em } + +div.line-block div.line-block { + margin-top: 0 ; + margin-bottom: 0 ; + margin-left: 1.5em } + +div.sidebar { + margin: 0 0 0.5em 1em ; + border: medium outset ; + padding: 1em ; + background-color: #ffffee ; + width: 40% ; + float: right ; + clear: right } + +div.sidebar p.rubric { + font-family: sans-serif ; + font-size: medium } + +div.system-messages { + margin: 5em } + +div.system-messages h1 { + color: red } + +div.system-message { + border: medium outset ; + padding: 1em } + +div.system-message p.system-message-title { + color: red ; + font-weight: bold } + +div.topic { + margin: 2em } + +h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, +h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { + margin-top: 0.4em } + +h1.title { + text-align: center } + +h2.subtitle { + text-align: center } + +hr.docutils { + width: 75% } + +img.align-left, .figure.align-left, object.align-left { + clear: left ; + float: left ; + margin-right: 1em } + +img.align-right, .figure.align-right, object.align-right { + clear: right ; + float: right ; + margin-left: 1em } + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left } + +.align-center { + clear: both ; + text-align: center } + +.align-right { + text-align: right } + +/* reset inner alignment in figures */ +div.align-right { + text-align: left } + +/* div.align-center * { */ +/* text-align: left } */ + +ol.simple, ul.simple { + margin-bottom: 1em } + +ol.arabic { + list-style: decimal } + +ol.loweralpha { + list-style: lower-alpha } + +ol.upperalpha { + list-style: upper-alpha } + +ol.lowerroman { + list-style: lower-roman } + +ol.upperroman { + list-style: upper-roman } + +p.attribution { + text-align: right ; + margin-left: 50% } + +p.caption { + font-style: italic } + +p.credits { + font-style: italic ; + font-size: smaller } + +p.label { + white-space: nowrap } + +p.rubric { + font-weight: bold ; + font-size: larger ; + color: maroon ; + text-align: center } + +p.sidebar-title { + font-family: sans-serif ; + font-weight: bold ; + font-size: larger } + +p.sidebar-subtitle { + font-family: sans-serif ; + font-weight: bold } + +p.topic-title { + font-weight: bold } + +pre.address { + margin-bottom: 0 ; + margin-top: 0 ; + font: inherit } + +pre.literal-block, pre.doctest-block { + margin-left: 2em ; + margin-right: 2em } + +span.classifier { + font-family: sans-serif ; + font-style: oblique } + +span.classifier-delimiter { + font-family: sans-serif ; + font-weight: bold } + +span.interpreted { + font-family: sans-serif } + +span.option { + white-space: nowrap } + +span.pre { + white-space: pre } + +span.problematic { + color: red } + +span.section-subtitle { + /* font-size relative to parent (h1..h6 element) */ + font-size: 80% } + +table.citation { + border-left: solid 1px gray; + margin-left: 1px } + +table.docinfo { + margin: 2em 4em } + +table.docutils { + margin-top: 0.5em ; + margin-bottom: 0.5em } + +table.footnote { + border-left: solid 1px black; + margin-left: 1px } + +table.docutils td, table.docutils th, +table.docinfo td, table.docinfo th { + padding-left: 0.5em ; + padding-right: 0.5em ; + vertical-align: top } + +table.docutils th.field-name, table.docinfo th.docinfo-name { + font-weight: bold ; + text-align: left ; + white-space: nowrap ; + padding-left: 0 } + +h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, +h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { + font-size: 100% } + +ul.auto-toc { + list-style-type: none } + +/*customization*/ +pre.literal-block{ +color: #6A6A6A; +} + +</style> +</head> +<body> +<div class="document"> + + +<div class="section" id="python-package-cppheaderparser"> +<h1>Python package "CppHeaderParser"</h1> +<p><strong>Purpose:</strong> Parse C++ header files and generate a data structure representing the class</p> +<p><strong>Author:</strong> Jashua Cloutier (<a class="reference external" href="mailto:jashuac@bellsouth.net">jashuac@bellsouth.net</a>)</p> +<p><strong>Licence:</strong> BSD</p> +<p><strong>External modules required:</strong> PLY</p> +<p><strong>Quick start</strong>:</p> +<pre class="literal-block"> +#include <vector> +#include <string> +using namespace std; +class SampleClass +{ +public: + SampleClass(); + /*! + * Method 1 + */ + string meth1(); + + /// + /// Method 2 description + /// + /// @param v1 Variable 1 + /// + int meth2(int v1); + + /** + * Method 3 description + * + * \param v1 Variable 1 + * \param v2 Variable 2 + */ + void meth3(const string & v1, vector<string> & v2); + + /********************************** + * Method 4 description + * + * @return Return value + *********************************/ + unsigned int meth4(); +private: + void * meth5(){return NULL}; + + /// prop1 description + string prop1; + //! prop5 description + int prop5; +}; +namespace Alpha +{ + class AlphaClass + { + public: + AlphaClass(); + + void alphaMethod(); + + string alphaString; + }; + + namespace Omega + { + class OmegaClass + { + public: + OmegaClass(); + + string omegaString; + }; + }; +} +</pre> +<p><strong>Python code</strong>:</p> +<pre class="literal-block"> +#!/usr/bin/python +import sys +sys.path = ["../"] + sys.path +import CppHeaderParser +try: + cppHeader = CppHeaderParser.CppHeader("SampleClass.h") +except CppHeaderParser.CppParseError, e: + print e + sys.exit(1) + +print "CppHeaderParser view of %s"%cppHeader + +sampleClass = cppHeader.classes["SampleClass"] +print "Number of public methods %d"%(len(sampleClass["methods"]["public"])) +print "Number of private properties %d"%(len(sampleClass["properties"]["private"])) +meth3 = [m for m in sampleClass["methods"]["public"] if m["name"] == "meth3"][0] #get meth3 +meth3ParamTypes = [t["type"] for t in meth3["parameters"]] #get meth3s parameters +print "Parameter Types for public method meth3 %s"%(meth3ParamTypes) + +print "\nReturn type for meth1:" +print cppHeader.classes["SampleClass"]["methods"]["public"][1]["rtnType"] + +print "\nDoxygen for meth2:" +print cppHeader.classes["SampleClass"]["methods"]["public"][2]["doxygen"] + +print "\nParameters for meth3:" +print cppHeader.classes["SampleClass"]["methods"]["public"][3]["parameters"] + +print "\nDoxygen for meth4:" +print cppHeader.classes["SampleClass"]["methods"]["public"][4]["doxygen"] + +print "\nReturn type for meth5:" +print cppHeader.classes["SampleClass"]["methods"]["private"][0]["rtnType"] + +print "\nDoxygen type for prop1:" +print cppHeader.classes["SampleClass"]["properties"]["private"][0]["doxygen"] + +print "\nType for prop5:" +print cppHeader.classes["SampleClass"]["properties"]["private"][1]["type"] + +print "\nNamespace for AlphaClass is:" +print cppHeader.classes["AlphaClass"]["namespace"] + +print "\nReturn type for alphaMethod is:" +print cppHeader.classes["AlphaClass"]["methods"]["public"][0]["rtnType"] + +print "\nNamespace for OmegaClass is:" +print cppHeader.classes["OmegaClass"]["namespace"] + +print "\nType for omegaString is:" +print cppHeader.classes["AlphaClass"]["properties"]["public"][0]["type"] +</pre> +<p><strong>Output</strong>:</p> +<pre class="literal-block"> +CppHeaderParser view of class SampleClass +Inherits: +{ +public + // Method + {'name': 'SampleClass', 'parameters': [], 'rtnType': 'void'} + {'doxygen': '/*!\n* Method 1\n*/', 'name': 'meth1', 'parameters': [], 'rtnType': 'string'} + {'doxygen': '///\n/// Method 2 description\n///\n/// @param v1 Variable 1\n///', 'name': 'meth2', 'parameters': [{'type': 'int', 'name': 'v1', 'desc': 'Variable 1'}], 'rtnType': 'int'} + {'doxygen': '/**\n* Method 3 description\n*\n* \\param v1 Variable 1\n* \\param v2 Variable 2\n*/', 'name': 'meth3', 'parameters': [{'type': 'const string &', 'name': 'v1', 'desc': 'Variable 1'}, {'type': 'vector<string> &', 'name': 'v2', 'desc': 'Variable 2'}], 'rtnType': 'void'} + {'doxygen': '/**********************************\n* Method 4 description\n*\n* @return Return value\n*********************************/', 'name': 'meth4', 'parameters': [], 'rtnType': 'unsigned int'} +protected +private + // Properties + {'doxygen': '/// prop1 description', 'type': 'string', 'name': 'prop1'} + {'doxygen': '//! prop5 description', 'type': 'int', 'name': 'prop5'} + // Method + {'name': 'meth5', 'parameters': [], 'rtnType': 'void *'} +} +class Alpha::AlphaClass +Inherits: +{ +public + // Properties + {'type': 'string', 'name': 'alphaString'} + // Method + {'name': 'AlphaClass', 'parameters': [], 'rtnType': 'void'} + {'name': 'alphaMethod', 'parameters': [], 'rtnType': 'void'} +protected +private +} +class Alpha::Omega::OmegaClass +Inherits: +{ +public + // Properties + {'type': 'string', 'name': 'omegaString'} + // Method + {'name': 'OmegaClass', 'parameters': [], 'rtnType': 'void'} +protected +private +} + +Number of public methods 5 +Number of private properties 2 +Parameter Types for public method meth3 ['const string &', 'vector<string> &'] + +Return type for meth1: +string + +Doxygen for meth2: +/// +/// Method 2 description +/// +/// @param v1 Variable 1 +/// + +Parameters for meth3: +[{'type': 'const string &', 'name': 'v1', 'desc': 'Variable 1'}, {'type': 'vector<string> &', 'name': 'v2', 'desc': 'Variable 2'}] + +Doxygen for meth4: +/********************************** +* Method 4 description +* +* @return Return value +*********************************/ + +Return type for meth5: +void * + +Doxygen type for prop1: +/// prop1 description + +Type for prop5: +int + +Namespace for AlphaClass is: +Alpha + +Return type for alphaMethod is: +void + +Namespace for OmegaClass is: +Alpha::Omega + +Type for omegaString is: +string +</pre> +</div> +<div class="section" id="contributors"> +<h1>Contributors</h1> +<p>Chris Love</p> +</div> +</div> +</body> +</html> |