gonzui

OCamlSupport

OCamlSupportを書き直し中。Win32のRubyでパイプが動かなかったので*1。せっかくなのでpure rubyで書いてみてる*2。strscanでごそごそ。せっかくなので、raccで構文解析までやってみたいなあ。trubyではOCamlでRubyのパーサを書いて、gonzuiではRubyでOCaml…

とりあえず、 let f = function x -> x;; let f = fun x -> x;;みたいのを:fundefに認識するよう修正。そのあと、 a = b;;の=は:identだけど、 let x = 1の=は:punctに認識するよう直してるうちにわからなくなったので、結局一つもコミットせず。おんなじ問…

うお…

ビルドの仕方がわからねえwwwlangscanてどこにおけばいいん?

mingw or VC++

bdbのbuildがmingwでうまくいかないので、あきらめてVC++を使うことにする。どうせ、exerbのrubyはmswin32だから、VC++のほうが都合が良いに違いない。適当に、__declspec(dllexport)とか書きながらコンパイルして、コンパイル終了。gonzuiのconfigureにかか…

mingwってなんて読めばいいんだろう

mswin32版のrubyとmingw版のrubyは、拡張ライブラリがバイナリ互換らしいので、mingwでgonzuiをコンパイルしてみることにする。

なるほど。問題はmswin32でgonzuiを動かせるかどうかか。明日やろ。

なにがやりたいかというと、gonzuiをWindowsでバイナリもって行けばOKな状態にできるようにしたいわけです。ついでにサービスとかも登録できるようにしてGUIのコントロールパネルも作って。C#対応とかVB対応とかもして。そうすると「Windowsのサーバがイント…

\r\n

改行コードの正規化がおかしい気がする。langscan/ocaml/camlexerでは、複数行に渡るトークンを出力するとき、\nを\oとして出力している。これを、LangScan::OCamlで、 input.gsub(/[^\\]\\o/, "\n")としてもとに戻すわけだが、これだとうまく行かない。 inp…

つっつかれたので、久々にいじくる。と、動かなくなってるしー・・・テスト以前の問題で、例によってputsがブロックするという。 puts(input)はinputが長いと別スレッドのgetsも巻き込んでブロックするが、 input.each {|l| puts(l) }なら大丈夫。

テスト書けと言われてしまった。すみません。書きます。

QPLわからん

gonzuiの開発者として登録もしていただいたので,さっさとcommitしたいところではある.が,QPLのライセンス的にcamlexerが大丈夫なのかわからない.*1 *2ここで,QPLで配布されているソフトウェアAの一部のソースコードを抜き出して,他のソフトウェアBのソ…

OTL orz

Flagment.new(.... ^本気で嫌になった。これだから型チェックのない言語は!!*1ていうか、gonzuiもエラーぐらい出してくれればいいのに・・・修正版。つ http://www.soutaro.com/ocamlsupport-050418.tgz *1:とか言ってみる

OCamlSupport

やっと動くようになった.Threadの中でyieldすると,わけがわかんなくなっちゃうみたいである*1。camlexerの出力を全てArrayに入れておいて,スレッドから抜けた後にyieldするようにして,正常に動くようになった.とういわけで.つhttp://www.soutaro.com/o…

そうか!

バッファがいっぱいになって,putsが止まっていたのか...な?しかし、読み書きをするスレッドを別々に分けてもうまくいかない。その部分だけのRubyプログラムだとうまく動作する。gonzuiに怪しい部分があるんだろうか。もうちょっと試してからMLに助けを求…

ちなみに、ocamlsupportはへんなコメントとか*1、特殊な文字定数*2がなければ、なんとなく動くようになってます。trubyなんかはsvn exportした後ならうまく取り込めます。他にはgetoptとかounitとかgonzui-importできることを確認しています。ocaml-3.08.3は…

1.1

あー1.1が出てる。どこが変わったんだろ。lexの話ですが、やればできることはわかります。ocamlsupportのlexerも、最新版ではコメントのネストに対応しています。でも、できれば手で書きたくないですよね。という話です。文脈自由文法の処理は、yaccにやらせ…

OCamlのコメントってネストできちゃうのかよ!いやこれって正則表現じゃないじゃん。詐欺くせえ。なんかもうまじめにLALRなパーサを書いた方が楽な気がしてきた。:funcdefとかも楽に拾えるし。

ocamlsupport

svn://svn.shaka.dyndns.org/ocamlsupport/trunkこれまでLexerが止まったように見えたのは,実はものすごく時間がかかっているだけでした.よく見ると文字列とコメントを1文字ずつ処理していたので,そりゃあ時間かかるわって話.ちょっと高速化しましたが,…

ocamlsupport

コメントと文字列をきちんと処理するようになりました。が、やっぱりうまく動きません。なんか、ocamllexで生成した.mlファイルを食わせると、camlexが死んでしまうようです。なんでだーーーこっちを直してから、もいっかい公開します。

ocamlsupport-050408.tgz

動いたり動かなかったりです。ocaml-3.08.3をgonzui-importしようとすると途中で止まりました。しかもDBを壊してしまったようで、gonzui-remove ocaml-3.08.3するとエラーが出るようになりました。えーと、、、あんまり使わない方がいいかもです。http://www…

Lanscan::OCaml

ごそごそ書いてたらこんな時間だ。Lexerはあんまり深く考えずに、とりあえず識別子っぽいのを全て:identにするようにした。文字列とかコメントの中の単語も拾ってしまうのは、なんとかしなくては。しかし、やっぱりLangscan::OCamlの仕様をどうすればいいの…

GonzuiHacks

http://tokuhirom.dnsalias.org/~tokuhirom/wiki/GonzuiHacksメモメモ.もちろん目当てはocaml support.flexなんて知らねーと思っていたが、良く考えたら別にlexerをflexで書く必要は無い。ocamlcのソースからlexer.mllをもらって、プログラムを別に作ってp…