easycoder 250424.3__tar.gz → 250504.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-250424.3 → easycoder-250504.1}/PKG-INFO +12 -10
- {easycoder-250424.3 → easycoder-250504.1}/README.md +9 -8
- easycoder-250504.1/config.ecs +1356 -0
- easycoder-250504.1/demo.ecs +34 -0
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/__init__.py +1 -1
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_compiler.py +14 -4
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_core.py +61 -43
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_handler.py +1 -0
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_program.py +1 -1
- easycoder-250424.3/easycoder/ec_pyside6.py → easycoder-250504.1/easycoder/ec_pyside.py +320 -119
- easycoder-250504.1/temp.ecs +1330 -0
- easycoder-250504.1/test.ecs +13 -0
- easycoder-250504.1/test.py +3 -0
- easycoder-250424.3/config.ecs +0 -378
- easycoder-250424.3/test.ecg +0 -17
- easycoder-250424.3/test.ecs +0 -119
- easycoder-250424.3/test.json +0 -1
- easycoder-250424.3/test.py +0 -52
- {easycoder-250424.3 → easycoder-250504.1}/.gitignore +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/LICENSE +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/config.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/README.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/README.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/boolean.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/empty.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/ends.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/even.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/exists.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/greater.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/hasProperty.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/includes.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/is.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/less.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/list.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/none.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/not.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/numeric.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/object.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/odd.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/starts.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/conditions/string.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/add.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/append.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/assert.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/begin.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/clear.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/close.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/create.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/debug.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/decrement.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/delete.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/divide.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/exit.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/file.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/fork.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/get.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/go.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/gosub.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/if.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/import.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/increment.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/index.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/init.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/input.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/load.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/lock.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/log.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/module.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/multiply.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/negate.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/open.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/pop.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/post.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/print.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/push.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/put.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/read.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/release.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/replace.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/return.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/run.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/save.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/script.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/set.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/split.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/stack.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/stop.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/system.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/take.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/toggle.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/truncate.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/unlock.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/variable.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/wait.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/while.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/keywords/write.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/arg.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/args.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/cos.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/datime.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/decode.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/element.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/elements.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/empty.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/encode.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/error.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/files.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/float.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/from.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/hash.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/index.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/integer.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/json.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/keys.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/left.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/length.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/lowercase.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/memory.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/modification.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/modulo.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/newline.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/now.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/position.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/property.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/random.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/right.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/sin.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/stringify.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/tab.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/tan.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/timestamp.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/today.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/trim.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/type.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/uppercase.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/value.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/core/values/weekday.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/README.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/attach.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/close.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/create.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/ellipse.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/image.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/move.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/on.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/rectangle.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/render.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/run.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/set.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/keywords/text.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/values/attribute.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/doc/graphics/values/window.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/README.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_classes.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_condition.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_graphics.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_gutils.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_timestamp.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/easycoder/ec_value.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/group.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/images/Semoigo Dawn.jpg +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/json/graphics-demo.json +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/ec_keyboard.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/ec_p100.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/ec_pyside6.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/4-function.json +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/4-function.png +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/qwerty-0.json +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/qwerty-0.png +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/qwerty-1.json +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/qwerty-1.png +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/qwerty-2.json +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/qwerty-2.png +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/qwerty-3.json +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/keyboards/qwerty-3.png +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/plugins/points.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/pyproject.toml +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/README.md +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/benchmark.ecs +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/config.ecg +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/connect.ecg +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/ec_keyboard.py +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/findxr.ecs +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/fizzbuzz.ecs +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/hello.ecs +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/points.ecs +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/test.ecs +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/testg.ecg +0 -0
- {easycoder-250424.3 → easycoder-250504.1}/scripts/tests.ecs +0 -0
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: easycoder
|
|
3
|
-
Version:
|
|
3
|
+
Version: 250504.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: pyside6
|
|
11
12
|
Project-URL: Home, https://github.com/easycoder/easycoder-py
|
|
12
13
|
|
|
13
14
|
# Introduction
|
|
14
|
-
**_EasyCoder_** is a high-level English-like scripting language suited for prototyping and rapid testing of ideas. It operates on the command line and a graphics module is under construction. The language is written in Python and it acts as a fairly thin wrapper around standard Python functions, giving fast compilation and good runtime performance for general applications.
|
|
15
|
+
**_EasyCoder_** is a high-level English-like domain-specific scripting language (DSL) suited for prototyping and rapid testing of ideas. It operates on the command line and a graphics module is under construction. The language is written in Python and it acts as a fairly thin wrapper around standard Python functions, giving fast compilation and good runtime performance for general applications.
|
|
16
|
+
|
|
17
|
+
**_EasyCoder_** is well suited to building command-line or graphical applications for expressing random logic such as operating procedures and rules, or controlling physical systems, primarily wifi devices. It is particularly easy to construct and issue REST commands to local or remote web servers.
|
|
18
|
+
|
|
19
|
+
For more advanced applications, **_EasyCoder_** is designed to be extensible, by enabling extra language syntax to be added via plugin-in modules. Once these are installed they act as seamless extensions to the basic syntax provided. **_EasyCoder_** derives its power from the use of rich and comprehensive language rather than a complex system of frameworks such as those commonly used in modern programming. This makes it very easy to learn as our brains are wired to operate that way. Having said that, the needs of most control systems are usually served by a fairly modest number of keywords and syntactic variants.
|
|
15
20
|
<hr>
|
|
16
21
|
|
|
17
22
|
There is also a JavaScript version of **_EasyCoder_**, which provides a full set of graphical features to run in a browser. For this, please visit
|
|
@@ -23,15 +28,12 @@ Website: [https://easycoder.github.io](https://easycoder.github.io)
|
|
|
23
28
|
## Quick Start
|
|
24
29
|
Install **_EasyCoder_** in your Python environment:
|
|
25
30
|
```
|
|
26
|
-
pip install requests
|
|
31
|
+
pip install requests easycoder
|
|
27
32
|
```
|
|
28
33
|
|
|
29
34
|
Test the install by typing the command `easycoder`.
|
|
30
35
|
<hr>
|
|
31
|
-
On Linux, this will probably fail as the installer places the executable file in the `$HOME/.local/bin` directory. So give the command
|
|
32
|
-
```
|
|
33
|
-
export PATH=$HOME/.local/bin:$PATH
|
|
34
|
-
```
|
|
36
|
+
On Linux, this will probably fail as the installer places the executable file in the `$HOME/.local/bin` directory. So give the command `export PATH=$HOME/.local/bin:$PATH`.
|
|
35
37
|
|
|
36
38
|
To make this change permanent, edit your `.profile` file, adding the following:
|
|
37
39
|
```
|
|
@@ -42,7 +44,7 @@ fi
|
|
|
42
44
|
```
|
|
43
45
|
<hr>
|
|
44
46
|
|
|
45
|
-
Now write a test script,
|
|
47
|
+
Now write a test script, `hello.ecs`, containing the following:
|
|
46
48
|
```
|
|
47
49
|
print `Hello, world!`
|
|
48
50
|
exit
|
|
@@ -84,7 +86,7 @@ Here in the repository is a folder called `scripts` containing some sample scrip
|
|
|
84
86
|
`benchmark.ecs` allows the performance of **_EasyCoder_** to be compared to other languages if a similar script is written for each one.
|
|
85
87
|
|
|
86
88
|
## Graphical programming
|
|
87
|
-
**_EasyCoder_** includes a graphical programming environment based on PySide6, that is in
|
|
89
|
+
**_EasyCoder_** includes a graphical programming environment based on PySide6, that is in under development. Some demo scripts will be included in the `scripts` directory as development proceeds. Anyone wishing to track progress can do so via this repository. At the time of writing we are transitioning from an early version based on PySimpleGUI to one based on PySide, the latter being an open product that matches the needs of a DSL better than does the former.
|
|
88
90
|
|
|
89
91
|
## Significant features
|
|
90
92
|
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Introduction
|
|
2
|
-
**_EasyCoder_** is a high-level English-like scripting language suited for prototyping and rapid testing of ideas. It operates on the command line and a graphics module is under construction. The language is written in Python and it acts as a fairly thin wrapper around standard Python functions, giving fast compilation and good runtime performance for general applications.
|
|
2
|
+
**_EasyCoder_** is a high-level English-like domain-specific scripting language (DSL) suited for prototyping and rapid testing of ideas. It operates on the command line and a graphics module is under construction. The language is written in Python and it acts as a fairly thin wrapper around standard Python functions, giving fast compilation and good runtime performance for general applications.
|
|
3
|
+
|
|
4
|
+
**_EasyCoder_** is well suited to building command-line or graphical applications for expressing random logic such as operating procedures and rules, or controlling physical systems, primarily wifi devices. It is particularly easy to construct and issue REST commands to local or remote web servers.
|
|
5
|
+
|
|
6
|
+
For more advanced applications, **_EasyCoder_** is designed to be extensible, by enabling extra language syntax to be added via plugin-in modules. Once these are installed they act as seamless extensions to the basic syntax provided. **_EasyCoder_** derives its power from the use of rich and comprehensive language rather than a complex system of frameworks such as those commonly used in modern programming. This makes it very easy to learn as our brains are wired to operate that way. Having said that, the needs of most control systems are usually served by a fairly modest number of keywords and syntactic variants.
|
|
3
7
|
<hr>
|
|
4
8
|
|
|
5
9
|
There is also a JavaScript version of **_EasyCoder_**, which provides a full set of graphical features to run in a browser. For this, please visit
|
|
@@ -11,15 +15,12 @@ Website: [https://easycoder.github.io](https://easycoder.github.io)
|
|
|
11
15
|
## Quick Start
|
|
12
16
|
Install **_EasyCoder_** in your Python environment:
|
|
13
17
|
```
|
|
14
|
-
pip install requests
|
|
18
|
+
pip install requests easycoder
|
|
15
19
|
```
|
|
16
20
|
|
|
17
21
|
Test the install by typing the command `easycoder`.
|
|
18
22
|
<hr>
|
|
19
|
-
On Linux, this will probably fail as the installer places the executable file in the `$HOME/.local/bin` directory. So give the command
|
|
20
|
-
```
|
|
21
|
-
export PATH=$HOME/.local/bin:$PATH
|
|
22
|
-
```
|
|
23
|
+
On Linux, this will probably fail as the installer places the executable file in the `$HOME/.local/bin` directory. So give the command `export PATH=$HOME/.local/bin:$PATH`.
|
|
23
24
|
|
|
24
25
|
To make this change permanent, edit your `.profile` file, adding the following:
|
|
25
26
|
```
|
|
@@ -30,7 +31,7 @@ fi
|
|
|
30
31
|
```
|
|
31
32
|
<hr>
|
|
32
33
|
|
|
33
|
-
Now write a test script,
|
|
34
|
+
Now write a test script, `hello.ecs`, containing the following:
|
|
34
35
|
```
|
|
35
36
|
print `Hello, world!`
|
|
36
37
|
exit
|
|
@@ -72,7 +73,7 @@ Here in the repository is a folder called `scripts` containing some sample scrip
|
|
|
72
73
|
`benchmark.ecs` allows the performance of **_EasyCoder_** to be compared to other languages if a similar script is written for each one.
|
|
73
74
|
|
|
74
75
|
## Graphical programming
|
|
75
|
-
**_EasyCoder_** includes a graphical programming environment based on PySide6, that is in
|
|
76
|
+
**_EasyCoder_** includes a graphical programming environment based on PySide6, that is in under development. Some demo scripts will be included in the `scripts` directory as development proceeds. Anyone wishing to track progress can do so via this repository. At the time of writing we are transitioning from an early version based on PySimpleGUI to one based on PySide, the latter being an open product that matches the needs of a DSL better than does the former.
|
|
76
77
|
|
|
77
78
|
## Significant features
|
|
78
79
|
|