2008-04-01から1ヶ月間の記事一覧

mvnhackとmvncrawlerをCodeReposにコミットした話。

僕は、maven2のリモートリポジトリから、jarをゲトしたいだけなのです。 依存してるライブラリも一緒にゲトしてくれるとグー。 そう、別にそれ以外の機能は、一切合切必要ないのです。 面倒だし、DTDが無く、自前のpullparserを使って腕力でパースしてるpom.…

エラー処理の方針等を考えてみる。

実行VMのロケールを見て、日本語と英語でエラーメッセージを出す。 クォート途中で死んだら、その旨通知しる。 コメントの中で死んだら、その旨通知しる。 どんなルールの処理中に死んだのか、通知しる。 エラーリカバリとか、考えると超重い感じなので、 何…

バインド変数コメントは、本家と仕様を変えてみた。

こんな感じに、#をブロックコメントの開始の後に付けとくとバインド変数コメントになる。 /*# hogehoge.fugagua*/dummygrammar TwoWaySQL; options { language = Java; output = AST; ASTLabelType = CommonTree; } tokens { BEGINNODE; IFNODE; EXPRESSIONN…

IN句を伴うコメントを特別扱いする様にしてみた。

2WaySQLの中でもかなり怪しい仕様、と言ってもこれが非常に便利なのだけど、 IN句の後ろにあるコメント及び、その後のテキストノードが括弧で括られている時、 括弧で括られている範囲を、実行時にゴッソリ落して、再構築してくれるんですなぁ。 例えば、こ…

RewriteCardinalityExceptionってなんなんだぜ?

ツリーは、ちゃんと出来ている。ASTに変換しようとしてコケている。 パーサが構築しうるツリーと、変換されうるASTにズレ的な何かがある…と言っている気がするが、 どう対応したら良いのかサパーリ分からない。誰かボスケテ。 grammar TwoWaySQL; options { …

ちょっと中身を整理してみた。

さっきのを、ちょこちょこと弄って整理してみた。

空白のスキップとクォート出来る様にしてみた。

■[ANTLR] 空白文字のスキップCommentsAdd Starwarufuzaketaichi引き続き、ASTは、タダじゃ作ってくれない。 - 設計と実装の狭間で。を添削。予想以上に大変。 らしいのだけど、せっせとコピペしたので、それなりに楽勝。 しかし、それでは芸がないので、クォ…

0.30.0 リリース

以下のURLからインストール出来るます。http://eclipse.seasar.org/updates/3.3/ 対応しているeclipseのバージョンが変わり、同時に、インストールする為のURLも変わっているので注意。

少々強引に、動くようにしてみたり。

/と*と-が、lexer辺りでうまく処理されてなかったので、 そいつだけ独立したトークンにしつつ、Parserでまとめる感じに。 空白文字列がgrammarに山ほど出てきてしまうのは、もうちょっと先で対応するつもり。 grammar TwoWaySQL; options { language = Java;…

ちまちまと直しているが問題は解決していない。

grammar TwoWaySQL; options { language = Java; output = AST; ASTLabelType = CommonTree; } tokens { BEGINNODE; IFNODE; EXPRESSIONNODE; ELSENODE; } @header { package twowaysql.grammar; } @lexer::header { package twowaysql.grammar; } twowaySQL…

ASTと格闘している。いやlexerか。

僭越ながら ASTは、タダじゃ作ってくれない。 - 設計と実装の狭間で。 を添削。 添削してもらったので、少し直してみた。 そろそろ2byte文字も使ってみたいな…とか思って直している最中に、致命的な事が判明。 とりあえず、出来たトコまで晒しておくます。

ASTは、タダじゃ作ってくれない。

ANTLRWorksで、ParseTreeなんてのが、出てるから、これでいいんじゃね? とか思っていたのだけど、世の中そんなに甘く無い事を理解。

ANTLRをeclipse上で使う。

まぁ、eclipseのプラグインはすでにあるのだけどさ。 Eclipse Eclipse 3.3+ for Antlr 3.xAntlrDT is a standard Eclipse plugin implementing an Antlr 3.x specific editor, outline, and builder. See http://www.certiv.net/projects/plugins/antlrdt.ht…

gUnitに挑戦。

まぁ、何かテキトーに動きそうなツリーが出来たトコロで、 エラー処理辺りを作りこもうかな…と言う気分なのだけど、 そもそも良く分かってない部分があるので、細かい単位で動かせないと駄目だよね…と言う訳。 で、ANTLRには、gUnitと言うテスティングツール…

IF文をパース出来る様になったり。

コメントとテキストを分割出来る様になったので、 次は、条件分岐をパース出来る様にしてみる。

メモ。

スーパークラスを変えるとデバッグできなくなるので注意 (デバッグ用のスーパークラスを使ってブレークとかトレースしてる模様)

ANTLRWorksが余りに凄いので、今日はANTLRWorks記念日。

ANTLRWorksの使い方がようやく分ったので、結局、ANTLRを使う事に。 コンパイラの知識らしい知識を全く持たずに、どこまでいけるか頑張ってみる。