ANN 150 node.c ANN("statement sequence");
ANN 151 node.c ANN("format: [nd_head]; [nd_next]");
ANN 152 node.c ANN("example: foo; bar");
ANN 159 node.c ANN("if statement");
ANN 160 node.c ANN("format: if [nd_cond] then [nd_body] else [nd_else] end");
ANN 161 node.c ANN("example: if x == 1 then foo else bar end");
ANN 169 node.c ANN("case statement");
ANN 170 node.c ANN("format: case [nd_head]; [nd_body]; end");
ANN 171 node.c ANN("example: case x; when 1; foo; when 2; bar; else baz; end");
ANN 178 node.c ANN("if statement");
ANN 179 node.c ANN("format: when [nd_head]; [nd_body]; (when or else) [nd_next]");
ANN 180 node.c ANN("example: case x; when 1; foo; when 2; bar; else baz; end");
ANN 188 node.c ANN("wrapper for -n option");
ANN 189 node.c ANN("format: ruby -ne '[nd_body]' (nd_cond is `gets')");
ANN 190 node.c ANN("example: ruby -ne 'p $_'");
ANN 193 node.c ANN("while statement");
ANN 194 node.c ANN("format: while [nd_cond]; [nd_body]; end");
ANN 195 node.c ANN("example: while x == 1; foo; end");
ANN 198 node.c ANN("until statement");
ANN 199 node.c ANN("format: until [nd_cond]; [nd_body]; end");
ANN 200 node.c ANN("example: until x == 1; foo; end");
ANN 212 node.c ANN("method call with block");
ANN 213 node.c ANN("format: [nd_iter] { [nd_body] }");
ANN 214 node.c ANN("example: 3.times { foo }");
ANN 217 node.c ANN("for statement");
ANN 218 node.c ANN("format: for * in [nd_iter] do [nd_body] end");
ANN 219 node.c ANN("example: for i in 1..3 do foo end");
ANN 227 node.c ANN("for statement");
ANN 228 node.c ANN("format: break [nd_stts]");
ANN 229 node.c ANN("example: break 1");
ANN 232 node.c ANN("next statement");
ANN 233 node.c ANN("format: next [nd_stts]");
ANN 234 node.c ANN("example: next 1");
ANN 237 node.c ANN("return statement");
ANN 238 node.c ANN("format: return [nd_stts]");
ANN 239 node.c ANN("example: return 1");
ANN 246 node.c ANN("redo statement");
ANN 247 node.c ANN("format: redo");
ANN 248 node.c ANN("example: redo");
ANN 252 node.c ANN("retry statement");
ANN 253 node.c ANN("format: retry");
ANN 254 node.c ANN("example: retry");
ANN 258 node.c ANN("begin statement");
ANN 259 node.c ANN("format: begin; [nd_body]; end");
ANN 260 node.c ANN("example: begin; 1; end");
ANN 266 node.c ANN("rescue clause");
ANN 267 node.c ANN("format: begin; [nd_body]; (rescue) [nd_resq]; else [nd_else]; end");
ANN 268 node.c ANN("example: begin; foo; rescue; bar; else; baz; end");
ANN 276 node.c ANN("rescue clause (cont'd)");
ANN 277 node.c ANN("format: rescue [nd_args]; [nd_body]; (rescue) [nd_head]");
ANN 278 node.c ANN("example: begin; foo; rescue; bar; else; baz; end");
ANN 286 node.c ANN("ensure clause");
ANN 287 node.c ANN("format: begin; [nd_head]; ensure; [nd_ensr]; end");
ANN 288 node.c ANN("example: begin; foo; ensure; bar; end");
ANN 295 node.c ANN("&& operator");
ANN 296 node.c ANN("format: [nd_1st] && [nd_2nd]");
ANN 297 node.c ANN("example: foo && bar");
ANN 300 node.c ANN("|| operator");
ANN 301 node.c ANN("format: [nd_1st] || [nd_2nd]");
ANN 302 node.c ANN("example: foo && bar");
ANN 310 node.c ANN("multiple assignment");
ANN 311 node.c ANN("format: [nd_head], [nd_args] = [nd_value]");
ANN 312 node.c ANN("example: a, b = foo");
ANN 325 node.c ANN("local variable assignment");
ANN 326 node.c ANN("format: [nd_vid](lvar) = [nd_value]");
ANN 327 node.c ANN("example: x = foo");
ANN 330 node.c ANN("dynamic variable assignment (out of current scope)");
ANN 331 node.c ANN("format: [nd_vid](dvar) = [nd_value]");
ANN 332 node.c ANN("example: x = nil; 1.times { x = foo }");
ANN 335 node.c ANN("dynamic variable assignment (in current scope)");
ANN 336 node.c ANN("format: [nd_vid](current dvar) = [nd_value]");
ANN 337 node.c ANN("example: 1.times { x = foo }");
ANN 340 node.c ANN("instance variable assignment");
ANN 341 node.c ANN("format: [nd_vid](ivar) = [nd_value]");
ANN 342 node.c ANN("example: @x = foo");
ANN 345 node.c ANN("class variable assignment");
ANN 346 node.c ANN("format: [nd_vid](cvar) = [nd_value]");
ANN 347 node.c ANN("example: @@x = foo");
ANN 360 node.c ANN("global variable assignment");
ANN 361 node.c ANN("format: [nd_entry](gvar) = [nd_value]");
ANN 362 node.c ANN("example: $x = foo");
ANN 369 node.c ANN("constant declaration");
ANN 370 node.c ANN("format: [nd_else]::[nd_vid](constant) = [nd_value]");
ANN 371 node.c ANN("example: X = foo");
ANN 385 node.c ANN("array assignment with operator");
ANN 386 node.c ANN("format: [nd_value] [ [nd_args->nd_body] ] [nd_vid]= [nd_args->nd_head]");
ANN 387 node.c ANN("example: ary[1] += foo");
ANN 396 node.c ANN("attr assignment with operator");
ANN 397 node.c ANN("format: [nd_value].[attr] [nd_next->nd_mid]= [nd_value]");
ANN 398 node.c ANN(" where [attr]: [nd_next->nd_vid]");
ANN 399 node.c ANN("example: struct.field += foo");
ANN 417 node.c ANN("assignment with && operator");
ANN 418 node.c ANN("format: [nd_head] &&= [nd_value]");
ANN 419 node.c ANN("example: foo &&= bar");
ANN 422 node.c ANN("assignment with || operator");
ANN 423 node.c ANN("format: [nd_head] ||= [nd_value]");
ANN 424 node.c ANN("example: foo ||= bar");
ANN 432 node.c ANN("method invocation");
ANN 433 node.c ANN("format: [nd_recv].[nd_mid]([nd_args])");
ANN 434 node.c ANN("example: obj.foo(1)");
ANN 442 node.c ANN("function call");
ANN 443 node.c ANN("format: [nd_mid]([nd_args])");
ANN 444 node.c ANN("example: foo(1)");
ANN 451 node.c ANN("function call with no argument");
ANN 452 node.c ANN("format: [nd_mid]");
ANN 453 node.c ANN("example: foo");
ANN 458 node.c ANN("safe method invocation");
ANN 459 node.c ANN("format: [nd_recv]&.[nd_mid]([nd_args])");
ANN 460 node.c ANN("example: obj&.foo(1)");
ANN 468 node.c ANN("super invocation");
ANN 469 node.c ANN("format: super [nd_args]");
ANN 470 node.c ANN("example: super 1");
ANN 476 node.c ANN("super invocation with no argument");
ANN 477 node.c ANN("format: super");
ANN 478 node.c ANN("example: super");
ANN 482 node.c ANN("array constructor");
ANN 483 node.c ANN("format: [ [nd_head], [nd_next].. ] (length: [nd_alen])");
ANN 484 node.c ANN("example: [1, 2, 3]");
ANN 487 node.c ANN("return arguments");
ANN 488 node.c ANN("format: [ [nd_head], [nd_next].. ] (length: [nd_alen])");
ANN 489 node.c ANN("example: return 1, 2, 3");
ANN 498 node.c ANN("empty array constructor");
ANN 499 node.c ANN("format: []");
ANN 500 node.c ANN("example: []");
ANN 504 node.c ANN("hash constructor");
ANN 505 node.c ANN("format: { [nd_head] }");
ANN 506 node.c ANN("example: { 1 => 2, 3 => 4 }");
ANN 512 node.c ANN("yield invocation");
ANN 513 node.c ANN("format: yield [nd_head]");
ANN 514 node.c ANN("example: yield 1");
ANN 520 node.c ANN("local variable reference");
ANN 521 node.c ANN("format: [nd_vid](lvar)");
ANN 522 node.c ANN("example: x");
ANN 525 node.c ANN("dynamic variable reference");
ANN 526 node.c ANN("format: [nd_vid](dvar)");
ANN 527 node.c ANN("example: 1.times { x = 1; x }");
ANN 530 node.c ANN("instance variable reference");
ANN 531 node.c ANN("format: [nd_vid](ivar)");
ANN 532 node.c ANN("example: @x");
ANN 535 node.c ANN("constant reference");
ANN 536 node.c ANN("format: [nd_vid](constant)");
ANN 537 node.c ANN("example: X");
ANN 540 node.c ANN("class variable reference");
ANN 541 node.c ANN("format: [nd_vid](cvar)");
ANN 542 node.c ANN("example: @@x");
ANN 548 node.c ANN("global variable reference");
ANN 549 node.c ANN("format: [nd_entry](gvar)");
ANN 550 node.c ANN("example: $x");
ANN 555 node.c ANN("nth special variable reference");
ANN 556 node.c ANN("format: $[nd_nth]");
ANN 557 node.c ANN("example: $1, $2, ..");
ANN 562 node.c ANN("back special variable reference");
ANN 563 node.c ANN("format: $[nd_nth]");
ANN 564 node.c ANN("example: $&, $`, $', $+");
ANN 575 node.c ANN("match expression (against $_ implicitly)");
ANN 576 node.c ANN("format: [nd_lit] (in condition)");
ANN 577 node.c ANN("example: if /foo/; foo; end");
ANN 582 node.c ANN("match expression (regexp first)");
ANN 583 node.c ANN("format: [nd_recv] =~ [nd_value]");
ANN 584 node.c ANN("example: /foo/ =~ 'foo'");
ANN 595 node.c ANN("match expression (regexp second)");
ANN 596 node.c ANN("format: [nd_recv] =~ [nd_value]");
ANN 597 node.c ANN("example: 'foo' =~ /foo/");
ANN 604 node.c ANN("literal");
ANN 605 node.c ANN("format: [nd_lit]");
ANN 606 node.c ANN("example: 1, /foo/");
ANN 609 node.c ANN("string literal");
ANN 610 node.c ANN("format: [nd_lit]");
ANN 611 node.c ANN("example: 'foo'");
ANN 614 node.c ANN("xstring literal");
ANN 615 node.c ANN("format: [nd_lit]");
ANN 616 node.c ANN("example: `foo`");
ANN 622 node.c ANN("string literal with interpolation");
ANN 623 node.c ANN("format: [nd_lit]");
ANN 624 node.c ANN("example: \"foo#{ bar }baz\"");
ANN 627 node.c ANN("xstring literal with interpolation");
ANN 628 node.c ANN("format: [nd_lit]");
ANN 629 node.c ANN("example: `foo#{ bar }baz`");
ANN 632 node.c ANN("regexp literal with interpolation");
ANN 633 node.c ANN("format: [nd_lit]");
ANN 634 node.c ANN("example: /foo#{ bar }baz/");
ANN 637 node.c ANN("regexp literal with interpolation and once flag");
ANN 638 node.c ANN("format: [nd_lit]");
ANN 639 node.c ANN("example: /foo#{ bar }baz/o");
ANN 642 node.c ANN("symbol literal with interpolation");
ANN 643 node.c ANN("format: [nd_lit]");
ANN 644 node.c ANN("example: :\"foo#{ bar }baz\"");
ANN 653 node.c ANN("interpolation expression");
ANN 654 node.c ANN("format: \"..#{ [nd_lit] }..\"");
ANN 655 node.c ANN("example: \"foo#{ bar }baz\"");
ANN 661 node.c ANN("splat argument following arguments");
ANN 662 node.c ANN("format: ..(*[nd_head], [nd_body..])");
ANN 663 node.c ANN("example: foo(*ary, post_arg1, post_arg2)");
ANN 670 node.c ANN("splat argument following one argument");
ANN 671 node.c ANN("format: ..(*[nd_head], [nd_body])");
ANN 672 node.c ANN("example: foo(*ary, post_arg)");
ANN 679 node.c ANN("splat argument");
ANN 680 node.c ANN("format: *[nd_head]");
ANN 681 node.c ANN("example: foo(*ary)");
ANN 687 node.c ANN("arguments with block argument");
ANN 688 node.c ANN("format: ..([nd_head], &[nd_body])");
ANN 689 node.c ANN("example: foo(x, &blk)");
ANN 696 node.c ANN("method definition");
ANN 697 node.c ANN("format: def [nd_mid] [nd_defn]; end");
ANN 698 node.c ANN("example; def foo; bar; end");
ANN 705 node.c ANN("singleton method definition");
ANN 706 node.c ANN("format: def [nd_recv].[nd_mid] [nd_defn]; end");
ANN 707 node.c ANN("example; def obj.foo; bar; end");
ANN 715 node.c ANN("method alias statement");
ANN 716 node.c ANN("format: alias [u1.node] [u2.node]");
ANN 717 node.c ANN("example: alias bar foo");
ANN 724 node.c ANN("global variable alias statement");
ANN 725 node.c ANN("format: alias [u1.id](gvar) [u2.id](gvar)");
ANN 726 node.c ANN("example: alias $y $x");
ANN 732 node.c ANN("method alias statement");
ANN 733 node.c ANN("format: undef [u2.node]");
ANN 734 node.c ANN("example: undef foo");
ANN 740 node.c ANN("class definition");
ANN 741 node.c ANN("format: class [nd_cpath] < [nd_super]; [nd_body]; end");
ANN 742 node.c ANN("example: class C2 < C; ..; end");
ANN 750 node.c ANN("module definition");
ANN 751 node.c ANN("format: module [nd_cpath]; [nd_body]; end");
ANN 752 node.c ANN("example: module M; ..; end");
ANN 759 node.c ANN("singleton class definition");
ANN 760 node.c ANN("format: class << [nd_recv]; [nd_body]; end");
ANN 761 node.c ANN("example: class << obj; ..; end");
ANN 768 node.c ANN("scoped constant reference");
ANN 769 node.c ANN("format: [nd_head]::[nd_mid]");
ANN 770 node.c ANN("example: M::C");
ANN 777 node.c ANN("top-level constant reference");
ANN 778 node.c ANN("format: ::[nd_mid]");
ANN 779 node.c ANN("example: ::Object");
ANN 784 node.c ANN("range constructor (incl.)");
ANN 785 node.c ANN("format: [nd_beg]..[nd_end]");
ANN 786 node.c ANN("example: 1..5");
ANN 789 node.c ANN("range constructor (excl.)");
ANN 790 node.c ANN("format: [nd_beg]...[nd_end]");
ANN 791 node.c ANN("example: 1...5");
ANN 794 node.c ANN("flip-flop condition (incl.)");
ANN 795 node.c ANN("format: [nd_beg]..[nd_end]");
ANN 796 node.c ANN("example: if (x==1)..(x==5); foo; end");
ANN 799 node.c ANN("flip-flop condition (excl.)");
ANN 800 node.c ANN("format: [nd_beg]...[nd_end]");
ANN 801 node.c ANN("example: if (x==1)...(x==5); foo; end");
ANN 809 node.c ANN("self");
ANN 810 node.c ANN("format: self");
ANN 811 node.c ANN("example: self");
ANN 815 node.c ANN("nil");
ANN 816 node.c ANN("format: nil");
ANN 817 node.c ANN("example: nil");
ANN 821 node.c ANN("true");
ANN 822 node.c ANN("format: true");
ANN 823 node.c ANN("example: true");
ANN 827 node.c ANN("false");
ANN 828 node.c ANN("format: false");
ANN 829 node.c ANN("example: false");
ANN 833 node.c ANN("virtual reference to $!");
ANN 834 node.c ANN("format: rescue => id");
ANN 835 node.c ANN("example: rescue => id");
ANN 839 node.c ANN("defined? expression");
ANN 840 node.c ANN("format: defined?([nd_head])");
ANN 841 node.c ANN("example: defined?(foo)");
ANN 846 node.c ANN("post-execution");
ANN 847 node.c ANN("format: END { [nd_body] }");
ANN 848 node.c ANN("example: END { foo }");
ANN 854 node.c ANN("attr assignment");
ANN 855 node.c ANN("format: [nd_recv].[nd_mid] = [nd_args]");
ANN 856 node.c ANN("example: struct.field = foo");
ANN 869 node.c ANN("pre-execution");
ANN 870 node.c ANN("format: BEGIN { [nd_head] }; [nd_body]");
ANN 871 node.c ANN("example: bar; BEGIN { foo }");
ANN 883 node.c ANN("lambda expression");
ANN 884 node.c ANN("format: -> [nd_body]");
ANN 885 node.c ANN("example: -> { foo }");
ANN 891 node.c ANN("optional arguments");
ANN 892 node.c ANN("format: def method_name([nd_body=some], [nd_next..])");
ANN 893 node.c ANN("example: def foo(a, b=1, c); end");
ANN 900 node.c ANN("keyword arguments");
ANN 901 node.c ANN("format: def method_name([nd_body=some], [nd_next..])");
ANN 902 node.c ANN("example: def foo(a:1, b:2); end");
ANN 909 node.c ANN("post arguments");
ANN 910 node.c ANN("format: *[nd_1st], [nd_2nd..] = ..");
ANN 911 node.c ANN("example: a, *rest, z = foo");
ANN 923 node.c ANN("method parameters");
ANN 924 node.c ANN("format: def method_name(.., [nd_opt=some], *[nd_rest], [nd_pid], .., &[nd_body])");
ANN 925 node.c ANN("example: def foo(a, b, opt1=1, opt2=2, *rest, y, z, &blk); end");
ANN 940 node.c ANN("new scope");
ANN 941 node.c ANN("format: [nd_tbl]: local table, [nd_args]: arguments, [nd_body]: body");