gonzui
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てどこにおけばいいん?
bdbのbuildがmingwでうまくいかないので、あきらめてVC++を使うことにする。どうせ、exerbのrubyはmswin32だから、VC++のほうが都合が良いに違いない。適当に、__declspec(dllexport)とか書きながらコンパイルして、コンパイル終了。gonzuiのconfigureにかか…
mswin32版のrubyとmingw版のrubyは、拡張ライブラリがバイナリ互換らしいので、mingwでgonzuiをコンパイルしてみることにする。
なるほど。問題はmswin32でgonzuiを動かせるかどうかか。明日やろ。
なにがやりたいかというと、gonzuiをWindowsでバイナリもって行けばOKな状態にできるようにしたいわけです。ついでにサービスとかも登録できるようにしてGUIのコントロールパネルも作って。C#対応とかVB対応とかもして。そうすると「Windowsのサーバがイント…
改行コードの正規化がおかしい気がする。langscan/ocaml/camlexerでは、複数行に渡るトークンを出力するとき、\nを\oとして出力している。これを、LangScan::OCamlで、 input.gsub(/[^\\]\\o/, "\n")としてもとに戻すわけだが、これだとうまく行かない。 inp…
つっつかれたので、久々にいじくる。と、動かなくなってるしー・・・テスト以前の問題で、例によってputsがブロックするという。 puts(input)はinputが長いと別スレッドのgetsも巻き込んでブロックするが、 input.each {|l| puts(l) }なら大丈夫。
テスト書けと言われてしまった。すみません。書きます。
gonzuiの開発者として登録もしていただいたので,さっさとcommitしたいところではある.が,QPLのライセンス的にcamlexerが大丈夫なのかわからない.*1 *2ここで,QPLで配布されているソフトウェアAの一部のソースコードを抜き出して,他のソフトウェアBのソ…
Flagment.new(.... ^本気で嫌になった。これだから型チェックのない言語は!!*1ていうか、gonzuiもエラーぐらい出してくれればいいのに・・・修正版。つ http://www.soutaro.com/ocamlsupport-050418.tgz *1:とか言ってみる
やっと動くようになった.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が出てる。どこが変わったんだろ。lexの話ですが、やればできることはわかります。ocamlsupportのlexerも、最新版ではコメントのネストに対応しています。でも、できれば手で書きたくないですよね。という話です。文脈自由文法の処理は、yaccにやらせ…
OCamlのコメントってネストできちゃうのかよ!いやこれって正則表現じゃないじゃん。詐欺くせえ。なんかもうまじめにLALRなパーサを書いた方が楽な気がしてきた。:funcdefとかも楽に拾えるし。
svn://svn.shaka.dyndns.org/ocamlsupport/trunkこれまでLexerが止まったように見えたのは,実はものすごく時間がかかっているだけでした.よく見ると文字列とコメントを1文字ずつ処理していたので,そりゃあ時間かかるわって話.ちょっと高速化しましたが,…
コメントと文字列をきちんと処理するようになりました。が、やっぱりうまく動きません。なんか、ocamllexで生成した.mlファイルを食わせると、camlexが死んでしまうようです。なんでだーーーこっちを直してから、もいっかい公開します。
動いたり動かなかったりです。ocaml-3.08.3をgonzui-importしようとすると途中で止まりました。しかもDBを壊してしまったようで、gonzui-remove ocaml-3.08.3するとエラーが出るようになりました。えーと、、、あんまり使わない方がいいかもです。http://www…
ごそごそ書いてたらこんな時間だ。Lexerはあんまり深く考えずに、とりあえず識別子っぽいのを全て:identにするようにした。文字列とかコメントの中の単語も拾ってしまうのは、なんとかしなくては。しかし、やっぱりLangscan::OCamlの仕様をどうすればいいの…
http://tokuhirom.dnsalias.org/~tokuhirom/wiki/GonzuiHacksメモメモ.もちろん目当てはocaml support.flexなんて知らねーと思っていたが、良く考えたら別にlexerをflexで書く必要は無い。ocamlcのソースからlexer.mllをもらって、プログラムを別に作ってp…