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