Formally#
Formally# is an online formal language designer.
To get a feel for how to use it, open the example project, JSON
, and use the buttons to generate a lexer and a parser.
After that, you can start typing in the recognition box. Your input will be syntactically checked on the fly.
Features
This is a full-stack functional-style web application built using F# and the SAFE Stack. Source code is available on GitHub.
Notable features include:
- Full separation between lexical and syntactical definitions
- Conversion of regular expressions to DFAs
- Compilation of LL(1) grammars to table-based parsers
- Automatic detection of LL(1) conflicts
- Test acceptance of input strings on the fly
- Project persistency across (unauthenticated) sessions
To-do list:
- Automatic generation of random syntactically correct strings, which could be useful for testing purposes
- Enforce referential integrity across rules in the UI
- Visualize lexer FSMs and syntax diagrams