Initial commit

This commit is contained in:
avitex 2018-12-18 22:37:31 +11:00
commit 894d342115
Signed by: avitex
GPG Key ID: 38C76CBF3749D62C
3 changed files with 116 additions and 0 deletions

9
deterministic.md Normal file
View File

@ -0,0 +1,9 @@
# Deterministic
- No comments
- No whitespace
- No multiline text
- No reals in form 3
- No trailing commas
- Dict keys ordered byte wise
- Natural numbers with more than two trailing zero characters use real form 2

35
examples/basic.sehn Normal file
View File

@ -0,0 +1,35 @@
{
"foo": "bar",
"pi5": 3.1415,
"flag": false,
"googol": 1e100,
"items": [
"one",
"two"
],
"person": {
"name": "John Doe",
"age": 42,
"social": [
# User extended types
Github/user("johndoe")
],
"bio": [`
"Lorem ipsum dolor sit amet, consectetur adipiscing elit."
" Phasellus at velit ultricies, luctus dolor eu, rhoncus elit."
" Nulla pulvinar pretium enim non tincidunt. Duis nec malesuada"
" ante. Maecenas semper congue vehicula. Vestibulum in libero in"
" lacus porta tristique."
`, `
"Lorem ipsum dolor sit amet, consectetur adipiscing elit."
" Phasellus at velit ultricies, luctus dolor eu, rhoncus elit."
" Nulla pulvinar pretium enim non tincidunt. Duis nec malesuada"
" ante. Maecenas semper congue vehicula. Vestibulum in libero in"
" lacus porta tristique."
`]
},
"payload": enc/b64(`
"KJLSUI876IJSO9Yslo8SILUDkuyd89SO9JDSiuh98ASO9Us09ISO"
"JK9F0LKI9ko8udsff9oih23klj9OIJH0ij099OIUOjFFFKj8D==="
`)
}

72
index.md Normal file
View File

@ -0,0 +1,72 @@
# Simple Extensible Human Notation (.sehn)
## Base Kinds
| name | description |
| ------ | -------------------------- |
| `none` | Represents nothing |
| `bool` | Represents a boolean value |
| `real` | Represents a real number |
| `text` | Represents text |
| `dict` | A key-value structure |
| `list` | A collection structure |
| `kind` | A reflective kind |
### `none`
A `none` represents the absence of any value.
### `bool`
1. `true`
2. `false`
### `real`
1. `<int>`
2. `<sig>e<exp>`
3. `<int>.<frac>`
| part | allowed value |
| ------ | --------------- |
| `int` | `-?[1-9][0-9]*` |
| `frac` | `[0-9]*` |
| `sig` | `<int>` |
| `exp` | `<int>` |
### `text`
1. `"<text>"`
2. Multiline:
```
`
"<text>"
"<text>"
`
```
A `text` value holds low and behold, text.
### `dict`
1. `{"<text>": <any>, ...}`
A dictionary is a structure with `text` keys mapping to any value.
### `list`
1. `[<any>, ...]`
A list is a structure with a sequence of any value.
### `kind`
1. `<base-kind>`
2. `<standard-kind>`
2. `<app-kind>`
| kind | allowed value |
| ----------------- | ------------------------------------------ |
| `<base-kind>` | `none\|bool\|real\|text\|dict\|list\|kind` |
| `<standard-kind>` | `(?!(<base-kind>))[a-z][a-z0-9/]*` |
| `<app-kind>` | `[A-Z][a-zA-Z0-9\]*` |