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");