Pre-release
This release is a pre-release and may not be stable for production use.
Peri.dot (Pre-06)
Peri.dot is a strongly typed interpreted language, with type inference, implemented in Python. The file extension is ".peri"
Setup
This project uses poetry for dependency management.
git clone https://github.com/toto-bird/Peri.dot.git
cd Peri.dot
poetry install
Usage
python peridot file.peri
Documentation
Running Unit Tests
Unit tests expect pytest. (pip install pytest)
From the top level directory pytest
Current Features
- Basic REPL
- Types:
- Null/None:
Null - Numbers:
Int,Float - Strings:
Str - Arrays:
Array - Tuples:
Tuple - Dictionaries:
Dict - Booleans:
Bool - Functions:
Function - Built-in functions:
Built-In Function - Exceptions:
Exception - Ids:
Id - Namespaces:
Namespace
- Null/None:
- Types must be explicitely cast:
1 + 1->21 + 1.0->OperationError('Float can not be added to Int')
- Including other files:
var operations = include('./operations.peri') - Variables:
- Creation/Initialization:
var x = 2 - Assignment:
x = 5 - Accessing:
x
- Creation/Initialization:
- Arithmetic:
- Addition:
1 + 2 - Subtraction:
5 - 1 - Multiplication:
10 * 2 - Division:
25 / 5 - Exponents:
2 ^ 3
- Addition:
- Global comparisons:
- Equals:
== - Not Equals:
!=
- Equals:
- Numeric comparisons:
- Greater than:
> - Less than:
< - Greater than or equal to:
>= - Less than or equal to
<=
- Greater than:
- Boolean operations:
and,orandnot - Functions:
- Creation:
var add = func(a, b) {a + b} - Calling:
add(2, 6)
- Creation:
- Built-In Functions:
- Printing to console:
print('Hello World!') - Testing:
assert(x == 10, 'x is not 10')
- Printing to console:
- Exception handler:
var x = handler {10 / 0} - Assert / in-peri.dot testing:
assert(x == 9, 'x is not equal to 9') - Flow control:
- If statements:
if (x == 1) {var y = 3} elif (x == 2) {var y = 2} else {var y = 1} - Switch statements:
switch (var x in a) {case (x == 10) {print('10')} else {print('Hmm...')}} - For loops:
for (var i in [True, True, False]) {print(i)} - While loops:
while (x < 100) {x = x + 1}
- If statements:
Coming Soon
- Improved repl
- Classes for general use:
var Test = class() {a = 'hello'}
Possible Features
- Formatted strings
'Hello World{suffix}' - More operations:
- Add and assign
+= - Subtract and assign
-=etc.
- Add and assign
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
peridot-6rc0.tar.gz
(37.6 kB
view details)
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
peridot-6rc0-py3-none-any.whl
(42.1 kB
view details)
File details
Details for the file peridot-6rc0.tar.gz.
File metadata
- Download URL: peridot-6rc0.tar.gz
- Upload date:
- Size: 37.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/1.0.10 CPython/3.8.5 Linux/5.7.14-1-ck-piledriver
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56414a103e40a87ed35d9ae4f417fbbe809f6ba7118caa4a261fdca8bf6640d4
|
|
| MD5 |
544fab0bc68580343944efbb3f28b9bf
|
|
| BLAKE2b-256 |
e0a6cf0527f48a1ece6b0e0cf25c474251c4deb1f5031e02a7a2b38a6c9b5469
|
File details
Details for the file peridot-6rc0-py3-none-any.whl.
File metadata
- Download URL: peridot-6rc0-py3-none-any.whl
- Upload date:
- Size: 42.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/1.0.10 CPython/3.8.5 Linux/5.7.14-1-ck-piledriver
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b602b858dc76c3b32117d741fae9e943c8bd25bdc22d6527dfd240018e061850
|
|
| MD5 |
a0c781de25f32595aa4d538ea908fd3b
|
|
| BLAKE2b-256 |
c73ed1d5fc64c02c407a95944e18ff2c3b504d226df683747bf88b5b6754702c
|