d
This commit is contained in:
@@ -8,13 +8,11 @@
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */; };
|
||||
248FA3B7A82DA60E6892F821 /* memorySpace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 490862345F009401FB4E1199 /* memorySpace.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 */; };
|
||||
7B6D5211C387213AE05C080F /* memoryGap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9994AEAC20F4AB2DA70C9840 /* memoryGap.swift */; };
|
||||
89086E3972F560A9A1A76CE4 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C71EDBDFFDBC96F6E8E7762 /* Model.swift */; };
|
||||
B19B3998FA2BA651ACB1E53C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C1742EFC5A1E818780679340 /* Assets.xcassets */; };
|
||||
BE2994BF2FFF272E62883953 /* swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = D414A6174931F533B0B286E8 /* swift.swift */; };
|
||||
CAFD870CA84084E45011CC23 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */; };
|
||||
D505E64F4CD6EAEB530BF851 /* Main.Section16Buttons.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */; };
|
||||
DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF762100A8EDF105B6E136D /* Main.swift */; };
|
||||
@@ -23,30 +21,26 @@
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0DF762100A8EDF105B6E136D /* Main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.swift; sourceTree = "<group>"; };
|
||||
17E6ABD013AB08F7DF11C069 /* memorySide.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = memorySide.swift; sourceTree = "<group>"; };
|
||||
490862345F009401FB4E1199 /* memorySpace.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = memorySpace.swift; sourceTree = "<group>"; };
|
||||
4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
6D5F2B2E3A26F03F6825608E /* Main.SectionSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.SectionSelection.swift; sourceTree = "<group>"; };
|
||||
9994AEAC20F4AB2DA70C9840 /* memoryGap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = memoryGap.swift; sourceTree = "<group>"; };
|
||||
9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.SectionGrid.swift; sourceTree = "<group>"; };
|
||||
9C71EDBDFFDBC96F6E8E7762 /* Model.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = "<group>"; };
|
||||
9D774FEE86833E8A0A74387C /* App.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
A355A898E25602F45B88CCBA /* Main.Platform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Platform.swift; sourceTree = "<group>"; };
|
||||
A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Section16Buttons.swift; sourceTree = "<group>"; };
|
||||
C1742EFC5A1E818780679340 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
D414A6174931F533B0B286E8 /* swift.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = swift.swift; sourceTree = "<group>"; };
|
||||
F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
44681273C081F5991624384F /* Swift */ = {
|
||||
4F93BC5459F4AF4391816D4A /* shared */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9994AEAC20F4AB2DA70C9840 /* memoryGap.swift */,
|
||||
17E6ABD013AB08F7DF11C069 /* memorySide.swift */,
|
||||
490862345F009401FB4E1199 /* memorySpace.swift */,
|
||||
D414A6174931F533B0B286E8 /* swift.swift */,
|
||||
);
|
||||
name = Swift;
|
||||
path = ../../shared/Swift;
|
||||
name = shared;
|
||||
path = ../../shared;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
667BC26EA8068A9FA707FC02 /* src */ = {
|
||||
@@ -77,8 +71,8 @@
|
||||
CD7F0F0C9CA1BA5EAFD5CA09 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4F93BC5459F4AF4391816D4A /* shared */,
|
||||
667BC26EA8068A9FA707FC02 /* src */,
|
||||
44681273C081F5991624384F /* Swift */,
|
||||
AE7B74413EC292E802CC5C70 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
@@ -152,9 +146,7 @@
|
||||
3D03666F3BC2B1F2CBB49530 /* Main.SectionSelection.swift in Sources */,
|
||||
DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */,
|
||||
89086E3972F560A9A1A76CE4 /* Model.swift in Sources */,
|
||||
7B6D5211C387213AE05C080F /* memoryGap.swift in Sources */,
|
||||
3EA747EF132EF00B60CE3BA8 /* memorySide.swift in Sources */,
|
||||
248FA3B7A82DA60E6892F821 /* memorySpace.swift in Sources */,
|
||||
BE2994BF2FFF272E62883953 /* swift.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
||||
Binary file not shown.
@@ -8,7 +8,7 @@ targets:
|
||||
deploymentTarget: "16.0"
|
||||
sources:
|
||||
- path: "../src"
|
||||
- path: "../../shared/Swift"
|
||||
- path: "../../shared/swift.swift"
|
||||
settings:
|
||||
base:
|
||||
INFOPLIST_FILE: Info.plist
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
SCRIPT_DIR=$(cd "$(dirname "$0")" ; pwd -P)
|
||||
|
||||
tsc $SCRIPT_DIR/typeScript.ts --outfile $SCRIPT_DIR/javaScript.js
|
||||
#$SCRIPT_DIR/../toSwift $SCRIPT_DIR/typeScript.ts $SCRIPT_DIR/swift.swift
|
||||
$SCRIPT_DIR/../toSwift $SCRIPT_DIR/typeScript.ts $SCRIPT_DIR/swift.swift
|
||||
|
||||
|
||||
32
shared/swift.swift
Normal file
32
shared/swift.swift
Normal file
@@ -0,0 +1,32 @@
|
||||
protocol Context {
|
||||
var itemsCount: Float { get }
|
||||
}
|
||||
|
||||
protocol Position {
|
||||
var x: Float { get }
|
||||
var y: Float { get }
|
||||
}
|
||||
|
||||
func memoryGap() -> Float {
|
||||
return memorySide() + memorySpace()
|
||||
}
|
||||
|
||||
func memorySide() -> Float {
|
||||
return 50
|
||||
}
|
||||
|
||||
func memorySpace() -> Float {
|
||||
return 20
|
||||
}
|
||||
|
||||
func memoryItemPositions(c: Context) -> [Position] {
|
||||
var pos: [Position] = []
|
||||
for (var i = 0; i < c.itemsCount; i++) {
|
||||
let row = Math.floor(i / 4)
|
||||
let x = memoryGap() + (i - row * 4) * memoryGap()
|
||||
let y = memoryGap() + row * memoryGap()
|
||||
// @ts-ignore
|
||||
pos.push(memoryCreatePosition(x, y))
|
||||
}
|
||||
return pos
|
||||
}
|
||||
23
toSwift
23
toSwift
@@ -39,6 +39,7 @@ function convert(line) {
|
||||
result = result.replace(src, dst);
|
||||
}
|
||||
result = protocolReplace(result);
|
||||
result = typeArrayReplace(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -51,7 +52,6 @@ function protocolReplace(line) {
|
||||
if (line == "}") {
|
||||
isProtocol = false;
|
||||
}
|
||||
console.log("ИГР protocolR-1 isP/line:", isProtocol, line);
|
||||
if (!isProtocol) {
|
||||
return line;
|
||||
}
|
||||
@@ -60,7 +60,6 @@ function protocolReplace(line) {
|
||||
if (isProtocol) {
|
||||
result = protocolReplaceVariable(result);
|
||||
}
|
||||
console.log("ИГР protocolR-2 isP/line:", isProtocol, line);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -71,8 +70,26 @@ function protocolReplaceVariable(line) {
|
||||
let name = parts[0].trim();
|
||||
let spaceLength = parts[0].length - name.length;
|
||||
let spaces = " ".repeat(spaceLength);
|
||||
//console.log("Variable. name/spaceL/parts:", name, spaceLength, parts);
|
||||
return `${spaces}var ${name}: ${type} { get }`;
|
||||
}
|
||||
return line;
|
||||
}
|
||||
|
||||
// func memoryItemPositions(c: Context) -> Position[] {
|
||||
// var pos: Position[] = []
|
||||
|
||||
function typeArrayReplace(line) {
|
||||
let parts = line.split(" ");
|
||||
for (var i in parts) {
|
||||
let part = parts[i];
|
||||
if (
|
||||
part != "[]" &&
|
||||
part.endsWith("[]")
|
||||
) {
|
||||
let type = part.substring(0, part.length - 2)
|
||||
let swiftType = `[${type}]`;
|
||||
return line.replace(part, swiftType);
|
||||
}
|
||||
}
|
||||
return line;
|
||||
}
|
||||
|
||||
27
будущее
27
будущее
@@ -1,25 +1,10 @@
|
||||
08.06: 19:30-
|
||||
|
||||
* перейти на один файл ts
|
||||
* перейти на один файл js
|
||||
* оставить в файле ts лишь interfaces
|
||||
* ввести внешние функции создания экземпляров интерфейсов в js
|
||||
* web/platform.js
|
||||
|
||||
НАДО:
|
||||
* конвертировать for loop
|
||||
* конвертить Math.floor
|
||||
* перейти на один файл swift
|
||||
* генерить по одному файлу в shared
|
||||
* в проектах ссылаться по одному файлу
|
||||
* исправить ошибку tsc: cannot find name
|
||||
* в shared помещать лишь функции и интерфейсы без объявления типов
|
||||
* ибо дофига работы
|
||||
* генерить class в Swift?
|
||||
* нет struct, к сожалению
|
||||
* может, стоит остановиться и на протоколах/интерфейсах?
|
||||
* генерить memoryItemPositions.swift
|
||||
* генерить библиотеку на основе иных replacements
|
||||
* ввести общую библиотеку
|
||||
* генерить itemPositions
|
||||
* оптимизация
|
||||
* разделить функции на разные файлы
|
||||
* будет ошибка tsc: cannot find name
|
||||
* ввести общую библиотеку?
|
||||
|
||||
* в конце: разделить функции на разные файлы
|
||||
* будет ошибка tsc: cannot find name, так что придётся покумекать
|
||||
|
||||
18
прошлое
18
прошлое
@@ -1,3 +1,21 @@
|
||||
08.06: 30
|
||||
|
||||
* перейти на один файл ts
|
||||
* перейти на один файл js
|
||||
* оставить в файле ts лишь interfaces
|
||||
* ввести внешние функции создания экземпляров интерфейсов в js
|
||||
* web/platform.js
|
||||
* конвертировать Position[]
|
||||
* генерить по одному файлу в shared
|
||||
* в проектах ссылаться по одному файлу
|
||||
* исправить ошибку tsc: cannot find name
|
||||
* в shared помещать лишь функции и интерфейсы без объявления типов
|
||||
* ибо дофига работы
|
||||
* генерить class в Swift?
|
||||
* нет struct, к сожалению
|
||||
* может, стоит остановиться и на протоколах/интерфейсах?
|
||||
* да
|
||||
|
||||
06.06: 25
|
||||
|
||||
* починить ^M
|
||||
|
||||
Reference in New Issue
Block a user