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.20
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 : parser.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/parser.ja</title> </head> <body> <h1><a name="label-0" id="label-0">class Racc::Parser</a></h1><!-- RDLabel: "class Racc::Parser" --> <p>Racc の生成するパーサはすべて Racc::Parser クラスを継承します。 Racc::Parser クラスにはパース中に使用するメソッドがいくつかあり、 そのようなメソッドをオーバーロードすると、パーサを初期化したり することができます。</p> <h2><a name="label-1" id="label-1">Super Class</a></h2><!-- RDLabel: "Super Class" --> <p>Object</p> <h2><a name="label-2" id="label-2">Constants</a></h2><!-- RDLabel: "Constants" --> <p>プリフィクス "Racc_" がついた定数はパーサの予約定数です。 そのような定数は使わないでください。動作不可能になります。</p> <h2><a name="label-3" id="label-3">Instance Methods</a></h2><!-- RDLabel: "Instance Methods" --> <p>ここに載っているもののほか、プリフィクス "racc_" および "_racc_" が ついたメソッドはパーサの予約名です。そのようなメソッドは使わないで ください。</p> <dl> <dt><a name="label-4" id="label-4">do_parse -> Object</a></dt><!-- RDLabel: "do_parse -> Object" --> <dd> <p>パースを開始します。 また、トークンが必要になった時は #next_token を呼び出します。</p> <pre>-- # Example ---- inner def parse @q = [[1,1], [2,2], [3,3], [false, '$']] do_parse end def next_token @q.shift end --</pre> </dd> <dt><a name="label-5" id="label-5">next_token -> [Symbol, Object]</a></dt><!-- RDLabel: "next_token -> [Symbol, Object]" --> <dd> <p>[abstract method]</p> <p>パーサが次のトークンを読みこむ時に使います。 [記号, その値] の形式の配列を返してください。 記号はデフォルトでは</p> <ul> <li>文法中、引用符でかこまれていないもの → その名前の文字列のシンボル (例えば :ATOM )</li> <li>引用符でかこまれているもの<br> → その文字列そのまま (例えば '=' )</li> </ul> <p>で表します。これを変更する方法については、 文法リファレンスを参照してください。</p> <p>また、もう送るシンボルがなくなったときには [false, なにか] または nil を返してください。</p> <p>このメソッドは抽象メソッドなので、#do_parse を使う場合は 必ずパーサクラス中で再定義する必要があります。 定義しないままパースを始めると例外 NotImplementedError が 発生します。</p> </dd> <dt><a name="label-6" id="label-6">yyparse( receiver, method_id )</a></dt><!-- RDLabel: "yyparse( receiver, method_id )" --> <dd> <p>パースを開始します。このメソッドでは始めてトークンが 必要になった時点で receiver に対して method_id メソッドを 呼び出してトークンを得ます。</p> <p>receiver の method_id メソッドはトークンを yield しなければ なりません。形式は #next_token と同じで [記号, 値] です。 つまり、receiver の method_id メソッドの概形は以下のように なるはずです。</p> <pre>-- def method_id until end_of_file : yield 記号, 値 : end end --</pre> <p>少し注意が必要なのは、method_id が呼び出されるのは始めて トークンが必要になった時点であるということです。method_id メソッドが呼び出されたときは既にパースが進行中なので、 アクション中で使う変数を method_id の冒頭で初期化すると まず失敗します。</p> <p>トークンの終端を示す [false, なにか] を渡したらそれ以上は yield しないでください。その場合には例外が発生します。</p> <p>最後に、method_id メソッドからは必ず yield してください。 しない場合は何が起きるかわかりません。</p> </dd> <dt><a name="label-7" id="label-7">on_error( error_token_id, error_value, value_stack )</a></dt><!-- RDLabel: "on_error( error_token_id, error_value, value_stack )" --> <dd> <p>パーサコアが文法エラーを検出すると呼び出します (yacc の yyerror)。 エラーメッセージを出すなり、例外を発生するなりしてください。 このメソッドから正常に戻った場合、パーサはエラー回復モード に移行します。</p> <p>error_token はパースエラーを起こした記号の内部表現 (整数) です。 #token_to_str で文法ファイル上の文字列表現に直せます。</p> <p>error_value はその値です。</p> <p>value_stack はエラーの時点での値スタックです。 value_stack を変更してはいけません。</p> <p>on_error のデフォルトの実装は例外 ParseError を発生します。</p> </dd> <dt><a name="label-8" id="label-8">token_to_str( t ) -> String</a></dt><!-- RDLabel: "token_to_str( t ) -> String" --> <dd> <p>Racc トークンの内部表現 (整数) を文法ファイル上の記号表現の文字列に変換します。</p> <p>t が整数でない場合は TypeError を発生します。 t が範囲外の整数だった場合は nil を返します。</p> </dd> <dt><a name="label-9" id="label-9">yyerror</a></dt><!-- RDLabel: "yyerror" --> <dd> エラー回復モードに入ります。このとき #on_error は呼ばれません。 アクション以外からは呼び出さないでください。 </dd> <dt><a name="label-10" id="label-10">yyerrok</a></dt><!-- RDLabel: "yyerrok" --> <dd> エラー回復モードから復帰します。 アクション以外からは呼び出さないでください。 </dd> <dt><a name="label-11" id="label-11">yyaccept</a></dt><!-- RDLabel: "yyaccept" --> <dd> すぐに値スタックの先頭の値を返して #do_parse、#yyparse を抜けます。 </dd> </dl> </body> </html>
Close