トップページ⇒tech
41コメント10KB

javaCC知ってる?

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
使い方わかんね
0002デフォルトの名無しさんNGNG
CCレモン?
0003デフォルトの名無しさんNGNG
いや、なんかコンパイラコンパイラらしいよ
なんか使えるらしい
いいらしいんだよ
0004デフォルトの名無しさんNGNG
CCづくしか。
0005ビバ!NGNG
C#とどう違うのさ?
0006デフォルトの名無しさんNGNG
>>5
ぜんぜんちがうだろ
0007デフォルトの名無しさんNGNG
http://www.webgain.com/products/metamata/java_doc.html
http://www.dmz.hitachi-sk.co.jp/Java/Tech/javacc/
0008デフォルトの名無しさんNGNG
これで、ソースコード自由にジャンプするツール作るんだよ
ソース→XML→html
統計情報も吐けるようにな
便利そうだろ?
0009デフォルトの名無しさんNGNG
javaCCが吐き出したソースが、おれのものに成るっていう
ライセンスは、気に入った

いいじゃん

GNU使うと、GPLに感染するからな
0010デフォルトの名無しさんNGNG
簡単ジャン。

$ javacc HelloWorld.java
$ ./HelloWorld
HelloWorld
$
0011デフォルトの名無しさんNGNG
<<10
ユニックス使いか・・・・

まぢめにおしえろって
0012デフォルトの名無しさんNGNG
>>10
って言うか、よく考えたら、javacと勘違いしてるのか?
0013デフォルトの名無しさんNGNG
>>9
残念でした。
GCCはコンパイラしたものに対してはGCC適用されない。
0014デフォルトの名無しさんNGNG
そう、コンパイラしたものには。
001510NGNG
ちゅーか、>>7のリンクちらっとみたら、yacc/lexみたいなもんなのね(藁

俺は>>10みたいなのを想像してたんだが。

$ javacc HelloWorld.java
$ gcc HelloWorld.cc
$ ./HelloWorld

みたいな。
001610NGNG
>>12
うん(藁
これってGCC3.0に付いてくるというJavaコンパイラじゃないのね。
0017デフォルトの名無しさんNGNG
おまえら、まぢおもしれーな
ともだちになんね?
0018デフォルトの名無しさんNGNG
yaccって何て読むの?
0019デフォルトの名無しさんNGNG
>>13
いや9はyaccのことと思われ。
GNUのyacc(たしかBison)はなんか余計な一言があったような。
00209NGNG
>>19
そそ
よくわかってるな
0021デフォルトの名無しさんNGNG
JavaCCは使ったこと有るよ
面白いよ。

ちょっと込み入った設定ファイルとか読み込ませるのに
重宝するよ

でもlex yaccは使ったことない
だから比較はできないけど。

ところでJavaのパーサージェネレータってJavaCCがデファクトスタンダードなの?
これって日本語対応が少しアレだからよさげなのがほかに有れば
乗り換えようかな。
0022デフォルトの名無しさんNGNG
設定ファイルはXMLでパーサはJAXPだのJAXBだのが、
デファクト最有力じゃない?自作パーサじゃなくて。
0023デフォルトの名無しさんNGNG
>>21
http://www.cs.princeton.edu/~appel/modern/java/CUP/
とか。
002421NGNG
>>22 いや、自分が作ってるのは
昔のDOSアプリの互換ソフトなんす

>>23 ども
0025デフォルトの名無しさんNGNG
CUPは、javaCCが出るまでデファクトだったんだよな
もうメンテナンスされてないよ
0026デフォルトの名無しさんNGNG
>>21
http://www.ingrid.org/java/javacc/murata.html
ここ見れ。JavaCCが生成するCharStream実装にパッチ当てて、
後はjjを
USER_CHAR_STREAM = true;
UNICODE_INPUT = true;
JAVA_UNICODE_ESCAPE = true;
にしてやれば日本語も完璧だ。
0027デフォルトの名無しさんNGNG
>>26
ありがとな
でも、21は、そのくらい知ってるんだよ、たぶん
0028名無しさんNGNG
>中身の詳細まで見ていないのでよくわかりませんが、
>おそらく入ってきた文字によって遷移する先を決定する表が
>char の下位8ビットだけで作られていて、
>比較も下位8ビットだけで行なうのでしょう。
こう見える現象が起きているということは
ウニコードエスケープウンタラが実装されてないのか。
JavaLex/JavaYaccと同じ実装だと上の引用通りになる。
0029デフォルトの名無しさんNGNG
うおーなんかやる気出てきたぞーーーーーー
0030デフォルトの名無しさんNGNG
>>18
やくく。
0031デフォルトの名無しさんNGNG
>30
ハァ?
>18
ヤキューだ。
0032デフォルトの名無しさんNGNG
>>30
>>31
おめーら、嘘教えんなって
0033デフォルトの名無しさんNGNG
>>26 ありがとう
でも実はそのサイトはもう知ってた

一応そのとおりにすると日本語入りファイルもパースできるようになるんだけど
エラーが起きたときのExceptionに含まれるn行m桁の情報がおかしい。(両方0になる)

自分のソフトではCharStreamをもう少しいじって
なんとかそれらしく動く様にはなってるけど
あまりよく分かってないものだから潜在バグがありそうでいまいち

どっかに日本語対応のCharStreamの決定版落ちてないかな
0034ビバ!NGNG
なるほど。
全然分からん。
0035デフォルトの名無しさんNGNG
ところでさ
LOOKAHEADどう使ってる?
0036デフォルトの名無しさんNGNG
>>35 エラーが出たところに適当に
0037デフォルトの名無しさんNGNG
正解(藁
003835NGNG
>>36
なるほど、了解

ところで、javaCCで、なに作ってる?
0039デフォルトの名無しさんNGNG
>>35
 LOOKAHEAD( foo() ) foo()
のような記述が至る所にあるんですが、
こんなんで良いんでしょうか?

LL(1)って何?top-down parserって何よ?状態なもんで
文法が破綻してるかも
0040デフォルトの名無しさんNGNG
>>8
JavaMLってのもありまっせ。JavaCC使ってないけど。
 ttp://www.cs.washington.edu/homes/gjb/JavaML/
知ってたらご免なさい。
00418NGNG
>>40
ありがちょ
ありがちょ
かこいいよ
■ このスレッドは過去ログ倉庫に格納されています