Coco/R for F#
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Coco.atg
Coco.cs
DFA.cs
Parser.cs
Parser.frame
ParserGen.cs
ParserOutput.cs
Parser_fsharp.frame
README.md
Scanner.cs
Scanner.frame
ScannerOutput.cs
Scanner_fsharp.frame
Tab.cs
build_cocoFsharp.bat
build_cocoFsharp.sh
coc.bat
coc.sh
license.txt

README.md

Coco/R for F#

If you've tried to use the official Coco/R F# port and found that it generates broken F# code, you've come to the right place.

Note: I didn't design Coco/R. All I did here is improve the F# code generator. For more information on the project as a whole, see http://www.ssw.uni-linz.ac.at/coco/

Features:

  • generates code that works with current F# compilers
  • no longer depends on F# powerpack for OCaml compatibility features
  • is somewhat faster than the official port since it uses System.IO directly instead of via a shim
  • has a slightly nicer interface for error reporting and I/O
  • includes build scripts for building on mono-based platforms

Misfeatures:

  • Like the official port, this generates code in "Verbose syntax" mode. This causes a compiler warning unless you build with --mlcompatibility.
  • All F# code embedded in your .atg file must be written in "Verbose syntax" mode.
  • The previous F# implementation was forked off from Coco/R quite a few years ago, and may not benefit from upstream fixes that have occurred since then.

Building:

On windows, ensure that 'csc' is in your PATH. Many people use a "Visual Studio Command Prompt" for this. On mac/linux, ensure that you've installed a recent version of mono and that mono-sgen is in your path.

  • git clone
  • run build_cocoFsharp.{bat|sh} depending on your platform.