# -*- t-utils-ts-parse-tree -*-
(source_file<1,411> (comment[1,20]@{% -*- matlab-ts -*-}@) \n[20,22]
 (spmd_statement<22,70> spmd[22,26] (comment[31,36]@{% foo}@)
  (block<41,67>
   (assignment<41,65> left: (identifier[41,42]@{q}@) =[43,44]
    right: 
     (function_call<45,65> name: (identifier[45,50]@{magic}@) ([50,51]
      (arguments<51,64>
       argument: (binary_operator<51,64> left: (identifier[51,60]@{spmdIndex}@) +[61,62] right: (number[63,64]@{2}@)))
      )[64,65]))
   ;[65,66] \n[66,67])
  end[67,70])
 \n[70,72]
 (assignment<72,114> left: (identifier[72,85]@{myClusterPool}@) =[86,87]
  right: 
   (function_call<88,114> name: (identifier[88,95]@{parpool}@) ([95,96]
    (arguments<96,113>
     argument: (string<96,110> "[96,97] (string_content[97,109]@{myMJSCluster}@) "[109,110])
     ,[110,111] (number[111,113]@{15}@))
    )[113,114]))
 ;[114,115]
 (assignment<117,157> left: (identifier[117,128]@{spmdWorkers}@) =[129,130]
  right: 
   (field_expression<131,157> object: (identifier[131,144]@{myClusterPool}@) .[144,145]
    field: 
     (function_call<145,157> name: (identifier[145,152]@{Workers}@) ([152,153]
      (arguments<153,156>
       argument: (range<153,156> (number[153,154]@{1}@) :[154,155] (number[155,156]@{6}@)))
      )[156,157])))
 ;[157,158]
 (assignment<159,228>
  left: (multioutput_variable<159,179> [[159,160] (identifier[160,168]@{spmdPool}@) ,[168,169] (identifier[169,178]@{otherPool}@) ][178,179])
  =[180,181]
  right: 
   (function_call<182,228> name: (identifier[182,191]@{partition}@) ([191,192]
    (arguments<192,227> argument: (identifier[192,205]@{myClusterPool}@) ,[205,206]
     (string<206,215> "[206,207] (string_content[207,214]@{Workers}@) "[214,215])
     ,[215,216] (identifier[216,227]@{spmdWorkers}@))
    )[227,228]))
 ;[228,229]
 (assignment<231,255> left: (identifier[231,234]@{fun}@) =[235,236]
  right: 
   (lambda<237,255> @[237,238] ([238,239]
    (arguments<239,240> (identifier[239,240]@{x}@))
    )[240,241]
    expression: 
     (binary_operator<242,255> left: (number[242,244]@{4.}@) /[244,245]
      right: 
       (parenthesis<245,255> ([245,246]
        (binary_operator<246,254> left: (number[246,247]@{1}@) +[248,249]
         right: (binary_operator<250,254> left: (identifier[250,251]@{x}@) .^[251,253] right: (number[253,254]@{2}@)))
        )[254,255]))))
 ;[255,256] \n[256,257]
 (spmd_statement<257,410> spmd[257,261] ([261,262] (identifier[262,270]@{spmdPool}@) )[270,271]
  (block<276,407>
   (assignment<276,304> left: (identifier[276,277]@{a}@) =[278,279]
    right: 
     (binary_operator<280,304>
      left: 
       (parenthesis<280,295> ([280,281]
        (binary_operator<281,294> left: (identifier[281,290]@{spmdIndex}@) -[291,292] right: (number[293,294]@{1}@))
        )[294,295])
      /[295,296] right: (identifier[296,304]@{spmdSize}@)))
   ;[304,305]
   (assignment<310,332> left: (identifier[310,311]@{b}@) =[312,313]
    right: (binary_operator<314,332> left: (identifier[314,323]@{spmdIndex}@) /[323,324] right: (identifier[324,332]@{spmdSize}@)))
   ;[332,333]
   (assignment<338,368> left: (identifier[338,348]@{myIntegral}@) =[349,350]
    right: 
     (function_call<351,368> name: (identifier[351,359]@{integral}@) ([359,360]
      (arguments<360,367> argument: (identifier[360,363]@{fun}@) ,[363,364] (identifier[364,365]@{a}@) ,[365,366] (identifier[366,367]@{b}@))
      )[367,368]))
   ;[368,369]
   (assignment<374,405> left: (identifier[374,382]@{piApprox}@) =[383,384]
    right: 
     (function_call<385,405> name: (identifier[385,393]@{spmdPlus}@) ([393,394]
      (arguments<394,404> argument: (identifier[394,404]@{myIntegral}@))
      )[404,405]))
   ;[405,406] \n[406,407])
  end[407,410])
 \n[410,411])
