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

Screenshots

tablet_blue_theme

poly

calc

first_first

first_follow

Updated: