l0n0lc 0.8.2__py3-none-any.whl → 0.8.4__py3-none-any.whl
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.
- l0n0lc/jit.py +14 -2
- {l0n0lc-0.8.2.dist-info → l0n0lc-0.8.4.dist-info}/METADATA +22 -17
- {l0n0lc-0.8.2.dist-info → l0n0lc-0.8.4.dist-info}/RECORD +6 -6
- {l0n0lc-0.8.2.dist-info → l0n0lc-0.8.4.dist-info}/WHEEL +0 -0
- {l0n0lc-0.8.2.dist-info → l0n0lc-0.8.4.dist-info}/licenses/LICENSE +0 -0
- {l0n0lc-0.8.2.dist-info → l0n0lc-0.8.4.dist-info}/top_level.txt +0 -0
l0n0lc/jit.py
CHANGED
@@ -71,6 +71,16 @@ class c函数调用:
|
|
71
71
|
return f'{self.函数名}({self.参数字符串})'
|
72
72
|
|
73
73
|
|
74
|
+
class c布尔:
|
75
|
+
def __init__(self, v) -> None:
|
76
|
+
self.v = v
|
77
|
+
|
78
|
+
def __str__(self) -> str:
|
79
|
+
if self.v:
|
80
|
+
return 'true'
|
81
|
+
return 'false'
|
82
|
+
|
83
|
+
|
74
84
|
class py2cpp编译器(ast.NodeVisitor):
|
75
85
|
def __init__(self, 被编译的函数: Callable, c编译器) -> None:
|
76
86
|
self.被编译的函数 = 被编译的函数
|
@@ -158,6 +168,8 @@ class py2cpp编译器(ast.NodeVisitor):
|
|
158
168
|
|
159
169
|
def 获取值(self, value):
|
160
170
|
if isinstance(value, ast.Constant):
|
171
|
+
if isinstance(value.value, bool):
|
172
|
+
return c布尔(value.value)
|
161
173
|
return value.value
|
162
174
|
|
163
175
|
if isinstance(value, ast.Name):
|
@@ -196,9 +208,9 @@ class py2cpp编译器(ast.NodeVisitor):
|
|
196
208
|
|
197
209
|
if isinstance(value, ast.BoolOp):
|
198
210
|
if isinstance(value.op, ast.And):
|
199
|
-
return '&&'.join([self.获取值(v) for v in value.values])
|
211
|
+
return '&&'.join([str(self.获取值(v)) for v in value.values])
|
200
212
|
if isinstance(value.op, ast.Or):
|
201
|
-
return '||'.join([self.获取值(v) for v in value.values])
|
213
|
+
return '||'.join([str(self.获取值(v)) for v in value.values])
|
202
214
|
|
203
215
|
if isinstance(value, ast.IfExp):
|
204
216
|
test = self.获取值(value.test)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: l0n0lc
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.4
|
4
4
|
Summary: 一个将python函数翻译为c++函数并运行的jit编译器
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
6
6
|
Requires-Python: >=3.10
|
@@ -80,7 +80,9 @@ def test_add(a: int, b: int) -> int:
|
|
80
80
|
print('test_other_fn', test_other_fn(a, b))
|
81
81
|
print('test编译的函数', test编译的函数(a, b))
|
82
82
|
v = 0
|
83
|
-
|
83
|
+
vv = True and (False or 1)
|
84
|
+
print('vv:', vv)
|
85
|
+
while (True):
|
84
86
|
py_cin(v)
|
85
87
|
if v > 100:
|
86
88
|
break
|
@@ -110,6 +112,7 @@ b 2
|
|
110
112
|
Hello World 13 3
|
111
113
|
test_other_fn 10
|
112
114
|
test编译的函数 39
|
115
|
+
vv: 1
|
113
116
|
请输入>>>输入的 1 小于等于100
|
114
117
|
请输入>>>输入的 2 小于等于100
|
115
118
|
请输入>>>输入的 100 小于等于100
|
@@ -121,22 +124,22 @@ test编译的函数 39
|
|
121
124
|
```bash
|
122
125
|
ls -al ./l0n0lcoutput
|
123
126
|
total 96
|
124
|
-
drwxr-xr-x 2 root root 4096 Sep
|
125
|
-
drwxrwxrwx 11 1000 1000 4096 Sep
|
126
|
-
-rw-r--r-- 1 root root
|
127
|
-
-rw-r--r-- 1 root root 246 Sep
|
128
|
-
-rwxr-xr-x 1 root root
|
129
|
-
-rw-r--r-- 1 root root 121 Sep
|
130
|
-
-rw-r--r-- 1 root root 93 Sep
|
131
|
-
-rwxr-xr-x 1 root root 15616 Sep
|
132
|
-
-rw-r--r-- 1 root root 185 Sep
|
133
|
-
-rw-r--r-- 1 root root 151 Sep
|
134
|
-
-rwxr-xr-x 1 root root 15656 Sep
|
127
|
+
drwxr-xr-x 2 root root 4096 Sep 16 01:49 .
|
128
|
+
drwxrwxrwx 11 1000 1000 4096 Sep 16 01:41 ..
|
129
|
+
-rw-r--r-- 1 root root 1318 Sep 16 01:49 test_add_@6a812a013615c16d.cpp
|
130
|
+
-rw-r--r-- 1 root root 246 Sep 16 01:49 test_add_@6a812a013615c16d.h
|
131
|
+
-rwxr-xr-x 1 root root 29968 Sep 16 01:49 test_add_@6a812a013615c16d.so
|
132
|
+
-rw-r--r-- 1 root root 121 Sep 16 01:49 test_other_fn_@75fdd928ab58a8e3.cpp
|
133
|
+
-rw-r--r-- 1 root root 93 Sep 16 01:49 test_other_fn_@75fdd928ab58a8e3.h
|
134
|
+
-rwxr-xr-x 1 root root 15616 Sep 16 01:49 test_other_fn_@75fdd928ab58a8e3.so
|
135
|
+
-rw-r--r-- 1 root root 185 Sep 16 01:41 test编译的函数_@3bf4501e0408a243.cpp
|
136
|
+
-rw-r--r-- 1 root root 151 Sep 16 01:41 test编译的函数_@3bf4501e0408a243.h
|
137
|
+
-rwxr-xr-x 1 root root 15656 Sep 16 01:41 test编译的函数_@3bf4501e0408a243.so
|
135
138
|
|
136
139
|
```
|
137
|
-
## 5. test_add_@
|
140
|
+
## 5. test_add_@6a812a013615c16d.cpp
|
138
141
|
```c++
|
139
|
-
#include "test_add_@
|
142
|
+
#include "test_add_@6a812a013615c16d.h"
|
140
143
|
extern "C" int64_t test_add (int64_t a, int64_t b)
|
141
144
|
{
|
142
145
|
if ((a > 1))
|
@@ -175,7 +178,9 @@ extern "C" int64_t test_add (int64_t a, int64_t b)
|
|
175
178
|
std::cout<< u8"test_other_fn" << " "<< test_other_fn(a,b) << " "<< std::endl;
|
176
179
|
std::cout<< u8"test编译的函数" << " "<< function_74657374e7bc96e8af91e79a84e587bde695b0(a,b) << " "<< std::endl;
|
177
180
|
auto v = 0;
|
178
|
-
|
181
|
+
auto vv = true&&false||1;
|
182
|
+
std::cout<< u8"vv:" << " "<< vv << " "<< std::endl;
|
183
|
+
while (true)
|
179
184
|
{
|
180
185
|
std::cout << u8"请输入>>>"; std::cin >> v;
|
181
186
|
if ((v > 100))
|
@@ -193,7 +198,7 @@ extern "C" int64_t test_add (int64_t a, int64_t b)
|
|
193
198
|
}
|
194
199
|
|
195
200
|
```
|
196
|
-
## 6. test_add_@
|
201
|
+
## 6. test_add_@6a812a013615c16d.h
|
197
202
|
```c++
|
198
203
|
#include "test_other_fn_@75fdd928ab58a8e3.h"
|
199
204
|
#include "test编译的函数_@3bf4501e0408a243.h"
|
@@ -2,11 +2,11 @@ l0n0lc/StdList.py,sha256=fA6sWAfW2JgDUhQDK2Hlx_PPuSdLwTcCTk5aha4zA-Q,863
|
|
2
2
|
l0n0lc/StdMap.py,sha256=TIVKqhT078cjLIM0Zlq-TwGFSy-KwOyJe00BLFPVxr8,735
|
3
3
|
l0n0lc/__init__.py,sha256=fUC6TMeN_fEL7HDazrBEdoWOQkXi5uSGZb7LZj6juog,137
|
4
4
|
l0n0lc/c基础处理.py,sha256=FMauoVx4-33JXl4OLpUl1D6NCkLjk6yBH7do9WnT0Wg,5671
|
5
|
-
l0n0lc/jit.py,sha256=
|
5
|
+
l0n0lc/jit.py,sha256=MNvtnt_SPqwdJWzvkZKOSwrdN7zqjCx6KLhy5Z5bJAo,23946
|
6
6
|
l0n0lc/编译.py,sha256=Ty4gPDHAB1jn8LgnE4w3R06bOAEeYr8iwqahYf6QeHI,2154
|
7
7
|
l0n0lc/通用.py,sha256=O_Y4bbW1WzHCJkibxAy9WGACv-aEZJLG-fEeVBcAbBQ,3649
|
8
|
-
l0n0lc-0.8.
|
9
|
-
l0n0lc-0.8.
|
10
|
-
l0n0lc-0.8.
|
11
|
-
l0n0lc-0.8.
|
12
|
-
l0n0lc-0.8.
|
8
|
+
l0n0lc-0.8.4.dist-info/licenses/LICENSE,sha256=1L-MAjulZ3kpbYwsJtlXpDVITRxykna2Ecg_521YfkA,1093
|
9
|
+
l0n0lc-0.8.4.dist-info/METADATA,sha256=FM7tcMjK56Kteal4Er5l8MB2pGGaU77UDaWRH2E2em0,5660
|
10
|
+
l0n0lc-0.8.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
11
|
+
l0n0lc-0.8.4.dist-info/top_level.txt,sha256=Q21D_eEY_-xgRUPwATGp9YDKSBO4w_7MI2MYxQI1aT4,7
|
12
|
+
l0n0lc-0.8.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|