abstract:item type="item" {
size 0.2 1 3
model "madel/cube.obj"
texture "texture/missing.png"
material "material/missing.mtl"
pointlessProp "i am prop"
transform {
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
}
glow on
}
override abstract:item {
override model "model/cube.obj"
}
override abstract:item {
delete pointlessProp
}
armor inherit=abstract:item type="pickup" interactable
Based on SDLang and partially KDL out of need for new features.
JSL takes SDLang's base specification and adds on top of it without loosing support for most of files used, while at the same time drawing inspiration from KDL's features, like /-
comments and allowing comments after line escaping with \
.
New features added by JSL (might not be exhaustive list):
- spec Automatic truthfulness of properties (
node property
=node property=true
). - spec Automatic falseness of properties (
node !property
=node property=false
). - spec Literal strings (
node prop=literal:string
=node prop="literal:string"
). - spec More escape sequences (contains all escapes supported by D).
- spec Node
/-
comments. - spec Comments after line break with
\
are allowed (even in strings). - spec Nesting multiline comments with
/+ comment +/
(/* comment */
comments are not nesting). - spec New date/time types (including ISO standard).
- spec Exponential numbers.
Since JSL is based on both SDLang and KDL v1, which is itself based on SDLang, JSL can be partially used with any of SDLang's or KDL's tooling.
For now there will be lists of forks of SDLang's and KDL's implementations and editor support with indication from which language it came from. Please note that since JSL is intended to be compatible with SDLang, SDLang's tooling is more preferred, until there are more "native" JSL implementations.
TLDR:
- Everything under
Forks
might not parse JSL files. SDLang
based forks will parse JSL better.- There are more
KDL
based forks, but they support way less features.
WIP
SDLang based:
KDL based:
- c
- ruby
- Go
- crystal
- dart
- swift
- lua
- Rust
- ocaml
- java
- elixir
- Python
- nim
- javascript
- php
- lisp
- dotnet
- haskell
SDLang based:
KDL based:
It's just something that was available, there's no meaning behind it.
See next answer.
KDL is a very good and very supported language, but it made too many modifications to original SDLang specification.
SDLang, however, is very fitting for almost any needs, but! There are certain features that SDLang is missing because of strictness it decided to enforce. JSL simplifies some of those features and adds new ones.
For new features that JSL adds see the design part of readme.
JSL is a just an extension to SDLang and JSL tools will be able to be used with SDLang without any problem.
Not flexible enough.
Not intended for humans.
It's great, but it has same problems as good old INI.
Have you ever seen HTML files?
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
This license applies to the text and assets in this repository. Implementations of this specification are not "derivative works", and thus are not bound by the restrictions of CC-BY-SA.