グルー言語を作る作業を少し進めた
Sat Feb 22 14:03:33 JST 2014 (modified: Fri Sep 29 21:38:45 JST 2017)
views: 1719, keywords:プログラミング,Haskell,愚痴,グルー言語,グルー言語を作る この記事は最終更新日が7年以上前のものです。
留守番で子供を背負ってどん兵衛を立ち食いという悲惨な昼飯を執行した上田です。背中の子供が寝ているうちに例の言語の作業を進めました。このエントリーは、子供と添い寝しながらiPhoneで書いています。いったいなんなんでしょう?
留守番で子供を背負ってどん兵衛を食べた上田です。背中の子供が寝ているうちに例の言語の作業を進めました。
これは、子供と添い寝しながらiPhoneで書いています。いったいなんなんでしょう?
とりあえずコードを掃除してテストを一つ作ってmasterブランチにマージしたくらいでたいしたことはしてません。
https://github.com/ryuichiueda/GlueLang?files=1
今のところ、コードの本体は新言語をbashに変換するものですが、作ったbashを変換プログラムから直接起動することを試みた残骸がlangToBash.hsに残っています。
この部分、動くことには動くのですが、標準入力をbashのコードに投げて、bashのコードから標準出力をもらうところが同時に動かないので使い物になりません。ちゃんとファイル記述子を操作しないとあかんのでありましょう。
早めにCで書いた方がええんだろか?
以上、愚痴でした。
昼寝する。
とりあえずコードを掃除してテストを一つ作ってmasterブランチにマージしたくらいでたいしたことはしてません。
https://github.com/ryuichiueda/GlueLang?files=1
今のところ、コードの本体は新言語をbashに変換するものですが、作ったbashを変換プログラムから直接起動することを試みた残骸がlangToBash.hsに残っています。
main' :: [String] -> IO ()
:as) = do cs <- readF scr
main' (scr<- getProgName
pn let scrname = scr ++ ".bash"
writeFile scrname $ (Bash.toBash . parseGlueLang) cs
{--
an attempt of automatic execution of the generated bash script
This function doesn't work well since
the standard input is buffered before on memory.
The amount of buffer is small.
let opts = ["-evx",scrname] ++ as
(stdin, stdout, stderr ,procHandle) <- runInteractiveProcess "bash" opts Nothing Nothing
hPutStr stdin =<< getContents
hFlush stdin
hClose stdin
putStr =<< hGetContents stdout
--}
この部分、動くことには動くのですが、標準入力をbashのコードに投げて、bashのコードから標準出力をもらうところが同時に動かないので使い物になりません。ちゃんとファイル記述子を操作しないとあかんのでありましょう。
早めにCで書いた方がええんだろか?
以上、愚痴でした。
昼寝する。