An open API service indexing awesome lists of open source software.

https://github.com/douira/parenthis-lang

(parenthis) is an esoteric programming language
https://github.com/douira/parenthis-lang

compiler esoteric-language interpreter programming-language

Last synced: 11 months ago
JSON representation

(parenthis) is an esoteric programming language

Awesome Lists containing this project

README

          

# (parenthis)

The **(parenthis)** esoteric programming language consists of a very uniform syntax. It was created by me (douira). This project is the interpreter for it.

I've written about it (under the previous name SUL, rename pending) on the Esolang wiki [here](https://esolangs.org/wiki/SUL).

### Version history

- **SUL v1**: Earlier implementation in Processing
- **SUL v2**: Basic implementation in JavaScript in [this KhanAcademy project](https://www.khanacademy.org/computer-programming/sul-v2-an-esoteric-programming-language/4555641989431296). See files in the folder `old`.
- **parenthis v3**: (WIP) Better implementation in TypeScript without processing.js

# Language

See more docs in the (WIP) [wiki](https://github.com/douira/parenthis-lang/wiki/Language-and-API-Documentation).

## Formal Grammar in EBNF

```ebnf
(* a parenthis program consists of a single expression *)
expression = between , ( element | string ) , between ;

(* elements are an identifier and then any number of expressions *)
element = "(" , identifier , { "," , expression } , ")";

(* consists of any number of segments separated by periods *)
identifier = between , identifier segment ,
{ "." , identifier segment } , between ;

(* use lowerCamelCase for function names *)
identifier segment = { a to z | A to Z | 0 to 9 } ;

(* double or single quotes, not listing all possible chars here. \\ is escaped to \, \\" to \\ + (end of string) and \\\" to \".
regex equivalent for double quoted: /'(.*?)(?