multilingualprogramming 0.2.0__tar.gz → 0.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {multilingualprogramming-0.2.0/multilingualprogramming.egg-info → multilingualprogramming-0.5.1}/PKG-INFO +68 -5
- multilingualprogramming-0.2.0/PKG-INFO → multilingualprogramming-0.5.1/README.md +58 -31
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/__init__.py +14 -0
- multilingualprogramming-0.5.1/multilingualprogramming/__main__.py +410 -0
- multilingualprogramming-0.5.1/multilingualprogramming/codegen/build_orchestrator.py +137 -0
- multilingualprogramming-0.5.1/multilingualprogramming/codegen/encoding_guard.py +50 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/codegen/executor.py +7 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/codegen/python_generator.py +6 -1
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/codegen/repl.py +43 -5
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/codegen/runtime_builtins.py +46 -0
- multilingualprogramming-0.5.1/multilingualprogramming/codegen/wasm_generator.py +247 -0
- multilingualprogramming-0.5.1/multilingualprogramming/codegen/wat_generator.py +1339 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/parser/ast_nodes.py +7 -2
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/parser/parser.py +95 -13
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/parser/error_messages.json +19 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/repl/commands.json +82 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/usm/keywords.json +21 -1
- multilingualprogramming-0.5.1/multilingualprogramming/runtime/backend_selector.py +345 -0
- multilingualprogramming-0.5.1/multilingualprogramming/runtime/numeric_primitives.py +127 -0
- multilingualprogramming-0.5.1/multilingualprogramming/runtime/python_fallbacks.py +476 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/version.py +1 -1
- multilingualprogramming-0.5.1/multilingualprogramming/wasm/loader.py +275 -0
- multilingualprogramming-0.5.1/multilingualprogramming/wasm/tuple_abi.py +38 -0
- multilingualprogramming-0.5.1/multilingualprogramming/wasm/tuple_memory.py +27 -0
- multilingualprogramming-0.2.0/README.md → multilingualprogramming-0.5.1/multilingualprogramming.egg-info/PKG-INFO +94 -2
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming.egg-info/SOURCES.txt +10 -0
- multilingualprogramming-0.5.1/multilingualprogramming.egg-info/requires.txt +14 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/pyproject.toml +31 -2
- multilingualprogramming-0.2.0/multilingualprogramming/__main__.py +0 -194
- multilingualprogramming-0.2.0/multilingualprogramming.egg-info/requires.txt +0 -7
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/LICENSE +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/codegen/__init__.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/core/__init__.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/core/ir.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/core/lowering.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/datetime/__init__.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/datetime/date_parser.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/datetime/mp_date.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/datetime/mp_datetime.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/datetime/mp_time.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/datetime/resource_loader.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/exceptions.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/imports.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/keyword/__init__.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/keyword/keyword_registry.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/keyword/keyword_validator.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/keyword/language_pack_validator.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/lexer/__init__.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/lexer/lexer.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/lexer/source_reader.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/lexer/token.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/lexer/token_types.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/numeral/__init__.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/numeral/abstract_numeral.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/numeral/complex_numeral.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/numeral/fraction_numeral.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/numeral/mp_numeral.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/numeral/numeral_converter.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/numeral/roman_numeral.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/numeral/unicode_numeral.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/parser/__init__.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/parser/ast_printer.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/parser/error_messages.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/parser/semantic_analyzer.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/parser/surface_normalizer.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/datetime/eras.json +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/datetime/formats.json +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/datetime/months.json +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/datetime/weekdays.json +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/usm/builtins_aliases.json +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/usm/operators.json +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/usm/schema.json +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/resources/usm/surface_patterns.json +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/unicode_string.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming.egg-info/dependency_links.txt +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming.egg-info/entry_points.txt +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming.egg-info/top_level.txt +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/setup.cfg +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/setup.py +0 -0
- {multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/tests/tests.py +0 -0
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: multilingualprogramming
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.1
|
|
4
4
|
Summary: Python application for multilingual programming
|
|
5
5
|
Author-email: John Samuel <johnsamuelwrites@example.com>
|
|
6
6
|
License: GPL-3.0-or-later
|
|
7
7
|
Project-URL: Homepage, https://github.com/johnsamuelwrites/multilingual
|
|
8
|
-
Project-URL: Documentation, https://
|
|
8
|
+
Project-URL: Documentation, https://johnsamuel.info/multilingual/
|
|
9
9
|
Project-URL: Repository, https://github.com/johnsamuelwrites/multilingual
|
|
10
10
|
Project-URL: Issues, https://github.com/johnsamuelwrites/multilingual/issues
|
|
11
11
|
Project-URL: Changelog, https://github.com/johnsamuelwrites/multilingual/blob/main/CHANGELOG.md
|
|
12
12
|
Keywords: programming-language,multilingual,compiler,transpiler,education
|
|
13
|
-
Classifier: Programming Language :: Python :: 3
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.14
|
|
17
16
|
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
18
17
|
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Topic :: Software Development :: Compilers
|
|
19
|
+
Classifier: Topic :: Software Development :: Interpreters
|
|
20
|
+
Classifier: Development Status :: 4 - Beta
|
|
19
21
|
Requires-Python: >=3.12
|
|
20
22
|
Description-Content-Type: text/markdown
|
|
21
23
|
License-File: LICENSE
|
|
@@ -25,6 +27,11 @@ Provides-Extra: dev
|
|
|
25
27
|
Requires-Dist: pytest; extra == "dev"
|
|
26
28
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
27
29
|
Requires-Dist: pylint; extra == "dev"
|
|
30
|
+
Provides-Extra: wasm
|
|
31
|
+
Requires-Dist: wasmtime>=1.0.0; extra == "wasm"
|
|
32
|
+
Provides-Extra: performance
|
|
33
|
+
Requires-Dist: wasmtime>=1.0.0; extra == "performance"
|
|
34
|
+
Requires-Dist: numpy>=1.20.0; extra == "performance"
|
|
28
35
|
Dynamic: license-file
|
|
29
36
|
|
|
30
37
|
# multilingual
|
|
@@ -89,11 +96,47 @@ Details:
|
|
|
89
96
|
Source files for this language use the `.ml` extension (for example: `hello.ml`).
|
|
90
97
|
Requires Python 3.12 or newer.
|
|
91
98
|
|
|
99
|
+
### Try The Playground (No Install Required)
|
|
100
|
+
|
|
101
|
+
You can try `multilingual` directly in your browser:
|
|
102
|
+
|
|
103
|
+
- Playground: https://johnsamuel.info/multilingual/playground.html
|
|
104
|
+
|
|
105
|
+
The playground lets you:
|
|
106
|
+
|
|
107
|
+
- Write code in supported human languages
|
|
108
|
+
- Run full execution in Pyodide
|
|
109
|
+
- Inspect generated Python
|
|
110
|
+
- Inspect generated WAT/WASM output
|
|
111
|
+
- Inspect generated Rust bridge code (Wasmtime workflow)
|
|
112
|
+
|
|
113
|
+
If you are evaluating the project, please test the playground with your language and open an issue with feedback:
|
|
114
|
+
|
|
115
|
+
- Issues: https://github.com/johnsamuelwrites/multilingual/issues
|
|
116
|
+
|
|
92
117
|
### 1. Install
|
|
93
118
|
|
|
119
|
+
PyPI package: https://pypi.org/project/multilingualprogramming/
|
|
120
|
+
|
|
121
|
+
Option 1 (recommended): install in a virtual environment.
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
python3 -m venv .venv
|
|
125
|
+
source .venv/bin/activate
|
|
126
|
+
python -m pip install --upgrade pip
|
|
127
|
+
python -m pip install multilingualprogramming
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Option 2: install with `pipx` (isolated CLI install).
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
pipx install multilingualprogramming
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
For local development from source, use:
|
|
137
|
+
|
|
94
138
|
```bash
|
|
95
139
|
pip install -r requirements.txt
|
|
96
|
-
# or
|
|
97
140
|
pip install .
|
|
98
141
|
```
|
|
99
142
|
|
|
@@ -119,7 +162,10 @@ imprimir("Hola mundo")
|
|
|
119
162
|
Start REPL:
|
|
120
163
|
|
|
121
164
|
```bash
|
|
122
|
-
#
|
|
165
|
+
# 0) Direct interactive mode (like `python`)
|
|
166
|
+
multilingual
|
|
167
|
+
|
|
168
|
+
# 1) Explicit REPL command (same behavior as above)
|
|
123
169
|
multilingual repl
|
|
124
170
|
|
|
125
171
|
# 2) French mode
|
|
@@ -127,9 +173,16 @@ multilingual repl --lang fr
|
|
|
127
173
|
|
|
128
174
|
# Optional: show generated Python while executing
|
|
129
175
|
multilingual repl --show-python
|
|
176
|
+
|
|
177
|
+
# Optional: show generated WAT (WebAssembly Text) code while executing
|
|
178
|
+
multilingual repl --show-wat
|
|
179
|
+
|
|
180
|
+
# Optional: show generated Rust/Wasmtime bridge code while executing
|
|
181
|
+
multilingual repl --show-rust
|
|
130
182
|
```
|
|
131
183
|
|
|
132
184
|
Inside the REPL, type code and press Enter to execute.
|
|
185
|
+
Both `multilingual` and `multilingual repl` start the same REPL.
|
|
133
186
|
|
|
134
187
|
Default mode example (English):
|
|
135
188
|
|
|
@@ -170,6 +223,8 @@ REPL commands:
|
|
|
170
223
|
- `:help` show commands
|
|
171
224
|
- `:language <code>` switch language
|
|
172
225
|
- `:python` toggle generated Python display
|
|
226
|
+
- `:wat` toggle generated WAT (WebAssembly Text) display
|
|
227
|
+
- `:rust` toggle generated Rust/Wasmtime bridge code display
|
|
173
228
|
- `:reset` clear session state
|
|
174
229
|
- `:kw [XX]` show language keywords
|
|
175
230
|
- `:ops [XX]` show operators and symbols
|
|
@@ -191,6 +246,12 @@ print("Hello world")
|
|
|
191
246
|
|
|
192
247
|
Run it:
|
|
193
248
|
|
|
249
|
+
```bash
|
|
250
|
+
multilingual hello.ml
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Equivalent explicit form:
|
|
254
|
+
|
|
194
255
|
```bash
|
|
195
256
|
multilingual run hello.ml
|
|
196
257
|
```
|
|
@@ -198,6 +259,7 @@ multilingual run hello.ml
|
|
|
198
259
|
Optional (force language instead of auto-detect):
|
|
199
260
|
|
|
200
261
|
```bash
|
|
262
|
+
multilingual hello.ml --lang fr
|
|
201
263
|
multilingual run hello.ml --lang fr
|
|
202
264
|
```
|
|
203
265
|
|
|
@@ -316,6 +378,7 @@ afficher("a + b =", a + b)
|
|
|
316
378
|
|
|
317
379
|
Use this README for setup and workflow; use `docs/` for design rationale and policy details.
|
|
318
380
|
|
|
381
|
+
- Browser playground (interactive): https://johnsamuel.info/multilingual/playground.html
|
|
319
382
|
- Usage guide: [USAGE.md](USAGE.md)
|
|
320
383
|
- Examples guide: [examples/README.md](examples/README.md)
|
|
321
384
|
- Detailed reference: [docs/reference.md](docs/reference.md)
|
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: multilingualprogramming
|
|
3
|
-
Version: 0.2.0
|
|
4
|
-
Summary: Python application for multilingual programming
|
|
5
|
-
Author-email: John Samuel <johnsamuelwrites@example.com>
|
|
6
|
-
License: GPL-3.0-or-later
|
|
7
|
-
Project-URL: Homepage, https://github.com/johnsamuelwrites/multilingual
|
|
8
|
-
Project-URL: Documentation, https://johnsamuelwrites.github.io/multilingual/
|
|
9
|
-
Project-URL: Repository, https://github.com/johnsamuelwrites/multilingual
|
|
10
|
-
Project-URL: Issues, https://github.com/johnsamuelwrites/multilingual/issues
|
|
11
|
-
Project-URL: Changelog, https://github.com/johnsamuelwrites/multilingual/blob/main/CHANGELOG.md
|
|
12
|
-
Keywords: programming-language,multilingual,compiler,transpiler,education
|
|
13
|
-
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
-
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
18
|
-
Classifier: Operating System :: OS Independent
|
|
19
|
-
Requires-Python: >=3.12
|
|
20
|
-
Description-Content-Type: text/markdown
|
|
21
|
-
License-File: LICENSE
|
|
22
|
-
Requires-Dist: roman>=3.3
|
|
23
|
-
Requires-Dist: python-dateutil>=2.8
|
|
24
|
-
Provides-Extra: dev
|
|
25
|
-
Requires-Dist: pytest; extra == "dev"
|
|
26
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
|
27
|
-
Requires-Dist: pylint; extra == "dev"
|
|
28
|
-
Dynamic: license-file
|
|
29
|
-
|
|
30
1
|
# multilingual
|
|
31
2
|
Not yet another programming language. A multilingual one.
|
|
32
3
|
|
|
@@ -89,11 +60,47 @@ Details:
|
|
|
89
60
|
Source files for this language use the `.ml` extension (for example: `hello.ml`).
|
|
90
61
|
Requires Python 3.12 or newer.
|
|
91
62
|
|
|
63
|
+
### Try The Playground (No Install Required)
|
|
64
|
+
|
|
65
|
+
You can try `multilingual` directly in your browser:
|
|
66
|
+
|
|
67
|
+
- Playground: https://johnsamuel.info/multilingual/playground.html
|
|
68
|
+
|
|
69
|
+
The playground lets you:
|
|
70
|
+
|
|
71
|
+
- Write code in supported human languages
|
|
72
|
+
- Run full execution in Pyodide
|
|
73
|
+
- Inspect generated Python
|
|
74
|
+
- Inspect generated WAT/WASM output
|
|
75
|
+
- Inspect generated Rust bridge code (Wasmtime workflow)
|
|
76
|
+
|
|
77
|
+
If you are evaluating the project, please test the playground with your language and open an issue with feedback:
|
|
78
|
+
|
|
79
|
+
- Issues: https://github.com/johnsamuelwrites/multilingual/issues
|
|
80
|
+
|
|
92
81
|
### 1. Install
|
|
93
82
|
|
|
83
|
+
PyPI package: https://pypi.org/project/multilingualprogramming/
|
|
84
|
+
|
|
85
|
+
Option 1 (recommended): install in a virtual environment.
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
python3 -m venv .venv
|
|
89
|
+
source .venv/bin/activate
|
|
90
|
+
python -m pip install --upgrade pip
|
|
91
|
+
python -m pip install multilingualprogramming
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Option 2: install with `pipx` (isolated CLI install).
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
pipx install multilingualprogramming
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
For local development from source, use:
|
|
101
|
+
|
|
94
102
|
```bash
|
|
95
103
|
pip install -r requirements.txt
|
|
96
|
-
# or
|
|
97
104
|
pip install .
|
|
98
105
|
```
|
|
99
106
|
|
|
@@ -119,7 +126,10 @@ imprimir("Hola mundo")
|
|
|
119
126
|
Start REPL:
|
|
120
127
|
|
|
121
128
|
```bash
|
|
122
|
-
#
|
|
129
|
+
# 0) Direct interactive mode (like `python`)
|
|
130
|
+
multilingual
|
|
131
|
+
|
|
132
|
+
# 1) Explicit REPL command (same behavior as above)
|
|
123
133
|
multilingual repl
|
|
124
134
|
|
|
125
135
|
# 2) French mode
|
|
@@ -127,9 +137,16 @@ multilingual repl --lang fr
|
|
|
127
137
|
|
|
128
138
|
# Optional: show generated Python while executing
|
|
129
139
|
multilingual repl --show-python
|
|
140
|
+
|
|
141
|
+
# Optional: show generated WAT (WebAssembly Text) code while executing
|
|
142
|
+
multilingual repl --show-wat
|
|
143
|
+
|
|
144
|
+
# Optional: show generated Rust/Wasmtime bridge code while executing
|
|
145
|
+
multilingual repl --show-rust
|
|
130
146
|
```
|
|
131
147
|
|
|
132
148
|
Inside the REPL, type code and press Enter to execute.
|
|
149
|
+
Both `multilingual` and `multilingual repl` start the same REPL.
|
|
133
150
|
|
|
134
151
|
Default mode example (English):
|
|
135
152
|
|
|
@@ -170,6 +187,8 @@ REPL commands:
|
|
|
170
187
|
- `:help` show commands
|
|
171
188
|
- `:language <code>` switch language
|
|
172
189
|
- `:python` toggle generated Python display
|
|
190
|
+
- `:wat` toggle generated WAT (WebAssembly Text) display
|
|
191
|
+
- `:rust` toggle generated Rust/Wasmtime bridge code display
|
|
173
192
|
- `:reset` clear session state
|
|
174
193
|
- `:kw [XX]` show language keywords
|
|
175
194
|
- `:ops [XX]` show operators and symbols
|
|
@@ -191,6 +210,12 @@ print("Hello world")
|
|
|
191
210
|
|
|
192
211
|
Run it:
|
|
193
212
|
|
|
213
|
+
```bash
|
|
214
|
+
multilingual hello.ml
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Equivalent explicit form:
|
|
218
|
+
|
|
194
219
|
```bash
|
|
195
220
|
multilingual run hello.ml
|
|
196
221
|
```
|
|
@@ -198,6 +223,7 @@ multilingual run hello.ml
|
|
|
198
223
|
Optional (force language instead of auto-detect):
|
|
199
224
|
|
|
200
225
|
```bash
|
|
226
|
+
multilingual hello.ml --lang fr
|
|
201
227
|
multilingual run hello.ml --lang fr
|
|
202
228
|
```
|
|
203
229
|
|
|
@@ -316,6 +342,7 @@ afficher("a + b =", a + b)
|
|
|
316
342
|
|
|
317
343
|
Use this README for setup and workflow; use `docs/` for design rationale and policy details.
|
|
318
344
|
|
|
345
|
+
- Browser playground (interactive): https://johnsamuel.info/multilingual/playground.html
|
|
319
346
|
- Usage guide: [USAGE.md](USAGE.md)
|
|
320
347
|
- Examples guide: [examples/README.md](examples/README.md)
|
|
321
348
|
- Detailed reference: [docs/reference.md](docs/reference.md)
|
{multilingualprogramming-0.2.0 → multilingualprogramming-0.5.1}/multilingualprogramming/__init__.py
RENAMED
|
@@ -30,11 +30,19 @@ from multilingualprogramming.parser.semantic_analyzer import (
|
|
|
30
30
|
)
|
|
31
31
|
from multilingualprogramming.parser.error_messages import ErrorMessageRegistry
|
|
32
32
|
from multilingualprogramming.codegen.python_generator import PythonCodeGenerator
|
|
33
|
+
from multilingualprogramming.codegen.wat_generator import WATCodeGenerator
|
|
33
34
|
from multilingualprogramming.codegen.runtime_builtins import RuntimeBuiltins
|
|
34
35
|
from multilingualprogramming.codegen.executor import ProgramExecutor, ExecutionResult
|
|
35
36
|
from multilingualprogramming.codegen.repl import REPL
|
|
36
37
|
from multilingualprogramming.core.ir import CoreIRProgram
|
|
37
38
|
from multilingualprogramming.core.lowering import lower_to_core_ir
|
|
39
|
+
from multilingualprogramming.runtime.numeric_primitives import (
|
|
40
|
+
Vec2,
|
|
41
|
+
ComplexScalar,
|
|
42
|
+
FastRNG,
|
|
43
|
+
BoundedArray,
|
|
44
|
+
MinDistanceAccumulator,
|
|
45
|
+
)
|
|
38
46
|
from multilingualprogramming.imports import (
|
|
39
47
|
enable_multilingual_imports, disable_multilingual_imports,
|
|
40
48
|
)
|
|
@@ -63,12 +71,18 @@ __all__ = [
|
|
|
63
71
|
"SemanticAnalyzer",
|
|
64
72
|
"ErrorMessageRegistry",
|
|
65
73
|
"PythonCodeGenerator",
|
|
74
|
+
"WATCodeGenerator",
|
|
66
75
|
"RuntimeBuiltins",
|
|
67
76
|
"ProgramExecutor",
|
|
68
77
|
"ExecutionResult",
|
|
69
78
|
"REPL",
|
|
70
79
|
"CoreIRProgram",
|
|
71
80
|
"lower_to_core_ir",
|
|
81
|
+
"Vec2",
|
|
82
|
+
"ComplexScalar",
|
|
83
|
+
"FastRNG",
|
|
84
|
+
"BoundedArray",
|
|
85
|
+
"MinDistanceAccumulator",
|
|
72
86
|
"enable_multilingual_imports",
|
|
73
87
|
"disable_multilingual_imports",
|
|
74
88
|
]
|