グルー言語を作る作業を少し進めた

Sat Feb 22 14:03:33 JST 2014 (modified: Fri Sep 29 21:38:45 JST 2017)
views: 1459, keywords:プログラミング,Haskell,愚痴,グルー言語,グルー言語を作る この記事は最終更新日が6年以上前のものです。

留守番で子供を背負ってどん兵衛を立ち食いという悲惨な昼飯を執行した上田です。背中の子供が寝ているうちに例の言語の作業を進めました。このエントリーは、子供と添い寝しながら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 ()
   main' (scr:as) = do cs <- readF scr
    pn <- getProgName
    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で書いた方がええんだろか?

以上、愚痴でした。

昼寝する。

ノート   このエントリーをはてなブックマークに追加 
 

prev:Ubuntuにex(1)がないじゃないか next:Structure and Interpretation of Computer Programs読書会13回目メモ書き

やり散らかし一覧

記事いろいろ