from Type import * class Function: def __init__(self): self.isBody = False self.isComplete = False self.isSignature = False self.name = None self.parameters = [] self.returnType = None self.statements = [] def parseLine(self, ln): parts = ln.split(" ") count = len(parts) lastPart = parts[count - 1] # Beginning of signature. if ( self.returnType is None and self.name is None and lastPart.endswith("(") ): self.isSignature = True # End of parameters. if ( self.isSignature and ln.endswith(") {") ): self.isSignature = False isBody = True # # Parameter. # if ( # isSignature and # not ln.endswith(") {") # ): # print(f"TODO argument: '{ln}'") # Return type and name. if ( self.isSignature and lastPart.endswith("(") ): self.name = lastPart[:-1] rawReturnType = ln[:-len(lastPart) - 1] # -1 for space before function name self.returnType = Type(rawReturnType) def __repr__(self): return self.__str__() def __str__(self): return f"Function(n/rt: '{self.name}'/'{self.returnType}')"