easycoder 250723.4__tar.gz → 250724.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 easycoder might be problematic. Click here for more details.
- {easycoder-250723.4 → easycoder-250724.1}/PKG-INFO +3 -2
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/__init__.py +1 -1
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_core.py +31 -75
- {easycoder-250723.4 → easycoder-250724.1}/.gitignore +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/LICENSE +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/README.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/backdrop.jpg +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/README.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/README.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/boolean.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/empty.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/ends.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/even.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/exists.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/greater.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/hasProperty.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/includes.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/is.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/less.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/list.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/none.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/not.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/numeric.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/object.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/odd.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/starts.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/conditions/string.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/add.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/append.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/assert.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/begin.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/clear.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/close.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/create.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/debug.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/decrement.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/delete.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/divide.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/exit.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/file.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/fork.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/get.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/go.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/gosub.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/if.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/import.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/increment.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/index.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/init.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/input.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/load.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/lock.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/log.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/module.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/multiply.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/negate.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/on.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/open.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/pop.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/post.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/print.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/push.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/put.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/read.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/release.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/replace.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/return.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/run.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/save.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/script.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/send.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/set.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/shuffle.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/split.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/stack.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/stop.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/system.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/take.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/toggle.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/truncate.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/unlock.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/use.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/variable.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/wait.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/while.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/keywords/write.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/arg.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/args.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/cos.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/datime.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/decode.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/element.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/elements.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/empty.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/encode.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/error.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/files.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/float.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/from.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/hash.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/index.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/integer.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/json.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/keys.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/left.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/length.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/lowercase.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/memory.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/modification.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/modulo.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/newline.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/now.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/position.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/property.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/random.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/right.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/sin.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/stringify.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/tab.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/tan.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/timestamp.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/today.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/trim.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/type.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/uppercase.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/value.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/core/values/weekday.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/README.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/attach.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/close.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/create.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/ellipse.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/image.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/move.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/on.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/rectangle.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/render.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/run.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/set.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/keywords/text.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/values/attribute.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/doc/graphics/values/window.md +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/close.png +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_classes.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_compiler.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_condition.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_handler.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_keyboard.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_program.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_pyside.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_timestamp.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/easycoder/ec_value.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/images/Semoigo Dawn.jpg +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/json/graphics-demo.json +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/plugins/ec_keyboard.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/plugins/ec_p100.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/plugins/ec_pyside6.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/plugins/points.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/plugins/sql.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/pyproject.toml +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/scripts/benchmark.ecs +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/scripts/config.ecg +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/scripts/ec_keyboard.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/scripts/findxr.ecs +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/scripts/fizzbuzz.ecs +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/scripts/hello.ecs +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/scripts/points.ecs +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/scripts/test.ecs +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/scripts/tests.ecs +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/test.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/testrc.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/testsql.py +0 -0
- {easycoder-250723.4 → easycoder-250724.1}/testui.py +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: easycoder
|
|
3
|
-
Version:
|
|
3
|
+
Version: 250724.1
|
|
4
4
|
Summary: Rapid scripting in English
|
|
5
5
|
Keywords: compiler,scripting,prototyping,programming,coding,python,low code,hypertalk,computer language,learn to code
|
|
6
6
|
Author-email: Graham Trott <gtanyware@gmail.com>
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
License-File: LICENSE
|
|
9
10
|
Requires-Dist: pytz
|
|
10
11
|
Requires-Dist: requests
|
|
11
12
|
Requires-Dist: psutil
|
|
@@ -17,6 +17,26 @@ class Core(Handler):
|
|
|
17
17
|
|
|
18
18
|
def noSymbolWarning(self):
|
|
19
19
|
self.warning(f'Symbol "{self.getToken()}" not found')
|
|
20
|
+
|
|
21
|
+
def processOr(self, command, orHere):
|
|
22
|
+
self.add(command)
|
|
23
|
+
if self.peek() == 'or':
|
|
24
|
+
self.nextToken()
|
|
25
|
+
self.nextToken()
|
|
26
|
+
# Add a 'goto' to skip the 'or'
|
|
27
|
+
cmd = {}
|
|
28
|
+
cmd['lino'] = command['lino']
|
|
29
|
+
cmd['domain'] = 'core'
|
|
30
|
+
cmd['keyword'] = 'gotoPC'
|
|
31
|
+
cmd['goto'] = 0
|
|
32
|
+
cmd['debug'] = False
|
|
33
|
+
skip = self.getPC()
|
|
34
|
+
self.add(cmd)
|
|
35
|
+
# Process the 'or'
|
|
36
|
+
self.getCommandAt(orHere)['or'] = self.getPC()
|
|
37
|
+
self.compileOne()
|
|
38
|
+
# Fixup the skip
|
|
39
|
+
self.getCommandAt(skip)['goto'] = self.getPC()
|
|
20
40
|
|
|
21
41
|
#############################################################################
|
|
22
42
|
# Keyword handlers
|
|
@@ -453,24 +473,7 @@ class Core(Handler):
|
|
|
453
473
|
timeout['type'] = 'int'
|
|
454
474
|
timeout['content'] = 5
|
|
455
475
|
command['timeout'] = timeout
|
|
456
|
-
self.
|
|
457
|
-
if self.peek() == 'or':
|
|
458
|
-
self.nextToken()
|
|
459
|
-
self.nextToken()
|
|
460
|
-
# Add a 'goto' to skip the 'or'
|
|
461
|
-
cmd = {}
|
|
462
|
-
cmd['lino'] = command['lino']
|
|
463
|
-
cmd['domain'] = 'core'
|
|
464
|
-
cmd['keyword'] = 'gotoPC'
|
|
465
|
-
cmd['goto'] = 0
|
|
466
|
-
cmd['debug'] = False
|
|
467
|
-
skip = self.getPC()
|
|
468
|
-
self.add(cmd)
|
|
469
|
-
# Process the 'or'
|
|
470
|
-
self.getCommandAt(get)['or'] = self.getPC()
|
|
471
|
-
self.compileOne()
|
|
472
|
-
# Fixup the skip
|
|
473
|
-
self.getCommandAt(skip)['goto'] = self.getPC()
|
|
476
|
+
self.processOr(command, get)
|
|
474
477
|
return True
|
|
475
478
|
return False
|
|
476
479
|
|
|
@@ -751,24 +754,7 @@ class Core(Handler):
|
|
|
751
754
|
command['file'] = self.getValue()
|
|
752
755
|
command['or'] = None
|
|
753
756
|
load = self.getPC()
|
|
754
|
-
self.
|
|
755
|
-
if self.peek() == 'or':
|
|
756
|
-
self.nextToken()
|
|
757
|
-
self.nextToken()
|
|
758
|
-
# Add a 'goto' to skip the 'or'
|
|
759
|
-
cmd = {}
|
|
760
|
-
cmd['lino'] = command['lino']
|
|
761
|
-
cmd['domain'] = 'core'
|
|
762
|
-
cmd['keyword'] = 'gotoPC'
|
|
763
|
-
cmd['goto'] = 0
|
|
764
|
-
cmd['debug'] = False
|
|
765
|
-
skip = self.getPC()
|
|
766
|
-
self.add(cmd)
|
|
767
|
-
# Process the 'or'
|
|
768
|
-
self.getCommandAt(load)['or'] = self.getPC()
|
|
769
|
-
self.compileOne()
|
|
770
|
-
# Fixup the skip
|
|
771
|
-
self.getCommandAt(skip)['goto'] = self.getPC()
|
|
757
|
+
self.processOr(command, load)
|
|
772
758
|
return True
|
|
773
759
|
else:
|
|
774
760
|
FatalError(self.compiler, f'I don\'t understand \'{self.getToken()}\'')
|
|
@@ -1023,24 +1009,7 @@ class Core(Handler):
|
|
|
1023
1009
|
command['result'] = None
|
|
1024
1010
|
command['or'] = None
|
|
1025
1011
|
post = self.getPC()
|
|
1026
|
-
self.
|
|
1027
|
-
if self.peek() == 'or':
|
|
1028
|
-
self.nextToken()
|
|
1029
|
-
self.nextToken()
|
|
1030
|
-
# Add a 'goto' to skip the 'or'
|
|
1031
|
-
cmd = {}
|
|
1032
|
-
cmd['lino'] = command['lino']
|
|
1033
|
-
cmd['domain'] = 'core'
|
|
1034
|
-
cmd['keyword'] = 'gotoPC'
|
|
1035
|
-
cmd['goto'] = 0
|
|
1036
|
-
cmd['debug'] = False
|
|
1037
|
-
skip = self.getPC()
|
|
1038
|
-
self.add(cmd)
|
|
1039
|
-
# Process the 'or'
|
|
1040
|
-
self.getCommandAt(post)['or'] = self.getPC()
|
|
1041
|
-
self.compileOne()
|
|
1042
|
-
# Fixup the skip
|
|
1043
|
-
self.getCommandAt(skip)['goto'] = self.getPC()
|
|
1012
|
+
self.processOr(command, post)
|
|
1044
1013
|
return True
|
|
1045
1014
|
|
|
1046
1015
|
def r_post(self, command):
|
|
@@ -1137,7 +1106,8 @@ class Core(Handler):
|
|
|
1137
1106
|
if 'hasValue' in symbolRecord and symbolRecord['hasValue'] == False:
|
|
1138
1107
|
FatalError(self.compiler, f'Symbol {symbolRecord["name"]} is not a value holder')
|
|
1139
1108
|
else:
|
|
1140
|
-
|
|
1109
|
+
command['or'] = None
|
|
1110
|
+
self.processOr(command, self.getPC())
|
|
1141
1111
|
return True
|
|
1142
1112
|
else:
|
|
1143
1113
|
FatalError(self.compiler, f'Symbol {self.getToken()} is not a variable')
|
|
@@ -1146,7 +1116,10 @@ class Core(Handler):
|
|
|
1146
1116
|
def r_put(self, command):
|
|
1147
1117
|
value = self.evaluate(command['value'])
|
|
1148
1118
|
if value == None:
|
|
1149
|
-
|
|
1119
|
+
if command['or'] != None:
|
|
1120
|
+
return command['or']
|
|
1121
|
+
else:
|
|
1122
|
+
RuntimeError(self.program, f'Error: could not compute value')
|
|
1150
1123
|
symbolRecord = self.getVariable(command['target'])
|
|
1151
1124
|
if not symbolRecord['hasValue']:
|
|
1152
1125
|
NoValueRuntimeError(self.program, symbolRecord)
|
|
@@ -1303,24 +1276,7 @@ class Core(Handler):
|
|
|
1303
1276
|
command['file'] = self.getValue()
|
|
1304
1277
|
command['or'] = None
|
|
1305
1278
|
save = self.getPC()
|
|
1306
|
-
self.
|
|
1307
|
-
if self.peek() == 'or':
|
|
1308
|
-
self.nextToken()
|
|
1309
|
-
self.nextToken()
|
|
1310
|
-
# Add a 'goto' to skip the 'or'
|
|
1311
|
-
cmd = {}
|
|
1312
|
-
cmd['lino'] = command['lino']
|
|
1313
|
-
cmd['domain'] = 'core'
|
|
1314
|
-
cmd['keyword'] = 'gotoPC'
|
|
1315
|
-
cmd['goto'] = 0
|
|
1316
|
-
cmd['debug'] = False
|
|
1317
|
-
skip = self.getPC()
|
|
1318
|
-
self.add(cmd)
|
|
1319
|
-
# Process the 'or'
|
|
1320
|
-
self.getCommandAt(save)['or'] = self.getPC()
|
|
1321
|
-
self.compileOne()
|
|
1322
|
-
# Fixup the skip
|
|
1323
|
-
self.getCommandAt(skip)['goto'] = self.getPC()
|
|
1279
|
+
self.processOr(command, save)
|
|
1324
1280
|
return True
|
|
1325
1281
|
|
|
1326
1282
|
def r_save(self, command):
|
|
@@ -2396,7 +2352,7 @@ class Core(Handler):
|
|
|
2396
2352
|
try:
|
|
2397
2353
|
value['content'] = json.loads(item)
|
|
2398
2354
|
except:
|
|
2399
|
-
|
|
2355
|
+
value = None
|
|
2400
2356
|
return value
|
|
2401
2357
|
|
|
2402
2358
|
def v_keys(self, v):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|