l0n0lc 0.1.2__tar.gz → 0.2.0__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: l0n0lc
3
- Version: 0.1.2
3
+ Version: 0.2.0
4
4
  Summary: 用python写c
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Requires-Python: >=3.10
@@ -0,0 +1,6 @@
1
+ from .输出 import 配置输出函数
2
+ from .c类型基础 import c类型基础, c_void, c_void_p, c函数, c结构体, c数组
3
+ from .c域 import 花括号, 如果, 否则, 否则如果, 循环, 输出
4
+ from .c基础类型 import *
5
+ from .c语句 import *
6
+ from .编译 import 编译
@@ -29,7 +29,7 @@ class 花括号:
29
29
  输出("}\n")
30
30
 
31
31
 
32
- class c_函数域:
32
+ class c函数域:
33
33
  def __init__(
34
34
  self,
35
35
  函数名: str,
@@ -0,0 +1,191 @@
1
+
2
+ from .c类型基础 import c类型基础
3
+
4
+ class i8(c类型基础):
5
+ 类型名 = 'int8_t'
6
+
7
+ class i8_p(c类型基础):
8
+ 类型名 = f'int8_t*'
9
+
10
+ class i8_p_p(c类型基础):
11
+ 类型名 = f'int8_t**'
12
+
13
+ class i16(c类型基础):
14
+ 类型名 = 'int16_t'
15
+
16
+ class i16_p(c类型基础):
17
+ 类型名 = f'int16_t*'
18
+
19
+ class i16_p_p(c类型基础):
20
+ 类型名 = f'int16_t**'
21
+
22
+ class i32(c类型基础):
23
+ 类型名 = 'int32_t'
24
+
25
+ class i32_p(c类型基础):
26
+ 类型名 = f'int32_t*'
27
+
28
+ class i32_p_p(c类型基础):
29
+ 类型名 = f'int32_t**'
30
+
31
+ class i64(c类型基础):
32
+ 类型名 = 'int64_t'
33
+
34
+ class i64_p(c类型基础):
35
+ 类型名 = f'int64_t*'
36
+
37
+ class i64_p_p(c类型基础):
38
+ 类型名 = f'int64_t**'
39
+
40
+ class u8(c类型基础):
41
+ 类型名 = 'uint8_t'
42
+
43
+ class u8_p(c类型基础):
44
+ 类型名 = f'uint8_t*'
45
+
46
+ class u8_p_p(c类型基础):
47
+ 类型名 = f'uint8_t**'
48
+
49
+ class u16(c类型基础):
50
+ 类型名 = 'uint16_t'
51
+
52
+ class u16_p(c类型基础):
53
+ 类型名 = f'uint16_t*'
54
+
55
+ class u16_p_p(c类型基础):
56
+ 类型名 = f'uint16_t**'
57
+
58
+ class u32(c类型基础):
59
+ 类型名 = 'uint32_t'
60
+
61
+ class u32_p(c类型基础):
62
+ 类型名 = f'uint32_t*'
63
+
64
+ class u32_p_p(c类型基础):
65
+ 类型名 = f'uint32_t**'
66
+
67
+ class u64(c类型基础):
68
+ 类型名 = 'uint64_t'
69
+
70
+ class u64_p(c类型基础):
71
+ 类型名 = f'uint64_t*'
72
+
73
+ class u64_p_p(c类型基础):
74
+ 类型名 = f'uint64_t**'
75
+
76
+ class f32(c类型基础):
77
+ 类型名 = 'float'
78
+
79
+ class f32_p(c类型基础):
80
+ 类型名 = f'float*'
81
+
82
+ class f32_p_p(c类型基础):
83
+ 类型名 = f'float**'
84
+
85
+ class f64(c类型基础):
86
+ 类型名 = 'double'
87
+
88
+ class f64_p(c类型基础):
89
+ 类型名 = f'double*'
90
+
91
+ class f64_p_p(c类型基础):
92
+ 类型名 = f'double**'
93
+
94
+ class bool(c类型基础):
95
+ 类型名 = 'bool'
96
+
97
+ class bool_p(c类型基础):
98
+ 类型名 = f'bool*'
99
+
100
+ class bool_p_p(c类型基础):
101
+ 类型名 = f'bool**'
102
+
103
+ class char(c类型基础):
104
+ 类型名 = 'char'
105
+
106
+ class char_p(c类型基础):
107
+ 类型名 = f'char*'
108
+
109
+ class char_p_p(c类型基础):
110
+ 类型名 = f'char**'
111
+
112
+ class uchar(c类型基础):
113
+ 类型名 = 'unsigned char'
114
+
115
+ class uchar_p(c类型基础):
116
+ 类型名 = f'unsigned char*'
117
+
118
+ class uchar_p_p(c类型基础):
119
+ 类型名 = f'unsigned char**'
120
+
121
+ class int(c类型基础):
122
+ 类型名 = 'int'
123
+
124
+ class int_p(c类型基础):
125
+ 类型名 = f'int*'
126
+
127
+ class int_p_p(c类型基础):
128
+ 类型名 = f'int**'
129
+
130
+ class uint(c类型基础):
131
+ 类型名 = 'unsigned int'
132
+
133
+ class uint_p(c类型基础):
134
+ 类型名 = f'unsigned int*'
135
+
136
+ class uint_p_p(c类型基础):
137
+ 类型名 = f'unsigned int**'
138
+
139
+ class short(c类型基础):
140
+ 类型名 = 'short'
141
+
142
+ class short_p(c类型基础):
143
+ 类型名 = f'short*'
144
+
145
+ class short_p_p(c类型基础):
146
+ 类型名 = f'short**'
147
+
148
+ class ushort(c类型基础):
149
+ 类型名 = 'unsigned short'
150
+
151
+ class ushort_p(c类型基础):
152
+ 类型名 = f'unsigned short*'
153
+
154
+ class ushort_p_p(c类型基础):
155
+ 类型名 = f'unsigned short**'
156
+
157
+ class long(c类型基础):
158
+ 类型名 = 'long'
159
+
160
+ class long_p(c类型基础):
161
+ 类型名 = f'long*'
162
+
163
+ class long_p_p(c类型基础):
164
+ 类型名 = f'long**'
165
+
166
+ class ulong(c类型基础):
167
+ 类型名 = 'unsigned long'
168
+
169
+ class ulong_p(c类型基础):
170
+ 类型名 = f'unsigned long*'
171
+
172
+ class ulong_p_p(c类型基础):
173
+ 类型名 = f'unsigned long**'
174
+
175
+ class longlong(c类型基础):
176
+ 类型名 = 'long long'
177
+
178
+ class longlong_p(c类型基础):
179
+ 类型名 = f'long long*'
180
+
181
+ class longlong_p_p(c类型基础):
182
+ 类型名 = f'long long**'
183
+
184
+ class ulonglong(c类型基础):
185
+ 类型名 = 'unsigned long long'
186
+
187
+ class ulonglong_p(c类型基础):
188
+ 类型名 = f'unsigned long long*'
189
+
190
+ class ulonglong_p_p(c类型基础):
191
+ 类型名 = f'unsigned long long**'
@@ -1,10 +1,10 @@
1
1
  from .utils import 十进制转换为其他进制
2
2
  from typing import Union, Any, Callable, Type, List
3
- from .c域 import 输出, c_函数域, c_结构体域
3
+ from .c域 import 输出, c函数域, c_结构体域
4
4
  import inspect
5
5
 
6
6
 
7
- class c_类型基础:
7
+ class c类型基础:
8
8
  _进制字符 = "0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ"
9
9
  变量自增ID = 0
10
10
  类型名 = ''
@@ -12,8 +12,8 @@ class c_类型基础:
12
12
 
13
13
  @staticmethod
14
14
  def 生成ID():
15
- ID = '_' + 十进制转换为其他进制(c_类型基础.变量自增ID, len(c_类型基础._进制字符), c_类型基础._进制字符)
16
- c_类型基础.变量自增ID += 1
15
+ ID = '_' + 十进制转换为其他进制(c类型基础.变量自增ID, len(c类型基础._进制字符), c类型基础._进制字符)
16
+ c类型基础.变量自增ID += 1
17
17
  return ID
18
18
 
19
19
  def __init__(
@@ -23,7 +23,7 @@ class c_类型基础:
23
23
  是静态变量: Union[bool, None] = False,
24
24
  使用等号赋值: bool = False):
25
25
  self.类型 = self.__class__.类型名
26
- self.变量名 = 变量名 or c_类型基础.生成ID()
26
+ self.变量名 = 变量名 or c类型基础.生成ID()
27
27
  self.是静态变量 = 是静态变量 # TODO
28
28
  self.使用等号赋值 = 使用等号赋值
29
29
  self.初始值 = 初始值
@@ -181,12 +181,12 @@ class c_类型基础:
181
181
 
182
182
 
183
183
  def 创建普通类(类型: str) -> Type:
184
- class 类(c_类型基础):
184
+ class 类(c类型基础):
185
185
  类型名 = 类型
186
186
  return 类
187
187
 
188
188
 
189
- class c_void(c_类型基础):
189
+ class c_void(c类型基础):
190
190
  类型名 = 'void'
191
191
 
192
192
  def __init__(self):
@@ -200,23 +200,23 @@ class c_void(c_类型基础):
200
200
  pass
201
201
 
202
202
 
203
- class c_void_p(c_类型基础):
203
+ class c_void_p(c类型基础):
204
204
  类型名 = 'void*'
205
205
 
206
206
 
207
- class 已存在变量(c_类型基础):
207
+ class 已存在变量(c类型基础):
208
208
  def __init__(self, 变量名: str) -> None:
209
209
  self.变量名 = 变量名
210
210
 
211
211
 
212
- def c_结构体():
212
+ def c结构体():
213
213
  def 装饰函数(fn: Callable):
214
214
  定义 = fn()
215
215
  with c_结构体域(fn.__name__):
216
216
  for 字段名, (类型, 默认值) in 定义.items():
217
217
  类型(默认值, 变量名=字段名, 使用等号赋值=True)
218
218
 
219
- class 结构体类(c_类型基础):
219
+ class 结构体类(c类型基础):
220
220
  类型名 = fn.__name__
221
221
  是结构体类 = True
222
222
  return 结构体类
@@ -228,12 +228,12 @@ def 根据signature构建并调用函数(
228
228
  self_=None,
229
229
  前缀: Union[None, str, List[str]] = None):
230
230
  sig = inspect.signature(fn)
231
- with c_函数域(fn.__name__, sig.parameters,
231
+ with c函数域(fn.__name__, sig.parameters,
232
232
  sig.return_annotation, 前缀) as f:
233
233
  参数列表 = []
234
234
 
235
235
  for 参数名, 参数 in sig.parameters.items():
236
- class Temp(c_类型基础):
236
+ class Temp(c类型基础):
237
237
  类型名 = 参数.annotation.类型名
238
238
  是结构体类 = 参数.annotation.是结构体类
239
239
 
@@ -248,9 +248,9 @@ def 根据signature构建并调用函数(
248
248
  return f
249
249
 
250
250
 
251
- def 调用函数域(fn: c_函数域, *args):
251
+ def 调用函数域(fn: c函数域, *args):
252
252
  参数字符串 = ', '.join([str(arg) for arg in args])
253
- ID = c_类型基础.生成ID()
253
+ ID = c类型基础.生成ID()
254
254
  if fn.返回类型 == 'void':
255
255
  输出(f'{fn.函数名} ({参数字符串});\n')
256
256
  return 已存在变量('')
@@ -259,7 +259,7 @@ def 调用函数域(fn: c_函数域, *args):
259
259
  return 已存在变量(ID)
260
260
 
261
261
 
262
- def c_函数(前缀: Union[None, str, List[str]] = None):
262
+ def c函数(前缀: Union[None, str, List[str]] = None):
263
263
  class 装饰类:
264
264
  def __init__(self, fn: Callable) -> None:
265
265
  self.函数 = 根据signature构建并调用函数(
@@ -272,8 +272,8 @@ def c_函数(前缀: Union[None, str, List[str]] = None):
272
272
  return 装饰类
273
273
 
274
274
 
275
- def c_数组(类型, 长度: int):
276
- class c_数组类型(c_类型基础):
275
+ def c数组(类型, 长度: int):
276
+ class c_数组类型(c类型基础):
277
277
  类型名 = f'{类型.类型名}*'
278
278
  数组长度 = 长度
279
279
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: l0n0lc
3
- Version: 0.1.2
3
+ Version: 0.2.0
4
4
  Summary: 用python写c
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Requires-Python: >=3.10
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "l0n0lc"
3
- version = "0.1.2"
3
+ version = "0.2.0"
4
4
  description = "用python写c"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -1,6 +0,0 @@
1
- from .输出 import 配置输出函数
2
- from .c类型基础 import c_类型基础, c_void, c_void_p, c_函数, c_结构体, c_数组
3
- from .c域 import 花括号, c_函数域, 如果, 否则, 否则如果, 循环, 输出
4
- from .c基础类型 import *
5
- from .c语句 import *
6
- from .编译 import 编译
@@ -1,191 +0,0 @@
1
-
2
- from .c类型基础 import c_类型基础
3
-
4
- class c_i8(c_类型基础):
5
- 类型名 = 'int8_t'
6
-
7
- class c_i8_p(c_类型基础):
8
- 类型名 = f'int8_t*'
9
-
10
- class c_i8_p_p(c_类型基础):
11
- 类型名 = f'int8_t**'
12
-
13
- class c_i16(c_类型基础):
14
- 类型名 = 'int16_t'
15
-
16
- class c_i16_p(c_类型基础):
17
- 类型名 = f'int16_t*'
18
-
19
- class c_i16_p_p(c_类型基础):
20
- 类型名 = f'int16_t**'
21
-
22
- class c_i32(c_类型基础):
23
- 类型名 = 'int32_t'
24
-
25
- class c_i32_p(c_类型基础):
26
- 类型名 = f'int32_t*'
27
-
28
- class c_i32_p_p(c_类型基础):
29
- 类型名 = f'int32_t**'
30
-
31
- class c_i64(c_类型基础):
32
- 类型名 = 'int64_t'
33
-
34
- class c_i64_p(c_类型基础):
35
- 类型名 = f'int64_t*'
36
-
37
- class c_i64_p_p(c_类型基础):
38
- 类型名 = f'int64_t**'
39
-
40
- class c_u8(c_类型基础):
41
- 类型名 = 'uint8_t'
42
-
43
- class c_u8_p(c_类型基础):
44
- 类型名 = f'uint8_t*'
45
-
46
- class c_u8_p_p(c_类型基础):
47
- 类型名 = f'uint8_t**'
48
-
49
- class c_u16(c_类型基础):
50
- 类型名 = 'uint16_t'
51
-
52
- class c_u16_p(c_类型基础):
53
- 类型名 = f'uint16_t*'
54
-
55
- class c_u16_p_p(c_类型基础):
56
- 类型名 = f'uint16_t**'
57
-
58
- class c_u32(c_类型基础):
59
- 类型名 = 'uint32_t'
60
-
61
- class c_u32_p(c_类型基础):
62
- 类型名 = f'uint32_t*'
63
-
64
- class c_u32_p_p(c_类型基础):
65
- 类型名 = f'uint32_t**'
66
-
67
- class c_u64(c_类型基础):
68
- 类型名 = 'uint64_t'
69
-
70
- class c_u64_p(c_类型基础):
71
- 类型名 = f'uint64_t*'
72
-
73
- class c_u64_p_p(c_类型基础):
74
- 类型名 = f'uint64_t**'
75
-
76
- class c_f32(c_类型基础):
77
- 类型名 = 'float'
78
-
79
- class c_f32_p(c_类型基础):
80
- 类型名 = f'float*'
81
-
82
- class c_f32_p_p(c_类型基础):
83
- 类型名 = f'float**'
84
-
85
- class c_f64(c_类型基础):
86
- 类型名 = 'double'
87
-
88
- class c_f64_p(c_类型基础):
89
- 类型名 = f'double*'
90
-
91
- class c_f64_p_p(c_类型基础):
92
- 类型名 = f'double**'
93
-
94
- class c_bool(c_类型基础):
95
- 类型名 = 'bool'
96
-
97
- class c_bool_p(c_类型基础):
98
- 类型名 = f'bool*'
99
-
100
- class c_bool_p_p(c_类型基础):
101
- 类型名 = f'bool**'
102
-
103
- class c_char(c_类型基础):
104
- 类型名 = 'char'
105
-
106
- class c_char_p(c_类型基础):
107
- 类型名 = f'char*'
108
-
109
- class c_char_p_p(c_类型基础):
110
- 类型名 = f'char**'
111
-
112
- class c_uchar(c_类型基础):
113
- 类型名 = 'unsigned char'
114
-
115
- class c_uchar_p(c_类型基础):
116
- 类型名 = f'unsigned char*'
117
-
118
- class c_uchar_p_p(c_类型基础):
119
- 类型名 = f'unsigned char**'
120
-
121
- class c_int(c_类型基础):
122
- 类型名 = 'int'
123
-
124
- class c_int_p(c_类型基础):
125
- 类型名 = f'int*'
126
-
127
- class c_int_p_p(c_类型基础):
128
- 类型名 = f'int**'
129
-
130
- class c_uint(c_类型基础):
131
- 类型名 = 'unsigned int'
132
-
133
- class c_uint_p(c_类型基础):
134
- 类型名 = f'unsigned int*'
135
-
136
- class c_uint_p_p(c_类型基础):
137
- 类型名 = f'unsigned int**'
138
-
139
- class c_short(c_类型基础):
140
- 类型名 = 'short'
141
-
142
- class c_short_p(c_类型基础):
143
- 类型名 = f'short*'
144
-
145
- class c_short_p_p(c_类型基础):
146
- 类型名 = f'short**'
147
-
148
- class c_ushort(c_类型基础):
149
- 类型名 = 'unsigned short'
150
-
151
- class c_ushort_p(c_类型基础):
152
- 类型名 = f'unsigned short*'
153
-
154
- class c_ushort_p_p(c_类型基础):
155
- 类型名 = f'unsigned short**'
156
-
157
- class c_long(c_类型基础):
158
- 类型名 = 'long'
159
-
160
- class c_long_p(c_类型基础):
161
- 类型名 = f'long*'
162
-
163
- class c_long_p_p(c_类型基础):
164
- 类型名 = f'long**'
165
-
166
- class c_ulong(c_类型基础):
167
- 类型名 = 'unsigned long'
168
-
169
- class c_ulong_p(c_类型基础):
170
- 类型名 = f'unsigned long*'
171
-
172
- class c_ulong_p_p(c_类型基础):
173
- 类型名 = f'unsigned long**'
174
-
175
- class c_longlong(c_类型基础):
176
- 类型名 = 'long long'
177
-
178
- class c_longlong_p(c_类型基础):
179
- 类型名 = f'long long*'
180
-
181
- class c_longlong_p_p(c_类型基础):
182
- 类型名 = f'long long**'
183
-
184
- class c_ulonglong(c_类型基础):
185
- 类型名 = 'unsigned long long'
186
-
187
- class c_ulonglong_p(c_类型基础):
188
- 类型名 = f'unsigned long long*'
189
-
190
- class c_ulonglong_p_p(c_类型基础):
191
- 类型名 = f'unsigned long long**'
File without changes
File without changes
File without changes
File without changes