- Main : メインプログラム
- Copager2 : Copager2 本体
- ErrHandling : エラーハンドリング用ライブラリ
- Language : 言語定義ライブラリ
記述例(app/Main.hs)
main :: IO () main = do input <- getLine result <- runProcessor mkProcessor input case result of Left err -> putStrLn $ "error: " ++ show err Right sexp -> fmtPrint sexp mkProcessor :: ProcessorT IO ArithmeticToken ArithmeticRule () (SExp _ _) mkProcessor = ProcessorT setup process where setup _ = (mkSLR1 Addition, empty) process = do token <- lex events <- parse token consume events$ cabal run main (10 + 20) * 30 - Addition - Multiplication - Multiplication - Number - Addition - Addition - Multiplication - Number: 10 - Multiplication - Number: 20 - Number: 30