Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.171
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
racc /
ja /
[ HOME SHELL ]
Name
Size
Permission
Action
NEWS.ja.html
17.66
KB
-rw-r--r--
NEWS.ja.rdoc.gz
4.02
KB
-rw-r--r--
command.ja.html
3.38
KB
-rw-r--r--
debug.ja.html
2.86
KB
-rw-r--r--
debug.ja.rdoc
2.06
KB
-rw-r--r--
grammar.ja.html
16.15
KB
-rw-r--r--
grammar.ja.rdoc.gz
5.31
KB
-rw-r--r--
index.ja.html
441
B
-rw-r--r--
parser.ja.html
6.04
KB
-rw-r--r--
parser.ja.rdoc.gz
1.91
KB
-rw-r--r--
usage.ja.html
17.41
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : debug.ja.html
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>rdoc/ja/debug.ja</title> </head> <body> <h1><a name="label-0" id="label-0">パーサのデバッグ</a></h1><!-- RDLabel: "パーサのデバッグ" --> <p>ここでは、Racc を使っていくうえで遭遇しそうな問題について書きます。</p> <h2><a name="label-1" id="label-1">文法ファイルがパースエラーになる</a></h2><!-- RDLabel: "文法ファイルがパースエラーになる" --> <p>エラーメッセージに出ている行番号のあたりを見て間違いを 探してください。ブロックを閉じる行でエラーになる場合は、 どこかで開き括弧などを増やしてしまっている可能性が高いです。</p> <h2><a name="label-2" id="label-2">なんたら conflict って言われた</a></h2><!-- RDLabel: "なんたら conflict って言われた" --> <p>一番ありがちで一番面倒な問題は衝突 (conflict) でしょう。 文法中に衝突があると、racc はコンパイル後に 「5 shift/reduce conflict」のようなメッセージを表示します。 -v をつけると出力される .output ファイルからはさらに詳しい情報が得られます。 それをどう使うか、とかそういうことに関しては、それなりの本を読んでください。 とてもここに書けるような単純な話ではありません。 当然ながら『Ruby を 256 倍使うための本 無道編』(青木峰郎著)がお勧めです。</p> <h2><a name="label-3" id="label-3">パーサは問題なく生成できたけど予想どおりに動かない</a></h2><!-- RDLabel: "パーサは問題なく生成できたけど予想どおりに動かない" --> <p>racc に -g オプションをつけてパーサを出力すると、デバッグ用のコードが 付加されます。ここで、パーサクラスのインスタンス変数 @yydebug を true に しておいてから do_parse/yyparse を呼ぶと、デバッグ用メッセージが出力 されます。パーサが動作する様子が直接見えますので、完全に現在の状態を 把握できます。これを見てどこがおかしいのかわかったらあとは直すだけ。</p> <h2><a name="label-4" id="label-4">next_token に関して</a></h2><!-- RDLabel: "next_token に関して" --> <p>いまだ自分でも忘れることが多いのが 「送るトークンが尽きたら [false,なにか] を送る」ということです。 ちなみに Racc 0.10.2 以降では一度 [false,なにか] を受け取ったら それ以上 next_token は呼ばないことが保証されています。</p> <p>追記: 最近は [false,なにか] ではなく nil でもよいことになった。</p> </body> </html>
Close