# -*- t-utils-ts-parse-tree -*-
(source_file<1,1943> (comment[1,20]@{% -*- matlab-ts -*-}@) \n[20,22]
 (class_definition<22,1942> classdef[22,30]
  (attributes<31,41> ([31,32]
   (attribute<32,40> (identifier[32,40]@{abstract}@))
   )[40,41])
  name: (identifier[42,71]@{font_lock_keywords_as_others2}@)
  (superclasses<72,112> <[72,73]
   (property_name<74,80> (identifier[74,80]@{handle}@))
   &[81,82]
   (property_name<83,112> (identifier[83,89]@{matlab}@) .[89,90] (identifier[90,95]@{mixin}@) .[95,96] (identifier[96,112]@{SetGetExactNames}@)))
  \n[112,113]
  (properties<117,320> properties[117,127]
   (attributes<128,145> ([128,129]
    (attribute<129,144> (identifier[129,135]@{Access}@) =[135,136]
     (string<136,144> '[136,137] (string_content[137,143]@{public}@) '[143,144]))
    )[144,145])
   \n[145,146]
   (property<154,161> name: (identifier[154,156]@{AP}@)
    (default_value<157,161> =[157,158]
     (matrix<159,161> [[159,160] ][160,161])))
   ;[161,162] \n[162,163]
   (property<171,196> name: (identifier[171,173]@{AB}@)
    (default_value<174,196> =[174,175]
     (string<176,196> '[176,177] (string_content[177,195]@{charvec with space}@) '[195,196])))
   ;[196,197] \n[197,198]
   (property<206,237> name: (identifier[206,208]@{AC}@)
    (default_value<209,237> =[209,210]
     (string<211,237> "[211,212] (string_content[212,236]@{string with space and ( }@) "[236,237])))
   ;[237,238] \n[238,239]
   (property<247,265> name: (identifier[247,249]@{AD}@)
    (default_value<250,265> =[250,251]
     (function_call<252,265> name: (identifier[252,260]@{fun_call}@) ([260,261]
      (arguments<261,264> argument: (number[261,262]@{1}@) ,[262,263] (number[263,264]@{2}@))
      )[264,265])))
   ;[265,266] \n[266,267]
   (property<275,311> name: (identifier[275,277]@{AE}@)
    (dimensions<278,283> ([278,279] (number[279,280]@{1}@) ,[280,281]
     (spread_operator<281,282> :[281,282])
     )[282,283])
    (identifier[284,290]@{double}@)
    (validation_functions<291,307> {[291,292] (identifier[292,306]@{mustBePositive}@) }[306,307])
    (default_value<308,311> =[308,309] (number[310,311]@{1}@)))
   ;[311,312] \n[312,313] end[317,320])
  \n[320,322]
  (properties<326,507> properties[326,336]
   (attributes<337,370> ([337,338]
    (attribute<338,351> (identifier[338,346]@{AbortSet}@) =[346,347] (identifier[347,351]@{true}@))
    ,[351,352]
    (attribute<353,369> (identifier[353,364]@{NonCopyable}@) =[364,365] (identifier[365,369]@{true}@))
    )[369,370])
   \n[370,371]
   (property<379,444> name: (identifier[379,381]@{AF}@)
    (dimensions<382,387> ([382,383] (number[383,384]@{1}@) ,[384,385] (number[385,386]@{1}@) )[386,387])
    (identifier[388,392]@{char}@)
    (validation_functions<393,436> {[393,394]
     (function_call<394,435> name: (identifier[394,406]@{mustBeMember}@) ([406,407]
      (arguments<407,434> argument: (identifier[407,409]@{AF}@) ,[409,410]
       (cell<411,434> {[411,412]
        (row<412,433>
         (string<412,418> '[412,413] (string_content[413,417]@{High}@) '[417,418])
         ,[418,419]
         (string<419,427> '[419,420] (string_content[420,426]@{Medium}@) '[426,427])
         ,[427,428]
         (string<428,433> '[428,429] (string_content[429,432]@{Low}@) '[432,433]))
        }[433,434]))
      )[434,435])
     }[435,436])
    (default_value<437,444> =[437,438]
     (string<439,444> '[439,440] (string_content[440,443]@{Low}@) '[443,444])))
   ;[444,445] \n[445,446]
   (property<454,498> name: (identifier[454,456]@{AG}@)
    (dimensions<457,462> ([457,458] (number[458,459]@{1}@) ,[459,460] (number[460,461]@{1}@) )[461,462])
    (property_name<463,491> (identifier[463,469]@{matlab}@) .[469,470] (identifier[470,474]@{lang}@) .[474,475] (identifier[475,491]@{OnOffSwitchState}@))
    (default_value<492,498> =[492,493]
     (string<494,498> '[494,495] (string_content[495,497]@{on}@) '[497,498])))
   ;[498,499] \n[499,500] end[504,507])
  \n[507,509]
  (events<513,557> events[513,519] \n[519,520] (identifier[528,534]@{Event1}@) \n[534,535] (identifier[543,549]@{Event2}@) \n[549,550] end[554,557])
  \n[557,559]
  (methods<563,1014> methods[563,570] \n[570,571]
   (function_definition<579,1006> function[579,587]
    (function_output<588,593> (identifier[588,591]@{obj}@) =[592,593])
    name: (identifier[594,600]@{mclass}@)
    (function_arguments<600,602> ([600,601] )[601,602])
    \n[602,603]
    (block<615,995>
     (assignment<615,637>
      left: (field_expression<615,621> object: (identifier[615,618]@{obj}@) .[618,619] field: (identifier[619,621]@{AB}@))
      =[622,623]
      right: 
       (field_expression<624,637> object: (identifier[624,627]@{obj}@) .[627,628]
        field: 
         (function_call<628,637> name: (identifier[628,630]@{AP}@) ([630,631]
          (arguments<631,636>
           argument: 
            (range<631,636> (number[631,632]@{1}@) :[632,633]
             (end_keyword<633,636> end[633,636])))
          )[636,637])))
     ;[637,638]
     (assignment<651,664> left: (identifier[651,660]@{unusedvar}@) =[661,662] right: (number[663,664]@{1}@))
     ;[664,665]
     (function_call<678,724> name: (identifier[678,682]@{disp}@) ([682,683]
      (arguments<683,723>
       argument: (string<683,723> '[683,684] (string_content[684,722]@{charvect with if and for words [ in it}@) '[722,723]))
      )[723,724])
     ;[724,725]
     (function_call<738,799> name: (identifier[738,744]@{notify}@) ([744,745]
      (arguments<745,798> argument: (identifier[745,748]@{obj}@) ,[748,749]
       (string<749,757> '[749,750] (string_content[750,756]@{Event1}@) '[756,757])
       ,[757,758] (line_continuation[758,762]@{...\n}@)
       (string<785,798> '[785,786] (string_content[786,797]@{indent test}@) '[797,798]))
      )[798,799])
     ;[799,800]
     (function_call<813,849> name: (identifier[813,819]@{notify}@) ([819,820]
      (arguments<820,848> argument: (identifier[820,823]@{obj}@) ,[823,824]
       (string<825,833> '[825,826] (string_content[826,832]@{Event1}@) '[832,833])
       ,[833,834]
       (string<835,848> '[835,836] (string_content[836,847]@{indent test}@) '[847,848]))
      )[848,849])
     ;[849,850] \n[850,851]
     (while_statement<863,943> while[863,868]
      condition: (field_expression<869,875> object: (identifier[869,872]@{obj}@) .[872,873] field: (identifier[873,875]@{AB}@))
      (block<892,928>
       (function_call<892,926> name: (identifier[892,896]@{disp}@) ([896,897]
        (arguments<897,925>
         argument: (string<897,925> "[897,898] (string_content[898,924]@{while loop going on here (}@) "[924,925]))
        )[925,926])
       ;[926,927] \n[927,928])
      end[940,943])
     \n[943,944]
     (function_call<956,993> name: (identifier[956,961]@{error}@) ([961,962]
      (arguments<962,992>
       argument: (string<962,992> '[962,963] (string_content[963,991]@{function mclass in charvec \}}@) '[991,992]))
      )[992,993])
     ;[993,994] \n[994,995])
    end[1003,1006])
   \n[1006,1007] end[1011,1014])
  \n[1014,1015]
  (methods<1019,1259> methods[1019,1026]
   (attributes<1027,1044> ([1027,1028]
    (attribute<1028,1043> (identifier[1028,1034]@{Access}@) =[1034,1035]
     (string<1035,1043> '[1035,1036] (string_content[1036,1042]@{public}@) '[1042,1043]))
    )[1043,1044])
   \n[1044,1045]
   (function_definition<1053,1251> function[1053,1061] name: (identifier[1062,1066]@{meth}@)
    (function_arguments<1066,1071> ([1066,1067] arguments: (identifier[1067,1070]@{obj}@) )[1070,1071])
    \n[1071,1072]
    (block<1084,1240>
     (if_statement<1084,1239> if[1084,1086]
      condition: (field_expression<1087,1093> object: (identifier[1087,1090]@{obj}@) .[1090,1091] field: (identifier[1091,1093]@{AP}@))
      (block<1110,1145>
       (function_call<1110,1143> name: (identifier[1110,1114]@{disp}@) ([1114,1115]
        (arguments<1115,1142>
         argument: (string<1115,1142> '[1115,1116] (string_content[1116,1141]@{display the word end here}@) '[1141,1142]))
        )[1142,1143])
       ;[1143,1144] \n[1144,1145])
      (else_clause<1157,1224> else[1157,1161] \n[1161,1162]
       (block<1178,1224>
        (try_statement<1178,1223> try[1178,1181] \n[1181,1182]
         (catch_clause<1198,1204> catch[1198,1203] \n[1203,1204])
         end[1220,1223])
        \n[1223,1224]))
      end[1236,1239])
     \n[1239,1240])
    end[1248,1251])
   \n[1251,1252] end[1256,1259])
  \n[1259,1260]
  (methods<1264,1370> methods[1264,1271]
   (attributes<1272,1295> ([1272,1273]
    (attribute<1273,1281> (identifier[1273,1281]@{Abstract}@))
    ,[1281,1282]
    (attribute<1283,1294> (identifier[1283,1289]@{Hidden}@) =[1289,1290] (identifier[1290,1294]@{true}@))
    )[1294,1295])
   \n[1295,1296]
   (function_signature<1304,1326>
    (function_output<1304,1312> (identifier[1304,1310]@{result}@) =[1311,1312])
    name: (identifier[1313,1321]@{abs_func}@)
    (function_arguments<1321,1326> ([1321,1322] arguments: (identifier[1322,1323]@{a}@) ,[1323,1324] (identifier[1324,1325]@{b}@) )[1325,1326]))
   \n[1326,1327]
   (function_signature<1335,1362>
    (function_output<1335,1343> (identifier[1335,1341]@{result}@) =[1342,1343])
    name: (identifier[1344,1357]@{other_abs_fun}@)
    (function_arguments<1357,1362> ([1357,1358] arguments: (identifier[1358,1359]@{a}@) ,[1359,1360] (identifier[1360,1361]@{b}@) )[1361,1362]))
   \n[1362,1363] end[1367,1370])
  \n[1370,1371]
  (methods<1375,1524> methods[1375,1382] \n[1382,1383]
   (function_definition<1391,1432> function[1391,1399] name: (identifier[1400,1417]@{end_separate_line}@)
    (function_arguments<1417,1420> ([1417,1418]
     arguments: (ignored_argument<1418,1419> ~[1418,1419])
     )[1419,1420])
    \n[1420,1421] end[1429,1432])
   \n[1432,1433]
   (function_definition<1441,1471> function[1441,1449] name: (identifier[1450,1463]@{end_same_line}@)
    (function_arguments<1463,1466> ([1463,1464]
     arguments: (ignored_argument<1464,1465> ~[1464,1465])
     )[1465,1466])
    ,[1466,1467] end[1468,1471])
   \n[1471,1472]
   (function_definition<1480,1516> function[1480,1488] name: (identifier[1489,1508]@{after_end_same_line}@)
    (function_arguments<1508,1511> ([1508,1509]
     arguments: (ignored_argument<1509,1510> ~[1509,1510])
     )[1510,1511])
    ,[1511,1512] end[1513,1516])
   \n[1516,1517] end[1521,1524])
  \n[1524,1525]
  (methods<1529,1938> methods[1529,1536] \n[1536,1537]
   (function_definition<1545,1579> function[1545,1553] name: (identifier[1554,1564]@{properties}@)
    (function_arguments<1564,1567> ([1564,1565]
     arguments: (ignored_argument<1565,1566> ~[1565,1566])
     )[1566,1567])
    \n[1567,1568] end[1576,1579])
   \n[1579,1580]
   (function_definition<1588,1619> function[1588,1596]
    name: (identifier<1597,1604> methods[1597,1604])
    (function_arguments<1604,1607> ([1604,1605]
     arguments: (ignored_argument<1605,1606> ~[1605,1606])
     )[1606,1607])
    \n[1607,1608] end[1616,1619])
   \n[1619,1620]
   (function_definition<1628,1658> function[1628,1636]
    name: (identifier<1637,1643> events[1637,1643])
    (function_arguments<1643,1646> ([1643,1644]
     arguments: (ignored_argument<1644,1645> ~[1644,1645])
     )[1645,1646])
    \n[1646,1647] end[1655,1658])
   \n[1658,1659]
   (function_definition<1667,1700> function[1667,1675]
    name: (identifier<1676,1685> arguments[1676,1685])
    (function_arguments<1685,1688> ([1685,1686]
     arguments: (ignored_argument<1686,1687> ~[1686,1687])
     )[1687,1688])
    \n[1688,1689] end[1697,1700])
   \n[1700,1701]
   (function_definition<1709,1744> function[1709,1717]
    name: (identifier<1718,1729> enumeration[1718,1729])
    (function_arguments<1729,1732> ([1729,1730]
     arguments: (ignored_argument<1730,1731> ~[1730,1731])
     )[1731,1732])
    \n[1732,1733] end[1741,1744])
   \n[1744,1745]
   (function_definition<1753,1930> function[1753,1761] name: (identifier[1762,1770]@{usestuff}@)
    (function_arguments<1770,1775> ([1770,1771] arguments: (identifier[1771,1774]@{obj}@) )[1774,1775])
    \n[1775,1776]
    (block<1788,1919>
     (field_expression<1788,1804> object: (identifier[1788,1791]@{obj}@) .[1791,1792]
      field: (function_call<1792,1804> name: (identifier[1792,1802]@{properties}@) ([1802,1803] )[1803,1804]))
     ;[1804,1805]
     (field_expression<1818,1831> object: (identifier[1818,1821]@{obj}@) .[1821,1822]
      field: 
       (function_call<1822,1831>
        name: (identifier<1822,1829> methods[1822,1829])
        ([1829,1830] )[1830,1831]))
     ;[1831,1832]
     (field_expression<1845,1857> object: (identifier[1845,1848]@{obj}@) .[1848,1849]
      field: 
       (function_call<1849,1857>
        name: (identifier<1849,1855> events[1849,1855])
        ([1855,1856] )[1856,1857]))
     ;[1857,1858]
     (field_expression<1871,1886> object: (identifier[1871,1874]@{obj}@) .[1874,1875]
      field: 
       (function_call<1875,1886>
        name: (identifier<1875,1884> arguments[1875,1884])
        ([1884,1885] )[1885,1886]))
     ;[1886,1887]
     (field_expression<1900,1917> object: (identifier[1900,1903]@{obj}@) .[1903,1904]
      field: 
       (function_call<1904,1917>
        name: (identifier<1904,1915> enumeration[1904,1915])
        ([1915,1916] )[1916,1917]))
     ;[1917,1918] \n[1918,1919])
    end[1927,1930])
   \n[1930,1931] end[1935,1938])
  \n[1938,1939] end[1939,1942])
 \n[1942,1943])
