読者です 読者をやめる 読者になる 読者になる

gl5_progのメモ

自分のためのメモとかまとめとか

ANTLR

3種類のsemantic predicate

ANTLRのsemantic predicateの説明でStackOverflowに良い説明があったので訳してみる。 antlr - What is a 'semantic predicate' in ANTLR3? - Stack Overflow A semantic predicate is a way to enforce extra (semantic) rules upon grammar actions using …

ANTLR C Targetでlexer/parseにメンバ変数を追加する方法。

@header, @includes, @membersどれを使っても構造体の中には展開されません。そこでこのテクニックを使います。 外からメンバ変数を定義する方法 - gl5_progのメモ まともなやり方がありました! @lexer::context、@lexer::apifuncs でメンバ変数の定義と、…

ANTLR3メモ

メモ C言語ターゲットの作者は「Jim Idle」さん バックトラック(backtrack)を効率よく行うのがパックラット(Packrat) ANTLRworksのデバッグ中のParseTreeの色の意味は、「青=判定中」「赤=不一致」「緑=確定」だと思われる。 用語 用語 説明 左括りだし( Lef…

ANTLR3 C Target導入記

ANTLR C Targetがとりあえず動くようになるまでが大変だったのでここにその記録を残しておきます。ただ苦労したことをだらだら書いただけなので実用性はないです。 言葉の定義 言葉 定義 C Target ANTLRからC言語ソースを吐き出すためのモジュールを指す。AN…

ANTLR3 C Runtimeメモ

ANTLR C Runtime 3.4に関するメモ。 ANTLR3_BASE_TREE ASTノード。この構造体はクラスで言うところの抽象クラスであり、実装するクラスが必要。共通メンバ変数と仮想関数的な役割の関数ポインタを持つ。 メンバ変数 型 名前 備考 void* super 基底クラスへの…

ANTLR3の機能まとめ

統語的述語( Syntactic predicate ) 意味的述語( Semantic Predicate ) アクション AST構築 TreeParser

グローバルバックトラッキングをやめる方法( 適当訳 )

How to remove global backtracking from your grammar - ANTLR 3 - ANTLR Project を適当に訳してみます。 誤訳いっぱいあると思います。 より複雑な文法、特にLR文法をANTLRへ移植した場合、このようなエラー文を出す。 "[fatal] rule compilation_unit ha…

ANTLR3のリンク集

公式 http://www.antlr3.org/ 本家です。 http://www.antlr.org/wiki/display/ANTLR3/ANTLR+3+Wiki+Home 本家wikiです。 http://www.antlr3.org/works/index.html ANTLRWorksの公式ページ。 http://www.antlr3.org/download.html 各種ダウンロード The Pragm…