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.
|
- #!/usr/bin/env python3
- import os
- import sys
-
- DIR = os.path.dirname(os.path.realpath(sys.argv[0]))
-
- # Demand file as input
- if len(sys.argv) < 2:
- print("Usage: /path/to/translate CPP_FILE")
- sys.exit(1)
-
- FILE_IN = sys.argv[1]
-
- # 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.lstrip()
- # 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)
-
-
-
- # Output result.
- print(lines_out)
|