Alex
2: Introduction
3
4
5
example
install
$ stack install alex
run
$ alex hoge.x
hoge.xに設定を書き、上のコマンドを実行するとhoge.hsが生成される
{}に囲まれた部分はそのまま.hsに出力する
%wrapper "basic"
よくわからんが基本的にはこれを書いとけば良いっぽい
$disitのように$hogeと書いたら正規表現のマクロになる
%tokens :=以下
code:x
tokens :-
$white+ ; // ;はこれにマッチしたものを無視することを意味する
let { \s -> Let } // {}内は普通のHaskell. letをLetトークンにする
AlexはalexScanTokens :: String -> [Token]という関数を提供する
これの{}の中身って何のために書いてるんだ #?? どこかで使うのか?