# Formally#

Formally# is an online formal language designer.
You can check it out at formallysharp.azurewebsites.net

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

Updated: