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 ""
Esempio n. 2
0
 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)