def parseLine(self, line): stripped = line.strip() if not stripped: return "" if stripped[0] == "@": tempSpec, name, tempArgs = parseClassName( stripped, self.className, self.defaultClassName) self.templateSpec = tempSpec and tempSpec + "\n" self.className = name self.completeClassName = name and name + tempArgs + "::" else: props = parseMember(line, self.style) if props: props["class"] = self.completeClassName props["template"] = self.templateSpec return CppGetSetTemplate % props return ""
def parseText(self, lines): decls = extractCode(lines) code = [] for lines in decls: if len(lines) == 1 and lines[0][0] == "@": tempSpec, name, tempArgs = parseClassName( lines[0], self.className, self.defaultClassName) self.templateSpec = tempSpec and tempSpec self.className = name self.completeClassName = name and name + tempArgs else: try: d = parseFunction(lines, self.completeClassName) if not d.get("template") and self.templateSpec: d["template"] = [self.templateSpec] code.append(getImplementation(d)) except Exception as ex: code.append("// " + str(ex) + "\n" + "\n".join(lines)) return "\n".join(code)