A interpreter for celeref programming language
Project description
celeref-lang
A versatile interpreter in python to execute programs written in JSON.
Installation
First you need to install python 3. Now you can install the package via pip:
$ python -m pip install --user -U celeref-lang
# In linux, you might have to use `python3` instead.
# Make sure to check `python --version` first.
Test if it is installed successfully:
$ celeref
# It should print a help message
$ celeref --version
# It should print the installed version
If it says celeref is not found, follow this help:
Writing your first program
You need a code-editor that supports intellisense for JSON schema. My preference is Visual Studio Code.
- Create a JSON file in Visual Studio Code
- Add the schema path located in
src/schemafolder. See examples inexamplesfolder for help.
With schema defined, editor will catch schema errors and auto-suggest available expressions.
Here is a sample program written in celeref-lang:
{
"$schema": "https://raw.githubusercontent.com/dipu-bd/celeref-lang/master/src/schema/schema.json",
"name": "Hello World",
"program": [
{
"state": "Hello World"
},
{
"print": "state"
}
]
}
Save the program to hello-world.json file, and run it using:
$ celeref hello-world.json
----------
Hello World
------ 0.000 seconds ------
Building from source
You need Python 3 to execute this script.
- Clone the repository first
- Create a new virtual environment
python -m venv venv
- Activate it;
- In Windows:
venv\Scripts\activate - In Linux:
venv/bin/activate - In MacOS:
venv/bin/activate
- In Windows:
- Now install dependencies:
pip install -U wheel pippip install -r requirements.txt
- Now to run the script:
python src <path/to/your-source.json>
E.g. To run the hello-world.json example:
$ python src examples/hello-world.json
Hello World
Documentation
This project in under development. APIs are subjected to change in future. Documentation is further away. Follow schema descriptions for basic documentation for now.
To note a few basic things:
-
stateis a very important variable in this program. After executing a statement, the result is always stored in state first. -
After program has finished running the final value of
statewill be the result. -
To pass and array or objects as arguments to
callmethod, you can use{ "state": <your array or object> }. -
To display a list of all available functions:
$ celeref -s
- To search for specific functions, pass a query after
-s:
$ celeref -s mod
----- [divmod] -----
Return the tuple (x//y, x%y). Invariant: div*y + mod == x.
----- [math.fmod] -----
Return fmod(x, y), according to platform C.
x % y may differ.
----- [math.modf] -----
Return the fractional and integer parts of x.
Both results carry the sign of x and are floats.
----- [op.mod] -----
mod(a, b) -> number
Same as `a % b`
Find the modulus of two numbers
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file celeref_lang-0.0.7-py3-none-any.whl.
File metadata
- Download URL: celeref_lang-0.0.7-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.1 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7af36e6037d48d9489fff212562c358a0545f32b53a2124277968fdb9337819
|
|
| MD5 |
2b8191b73a8b5b274a20a12699d02d02
|
|
| BLAKE2b-256 |
c7b41434f3d6c40399da5f6ea75522543f4ac3f22e5f2dd3aab28078f8c14c7e
|