Build wizardry
--------------

Th lexer:
- [ml/FStar_Parser_LexFStar.mll] (building F* via OCaml extraction)

The former bundles everything lexing-related into a single file.

The parser:

[parse.mly] written for menhir (enhanced version of ocamlyacc).

[parse.mly] is then used to produce :
- [ocaml-output/parse.mly] which is the ocamlyacc version of the parser for the ocaml-based F* compiler

This file is generated by [ocaml-output/Makefile] when a valid menhir
version is found, otherwise the build will fail.

If you want to modify the parser, you need a recent version of menhir (at least
december 2016). Also the printer in [src/parser/FStar.Parser.ToDocument.fs] should
be kept up to date with the parser as much as possible since it tries to keep
the same general structure as the parser.


If you're adding a new token, you need to edit:
- [src/parser/ml/FStar_Parser_LexFStar.ml] to add it to the parser keyword table (OCaml)
- [parse.mly] to expose it to the parser, possibly with an adequate precedence
