Михаил Капелько 3 weeks ago
parent
commit
1c6e0d5f00
4 changed files with 56 additions and 41 deletions
  1. +35
    -0
      functions.py
  2. +1
    -37
      main.py
  3. +3
    -0
      tr-Python-C++/CPP.py
  4. +17
    -4
      tr-Python-C++/process.py

+ 35
- 0
functions.py View File

@@ -0,0 +1,35 @@



# L4: Function.

def memory_generateConstPlayfield(
n: int
) -> dict[int, int]:
idGroups: dict[int, int] = { }
id = 0
for gid in range(0, n):
idGroups[id] = gid
id += 1
idGroups[id] = gid
id += 1
#}
return idGroups
#}

# L20: Test.

def test_memory_generateConstPlayfield(
) -> str:
idGroups = memory_generateConstPlayfield(2)
if (
len(idGroups) == 4 and
idGroups[0] == 0 and
idGroups[1] == 0 and
idGroups[2] == 1 and
idGroups[3] == 1
):
return "OK: memory_generateConstPlayfield"
#}
return "ERR: memory_generateConstPlayfield"
#}

+ 1
- 37
main.py View File

@@ -1,39 +1,3 @@



# L4: Function.

def memory_generateConstPlayfield(
n: int
) -> dict[int, int]:
idGroups: dict[int, int] = { }
id = 0
for gid in range(0, n):
idGroups[id] = gid
id += 1
idGroups[id] = gid
id += 1
#}
return idGroups
#}

# L20: Test.

def test_memory_generateConstPlayfield(
) -> str:
idGroups = memory_generateConstPlayfield(2)
if (
len(idGroups) == 4 and
idGroups[0] == 0 and
idGroups[1] == 0 and
idGroups[2] == 1 and
idGroups[3] == 1
):
return "OK: memory_generateConstPlayfield"
#}
return "ERR: memory_generateConstPlayfield"
#}

# L36: Run.
from functions import *

print(test_memory_generateConstPlayfield())

+ 3
- 0
tr-Python-C++/CPP.py View File

@@ -3,6 +3,9 @@ from Function import *
def replaceAnd(s):
return s.replace("and", "&&")

def replaceComment(s):
return s.replace("#", "//")

def replaceLen(s):
posLen = s.find("len(")
posEnd = s.find(")")


+ 17
- 4
tr-Python-C++/process.py View File

@@ -9,16 +9,29 @@ def process(FILE_IN):
lines_in.append(line.rstrip())

f = Function()
out = ""

# Parse.
for ln in lines_in:
ln = ln.rstrip()
f.parseLine(ln)

# Empty line.
if ln == "":
out += "\n"
# Comment.
elif (
ln.startswith("#") and
not f.isBody
):
out += replaceComment(ln) + "\n"
# Function.
else:
f.parseLine(ln)

if f.isComplete:
print("Function ready! Here it is in C++:")
cpp = CPP(f)
print(cpp.translate())
out += cpp.translate()
# Create new function instance.
f = Function()


return out

Loading…
Cancel
Save