Step by step guide to getting FsYacc and FsLex for development on OS X.
- 2017-01-09: Updated guide to reflect latest version of FsLexYacc (7.0.3)
- 2016: Created
By doing one of these:
- Recommended1: Via mono-project.com
- With homebrew (in the terminal):
brew install mono
Download nuget.exe to ~/fsharp
.
Copy paste into a terminal:
cd ~/fsharp # move to the ~/fsharp directory
mono nuget.exe install FsLexYacc # install fslexyacc with nuget
ls # list which files are in the current directory
# Should output something like:
# FsLexYacc.7.0.3/ FsLexYacc.Runtime.7.0.3/ FSharp.Core.3.1.2.5/ nuget.exe
Copy paste into a terminal:
cd /usr/local/bin
echo -e '#!/bin/bash\nmono /Users/'$USER'/fsharp/FsLexYacc.7.0.3/build/fslex.exe $*' > fslex
echo -e '#!/bin/bash\nmono /Users/'$USER'/fsharp/FsLexYacc.7.0.3/build/fsyacc.exe $*' > fsyacc
chmod a+x fslex fsyacc
The FsLexYacc.Runtime.dll
file needs to be referred to when lexing
and compiling your language,
# link the Runtime to your ~/fsharp folder (once):
ln -s "~/fsharp/FsLexYacc.Runtime.7.0.3/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid10+MonoTouch10/FsLexYacc.Runtime.dll" ~/fsharp
# then henceforth, you can use the following from your project directory
# (referring to the link you just made):
fsharpi -r ~/fsharp/FsLexYacc.Runtime.dll Absyn.fs FunPar.fs FunLex.fs Parse.fs
You should now totally have FsLexYacc on your OS X computer, ready to create awesome languages and compilers!
- When building from Homebrew, the Mono runtime gets odd parameters which sets tail-call optimizations to disabled for some reason, avoid this by using the downloadable installer from mono-project.
Ok so Hi from 2021, and anyone using this text book http://www.itu.dk/people/sestoft/plc/
So Updated info.
There are no .exe files, they are .dll now.
Your version of FsLex may differ so replace FsLexYacc.10.2.0 with your version FsLexYacc.X.X.X
Also you will need to replace the “Microsoft.FSharp.Text.Lexing” with “FSharp.Text.Lexing”
ack "Microsoft.FSharp.Text"