Research portable Memory game | Исследовать портируемую игру Память
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
-
- def process(FILE_IN):
- # Read file.
- lines_in = []
- with open(FILE_IN) as file:
- for line in file:
- lines_in.append(line.rstrip())
-
- # Translate.
- lines_out = []
-
- isDeclaration = False
- isDeclarationLine = False
- isBody = False
- functionName = None
- returnType = None
- argumentNames = []
- argumentTypes = []
-
- for ln in lines_in:
- ln = ln.rstrip()
-
- # Ignore includes.
- if "#include" in ln:
- continue
-
- parts = ln.split(" ")
- count = len(parts)
- lastPart = parts[count - 1]
- if not isBody and lastPart.endswith("("):
- isDeclaration = True
- isDeclarationLine = True
- isBody = False
-
- # End of function arguments.
- if not isDeclarationLine and not isBody and ln.endswith(") {"):
- isDeclaration = False
- isBody = True
-
- # Function argument.
- if (
- isDeclaration and
- not isDeclarationLine and
- not isBody and
- not ln.endswith(") {")
- ):
- print(f"TODO argument: '{ln}'")
-
- # Function return type and function name.
- if isDeclaration and lastPart.endswith("("):
- functionName = lastPart[:-1]
- returnType = ln[:-len(lastPart) - 1] # -1 for space before function name
- print(f"Function name: '{functionName}'")
- print(f"Return type: '{returnType}'")
- isDeclarationLine = False
-
- lines_out.append(ln)
-
- return "\n".join(lines_out)
|