From 3f051f3b828973f19eaf843aebd2769af0e8a046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Thu, 1 Jun 2023 19:48:41 +0300 Subject: [PATCH] d --- .будущее.swp | Bin 0 -> 12288 bytes iOS/app/MMMemory.xcodeproj/project.pbxproj | 13 ++++++ .../UserInterfaceState.xcuserstate | Bin 31296 -> 29931 bytes iOS/app/project.yml | 1 + shared/Swift/memorySide.swift | 3 ++ shared/model.iOS.swift | 4 -- toSwift | 40 +++++++++++++++++- будущее | 11 ++++- 8 files changed, 65 insertions(+), 7 deletions(-) create mode 100644 .будущее.swp create mode 100644 shared/Swift/memorySide.swift diff --git a/.будущее.swp b/.будущее.swp new file mode 100644 index 0000000000000000000000000000000000000000..539086cf64947eb0f0d08fb88cc442a2c15802f1 GIT binary patch literal 12288 zcmeI2&1(}u7{(`FJXJ;Ui(dRQ#P_8v_tX^mUDTR%>wNu!h&^&oiC zzajltx;AEW7Z2~C2haWo3f_HYvLzy7>A^$cndQl3cHYn5vWJklQ<%Bw>4{uHVVqFv z=*P#^Go^w0bR(l0^Y-Tc!>ioA=KJ&6sYO5gFQ5F3e}Ab_3-aEr>-mMe=Xte;zxX6C z8>TJWrfpUwl4$>Yv>*WzI3R(ga5j5+OkEl;x>x=DxwHDz$>{?Ip*abV011!)36KB@ zkN^pgz+om3E@aeGG;kzs;&?h|{+QDxClVk55+DH*AOR8}0TLhq5+DH*Ab~?jpi)(; zIi}PX$o~Jo_xt|`zI=ziLT{is=qhvtDnX~AZ^x8Mpoh=}=w}+|vyH_;0wh2JBtQZr zKmsH{0wh2JB=Fw}T-36Klhl2QOjBahGV8h?)*4fOP!H?=gFwMx6IW!GO-o`e2~J?I z;{5dsEgKR;J$xqEi)7cdt$A#gWdOULS(hEmo6>c0aeI`?rtF(FiS%3m7acsR&xS~) zWq?8w7p(=yj*U2S8&-&XwwkU>F^pnXa4x)$5}u))I4iq|(NC@VNWb>CI1P8Eyj-u= zaxTBMagMIxrft|&KC(lpvZHU8ZKY*fGF;GCVmhe0i;ORw19r^{*6*dK%!gkvw|(*$?G>dFWEFq|RajIi%T1D;{?7Ls|6juUHanZ;Pd@E^j)qKj;%g9O{Q r+R%6PYV0><3$R?Kl#Fcw7oKeDJ{?r<)s!j}bA{5RE>7ge3t9CGf$o0_ literal 0 HcmV?d00001 diff --git a/iOS/app/MMMemory.xcodeproj/project.pbxproj b/iOS/app/MMMemory.xcodeproj/project.pbxproj index f27b9e8..46589d3 100644 --- a/iOS/app/MMMemory.xcodeproj/project.pbxproj +++ b/iOS/app/MMMemory.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */; }; 3D03666F3BC2B1F2CBB49530 /* Main.SectionSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D5F2B2E3A26F03F6825608E /* Main.SectionSelection.swift */; }; + 3EA747EF132EF00B60CE3BA8 /* memorySide.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17E6ABD013AB08F7DF11C069 /* memorySide.swift */; }; 79FB208C9DADDA6179E588C3 /* Main.SectionGrid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */; }; 89086E3972F560A9A1A76CE4 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C71EDBDFFDBC96F6E8E7762 /* Model.swift */; }; A8118182ABE97FA935A1A4F9 /* model.iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3A95F2FA5C43AF82C7A97FC /* model.iOS.swift */; }; @@ -21,6 +22,7 @@ /* Begin PBXFileReference section */ 0DF762100A8EDF105B6E136D /* Main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.swift; sourceTree = ""; }; + 17E6ABD013AB08F7DF11C069 /* memorySide.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = memorySide.swift; sourceTree = ""; }; 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; 6D5F2B2E3A26F03F6825608E /* Main.SectionSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.SectionSelection.swift; sourceTree = ""; }; 9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.SectionGrid.swift; sourceTree = ""; }; @@ -34,6 +36,15 @@ /* End PBXFileReference section */ /* Begin PBXGroup section */ + 44681273C081F5991624384F /* Swift */ = { + isa = PBXGroup; + children = ( + 17E6ABD013AB08F7DF11C069 /* memorySide.swift */, + ); + name = Swift; + path = ../../shared/Swift; + sourceTree = ""; + }; 4F93BC5459F4AF4391816D4A /* shared */ = { isa = PBXGroup; children = ( @@ -73,6 +84,7 @@ children = ( 4F93BC5459F4AF4391816D4A /* shared */, 667BC26EA8068A9FA707FC02 /* src */, + 44681273C081F5991624384F /* Swift */, AE7B74413EC292E802CC5C70 /* Products */, ); sourceTree = ""; @@ -146,6 +158,7 @@ 3D03666F3BC2B1F2CBB49530 /* Main.SectionSelection.swift in Sources */, DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */, 89086E3972F560A9A1A76CE4 /* Model.swift in Sources */, + 3EA747EF132EF00B60CE3BA8 /* memorySide.swift in Sources */, A8118182ABE97FA935A1A4F9 /* model.iOS.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/iOS/app/MMMemory.xcodeproj/project.xcworkspace/xcuserdata/mk.xcuserdatad/UserInterfaceState.xcuserstate b/iOS/app/MMMemory.xcodeproj/project.xcworkspace/xcuserdata/mk.xcuserdatad/UserInterfaceState.xcuserstate index 6b331be5a54364622956cf8440aca5c89eb03be2..8fcc54387012b4cec96751452b2e071cd152a4b2 100644 GIT binary patch delta 15047 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

PQQrC22>#YRCXR{w`mID^L5Z#p^#-A?baGqO`) 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

x_Yf)NNR5R61H3c+XuyCE3U&W`N>jVx=N{YU`a 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 LM~~%y?V|q!mHz4% diff --git a/iOS/app/project.yml b/iOS/app/project.yml index 4cd13c3..2948c0d 100644 --- a/iOS/app/project.yml +++ b/iOS/app/project.yml @@ -8,6 +8,7 @@ targets: deploymentTarget: "16.0" sources: - path: "../src" + - path: "../../shared/Swift" - path: "../../shared/model.iOS.swift" settings: base: diff --git a/shared/Swift/memorySide.swift b/shared/Swift/memorySide.swift new file mode 100644 index 0000000..6b4fa62 --- /dev/null +++ b/shared/Swift/memorySide.swift @@ -0,0 +1,3 @@ +func memorySide() -> Float { + return 50 +} diff --git a/shared/model.iOS.swift b/shared/model.iOS.swift index 044f484..86e4a9a 100644 --- a/shared/model.iOS.swift +++ b/shared/model.iOS.swift @@ -1,7 +1,3 @@ -func memorySide() -> Float { - return 50 -} - func memorySpace() -> Float { return 20 } diff --git a/toSwift b/toSwift index 077f6bf..a4b082c 100755 --- a/toSwift +++ b/toSwift @@ -1,3 +1,41 @@ #!/usr/bin/env node -console.log("Converting to Swift"); +if (process.argv.length < 4) { + console.error("Usage: toSwift SRC DST"); + process.exit(1); +} + +var fs = require("fs"); + +let fileSrc = process.argv[2]; +let fileDst = process.argv[3]; + +let replacements = { + "function": "func", + "number": "Float", + "):": ") ->", +}; + +console.log(`Converting '${fileSrc}' to '${fileDst}'`); + +var linesDst = []; +let linesSrc = fs.readFileSync(fileSrc).toString().split(/\r?\n/); +for (let i in linesSrc) { + let ln = linesSrc[i]; + linesDst.push(convert(ln)); +} + +let contentsDst = linesDst.join("\r\n"); +fs.writeFileSync(fileDst, contentsDst); + + +// Functions making decisions. + +function convert(line) { + var result = line; + for (let src in replacements) { + let dst = replacements[src]; + result = result.replace(src, dst); + } + return result; +} diff --git a/будущее b/будущее index 73197af..c118268 100644 --- a/будущее +++ b/будущее @@ -1,8 +1,15 @@ -НАДО: -* принимать на вход в toSwift аргументы +01.06: 19.20- + * сообщать Usage +* принимать на вход в toSwift аргументы +* вывести файл построчно +* ввести словарь замен + +НАДО: +* сохранять в файл * конвертить memorySide из TS в Swift * генерить memorySide.swift * генерить остальные функции-константы +* использовать сгенеренные js и swift в проектах * ввести общую библиотеку * генерить itemPositions