pyscript-programming-language 1.3.0__tar.gz → 1.3.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.
Potentially problematic release.
This version of pyscript-programming-language might be problematic. Click here for more details.
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/PKG-INFO +7 -3
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/README.md +7 -3
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/parser.py +109 -147
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/runner.py +1 -1
- pyscript_programming_language-1.3.1/pyscript/core/version.py +5 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript_programming_language.egg-info/PKG-INFO +7 -3
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/setup.py +1 -1
- pyscript_programming_language-1.3.0/pyscript/core/version.py +0 -5
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/MANIFEST.in +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/__init__.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/__init__.pyi +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/__main__.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/__init__.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/analyzer.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/bases.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/buffer.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/cache.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/constants.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/context.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/exceptions.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/handlers.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/highlight.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/interpreter.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/lexer.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/nodes.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/objects.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/position.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/pysbuiltins.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/results.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/singletons.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/symtab.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/token.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/utils.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/__hello__.pys +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/brainfuck.pys +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/clock.pys +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/getch.pys +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/jsdict.pys +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/parser.pys +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/sys.pys +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/this.pys +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/this.py +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript_programming_language.egg-info/SOURCES.txt +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript_programming_language.egg-info/dependency_links.txt +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript_programming_language.egg-info/top_level.txt +0 -0
- {pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyscript-programming-language
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.1
|
|
4
4
|
Summary: PyScript Programming Language
|
|
5
5
|
Home-page: https://github.com/azzammuhyala/pyscript
|
|
6
6
|
Author: azzammuhyala
|
|
@@ -50,6 +50,10 @@ language was created as a relatively complex project. Using Python as the founda
|
|
|
50
50
|
understand syntax makes it easy to understand how the language is built without having to understand complex
|
|
51
51
|
instructions like those in C, C++, and other low-level languages.
|
|
52
52
|
|
|
53
|
-
To learn more about PyScript
|
|
54
|
-
[PyScript documentation here](https://azzammuhyala.github.io/pyscript) or see on
|
|
53
|
+
To learn more about PyScript, you can see on [PyScript documentation here](https://azzammuhyala.github.io/pyscript) or
|
|
55
54
|
[PyScript repository](https://github.com/azzammuhyala/pyscript).
|
|
55
|
+
|
|
56
|
+
## Behind it
|
|
57
|
+
This language created from based up on a
|
|
58
|
+
[YouTube tutorial](https://www.youtube.com/playlist?list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD). At least, it takes
|
|
59
|
+
about 6 months to learn it, and also need to learn general things that exist in other programming languages.
|
|
@@ -19,6 +19,10 @@ language was created as a relatively complex project. Using Python as the founda
|
|
|
19
19
|
understand syntax makes it easy to understand how the language is built without having to understand complex
|
|
20
20
|
instructions like those in C, C++, and other low-level languages.
|
|
21
21
|
|
|
22
|
-
To learn more about PyScript
|
|
23
|
-
[PyScript
|
|
24
|
-
|
|
22
|
+
To learn more about PyScript, you can see on [PyScript documentation here](https://azzammuhyala.github.io/pyscript) or
|
|
23
|
+
[PyScript repository](https://github.com/azzammuhyala/pyscript).
|
|
24
|
+
|
|
25
|
+
## Behind it
|
|
26
|
+
This language created from based up on a
|
|
27
|
+
[YouTube tutorial](https://www.youtube.com/playlist?list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD). At least, it takes
|
|
28
|
+
about 6 months to learn it, and also need to learn general things that exist in other programming languages.
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/parser.py
RENAMED
|
@@ -165,54 +165,6 @@ class PysParser(Pys):
|
|
|
165
165
|
|
|
166
166
|
return result.success(assign_expr)
|
|
167
167
|
|
|
168
|
-
def assign_expr(self):
|
|
169
|
-
result = PysParserResult()
|
|
170
|
-
|
|
171
|
-
variable = result.register(self.expr())
|
|
172
|
-
if result.error:
|
|
173
|
-
return result
|
|
174
|
-
|
|
175
|
-
while self.current_token.type in (
|
|
176
|
-
TOKENS['EQ'],
|
|
177
|
-
TOKENS['EPLUS'],
|
|
178
|
-
TOKENS['EMINUS'],
|
|
179
|
-
TOKENS['EMUL'],
|
|
180
|
-
TOKENS['EDIV'],
|
|
181
|
-
TOKENS['EFDIV'],
|
|
182
|
-
TOKENS['EMOD'],
|
|
183
|
-
TOKENS['EAT'],
|
|
184
|
-
TOKENS['EPOW'],
|
|
185
|
-
TOKENS['EAND'],
|
|
186
|
-
TOKENS['EOR'],
|
|
187
|
-
TOKENS['EXOR'],
|
|
188
|
-
TOKENS['ELSHIFT'],
|
|
189
|
-
TOKENS['ERSHIFT']
|
|
190
|
-
):
|
|
191
|
-
operand = (
|
|
192
|
-
PysToken(
|
|
193
|
-
TOKENS['EPOW'] if self.current_token.type == TOKENS['EXOR'] else TOKENS['EXOR'],
|
|
194
|
-
self.current_token.position,
|
|
195
|
-
'reversed'
|
|
196
|
-
)
|
|
197
|
-
if
|
|
198
|
-
self.flags & REVERSE_POW_XOR and
|
|
199
|
-
self.current_token.type in (TOKENS['EPOW'], TOKENS['EXOR'])
|
|
200
|
-
else
|
|
201
|
-
self.current_token
|
|
202
|
-
)
|
|
203
|
-
|
|
204
|
-
result.register_advancement()
|
|
205
|
-
self.advance()
|
|
206
|
-
self.skip_expr(result)
|
|
207
|
-
|
|
208
|
-
value = result.register(self.assign_expr(), True)
|
|
209
|
-
if result.error:
|
|
210
|
-
return result
|
|
211
|
-
|
|
212
|
-
variable = PysAssignNode(variable, operand, value)
|
|
213
|
-
|
|
214
|
-
return result.success(variable)
|
|
215
|
-
|
|
216
168
|
def expr(self):
|
|
217
169
|
if self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['func']):
|
|
218
170
|
return self.func_expr()
|
|
@@ -762,6 +714,54 @@ class PysParser(Pys):
|
|
|
762
714
|
)
|
|
763
715
|
)
|
|
764
716
|
|
|
717
|
+
def assign_expr(self):
|
|
718
|
+
result = PysParserResult()
|
|
719
|
+
|
|
720
|
+
variable = result.register(self.expr())
|
|
721
|
+
if result.error:
|
|
722
|
+
return result
|
|
723
|
+
|
|
724
|
+
while self.current_token.type in (
|
|
725
|
+
TOKENS['EQ'],
|
|
726
|
+
TOKENS['EPLUS'],
|
|
727
|
+
TOKENS['EMINUS'],
|
|
728
|
+
TOKENS['EMUL'],
|
|
729
|
+
TOKENS['EDIV'],
|
|
730
|
+
TOKENS['EFDIV'],
|
|
731
|
+
TOKENS['EMOD'],
|
|
732
|
+
TOKENS['EAT'],
|
|
733
|
+
TOKENS['EPOW'],
|
|
734
|
+
TOKENS['EAND'],
|
|
735
|
+
TOKENS['EOR'],
|
|
736
|
+
TOKENS['EXOR'],
|
|
737
|
+
TOKENS['ELSHIFT'],
|
|
738
|
+
TOKENS['ERSHIFT']
|
|
739
|
+
):
|
|
740
|
+
operand = (
|
|
741
|
+
PysToken(
|
|
742
|
+
TOKENS['EPOW'] if self.current_token.type == TOKENS['EXOR'] else TOKENS['EXOR'],
|
|
743
|
+
self.current_token.position,
|
|
744
|
+
'reversed'
|
|
745
|
+
)
|
|
746
|
+
if
|
|
747
|
+
self.flags & REVERSE_POW_XOR and
|
|
748
|
+
self.current_token.type in (TOKENS['EPOW'], TOKENS['EXOR'])
|
|
749
|
+
else
|
|
750
|
+
self.current_token
|
|
751
|
+
)
|
|
752
|
+
|
|
753
|
+
result.register_advancement()
|
|
754
|
+
self.advance()
|
|
755
|
+
self.skip_expr(result)
|
|
756
|
+
|
|
757
|
+
value = result.register(self.assign_expr(), True)
|
|
758
|
+
if result.error:
|
|
759
|
+
return result
|
|
760
|
+
|
|
761
|
+
variable = PysAssignNode(variable, operand, value)
|
|
762
|
+
|
|
763
|
+
return result.success(variable)
|
|
764
|
+
|
|
765
765
|
def from_expr(self):
|
|
766
766
|
result = PysParserResult()
|
|
767
767
|
position = self.current_token.position
|
|
@@ -947,41 +947,6 @@ class PysParser(Pys):
|
|
|
947
947
|
|
|
948
948
|
return result.success(PysIfNode(cases[0], cases[1], position))
|
|
949
949
|
|
|
950
|
-
def elif_expr(self):
|
|
951
|
-
return self.if_expr_cases(KEYWORDS['elif'])
|
|
952
|
-
|
|
953
|
-
def else_expr(self):
|
|
954
|
-
result = PysParserResult()
|
|
955
|
-
|
|
956
|
-
if self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['else']):
|
|
957
|
-
result.register_advancement()
|
|
958
|
-
self.advance()
|
|
959
|
-
self.skip(result)
|
|
960
|
-
|
|
961
|
-
else_body = result.register(self.stateblock(), True)
|
|
962
|
-
if result.error:
|
|
963
|
-
return result
|
|
964
|
-
|
|
965
|
-
return result.success(else_body)
|
|
966
|
-
|
|
967
|
-
return result.success(None)
|
|
968
|
-
|
|
969
|
-
def elif_or_else_expr(self):
|
|
970
|
-
result = PysParserResult()
|
|
971
|
-
|
|
972
|
-
if self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['elif']):
|
|
973
|
-
all_cases = result.register(self.elif_expr())
|
|
974
|
-
if result.error:
|
|
975
|
-
return result
|
|
976
|
-
|
|
977
|
-
return result.success(all_cases)
|
|
978
|
-
|
|
979
|
-
else_body = result.register(self.else_expr())
|
|
980
|
-
if result.error:
|
|
981
|
-
return result
|
|
982
|
-
|
|
983
|
-
return result.success(([], else_body))
|
|
984
|
-
|
|
985
950
|
def if_expr_cases(self, case_keyword):
|
|
986
951
|
result = PysParserResult()
|
|
987
952
|
cases, else_body = [], None
|
|
@@ -1008,12 +973,32 @@ class PysParser(Pys):
|
|
|
1008
973
|
advance_count = self.skip(result)
|
|
1009
974
|
|
|
1010
975
|
if self.current_token.matches(TOKENS['KEYWORD'], (KEYWORDS['elif'], KEYWORDS['else'])):
|
|
1011
|
-
all_cases = result.register(self.elif_or_else_expr())
|
|
1012
|
-
if result.error:
|
|
1013
|
-
return result
|
|
1014
976
|
|
|
1015
|
-
|
|
1016
|
-
|
|
977
|
+
if self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['elif']):
|
|
978
|
+
all_cases = result.register(self.if_expr_cases(KEYWORDS['elif']))
|
|
979
|
+
if result.error:
|
|
980
|
+
return result
|
|
981
|
+
|
|
982
|
+
new_cases, else_body = all_cases
|
|
983
|
+
cases.extend(new_cases)
|
|
984
|
+
|
|
985
|
+
elif self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['else']):
|
|
986
|
+
result.register_advancement()
|
|
987
|
+
self.advance()
|
|
988
|
+
self.skip(result)
|
|
989
|
+
|
|
990
|
+
if self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['if']):
|
|
991
|
+
all_cases = result.register(self.if_expr_cases(KEYWORDS['if']))
|
|
992
|
+
if result.error:
|
|
993
|
+
return result
|
|
994
|
+
|
|
995
|
+
new_cases, else_body = all_cases
|
|
996
|
+
cases.extend(new_cases)
|
|
997
|
+
|
|
998
|
+
else:
|
|
999
|
+
else_body = result.register(self.stateblock(), True)
|
|
1000
|
+
if result.error:
|
|
1001
|
+
return result
|
|
1017
1002
|
|
|
1018
1003
|
else:
|
|
1019
1004
|
self.reverse(advance_count)
|
|
@@ -1056,49 +1041,44 @@ class PysParser(Pys):
|
|
|
1056
1041
|
|
|
1057
1042
|
return result.success(PysSwitchNode(target, cases[0], cases[1], position))
|
|
1058
1043
|
|
|
1059
|
-
def
|
|
1044
|
+
def case_or_default_expr(self):
|
|
1060
1045
|
result = PysParserResult()
|
|
1061
|
-
cases,
|
|
1062
|
-
|
|
1063
|
-
if not self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['case']):
|
|
1064
|
-
return result.failure(self.error("expected {!r}".format(KEYWORDS['case'])))
|
|
1065
|
-
|
|
1066
|
-
result.register_advancement()
|
|
1067
|
-
self.advance()
|
|
1068
|
-
self.skip(result)
|
|
1069
|
-
|
|
1070
|
-
case = result.register(self.expr(), True)
|
|
1071
|
-
if result.error:
|
|
1072
|
-
return result
|
|
1046
|
+
cases, default_body = [], None
|
|
1073
1047
|
|
|
1074
|
-
self.
|
|
1048
|
+
if self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['case']):
|
|
1049
|
+
result.register_advancement()
|
|
1050
|
+
self.advance()
|
|
1051
|
+
self.skip(result)
|
|
1075
1052
|
|
|
1076
|
-
|
|
1077
|
-
|
|
1053
|
+
case = result.register(self.expr(), True)
|
|
1054
|
+
if result.error:
|
|
1055
|
+
return result
|
|
1078
1056
|
|
|
1079
|
-
|
|
1080
|
-
self.advance()
|
|
1057
|
+
self.skip(result)
|
|
1081
1058
|
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
return result
|
|
1059
|
+
if self.current_token.type != TOKENS['COLON']:
|
|
1060
|
+
return result.failure(self.error("expected ':'"))
|
|
1085
1061
|
|
|
1086
|
-
|
|
1062
|
+
result.register_advancement()
|
|
1063
|
+
self.advance()
|
|
1087
1064
|
|
|
1088
|
-
|
|
1089
|
-
all_cases = result.register(self.case_or_default_expr())
|
|
1065
|
+
body = result.register(self.statements())
|
|
1090
1066
|
if result.error:
|
|
1091
1067
|
return result
|
|
1092
1068
|
|
|
1093
|
-
|
|
1094
|
-
cases.extend(new_cases)
|
|
1069
|
+
cases.append((case, body))
|
|
1095
1070
|
|
|
1096
|
-
|
|
1071
|
+
self.skip(result)
|
|
1097
1072
|
|
|
1098
|
-
|
|
1099
|
-
|
|
1073
|
+
if self.current_token.matches(TOKENS['KEYWORD'], (KEYWORDS['case'], KEYWORDS['default'])):
|
|
1074
|
+
all_cases = result.register(self.case_or_default_expr())
|
|
1075
|
+
if result.error:
|
|
1076
|
+
return result
|
|
1077
|
+
|
|
1078
|
+
new_cases, default_body = all_cases
|
|
1079
|
+
cases.extend(new_cases)
|
|
1100
1080
|
|
|
1101
|
-
|
|
1081
|
+
elif self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['default']):
|
|
1102
1082
|
result.register_advancement()
|
|
1103
1083
|
self.advance()
|
|
1104
1084
|
self.skip(result)
|
|
@@ -1109,29 +1089,11 @@ class PysParser(Pys):
|
|
|
1109
1089
|
result.register_advancement()
|
|
1110
1090
|
self.advance()
|
|
1111
1091
|
|
|
1112
|
-
|
|
1113
|
-
if result.error:
|
|
1114
|
-
return result
|
|
1115
|
-
|
|
1116
|
-
return result.success(body)
|
|
1117
|
-
|
|
1118
|
-
return result.success(None)
|
|
1119
|
-
|
|
1120
|
-
def case_or_default_expr(self):
|
|
1121
|
-
result = PysParserResult()
|
|
1122
|
-
|
|
1123
|
-
if self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['case']):
|
|
1124
|
-
all_cases = result.register(self.case_expr())
|
|
1092
|
+
default_body = result.register(self.statements())
|
|
1125
1093
|
if result.error:
|
|
1126
1094
|
return result
|
|
1127
1095
|
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
default_body = result.register(self.default_expr())
|
|
1131
|
-
if result.error:
|
|
1132
|
-
return result
|
|
1133
|
-
|
|
1134
|
-
return result.success(([], default_body))
|
|
1096
|
+
return result.success((cases, default_body))
|
|
1135
1097
|
|
|
1136
1098
|
def try_expr(self):
|
|
1137
1099
|
result = PysParserResult()
|
|
@@ -1240,6 +1202,8 @@ class PysParser(Pys):
|
|
|
1240
1202
|
parenthesis = True
|
|
1241
1203
|
left_parenthesis_token = self.current_token
|
|
1242
1204
|
|
|
1205
|
+
self.parenthesis_level += 1
|
|
1206
|
+
|
|
1243
1207
|
result.register_advancement()
|
|
1244
1208
|
self.advance()
|
|
1245
1209
|
self.skip(result)
|
|
@@ -1247,10 +1211,6 @@ class PysParser(Pys):
|
|
|
1247
1211
|
else:
|
|
1248
1212
|
parenthesis = False
|
|
1249
1213
|
|
|
1250
|
-
self.parenthesis_level += 1
|
|
1251
|
-
|
|
1252
|
-
init_token_position = self.current_token.position
|
|
1253
|
-
|
|
1254
1214
|
init = result.try_register(self.assign_expr())
|
|
1255
1215
|
if result.error:
|
|
1256
1216
|
return result
|
|
@@ -1283,7 +1243,7 @@ class PysParser(Pys):
|
|
|
1283
1243
|
|
|
1284
1244
|
elif self.current_token.match(TOKENS['KEYWORD'], KEYWORDS['of']):
|
|
1285
1245
|
if init is None:
|
|
1286
|
-
return result.failure(self.error("expected expression"
|
|
1246
|
+
return result.failure(self.error("expected expression"))
|
|
1287
1247
|
|
|
1288
1248
|
foreach = True
|
|
1289
1249
|
|
|
@@ -1295,20 +1255,22 @@ class PysParser(Pys):
|
|
|
1295
1255
|
if result.error:
|
|
1296
1256
|
return result
|
|
1297
1257
|
|
|
1258
|
+
elif init is None:
|
|
1259
|
+
return result.failure(self.error("expected expression or ';'"))
|
|
1260
|
+
|
|
1298
1261
|
else:
|
|
1299
|
-
return result.failure(self.error("expected
|
|
1262
|
+
return result.failure(self.error("expected '{}' or ';'".format(KEYWORDS['of'])))
|
|
1300
1263
|
|
|
1301
1264
|
self.skip(result)
|
|
1302
1265
|
|
|
1303
1266
|
if parenthesis:
|
|
1304
|
-
|
|
1305
1267
|
self.close_parenthesis(result, left_parenthesis_token)
|
|
1306
1268
|
if result.error:
|
|
1307
1269
|
return result
|
|
1308
1270
|
|
|
1309
|
-
self.
|
|
1271
|
+
self.parenthesis_level -= 1
|
|
1310
1272
|
|
|
1311
|
-
|
|
1273
|
+
self.skip(result)
|
|
1312
1274
|
|
|
1313
1275
|
body = result.try_register(self.stateblock())
|
|
1314
1276
|
if result.error:
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/runner.py
RENAMED
|
@@ -313,7 +313,7 @@ def pys_shell(symbol_table=None, flags=DEFAULT):
|
|
|
313
313
|
|
|
314
314
|
except KeyboardInterrupt:
|
|
315
315
|
reset_next_line()
|
|
316
|
-
print('\rKeyboardInterrupt. Type "exit" or "!exit" to exit
|
|
316
|
+
print('\rKeyboardInterrupt. Type "exit" or "!exit" to exit.', file=sys.stderr)
|
|
317
317
|
|
|
318
318
|
except EOFError:
|
|
319
319
|
return 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyscript-programming-language
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.1
|
|
4
4
|
Summary: PyScript Programming Language
|
|
5
5
|
Home-page: https://github.com/azzammuhyala/pyscript
|
|
6
6
|
Author: azzammuhyala
|
|
@@ -50,6 +50,10 @@ language was created as a relatively complex project. Using Python as the founda
|
|
|
50
50
|
understand syntax makes it easy to understand how the language is built without having to understand complex
|
|
51
51
|
instructions like those in C, C++, and other low-level languages.
|
|
52
52
|
|
|
53
|
-
To learn more about PyScript
|
|
54
|
-
[PyScript documentation here](https://azzammuhyala.github.io/pyscript) or see on
|
|
53
|
+
To learn more about PyScript, you can see on [PyScript documentation here](https://azzammuhyala.github.io/pyscript) or
|
|
55
54
|
[PyScript repository](https://github.com/azzammuhyala/pyscript).
|
|
55
|
+
|
|
56
|
+
## Behind it
|
|
57
|
+
This language created from based up on a
|
|
58
|
+
[YouTube tutorial](https://www.youtube.com/playlist?list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD). At least, it takes
|
|
59
|
+
about 6 months to learn it, and also need to learn general things that exist in other programming languages.
|
|
@@ -5,7 +5,7 @@ with open('README.md', 'r', encoding='utf-8') as file:
|
|
|
5
5
|
|
|
6
6
|
setup(
|
|
7
7
|
name='pyscript-programming-language',
|
|
8
|
-
version='1.3.
|
|
8
|
+
version='1.3.1',
|
|
9
9
|
description='PyScript Programming Language',
|
|
10
10
|
long_description=long_description,
|
|
11
11
|
long_description_content_type='text/markdown',
|
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/__init__.py
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/__init__.pyi
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/bases.py
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/buffer.py
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/cache.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/lexer.py
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/nodes.py
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/results.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/symtab.py
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/token.py
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/core/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/clock.pys
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/getch.pys
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/jsdict.pys
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/parser.pys
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/sys.pys
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/lib/this.pys
RENAMED
|
File without changes
|
{pyscript_programming_language-1.3.0 → pyscript_programming_language-1.3.1}/pyscript/this.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|