Skip to content

Commit 8028224

Browse files
committed
alien python converter finished
1 parent 7e1de9b commit 8028224

34 files changed

Lines changed: 6911 additions & 25 deletions

keywords.txt

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
tour
2+
may
3+
taste
4+
end
5+
ring
6+
room
7+
rely
8+
text
9+
which
10+
vital
11+
jet
12+
bar
13+
focus
14+
water
15+
fat
16+
come
17+
video
18+
apply
19+
left
20+
drama
21+
hang
22+
help
23+
delay
24+
flame
25+
spend
26+
usual
27+
card
28+
let
29+
wear
30+
lots
31+
metal
32+
oven
33+
pipe
34+
deep
35+
seize
36+
might
37+
load
38+
often
39+
rule
40+
bad
41+
and
42+
tell
43+
seven
44+
pain
45+
diet
46+
would
47+
guide
48+
swim
49+
faith
50+
those

package-lock.json

Lines changed: 84 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
"dependencies": {
1313
"react": "^19.2.4",
1414
"react-dom": "^19.2.4",
15-
"react-router": "^7.14.1"
15+
"react-router": "^7.14.1",
16+
"tree-sitter-python": "^0.25.0",
17+
"web-tree-sitter": "^0.26.8"
1618
},
1719
"devDependencies": {
1820
"@eslint/js": "^9.39.4",

public/tree-sitter-python.wasm

447 KB
Binary file not shown.

public/web-tree-sitter.wasm

192 KB
Binary file not shown.

src/dev/debugRender.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { generatePlanetLanguage } from "../language/generator/generatePlanetLanguage";
2+
import { max2Program } from "../language/examples/examplePrograms";
3+
import { renderAlien } from "../language/render/renderAlien";
4+
import { renderPython } from "../language/render/renderPython";
5+
6+
const lang = generatePlanetLanguage(1001);
7+
8+
console.log("PYTHON:");
9+
console.log(renderPython(max2Program));
10+
11+
console.log("ALIEN:");
12+
console.log(renderAlien(max2Program, lang));

src/dev/debugRoundTrip.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { parsePython } from "../language/parse/parsePython";
2+
import { renderPython } from "../language/render/renderPython";
3+
import { renderAlien } from "../language/render/renderAlien";
4+
import { generatePlanetLanguage } from "../language/generator/generatePlanetLanguage";
5+
6+
const source = `
7+
def add(a, b):
8+
if a == b:
9+
return 0
10+
return a + b
11+
`.trim();
12+
13+
const ast = parsePython(source);
14+
const lang = generatePlanetLanguage(3812);
15+
16+
console.log("AST:", ast);
17+
console.log("RENDERED PYTHON:");
18+
console.log(renderPython(ast));
19+
console.log("RENDERED ALIEN:");
20+
console.log(renderAlien(ast, lang));

src/dev/debugTreeSitterAst.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { parsePythonWithTreeSitter } from "../language/parse/parsePythonWithTreeSitter";
2+
import { renderAlien } from "../language/render/renderAlien";
3+
import { renderPython } from "../language/render/renderPython";
4+
import { generatePlanetLanguage } from "../language/generator/generatePlanetLanguage";
5+
6+
async function run() {
7+
const source = `
8+
def max2(a, b):
9+
if a > b:
10+
return a
11+
else:
12+
return b
13+
`.trim();
14+
15+
const ast = await parsePythonWithTreeSitter(source);
16+
const lang = generatePlanetLanguage(1);
17+
18+
console.log("AST:");
19+
console.log(ast);
20+
21+
console.log("PYTHON:");
22+
console.log(renderPython(ast));
23+
24+
console.log("ALIEN:");
25+
console.log(renderAlien(ast, lang));
26+
}
27+
28+
run().catch(console.error);

src/dev/quicktest.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { getPythonParser } from "../language/parse/treeSitter";
2+
3+
const parser = await getPythonParser();
4+
const tree = parser.parse(`
5+
def max2(a, b):
6+
if a > b:
7+
return a
8+
else:
9+
return b
10+
`);
11+
console.log(tree?.rootNode.toString());

0 commit comments

Comments
 (0)