d
This commit is contained in:
@@ -5,7 +5,6 @@ var Position = /** @class */ (function () {
|
||||
}
|
||||
return Position;
|
||||
}());
|
||||
// @ts-nocheck
|
||||
function memoryItemPositions(c) {
|
||||
var pos = [];
|
||||
for (var i = 0; i < c.itemsCount; i++) {
|
||||
|
||||
@@ -1,11 +1,25 @@
|
||||
// @ts-nocheck
|
||||
func memoryItemPositions(c: Context) -> [Position] {
|
||||
var pos = [Position]
|
||||
protocol Context {
|
||||
var itemsCount: Float { get }
|
||||
|
||||
}
|
||||
|
||||
class Position {
|
||||
x: Float
|
||||
y: Float
|
||||
|
||||
constructor(x, y) {
|
||||
this.x = x
|
||||
this.y = y
|
||||
}
|
||||
}
|
||||
|
||||
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()
|
||||
pos.push(Position(x, y))
|
||||
pos.push(new Position(x, y))
|
||||
}
|
||||
return pos
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ FILES=(
|
||||
)
|
||||
|
||||
for file in ${FILES[*]}; do
|
||||
tsc $SCRIPT_DIR/$file.ts --outfile $SCRIPT_DIR/JavaScript/$file.js
|
||||
$SCRIPT_DIR/../toSwift $SCRIPT_DIR/$file.ts $SCRIPT_DIR/Swift/$file.swift
|
||||
tsc $SCRIPT_DIR/$file.ts --outfile $SCRIPT_DIR/JavaScript/$file.js
|
||||
done
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ class Position {
|
||||
}
|
||||
}
|
||||
|
||||
// @ts-nocheck
|
||||
function memoryItemPositions(c: Context): Position[] {
|
||||
var pos: Position[] = []
|
||||
for (var i = 0; i < c.itemsCount; i++) {
|
||||
|
||||
42
toSwift
42
toSwift
@@ -10,10 +10,11 @@ var fs = require("fs");
|
||||
let fileSrc = process.argv[2];
|
||||
let fileDst = process.argv[3];
|
||||
|
||||
let replacements = {
|
||||
let globalReplacements = {
|
||||
"function": "func",
|
||||
"number": "Float",
|
||||
"):": ") ->",
|
||||
"interface": "protocol",
|
||||
};
|
||||
|
||||
console.log(`Converting '${fileSrc}' to '${fileDst}'`);
|
||||
@@ -33,9 +34,44 @@ fs.writeFileSync(fileDst, contentsDst);
|
||||
|
||||
function convert(line) {
|
||||
var result = line;
|
||||
for (let src in replacements) {
|
||||
let dst = replacements[src];
|
||||
for (let src in globalReplacements) {
|
||||
let dst = globalReplacements[src];
|
||||
result = result.replace(src, dst);
|
||||
}
|
||||
result = protocolReplace(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
var isProtocol = false;
|
||||
|
||||
function protocolReplace(line) {
|
||||
if (line.includes("protocol")) {
|
||||
isProtocol = true;
|
||||
}
|
||||
if (line == "}") {
|
||||
isProtocol = false;
|
||||
}
|
||||
console.log("ИГР protocolR isP/line:", isProtocol, line);
|
||||
if (!isProtocol) {
|
||||
return line;
|
||||
}
|
||||
|
||||
var result = line;
|
||||
if (isProtocol) {
|
||||
result = protocolReplaceVariable(result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function protocolReplaceVariable(line) {
|
||||
let parts = line.split(": ");
|
||||
if (parts.length == 2) {
|
||||
let type = parts[1];
|
||||
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 }\n`;
|
||||
}
|
||||
return line;
|
||||
}
|
||||
|
||||
2
будущее
2
будущее
@@ -1,5 +1,7 @@
|
||||
|
||||
НАДО:
|
||||
* починить ^M
|
||||
* конвертировать interface в protocol
|
||||
* генерить interface в Swift
|
||||
* генерить class в Swift
|
||||
* нет struct, к сожалению
|
||||
|
||||
Reference in New Issue
Block a user