#!/usr/bin/env python import pprint import sys sys.path = ["../"] + sys.path from CppHeaderParser import CppHeader, CppParseError try: cppHeader = CppHeader("SampleClass.h") except CppParseError as 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") pprint.pprint(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:") pprint.pprint(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"]) print("\nFree functions are:") for func in cppHeader.functions: print(" %s" % func["name"]) print("\n#includes are:") for incl in cppHeader.includes: print(" %s" % incl) print("\n#defines are:") for define in cppHeader.defines: print(" %s" % define)