621件ヒット
[1-100件を表示]
(0.136秒)
クラス
- Enumerator (6)
-
File
:: Stat (24) - Object (12)
-
Psych
:: Nodes :: Node (24) -
Psych
:: Stream (24) -
Psych
:: Visitors :: YAMLTree (12) -
REXML
:: Element (12) -
REXML
:: Elements (24) -
REXML
:: XPath (24) -
RubyVM
:: AbstractSyntaxTree :: Node (49) - Socket (12)
モジュール
- ObjectSpace (12)
- Psych (36)
-
RubyVM
:: AbstractSyntaxTree (30) - TSort (186)
キーワード
- AbstractSyntaxTree (7)
- Stat (12)
- children (7)
- compile (12)
-
count
_ nodes (12) - ctime (12)
- each (12)
-
each
_ strongly _ connected _ component (46) -
each
_ strongly _ connected _ component _ from (46) - first (12)
-
first
_ column (7) -
first
_ lineno (7) - getaddrinfo (12)
- ino (12)
- inspect (7)
-
last
_ column (7) -
last
_ lineno (7) - match (12)
- of (10)
- parse (22)
-
parse
_ file (10) -
parse
_ stream (24) - produce (6)
-
rb
_ compile _ cstr (12) -
rb
_ compile _ file (12) -
rb
_ compile _ string (12) -
rexml
/ parsers / ultralightparser (12) -
root
_ node (12) -
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 3 feature (12) -
ruby 1
. 8 . 4 feature (12) - start (36)
-
strongly
_ connected _ components (24) -
to
_ a (12) -
to
_ ruby (12) - transform (12)
- tsort (36)
-
tsort
_ each (46) - type (7)
-
yaml
_ tag (12)
検索結果
先頭5件
-
RubyVM
:: AbstractSyntaxTree :: Node (27000.0) -
RubyVM::AbstractSyntaxTree.parse によって作られる抽象構文木を表すクラスです。
...RubyVM::AbstractSyntaxTree.parse によって作られる抽象構文木を表すクラスです。
このクラスは MRI の実装の詳細を表します。... -
tsort (26156.0)
-
tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
...tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
=== Example
//emlist[][ruby]{
require 'tsort'
class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end
{1=>[2, 3],......=>[]}.tsort
#=> [3, 2, 1, 4]
{1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}.strongly_connected_components
#=> [[4], [2, 3], [1]]
//}
=== より現実的な例
非常に単純な `make' に似たツールは以下のように実装できます。
//emlist[][ruby]{
require 'tsort'
class Make
def initialize......default = []
end
def rule(outputs, inputs=[], &block)
triple = [outputs, inputs, block]
outputs.each {|f| @dep[f] = [triple]}
@dep[triple] = inputs
end
def build(target)
each_strongly_connected_component_from(target) {|ns|
if ns.length != 1
fs = ns.delete_if {... -
Psych
:: Nodes :: Node # to _ ruby -> object (18217.0) -
AST を ruby のオブジェクトに変換します。
...AST を ruby のオブジェクトに変換します。... -
RubyVM
:: AbstractSyntaxTree :: Node # inspect -> String (15124.0) -
self のデバッグ用の情報を含んだ文字列を返します。
...self のデバッグ用の情報を含んだ文字列を返します。
//emlist[][ruby]{
node = RubyVM::AbstractSyntaxTree.parse('1 + 1')
puts node.inspect
# => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-1:5>
//}... -
RubyVM
:: AbstractSyntaxTree :: Node # first _ column -> Integer (15118.0) -
ソースコード中で、self を表すテキストが最初に現れる列番号を返します。
...ソースコード中で、self を表すテキストが最初に現れる列番号を返します。
列番号は0-originで、バイト単位で表されます。
//emlist[][ruby]{
node = RubyVM::AbstractSyntaxTree.parse('1 + 2')
p node.first_column # => 0
//}... -
RubyVM
:: AbstractSyntaxTree :: Node # first _ lineno -> Integer (15118.0) -
ソースコード中で、self を表すテキストが最初に現れる行番号を返します。
...ソースコード中で、self を表すテキストが最初に現れる行番号を返します。
行番号は1-originです。
//emlist[][ruby]{
node = RubyVM::AbstractSyntaxTree.parse('1 + 2')
p node.first_lineno # => 1
//}... -
RubyVM
:: AbstractSyntaxTree :: Node # last _ column -> Integer (15118.0) -
ソースコード中で、self を表すテキストが最後に現れる列番号を返します。
...ソースコード中で、self を表すテキストが最後に現れる列番号を返します。
列番号は0-originで、バイト単位で表されます。
//emlist[][ruby]{
node = RubyVM::AbstractSyntaxTree.parse('1 + 1')
p node.last_column # => 5
//}... -
RubyVM
:: AbstractSyntaxTree :: Node # last _ lineno -> Integer (15118.0) -
ソースコード中で、self を表すテキストが最後に現れる行番号を返します。
...ソースコード中で、self を表すテキストが最後に現れる行番号を返します。
行番号は1-originです。
//emlist[][ruby]{
node = RubyVM::AbstractSyntaxTree.parse('1 + 1')
p node.last_lineno # => 1
//}... -
RubyVM
:: AbstractSyntaxTree :: Node # type -> Symbol (15118.0) -
self の種類を Symbol で返します。
...self の種類を Symbol で返します。
//emlist[][ruby]{
node = RubyVM::AbstractSyntaxTree.parse('1 + 1')
p node.type # => :SCOPE
//}... -
Psych
:: Nodes :: Node # transform -> object (15117.0) -
AST を ruby のオブジェクトに変換します。
...AST を ruby のオブジェクトに変換します。... -
RubyVM
:: AbstractSyntaxTree (15022.0) -
Ruby のコードをパースして得られる抽象構文木を扱うモジュールです。
...Ruby のコードをパースして得られる抽象構文木を扱うモジュールです。
抽象構文木はRubyVM::AbstractSyntaxTree::Nodeクラスのインスタンスとして表されます。
このモジュールはMRIの抽象構文木の実装の詳細を表します。
このモ......し安定したAPIやMRI以外の実装で抽象構文木を扱いたい場合、
parser gem (https://github.com/whitequark/parser)や
Ripperの使用を検討してください。
もし RubyVM::AbstractSyntaxTree のAPIを安定にしたい場合、14844 での議論に参加してください。... -
ObjectSpace
. # count _ nodes(result _ hash = nil) -> Hash (12342.0) -
ノードの種類ごとの数を格納したハッシュを返します。
...sult_hash 戻り値のためのハッシュを指定します。省略した場合は新
しくハッシュを作成します。result_hash の内容は上書き
されます。プローブ効果を避けるために使用します。
@raise TypeError result_ha......ッドは普通の Ruby プログラマ向けのメソッドではありません。パフォー
マンスやメモリ管理に興味のある C Ruby の開発者向けのものです。
//emlist[例][ruby]{
ObjectSpace.count_nodes
# => {:NODE_METHOD=>2027, :NODE_FBODY=>1927, :NODE_CFUNC=>1798, .........}
//}
戻り値のハッシュは処理系に依存します。これは将来変更になるかもしれません。
本メソッドは C Ruby 以外では動作しません。...