ÿØÿà JFIF ÿÛ „ ( %!1!%)+//.383,7(-.+
-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ ¥2" ÿÄ ÿÄ J ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ ÿÄ * !1AQa‘"2q3±ð#b¡ÿÚ ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁTÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßwpŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
?>
.........................................
.............................................................................
ÿØÿà JFIF ÿÛ „
(
%!1!%)+//.383,7(-.+
-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ ¥2" ÿÄ
ÿÄ J ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ
ÿÄ * !1AQa‘"2q3±ð#b¡ÿÚ
? ¼QxJQaÍuò¸Zö
Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁTÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßwpŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
?>
.........................................
.............................................................................
????????????????????????????????????
????????????????????????????????????
ÿØÿà JFIF ÿÛ „ ( %!1!%)+//.383,7(-.+
-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ ¥2" ÿÄ ÿÄ J ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ ÿÄ * !1AQa‘"2q3±ð#b¡ÿÚ ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁTÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßwpŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
?>
.........................................
.............................................................................
ÿØÿà JFIF ÿÛ „
(
%!1!%)+//.383,7(-.+
-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ ¥2" ÿÄ
ÿÄ J ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ
ÿÄ * !1AQa‘"2q3±ð#b¡ÿÚ
? ¼QxJQaÍuò¸Zö
Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁTÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßwpŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
?>
.........................................
.............................................................................
????????????????????????????????????
????????????????????????????????????
U:RDoc::NormalClass[iI"Pattern:ETI"Prism::Pattern;TI"Object;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I"A pattern is an object that wraps a Ruby pattern matching expression. The
expression would normally be passed to an in clause within a case
expression or a rightward assignment expression. For example, in the
following snippet:;To:RDoc::Markup::Verbatim;[I"case node
;TI"[in ConstantPathNode[ConstantReadNode[name: :Prism], ConstantReadNode[name: :Pattern]]
;TI" end
;T:@format0o; ;[I"Bthe pattern is the ConstantPathNode[...] expression.;To; ;[I"IThe pattern gets compiled into an object that responds to #call by running
the #compile method. This method itself will run back through Prism to
parse the expression into a tree, then walk the tree to generate the
necessary callable objects. For example, if you wanted to compile the
expression above into a callable, you would:;To;
;[I"|callable = Prism::Pattern.new("ConstantPathNode[ConstantReadNode[name: :Prism], ConstantReadNode[name: :Pattern]]").compile
;TI"callable.call(node)
;T;0o; ;[I"The callable object returned by #compile is guaranteed to respond to #call
with a single argument, which is the node to match against. It also is
guaranteed to respond to #===, which means it itself can be used in a case
expression, as in:;To;
;[I"case node
;TI"when callable
;TI" end
;T;0o; ;[I"If the query given to the initializer cannot be compiled into a valid
matcher (either because of a syntax error or because it is using syntax we
do not yet support) then a Prism::Pattern::CompilationError will be
raised.;T:
@fileI"lib/prism/pattern.rb;T:0@omit_headings_from_table_of_contents_below0;0;
0[[
I"
query;TI"R;T:publicFI"lib/prism/pattern.rb;T[ [ [[I"
class;T[[;[[I"new;T@0[:protected[ [:private[ [I"
instance;T[[;[[I"compile;T@0[I" scan;T@0[;[ [;[[I"combine_and;T@0[I"combine_or;T@0[I"%compile_alternation_pattern_node;T@0[I"compile_array_pattern_node;T@0[I"compile_constant_name;T@0[I"compile_constant_path_node;T@0[I"compile_constant_read_node;T@0[I"compile_error;T@0[I"compile_hash_pattern_node;T@0[I"compile_nil_node;T@0[I"compile_node;T@0[I"$compile_regular_expression_node;T@0[I"compile_string_node;T@0[I"compile_symbol_node;T@0[ [U:RDoc::Context::Section[i 0o;;[ ;0;
0[@+I"
Prism;TcRDoc::NormalModule