https://github.com/crazypython/gildedtrail
A language for building simple web apps and domain-specific languages
https://github.com/crazypython/gildedtrail
domain-specific-language dsl guidedtrack low-code no-code parser
Last synced: 2 months ago
JSON representation
A language for building simple web apps and domain-specific languages
- Host: GitHub
- URL: https://github.com/crazypython/gildedtrail
- Owner: CrazyPython
- License: lgpl-3.0
- Created: 2021-03-17T17:34:10.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-03-30T23:32:48.000Z (about 4 years ago)
- Last Synced: 2024-12-26T21:42:31.518Z (4 months ago)
- Topics: domain-specific-language, dsl, guidedtrack, low-code, no-code, parser
- Language: JavaScript
- Homepage:
- Size: 27.3 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GildedTrail v0.0.3
A metalanguage for defining configurations for building simple applications and a syntax parser for domain-specific languagesA starting point for building an open-source GuidedTrack alernative.
Example code:
```
Theme maker
*question: What color should the player's own color be?
*type: color
*question: Do you want to apply the theme now?
Apply the theme now
Let's go then
Save it under a name
*goto save_under_name
```Lexed and parsed:
```json
[
{
"text": "Theme maker",
"children": [
{
"ident": "question",
"data": "What color should the player's own color be?",
"children": [
{
"ident": "type",
"data": "color",
"children": []
}
]
},
{
"ident": "question",
"data": "Do you want to apply the theme now?",
"children": [
{
"text": "Apply the theme now",
"children": [
{
"text": "Let's go then",
"children": []
}
]
},
{
"text": "Save it under a name",
"children": [
{
"ident": "goto",
"children": []
}
]
}
]
}
]
},
{
"text": "",
"children": []
},
{
"text": "",
"children": []
}
]
```Lexes and parses [GuidedTrack](https://www.guidedtrack.com/) syntax
### Documentation
`node instanceof Keyword` - check if a node is a keyword`node instanceof TextNode` - check if a node is a text node
## License
parser.js: LGPLv3 or any later version accepted by proxy Richard Stallman..settings-dsl.js: AGPLv3 or any later version accepted by proxy Richard Stallman.
If you are building an open-source GuidedTrack alternative or reimplementation, I reccomend you license under AGPLv3 to protect user rights and prevent GuidedTrack from stealing your code. GuidedTrack generates its code on the server-side, so without the AGPLv3, they could use your software to make a proprietary version.