Comments (4)
@jimdowning do you have any use for the language in something like BNF?
from onlinewardleymaps.
@ChristianDavis To be honest, I've dropped off from participation and my time available for helping with dev has gone too. I don't think I ever sold the main contribs on the benefits of a grammar to the architecture. In my mind I imagined keeping the canonical runtime data structure in an AST, and being able to generate both the graphical map from that and roundtrip the text encoding of the map from it.
My hope was that this would mean that map alterations could be added simply as AST manipulations, without needing to worry about graphical form and text form alterations at the same time. It would also make it necessary that anything you can express in the graphical form could be expressed in the text form, which I think is needed so that maps can be fully versioned and managed in git without necessarily needing the back end system of OWM.
When I was looking at this, I was leaning towards nearley.js as it seemed a bit more accessible than e.g. ANTLR.
In a nutshell, I can't make use of a BNF grammar, but you're very welcome to pick up and carry the flag for a grammar in this project.
from onlinewardleymaps.
@jimdowning There would be benefits from it. I've never seen nearley.js, that could be a nice in-between step.
@damonsk has done a great job of getting his idea out there and getting it working. Essentially rolled his own scannerless parser and it seems to work well. I had the same initial plan of getting in and generating an AST, but I've changed my mind a bit. There is non-regular syntax in the language ATM that helps simplify things, and @damonsk's heuristic approach doesn't mind. It's funny because I think if the project had started with a formal approach, it would have ran into roadblocks when stuff got complicated and lost steam.
When I lay out the total scope of his intended features the language is almost complete as-is. I argue for starting some formal language work whenever there is interest (or a champion for it) and keep that committed to the repo, but prioritize finishing the features of the language. I like your nearley.js suggestion because it could potentially be worked right into the existing parser to streamline the work there.
I worked on a compiler for a long time and I know that the formal language route is rarely the easiest one 😆
from onlinewardleymaps.
Similar issues #167 #99 #82 #39 #11 on the topic of syntax.
There has been some conversations in the community to attempt to standardise this, however not sure on progress. As OWM is quite established, this would be a fundamental change to the tool and one that I'd want the community to have input on.
Wardley-Mapping-Foundation DSL work - https://github.com/Wardley-Mapping-Foundation/wmf-standards-dsl
from onlinewardleymaps.
Related Issues (20)
- Delete saved map HOT 2
- chatGPT plugin HOT 3
- Add styling to links and / or components, specifically colors
- Save to GitHub
- Links
- Annotation Numbers
- Annotation Numbers HOT 2
- JSON Export for Wardley Map
- Description for elements in the map (component, market, pipeline
- Update WM format to be TOML Compliant
- A -> B ; text An optional operator
- Y-axis not working anymore HOT 1
- Missing dependencies HOT 6
- Enable double click to edit component names.
- Label coordinates: multiple coordinate systems
- Introducing the social good space and the common good space in the background map HOT 2
- Using the last vscode extension resulted in a error
- Vscode extension labels change when dragging them HOT 2
- Slash in component name breaks syntax highlighting for relationships
- Ability to set the map size
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from onlinewardleymaps.