Hex Artifact Content Вы: nobody
Вход

Artifact 1cf0205486361d5b2d0906091bbc5a8df8cec3d0:


0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69  ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 74 65 73 74 53  pt..$uname testS
0020: 79 6e 74 61 78 41 6e 61 6c 79 73 69 73 0d 0a 24  yntaxAnalysis..$
0030: 64 6e 61 6d 65 20 d0 a2 d0 b5 d1 81 d1 82 d1 8b  dname ..........
0040: 20 d0 b4 d0 bb d1 8f 20 d0 ba d0 bb d0 b0 d1 81   ...... ........
0050: d1 81 d0 b0 20 53 79 6e 74 61 78 41 6e 61 6c 79  .... SyntaxAnaly
0060: 73 69 73 0d 0a 24 61 64 64 69 6e 20 67 6c 6f 62  sis..$addin glob
0070: 61 6c 0d 0a 24 61 64 64 69 6e 20 73 74 64 63 6f  al..$addin stdco
0080: 6d 6d 61 6e 64 73 0d 0a 24 61 64 64 69 6e 20 73  mmands..$addin s
0090: 74 64 6c 69 62 0d 0a 0d 0a 73 74 64 6c 69 62 2e  tdlib....stdlib.
00a0: 72 65 71 75 69 72 65 28 27 6a 73 55 6e 69 74 43  require('jsUnitC
00b0: 6f 72 65 2e 6a 73 27 2c 20 53 65 6c 66 53 63 72  ore.js', SelfScr
00c0: 69 70 74 29 3b 0d 0a 73 74 64 6c 69 62 2e 72 65  ipt);..stdlib.re
00d0: 71 75 69 72 65 28 27 53 79 6e 74 61 78 41 6e 61  quire('SyntaxAna
00e0: 6c 79 73 69 73 2e 6a 73 27 2c 20 53 65 6c 66 53  lysis.js', SelfS
00f0: 63 72 69 70 74 29 3b 0d 0a 20 20 20 20 0d 0a 2f  cript);..    ../
0100: 2f 7b 20 73 65 74 55 70 2f 74 65 61 72 44 6f 77  /{ setUp/tearDow
0110: 6e 20 20 20 20 0d 0a 66 75 6e 63 74 69 6f 6e 20  n    ..function 
0120: 73 65 74 55 70 28 29 20 7b 0d 0a 7d 0d 0a 0d 0a  setUp() {..}....
0130: 66 75 6e 63 74 69 6f 6e 20 74 65 61 72 44 6f 77  function tearDow
0140: 6e 28 29 20 7b 0d 0a 7d 0d 0a 2f 2f 7d 20 73 65  n() {..}..//} se
0150: 74 55 70 2f 74 65 61 72 44 6f 77 6e 0d 0a 0d 0a  tUp/tearDown....
0160: 2f 2f 7b 20 74 65 73 74 73 20 6f 66 20 41 6e 61  //{ tests of Ana
0170: 6c 79 73 65 4d 6f 64 75 6c 65 0d 0a 66 75 6e 63  lyseModule..func
0180: 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 41  tion macrosTestA
0190: 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 31 28 29 20  nalyseModule1() 
01a0: 7b 0d 0a 0d 0a 20 20 20 20 76 61 72 20 6d 6f 64  {....    var mod
01b0: 75 6c 65 54 65 78 74 20 3d 20 22 22 0d 0a 20 20  uleText = ""..  
01c0: 20 20 20 20 20 20 2b 20 22 d0 9f d0 b5 d1 80 d0        + ".......
01d0: b5 d0 bc 20 d0 bc d0 9f d0 b5 d1 80 d0 b5 d0 bc  ... ............
01e0: d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c d0 be d0 b4  ................
01f0: d1 83 d0 bb d1 8f 3b 5c 6e 5c 6e 22 0d 0a 20 20  ......;\n\n"..  
0200: 20 20 20 20 20 20 2b 20 22 d0 9f d0 b5 d1 80 d0        + ".......
0210: b5 d0 bc 20 d0 95 d1 89 d0 b5 d0 9e d0 b4 d0 bd  ... ............
0220: d0 b0 d0 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd  ................
0230: d0 bd d0 b0 d1 8f 3b 5c 6e 22 0d 0a 20 20 20 20  ......;\n"..    
0240: 20 20 20 20 2b 20 22 d0 9f d0 b5 d1 80 d0 b5 d0      + ".........
0250: bc 20 d0 ad d0 ba d1 81 d0 bf d0 be d1 80 d1 82  . ..............
0260: d0 bd d0 b0 d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc  ................
0270: d0 b5 d0 bd d0 bd d0 b0 d1 8f 20 d0 ad d0 ba d1  .......... .....
0280: 81 d0 bf d0 be d1 80 d1 82 3b 5c 6e 22 0d 0a 20  .........;\n".. 
0290: 20 20 20 20 20 20 20 2b 20 22 d0 9f d0 b5 d1 80         + "......
02a0: d0 b5 d0 bc 20 d0 ad d0 ba d1 81 d0 bf d0 be d1  .... ...........
02b0: 80 d1 82 d0 bd d1 8b d0 b9 d0 9c d0 b0 d1 81 d1  ................
02c0: 81 d0 b8 d0 b2 5b 31 30 5d 20 d0 ad d0 ba d1 81  .....[10] ......
02d0: d0 bf d0 be d1 80 d1 82 2c 20 d0 9b d0 be d0 ba  ........, ......
02e0: d0 b0 d0 bb d1 8c d0 bd d1 8b d0 b9 d0 9c d0 b0  ................
02f0: d1 81 d1 81 d0 b8 d0 b2 5b 33 5d 2c 20 d0 9f d1  ........[3], ...
0300: 80 d0 be d1 81 d1 82 d0 be d0 9f d0 b5 d1 80 d0  ................
0310: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 3b 5c 6e  .............;\n
0320: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9f  "..        + "..
0330: d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0  ................
0340: 20 d0 9c d0 be d1 8f d0 9f d1 80 d0 be d1 86 d0   ...............
0350: b5 d0 b4 d1 83 d1 80 d0 b0 28 d0 9f d0 b0 d1 80  .........(......
0360: d0 b0 d0 bc 31 2c 20 d0 9f d0 b0 d1 80 d0 b0 d0  ....1, .........
0370: bc 32 29 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20  .2)\n"..        
0380: 2b 20 22 09 d0 9f d0 b5 d1 80 d0 b5 d0 bc 20 d0  + "........... .
0390: 9c d0 be d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc 31  ...............1
03a0: 3b 5c 6e 5c 6e 22 09 0d 0a 20 20 20 20 20 20 20  ;\n\n"...       
03b0: 20 2b 20 22 09 d0 9c d0 be d1 8f d0 9f d0 b5 d1   + "............
03c0: 80 d0 b5 d0 bc 31 20 3d 20 34 32 3b 5c 6e 5c 6e  .....1 = 42;\n\n
03d0: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 09 d0  "..        + "..
03e0: 90 d0 b2 d1 82 d0 be d0 bc d0 b0 d1 82 d0 b8 d1  ................
03f0: 87 d0 b5 d1 81 d0 ba d0 b0 d1 8f d0 9f d0 b5 d1  ................
0400: 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 20  ............... 
0410: 3d 20 31 30 3b 5c 6e 22 09 0d 0a 20 20 20 20 20  = 10;\n"...     
0420: 20 20 20 2b 20 22 09 d0 bc d0 9f d0 b5 d1 80 d0     + "..........
0430: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c d0  ................
0440: be d0 b4 d1 83 d0 bb d1 8f 20 3d 20 5c 22 5c 22  ......... = \"\"
0450: 3b 5c 6e 22 09 0d 0a 20 20 20 20 20 20 20 20 2b  ;\n"...        +
0460: 20 22 d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f d1 80   "..............
0470: d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 5c 6e  ..............\n
0480: 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22  \n"..        + "
0490: d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d1 8f 20 d0  .............. .
04a0: 9c d0 be d1 8f d0 a4 d1 83 d0 bd d0 ba d1 86 d0  ................
04b0: b8 d1 8f 28 d0 9f d0 b0 d1 80 d0 b0 d0 bc d0 b5  ...(............
04c0: d1 82 d1 80 d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8  ................
04d0: d0 b8 29 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20  ..)\n"..        
04e0: 2b 20 22 09 d0 a1 d0 be d0 be d0 b1 d1 89 d0 b8  + ".............
04f0: d1 82 d1 8c 28 d0 bc d0 9f d0 b5 d1 80 d0 b5 d0  ....(...........
0500: bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c d0 be d0  ................
0510: b4 d1 83 d0 bb d1 8f 29 3b 09 5c 6e 22 0d 0a 20  .......);.\n".. 
0520: 20 20 20 20 20 20 20 2b 20 22 09 d0 92 d0 be d0         + "......
0530: b7 d0 b2 d1 80 d0 b0 d1 82 20 d0 98 d1 81 d1 82  ......... ......
0540: d0 b8 d0 bd d0 b0 3b 09 5c 6e 22 0d 0a 20 20 20  ......;.\n"..   
0550: 20 20 20 20 20 2b 20 22 d0 9a d0 be d0 bd d0 b5       + "........
0560: d1 86 d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8  ................
0570: 5c 6e 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b  \n\n"..        +
0580: 20 22 d0 9c d0 be d1 8f d0 9f d1 80 d0 be d1 86   "..............
0590: d0 b5 d0 b4 d1 83 d1 80 d0 b0 28 31 2c 20 32 29  ..........(1, 2)
05a0: 3b 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20  ;\n"..        + 
05b0: 22 d0 a0 d0 b5 d0 b7 d1 83 d0 bb d1 8c d1 82 d0  "...............
05c0: b0 d1 82 20 3d 20 d0 9c d0 be d1 8f d0 a4 d1 83  ... = ..........
05d0: d0 bd d0 ba d1 86 d0 b8 d1 8f 28 29 3b 5c 6e 22  ..........();\n"
05e0: 0d 0a 2f 2f 64 65 62 75 67 67 65 72 3b 0d 0a 20  ..//debugger;.. 
05f0: 20 20 20 76 61 72 20 63 6e 74 20 3d 20 53 79 6e     var cnt = Syn
0600: 74 61 78 41 6e 61 6c 79 73 69 73 2e 41 6e 61 6c  taxAnalysis.Anal
0610: 79 73 65 4d 6f 64 75 6c 65 28 6d 6f 64 75 6c 65  yseModule(module
0620: 54 65 78 74 29 3b 0d 0a 20 20 20 20 20 20 20 20  Text);..        
0630: 0d 0a 20 20 20 20 2f 2f 4d 65 73 73 61 67 65 28  ..    //Message(
0640: 63 6e 74 2e 4d 6f 64 75 6c 65 56 61 72 73 2e 6a  cnt.ModuleVars.j
0650: 6f 69 6e 28 27 2c 27 29 29 3b 0d 0a 20 20 20 20  oin(','));..    
0660: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 61 73          ..    as
0670: 73 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5  sertEquals('....
0680: d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd  ................
0690: d0 be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0  .. .............
06a0: bb d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8  ....... ........
06b0: d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bf d0  ............ ...
06c0: b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d1  ................
06d0: 85 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8f 21 27  . ............!'
06e0: 2c 20 36 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65 56  , 6, cnt.ModuleV
06f0: 61 72 73 2e 6c 65 6e 67 74 68 29 3b 0d 0a 20 20  ars.length);..  
0700: 20 20 61 73 73 65 72 74 41 72 72 61 79 45 71 75    assertArrayEqu
0710: 61 6c 73 49 67 6e 6f 72 69 6e 67 4f 72 64 65 72  alsIgnoringOrder
0720: 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8  ('..............
0730: d0 bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1 80 d0  ........ .......
0740: b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd 20 d1 81 d0 bf  ........... ....
0750: d0 b8 d1 81 d0 be d0 ba 20 d0 bf d0 b5 d1 80 d0  ........ .......
0760: b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc  ............. ..
0770: d0 be d0 b4 d1 83 d0 bb d1 8f 21 27 2c 0d 0a 20  ..........!',.. 
0780: 20 20 20 20 20 20 20 5b 27 d0 bc d0 9f d0 b5 d1         ['.......
0790: 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0  ................
07a0: 9c d0 be d0 b4 d1 83 d0 bb d1 8f 27 2c 20 27 d0  ...........', '.
07b0: 95 d1 89 d0 b5 d0 9e d0 b4 d0 bd d0 b0 d0 9f d0  ................
07c0: b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1  ................
07d0: 8f 27 2c 20 27 d0 ad d0 ba d1 81 d0 bf d0 be d1  .', '...........
07e0: 80 d1 82 d0 bd d0 b0 d1 8f d0 9f d0 b5 d1 80 d0  ................
07f0: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 27 2c 20  .............', 
0800: 0d 0a 20 20 20 20 20 20 20 20 27 d0 ad d0 ba d1  ..        '.....
0810: 81 d0 bf d0 be d1 80 d1 82 d0 bd d1 8b d0 b9 d0  ................
0820: 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 27 2c 20 27 d0  ...........', '.
0830: 9b d0 be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b d0  ................
0840: b9 d0 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 27 2c 20  .............', 
0850: 27 d0 9f d1 80 d0 be d1 81 d1 82 d0 be d0 9f d0  '...............
0860: b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1  ................
0870: 8f 27 5d 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65 56  .'], cnt.ModuleV
0880: 61 72 73 29 3b 0d 0a 0d 0a 20 20 20 20 61 73 73  ars);....    ass
0890: 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5 d0  ertEquals('.....
08a0: bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0  ................
08b0: be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb  . ..............
08c0: d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8 d1  ...... .........
08d0: 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bc d0 b5  ........... ....
08e0: d1 82 d0 be d0 b4 d0 be d0 b2 21 27 2c 20 32 2c  ..........!', 2,
08f0: 20 63 6e 74 2e 4d 65 74 68 6f 64 73 2e 6c 65 6e   cnt.Methods.len
0900: 67 74 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d  gth);..        .
0910: 0a 20 20 20 20 61 73 73 65 72 74 55 6e 64 65 66  .    assertUndef
0920: 69 6e 65 64 28 63 6e 74 2e 67 65 74 4d 65 74 68  ined(cnt.getMeth
0930: 6f 64 42 79 4e 61 6d 65 28 27 d0 9d d0 b5 d1 81  odByName('......
0940: d1 83 d1 89 d0 b5 d1 81 d1 82 d0 b2 d1 83 d1 8e  ................
0950: d1 89 d0 b8 d0 b9 d0 9c d0 b5 d1 82 d0 be d0 b4  ................
0960: 27 29 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20  '));..    ..    
0970: 76 61 72 20 6d 65 74 68 6f 64 20 3d 20 63 6e 74  var method = cnt
0980: 2e 67 65 74 4d 65 74 68 6f 64 42 79 4e 61 6d 65  .getMethodByName
0990: 28 27 d0 9c d0 be d1 8f d0 a4 d1 83 d0 bd d0 ba  ('..............
09a0: d1 86 d0 b8 d1 8f 27 29 3b 0d 0a 20 20 20 20 61  ......');..    a
09b0: 73 73 65 72 74 4e 6f 74 55 6e 64 65 66 69 6e 65  ssertNotUndefine
09c0: 64 28 22 d0 9c d0 b5 d1 82 d0 be d0 b4 20 d0 9c  d(".......... ..
09d0: d0 be d1 8f d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8  ................
09e0: d1 8f 20 d0 bd d0 b5 20 d0 bd d0 b0 d0 b9 d0 b4  .. .... ........
09f0: d0 b5 d0 bd 22 2c 20 6d 65 74 68 6f 64 29 3b 20  ....", method); 
0a00: 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74 41     ..    assertA
0a10: 72 72 61 79 45 71 75 61 6c 73 49 67 6e 6f 72 69  rrayEqualsIgnori
0a20: 6e 67 4f 72 64 65 72 28 5b 27 d0 9f d0 b0 d1 80  ngOrder(['......
0a30: d0 b0 d0 bc d0 b5 d1 82 d1 80 d0 a4 d1 83 d0 bd  ................
0a40: d0 ba d1 86 d0 b8 d0 b8 27 5d 2c 20 6d 65 74 68  ........'], meth
0a50: 6f 64 2e 50 61 72 61 6d 73 29 3b 0d 0a 20 20 20  od.Params);..   
0a60: 20 61 73 73 65 72 74 46 61 6c 73 65 28 6d 65 74   assertFalse(met
0a70: 68 6f 64 2e 49 73 50 72 6f 63 29 0d 0a 0d 0a 20  hod.IsProc).... 
0a80: 20 20 20 76 61 72 20 70 72 6f 63 20 3d 20 63 6e     var proc = cn
0a90: 74 2e 67 65 74 4d 65 74 68 6f 64 42 79 4e 61 6d  t.getMethodByNam
0aa0: 65 28 27 d0 9c d0 be d1 8f d0 9f d1 80 d0 be d1  e('.............
0ab0: 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0 27 29 3b 0d 0a  ...........');..
0ac0: 20 20 20 20 61 73 73 65 72 74 4e 6f 74 4e 75 6c      assertNotNul
0ad0: 6c 28 22 d0 9c d0 b5 d1 82 d0 be d0 b4 20 d0 9c  l(".......... ..
0ae0: d0 be d1 8f d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4  ................
0af0: d1 83 d1 80 d0 b0 20 d0 bd d0 b5 20 d0 bd d0 b0  ...... .... ....
0b00: d0 b9 d0 b4 d0 b5 d0 bd 22 2c 20 70 72 6f 63 29  ........", proc)
0b10: 3b 20 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72  ;    ..    asser
0b20: 74 41 72 72 61 79 45 71 75 61 6c 73 49 67 6e 6f  tArrayEqualsIgno
0b30: 72 69 6e 67 4f 72 64 65 72 28 5b 27 d0 9f d0 b0  ringOrder(['....
0b40: d1 80 d0 b0 d0 bc 31 27 2c 20 27 d0 9f d0 b0 d1  ......1', '.....
0b50: 80 d0 b0 d0 bc 32 27 5d 2c 20 70 72 6f 63 2e 50  .....2'], proc.P
0b60: 61 72 61 6d 73 29 3b 0d 0a 20 20 20 20 61 73 73  arams);..    ass
0b70: 65 72 74 54 72 75 65 28 70 72 6f 63 2e 49 73 50  ertTrue(proc.IsP
0b80: 72 6f 63 29 0d 0a 20 20 20 20 0d 0a 7d 0d 0a 0d  roc)..    ..}...
0b90: 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73  .function macros
0ba0: 54 65 73 74 41 6e 61 6c 79 73 65 4d 6f 64 75 6c  TestAnalyseModul
0bb0: 65 32 5f d0 a2 d0 be d0 bb d1 8c d0 ba d0 be d0  e2_.............
0bc0: 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1  ................
0bd0: 8b d0 b5 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 76  ...() {....    v
0be0: 61 72 20 6d 6f 64 75 6c 65 54 65 78 74 20 3d 20  ar moduleText = 
0bf0: 22 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0  ""..        + ".
0c00: 9f d0 b5 d1 80 d0 b5 d0 bc 20 d0 bc d0 9f d0 b5  ......... ......
0c10: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
0c20: d0 9c d0 be d0 b4 d1 83 d0 bb d1 8f 3b 5c 6e 5c  ............;\n\
0c30: 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0  n"..        + ".
0c40: 9f d0 b5 d1 80 d0 b5 d0 bc 20 d0 95 d1 89 d0 b5  ......... ......
0c50: d0 9e d0 b4 d0 bd d0 b0 d0 9f d0 b5 d1 80 d0 b5  ................
0c60: d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 3b 5c 6e 22  ............;\n"
0c70: 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9f d0  ..        + "...
0c80: b5 d1 80 d0 b5 d0 bc 20 d0 ad d0 ba d1 81 d0 bf  ....... ........
0c90: d0 be d1 80 d1 82 d0 bd d0 b0 d1 8f d0 9f d0 b5  ................
0ca0: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
0cb0: 20 d0 ad d0 ba d1 81 d0 bf d0 be d1 80 d1 82 3b   ..............;
0cc0: 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22  \n"..        + "
0cd0: d0 9f d0 b5 d1 80 d0 b5 d0 bc 20 d0 ad d0 ba d1  .......... .....
0ce0: 81 d0 bf d0 be d1 80 d1 82 d0 bd d1 8b d0 b9 d0  ................
0cf0: 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 5b 31 30 5d 20  ...........[10] 
0d00: d0 ad d0 ba d1 81 d0 bf d0 be d1 80 d1 82 2c 20  .............., 
0d10: d0 9b d0 be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b  ................
0d20: d0 b9 d0 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 5b 33  ..............[3
0d30: 5d 2c 20 d0 9f d1 80 d0 be d1 81 d1 82 d0 be d0  ], .............
0d40: 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0  ................
0d50: b0 d1 8f 3b 5c 6e 22 0d 0a 0d 0a 20 20 20 20 76  ...;\n"....    v
0d60: 61 72 20 63 6e 74 20 3d 20 53 79 6e 74 61 78 41  ar cnt = SyntaxA
0d70: 6e 61 6c 79 73 69 73 2e 41 6e 61 6c 79 73 65 4d  nalysis.AnalyseM
0d80: 6f 64 75 6c 65 28 6d 6f 64 75 6c 65 54 65 78 74  odule(moduleText
0d90: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  );..            
0da0: 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61  ..    assertEqua
0db0: 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2  ls('............
0dc0: d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1  .......... .....
0dd0: 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be 20  ............... 
0de0: d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82  ................
0df0: d0 b2 d0 be 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0  .... ...........
0e00: be d0 b2 21 27 2c 20 30 2c 20 63 6e 74 2e 4d 65  ...!', 0, cnt.Me
0e10: 74 68 6f 64 73 2e 6c 65 6e 67 74 68 29 3b 0d 0a  thods.length);..
0e20: 20 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74      ..    assert
0e30: 45 71 75 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80  Equals('........
0e40: d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0  .............. .
0e50: be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0  ................
0e60: bd d0 be 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5  ... ............
0e70: d1 81 d1 82 d0 b2 d0 be 20 d0 bf d0 b5 d1 80 d0  ........ .......
0e80: b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc  ............. ..
0e90: d0 be d0 b4 d1 83 d0 bb d1 8f 21 27 2c 20 36 2c  ..........!', 6,
0ea0: 20 63 6e 74 2e 4d 6f 64 75 6c 65 56 61 72 73 2e   cnt.ModuleVars.
0eb0: 6c 65 6e 67 74 68 29 3b 0d 0a 20 20 20 20 61 73  length);..    as
0ec0: 73 65 72 74 41 72 72 61 79 45 71 75 61 6c 73 49  sertArrayEqualsI
0ed0: 67 6e 6f 72 69 6e 67 4f 72 64 65 72 28 27 d0 9d  gnoringOrder('..
0ee0: d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c  ................
0ef0: d0 bd d0 be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0  .... ...........
0f00: b5 d0 bb d0 b5 d0 bd 20 d1 81 d0 bf d0 b8 d1 81  ....... ........
0f10: d0 be d0 ba 20 d0 bf d0 b5 d1 80 d0 b5 d0 bc d0  .... ...........
0f20: b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc d0 be d0 b4  ......... ......
0f30: d1 83 d0 bb d1 8f 21 27 2c 0d 0a 20 20 20 20 20  ......!',..     
0f40: 20 20 20 5b 27 d0 bc d0 9f d0 b5 d1 80 d0 b5 d0     ['...........
0f50: bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c d0 be d0  ................
0f60: b4 d1 83 d0 bb d1 8f 27 2c 20 27 d0 95 d1 89 d0  .......', '.....
0f70: b5 d0 9e d0 b4 d0 bd d0 b0 d0 9f d0 b5 d1 80 d0  ................
0f80: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 27 2c 20  .............', 
0f90: 27 d0 ad d0 ba d1 81 d0 bf d0 be d1 80 d1 82 d0  '...............
0fa0: bd d0 b0 d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc d0  ................
0fb0: b5 d0 bd d0 bd d0 b0 d1 8f 27 2c 20 0d 0a 20 20  .........', ..  
0fc0: 20 20 20 20 20 20 27 d0 ad d0 ba d1 81 d0 bf d0        '.........
0fd0: be d1 80 d1 82 d0 bd d1 8b d0 b9 d0 9c d0 b0 d1  ................
0fe0: 81 d1 81 d0 b8 d0 b2 27 2c 20 27 d0 9b d0 be d0  .......', '.....
0ff0: ba d0 b0 d0 bb d1 8c d0 bd d1 8b d0 b9 d0 9c d0  ................
1000: b0 d1 81 d1 81 d0 b8 d0 b2 27 2c 20 27 d0 9f d1  .........', '...
1010: 80 d0 be d1 81 d1 82 d0 be d0 9f d0 b5 d1 80 d0  ................
1020: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 27 5d 2c  .............'],
1030: 20 63 6e 74 2e 4d 6f 64 75 6c 65 56 61 72 73 29   cnt.ModuleVars)
1040: 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e  ;..}....function
1050: 20 6d 61 63 72 6f 73 54 65 73 74 41 6e 61 6c 79   macrosTestAnaly
1060: 73 65 4d 6f 64 75 6c 65 33 5f d0 9f d0 b5 d1 80  seModule3_......
1070: d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d0 b5 d0 9c  ................
1080: d0 be d0 b4 d1 83 d0 bb d1 8f d0 92 d0 9e d0 b4  ................
1090: d0 bd d1 83 d0 a1 d1 82 d1 80 d0 be d0 ba d1 83  ................
10a0: 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 76 61 72 20  () {....    var 
10b0: 6d 6f 64 75 6c 65 54 65 78 74 20 3d 20 22 22 0d  moduleText = "".
10c0: 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9f d0 b5  .        + "....
10d0: d1 80 d0 b5 d0 bc 20 d0 bc d0 9f d0 b5 d1 80 d0  ...... .........
10e0: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c d0  ................
10f0: be d0 b4 d1 83 d0 bb d1 8f 2c 20 d0 95 d1 89 d0  ........., .....
1100: b5 d0 9e d0 b4 d0 bd d0 b0 d0 9f d0 b5 d1 80 d0  ................
1110: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 2c 20 d0  ............., .
1120: ad d0 ba d1 81 d0 bf d0 be d1 80 d1 82 d0 bd d0  ................
1130: b0 d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0  ................
1140: bd d0 bd d0 b0 d1 8f 20 d0 ad d0 ba d1 81 d0 bf  ....... ........
1150: d0 be d1 80 d1 82 2c 22 0d 0a 20 20 20 20 20 20  ......,"..      
1160: 20 20 2b 20 22 d0 ad d0 ba d1 81 d0 bf d0 be d1    + "...........
1170: 80 d1 82 d0 bd d1 8b d0 b9 d0 9c d0 b0 d1 81 d1  ................
1180: 81 d0 b8 d0 b2 5b 31 30 5d 20 d0 ad d0 ba d1 81  .....[10] ......
1190: d0 bf d0 be d1 80 d1 82 2c 20 d0 9b d0 be d0 ba  ........, ......
11a0: d0 b0 d0 bb d1 8c d0 bd d1 8b d0 b9 d0 9c d0 b0  ................
11b0: d1 81 d1 81 d0 b8 d0 b2 5b 33 5d 2c 20 d0 9f d1  ........[3], ...
11c0: 80 d0 be d1 81 d1 82 d0 be d0 9f d0 b5 d1 80 d0  ................
11d0: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 22 3b 0d  .............";.
11e0: 0a 2f 2f 64 65 62 75 67 67 65 72 3b 0d 0a 20 20  .//debugger;..  
11f0: 20 20 76 61 72 20 63 6e 74 20 3d 20 53 79 6e 74    var cnt = Synt
1200: 61 78 41 6e 61 6c 79 73 69 73 2e 41 6e 61 6c 79  axAnalysis.Analy
1210: 73 65 4d 6f 64 75 6c 65 28 6d 6f 64 75 6c 65 54  seModule(moduleT
1220: 65 78 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 20  ext);..         
1230: 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74 45     ..    assertE
1240: 71 75 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0  quals('.........
1250: b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be  ............. ..
1260: d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd  ................
1270: d0 be 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1  .. .............
1280: 81 d1 82 d0 b2 d0 be 20 d0 bc d0 b5 d1 82 d0 be  ....... ........
1290: d0 b4 d0 be d0 b2 21 27 2c 20 30 2c 20 63 6e 74  ......!', 0, cnt
12a0: 2e 4d 65 74 68 6f 64 73 2e 6c 65 6e 67 74 68 29  .Methods.length)
12b0: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 61 73 73  ;..    ..    ass
12c0: 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5 d0  ertEquals('.....
12d0: bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0  ................
12e0: be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb  . ..............
12f0: d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8 d1  ...... .........
1300: 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bf d0 b5  ........... ....
1310: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d1 85  ................
1320: 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8f 21 27 2c   ............!',
1330: 20 36 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65 56 61   6, cnt.ModuleVa
1340: 72 73 2e 6c 65 6e 67 74 68 29 3b 0d 0a 20 20 20  rs.length);..   
1350: 20 61 73 73 65 72 74 41 72 72 61 79 45 71 75 61   assertArrayEqua
1360: 6c 73 49 67 6e 6f 72 69 6e 67 4f 72 64 65 72 28  lsIgnoringOrder(
1370: 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0  '...............
1380: bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1 80 d0 b5  ....... ........
1390: d0 b4 d0 b5 d0 bb d0 b5 d0 bd 20 d1 81 d0 bf d0  .......... .....
13a0: b8 d1 81 d0 be d0 ba 20 d0 bf d0 b5 d1 80 d0 b5  ....... ........
13b0: d0 bc d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc d0  ............ ...
13c0: be d0 b4 d1 83 d0 bb d1 8f 21 27 2c 0d 0a 20 20  .........!',..  
13d0: 20 20 20 20 20 20 5b 27 d0 bc d0 9f d0 b5 d1 80        ['........
13e0: d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c  ................
13f0: d0 be d0 b4 d1 83 d0 bb d1 8f 27 2c 20 27 d0 95  ..........', '..
1400: d1 89 d0 b5 d0 9e d0 b4 d0 bd d0 b0 d0 9f d0 b5  ................
1410: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
1420: 27 2c 20 27 d0 ad d0 ba d1 81 d0 bf d0 be d1 80  ', '............
1430: d1 82 d0 bd d0 b0 d1 8f d0 9f d0 b5 d1 80 d0 b5  ................
1440: d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 27 2c 20 0d  ............', .
1450: 0a 20 20 20 20 20 20 20 20 27 d0 ad d0 ba d1 81  .        '......
1460: d0 bf d0 be d1 80 d1 82 d0 bd d1 8b d0 b9 d0 9c  ................
1470: d0 b0 d1 81 d1 81 d0 b8 d0 b2 27 2c 20 27 d0 9b  ..........', '..
1480: d0 be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b d0 b9  ................
1490: d0 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 27 2c 20 27  ............', '
14a0: d0 9f d1 80 d0 be d1 81 d1 82 d0 be d0 9f d0 b5  ................
14b0: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
14c0: 27 5d 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65 56 61  '], cnt.ModuleVa
14d0: 72 73 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74  rs);..}....funct
14e0: 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 41 6e  ion macrosTestAn
14f0: 61 6c 79 73 65 4d 6f 64 75 6c 65 34 5f d0 9f d0  alyseModule4_...
1500: b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d0  ................
1510: b5 d0 9c d0 be d0 b4 d1 83 d0 bb d1 8f d0 9d d0  ................
1520: b0 d0 9d d0 b5 d1 81 d0 ba d0 be d0 bb d1 8c d0  ................
1530: ba d0 b8 d1 85 d0 a1 d1 82 d1 80 d0 be d0 ba d0  ................
1540: b0 d1 85 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 2f  ...() {....    /
1550: 2f 20 d0 a2 d0 b5 d1 81 d1 82 20 d1 81 d0 bb d0  / ........ .....
1560: be d0 bc d0 b0 d0 bd 2e 0d 0a 0d 0a 20 20 20 20  ............    
1570: 76 61 72 20 6d 6f 64 75 6c 65 54 65 78 74 20 3d  var moduleText =
1580: 20 22 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22   ""..        + "
1590: d0 9f d0 b5 d1 80 d0 b5 d0 bc 20 d0 bc d0 9f d0  .......... .....
15a0: b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1  ................
15b0: 8f d0 9c d0 be d0 b4 d1 83 d0 bb d1 8f 2c 20 d0  ............., .
15c0: 95 d1 89 d0 b5 d0 9e d0 b4 d0 bd d0 b0 d0 9f d0  ................
15d0: b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1  ................
15e0: 8f 2c 20 d0 ad d0 ba d1 81 d0 bf d0 be d1 80 d1  ., .............
15f0: 82 d0 bd d0 b0 d1 8f d0 9f d0 b5 d1 80 d0 b5 d0  ................
1600: bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 20 d0 ad d0 ba  ........... ....
1610: d1 81 d0 bf d0 be d1 80 d1 82 2c 5c 6e 22 0d 0a  ..........,\n"..
1620: 20 20 20 20 20 20 20 20 2b 20 22 d0 ad d0 ba d1          + ".....
1630: 81 d0 bf d0 be d1 80 d1 82 d0 bd d1 8b d0 b9 d0  ................
1640: 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 5b 31 30 5d 20  ...........[10] 
1650: d0 ad d0 ba d1 81 d0 bf d0 be d1 80 d1 82 2c 20  .............., 
1660: d0 9b d0 be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b  ................
1670: d0 b9 d0 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 5b 33  ..............[3
1680: 5d 2c 20 d0 9f d1 80 d0 be d1 81 d1 82 d0 be d0  ], .............
1690: 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0  ................
16a0: b0 d1 8f 3b 22 3b 0d 0a 2f 2f 64 65 62 75 67 67  ...;";..//debugg
16b0: 65 72 3b 0d 0a 20 20 20 20 76 61 72 20 63 6e 74  er;..    var cnt
16c0: 20 3d 20 53 79 6e 74 61 78 41 6e 61 6c 79 73 69   = SyntaxAnalysi
16d0: 73 2e 41 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 28  s.AnalyseModule(
16e0: 6d 6f 64 75 6c 65 54 65 78 74 29 3b 0d 0a 20 20  moduleText);..  
16f0: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
1700: 2f 2f 4d 65 73 73 61 67 65 28 63 6e 74 2e 4d 6f  //Message(cnt.Mo
1710: 64 75 6c 65 56 61 72 73 2e 6a 6f 69 6e 28 27 2c  duleVars.join(',
1720: 20 27 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20   '));..         
1730: 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74 45     ..    assertE
1740: 71 75 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0  quals('.........
1750: b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be  ............. ..
1760: d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd  ................
1770: d0 be 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1  .. .............
1780: 81 d1 82 d0 b2 d0 be 20 d0 bc d0 b5 d1 82 d0 be  ....... ........
1790: d0 b4 d0 be d0 b2 21 27 2c 20 30 2c 20 63 6e 74  ......!', 0, cnt
17a0: 2e 4d 65 74 68 6f 64 73 2e 6c 65 6e 67 74 68 29  .Methods.length)
17b0: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 61 73 73  ;..    ..    ass
17c0: 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5 d0  ertEquals('.....
17d0: bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0  ................
17e0: be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb  . ..............
17f0: d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8 d1  ...... .........
1800: 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bf d0 b5  ........... ....
1810: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d1 85  ................
1820: 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8f 21 27 2c   ............!',
1830: 20 36 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65 56 61   6, cnt.ModuleVa
1840: 72 73 2e 6c 65 6e 67 74 68 29 3b 0d 0a 20 20 20  rs.length);..   
1850: 20 61 73 73 65 72 74 41 72 72 61 79 45 71 75 61   assertArrayEqua
1860: 6c 73 49 67 6e 6f 72 69 6e 67 4f 72 64 65 72 28  lsIgnoringOrder(
1870: 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0  '...............
1880: bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1 80 d0 b5  ....... ........
1890: d0 b4 d0 b5 d0 bb d0 b5 d0 bd 20 d1 81 d0 bf d0  .......... .....
18a0: b8 d1 81 d0 be d0 ba 20 d0 bf d0 b5 d1 80 d0 b5  ....... ........
18b0: d0 bc d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc d0  ............ ...
18c0: be d0 b4 d1 83 d0 bb d1 8f 21 27 2c 0d 0a 20 20  .........!',..  
18d0: 20 20 20 20 20 20 5b 27 d0 bc d0 9f d0 b5 d1 80        ['........
18e0: d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c  ................
18f0: d0 be d0 b4 d1 83 d0 bb d1 8f 27 2c 20 27 d0 95  ..........', '..
1900: d1 89 d0 b5 d0 9e d0 b4 d0 bd d0 b0 d0 9f d0 b5  ................
1910: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
1920: 27 2c 20 27 d0 ad d0 ba d1 81 d0 bf d0 be d1 80  ', '............
1930: d1 82 d0 bd d0 b0 d1 8f d0 9f d0 b5 d1 80 d0 b5  ................
1940: d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 27 2c 20 0d  ............', .
1950: 0a 20 20 20 20 20 20 20 20 27 d0 ad d0 ba d1 81  .        '......
1960: d0 bf d0 be d1 80 d1 82 d0 bd d1 8b d0 b9 d0 9c  ................
1970: d0 b0 d1 81 d1 81 d0 b8 d0 b2 27 2c 20 27 d0 9b  ..........', '..
1980: d0 be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b d0 b9  ................
1990: d0 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 27 2c 20 27  ............', '
19a0: d0 9f d1 80 d0 be d1 81 d1 82 d0 be d0 9f d0 b5  ................
19b0: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
19c0: 27 5d 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65 56 61  '], cnt.ModuleVa
19d0: 72 73 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74  rs);..}....funct
19e0: 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 41 6e  ion macrosTestAn
19f0: 61 6c 79 73 65 4d 6f 64 75 6c 65 35 5f d0 9c d0  alyseModule5_...
1a00: be d0 b4 d1 83 d0 bb d1 8c d0 91 d0 b5 d0 b7 d0  ................
1a10: 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1  ................
1a20: 8b d1 85 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 76  ...() {....    v
1a30: 61 72 20 6d 6f 64 75 6c 65 54 65 78 74 20 3d 20  ar moduleText = 
1a40: 22 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0  ""..        + ".
1a50: 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0  ................
1a60: b0 20 d0 9c d0 be d1 8f d0 9f d1 80 d0 be d1 86  . ..............
1a70: d0 b5 d0 b4 d1 83 d1 80 d0 b0 28 d0 9f d0 b0 d1  ..........(.....
1a80: 80 d0 b0 d0 bc 31 2c 20 d0 9f d0 b0 d1 80 d0 b0  .....1, ........
1a90: d0 bc 32 29 5c 6e 22 0d 0a 20 20 20 20 20 20 20  ..2)\n"..       
1aa0: 20 2b 20 22 09 d0 9f d0 b5 d1 80 d0 b5 d0 bc 20   + "........... 
1ab0: d0 9c d0 be d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc  ................
1ac0: 31 3b 5c 6e 5c 6e 22 09 0d 0a 20 20 20 20 20 20  1;\n\n"...      
1ad0: 20 20 2b 20 22 09 d0 9c d0 be d1 8f d0 9f d0 b5    + "...........
1ae0: d1 80 d0 b5 d0 bc 31 20 3d 20 34 32 3b 5c 6e 5c  ......1 = 42;\n\
1af0: 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 09  n"..        + ".
1b00: d0 90 d0 b2 d1 82 d0 be d0 bc d0 b0 d1 82 d0 b8  ................
1b10: d1 87 d0 b5 d1 81 d0 ba d0 b0 d1 8f d0 9f d0 b5  ................
1b20: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
1b30: 20 3d 20 31 30 3b 5c 6e 22 09 0d 0a 20 20 20 20   = 10;\n"...    
1b40: 20 20 20 20 2b 20 22 09 d0 bc d0 9f d0 b5 d1 80      + ".........
1b50: d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c  ................
1b60: d0 be d0 b4 d1 83 d0 bb d1 8f 20 3d 20 5c 22 5c  .......... = \"\
1b70: 22 3b 5c 6e 22 09 0d 0a 20 20 20 20 20 20 20 20  ";\n"...        
1b80: 2b 20 22 d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f d1  + ".............
1b90: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 5c  ...............\
1ba0: 6e 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20  n\n"..        + 
1bb0: 22 d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d1 8f 20  ".............. 
1bc0: d0 9c d0 be d1 8f d0 a4 d1 83 d0 bd d0 ba d1 86  ................
1bd0: d0 b8 d1 8f 28 d0 9f d0 b0 d1 80 d0 b0 d0 bc d0  ....(...........
1be0: b5 d1 82 d1 80 d0 a4 d1 83 d0 bd d0 ba d1 86 d0  ................
1bf0: b8 d0 b8 29 5c 6e 22 0d 0a 20 20 20 20 20 20 20  ...)\n"..       
1c00: 20 2b 20 22 09 d0 a1 d0 be d0 be d0 b1 d1 89 d0   + "............
1c10: b8 d1 82 d1 8c 28 d0 bc d0 9f d0 b5 d1 80 d0 b5  .....(..........
1c20: d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c d0 be  ................
1c30: d0 b4 d1 83 d0 bb d1 8f 29 3b 09 5c 6e 22 0d 0a  ........);.\n"..
1c40: 20 20 20 20 20 20 20 20 2b 20 22 09 d0 92 d0 be          + ".....
1c50: d0 b7 d0 b2 d1 80 d0 b0 d1 82 20 d0 98 d1 81 d1  .......... .....
1c60: 82 d0 b8 d0 bd d0 b0 3b 09 5c 6e 22 0d 0a 20 20  .......;.\n"..  
1c70: 20 20 20 20 20 20 2b 20 22 d0 9a d0 be d0 bd d0        + ".......
1c80: b5 d1 86 d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d0  ................
1c90: b8 5c 6e 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20  .\n\n"..        
1ca0: 2b 20 22 d0 9c d0 be d1 8f d0 9f d1 80 d0 be d1  + ".............
1cb0: 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0 28 31 2c 20 32  ...........(1, 2
1cc0: 29 3b 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b  );\n"..        +
1cd0: 20 22 d0 a0 d0 b5 d0 b7 d1 83 d0 bb d1 8c d1 82   "..............
1ce0: d0 b0 d1 82 20 3d 20 d0 9c d0 be d1 8f d0 a4 d1  .... = .........
1cf0: 83 d0 bd d0 ba d1 86 d0 b8 d1 8f 28 29 3b 5c 6e  ...........();\n
1d00: 22 0d 0a 0d 0a 20 20 20 20 76 61 72 20 63 6e 74  "....    var cnt
1d10: 20 3d 20 53 79 6e 74 61 78 41 6e 61 6c 79 73 69   = SyntaxAnalysi
1d20: 73 2e 41 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 28  s.AnalyseModule(
1d30: 6d 6f 64 75 6c 65 54 65 78 74 29 3b 0d 0a 20 20  moduleText);..  
1d40: 20 20 2f 2f 4d 65 73 73 61 67 65 28 63 6e 74 2e    //Message(cnt.
1d50: 4d 6f 64 75 6c 65 56 61 72 73 2e 6a 6f 69 6e 28  ModuleVars.join(
1d60: 27 2c 27 29 29 3b 0d 0a 2f 2f 64 65 62 75 67 67  ','));..//debugg
1d70: 65 72 3b 20 20 20 20 20 20 20 20 0d 0a 20 20 20  er;        ..   
1d80: 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 27 d0   assertEquals('.
1d90: 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1  ................
1da0: 8c d0 bd d0 be 20 d0 be d0 bf d1 80 d0 b5 d0 b4  ..... ..........
1db0: d0 b5 d0 bb d0 b5 d0 bd d0 be 20 d0 ba d0 be d0  .......... .....
1dc0: bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20  ............... 
1dd0: d0 bc d0 b5 d1 82 d0 be d0 b4 d0 be d0 b2 21 27  ..............!'
1de0: 2c 20 32 2c 20 63 6e 74 2e 4d 65 74 68 6f 64 73  , 2, cnt.Methods
1df0: 2e 6c 65 6e 67 74 68 29 3b 20 20 20 20 0d 0a 20  .length);    .. 
1e00: 20 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 28     assertEquals(
1e10: 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0  '...............
1e20: bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1 80 d0 b5  ....... ........
1e30: d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be 20 d0 ba d0  ............ ...
1e40: be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0  ................
1e50: be 20 d0 bf d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd  . ..............
1e60: d0 bd d1 8b d1 85 20 d0 bc d0 be d0 b4 d1 83 d0  ...... .........
1e70: bb d1 8f 21 27 2c 20 30 2c 20 63 6e 74 2e 4d 6f  ...!', 0, cnt.Mo
1e80: 64 75 6c 65 56 61 72 73 2e 6c 65 6e 67 74 68 29  duleVars.length)
1e90: 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e  ;..}....function
1ea0: 20 6d 61 63 72 6f 73 54 65 73 74 41 6e 61 6c 79   macrosTestAnaly
1eb0: 73 65 4d 6f 64 75 6c 65 36 5f d0 9c d0 b5 d1 82  seModule6_......
1ec0: d0 be d0 b4 d1 8b d0 92 d0 9e d0 b4 d0 bd d1 83  ................
1ed0: d0 a1 d1 82 d1 80 d0 be d0 ba d1 83 28 29 20 7b  ............() {
1ee0: 0d 0a 0d 0a 20 20 20 20 76 61 72 20 6d 6f 64 75  ....    var modu
1ef0: 6c 65 54 65 78 74 20 3d 20 22 22 0d 0a 20 20 20  leText = ""..   
1f00: 20 20 20 20 20 2b 20 22 d0 9f d1 80 d0 be d1 86       + "........
1f10: d0 b5 d0 b4 d1 83 d1 80 d0 b0 20 d0 9c d0 be d1  .......... .....
1f20: 8f d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1  ................
1f30: 80 d0 b0 28 d0 9f d0 b0 d1 80 d0 b0 d0 bc 31 2c  ...(..........1,
1f40: 20 d0 9f d0 b0 d1 80 d0 b0 d0 bc 32 29 20 22 0d   ..........2) ".
1f50: 0a 20 20 20 20 20 20 20 20 2b 20 22 09 d0 9f d0  .        + "....
1f60: b5 d1 80 d0 b5 d0 bc 20 d0 9c d0 be d1 8f d0 9f  ....... ........
1f70: d0 b5 d1 80 d0 b5 d0 bc 31 3b 20 22 09 0d 0a 20  ........1; "... 
1f80: 20 20 20 20 20 20 20 2b 20 22 09 d0 9c d0 be d1         + "......
1f90: 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc 31 20 3d 20 34  ...........1 = 4
1fa0: 32 3b 20 22 0d 0a 20 20 20 20 20 20 20 20 2b 20  2; "..        + 
1fb0: 22 09 d0 90 d0 b2 d1 82 d0 be d0 bc d0 b0 d1 82  "...............
1fc0: d0 b8 d1 87 d0 b5 d1 81 d0 ba d0 b0 d1 8f d0 9f  ................
1fd0: d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0  ................
1fe0: d1 8f 20 3d 20 31 30 3b 20 22 09 0d 0a 20 20 20  .. = 10; "...   
1ff0: 20 20 20 20 20 2b 20 22 09 d0 bc d0 9f d0 b5 d1       + "........
2000: 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0  ................
2010: 9c d0 be d0 b4 d1 83 d0 bb d1 8f 20 3d 20 5c 22  ........... = \"
2020: 5c 22 3b 20 22 09 0d 0a 20 20 20 20 20 20 20 20  \"; "...        
2030: 2b 20 22 d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f d1  + ".............
2040: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 20  ............... 
2050: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 a4  "..        + "..
2060: d1 83 d0 bd d0 ba d1 86 d0 b8 d1 8f 20 d0 9c d0  ............ ...
2070: be d1 8f d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d1  ................
2080: 8f 28 d0 9f d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82  .(..............
2090: d1 80 d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8  ................
20a0: 29 20 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22  ) "..        + "
20b0: 09 d0 a1 d0 be d0 be d0 b1 d1 89 d0 b8 d1 82 d1  ................
20c0: 8c 28 d0 bc d0 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5  .(..............
20d0: d0 bd d0 bd d0 b0 d1 8f d0 9c d0 be d0 b4 d1 83  ................
20e0: d0 bb d1 8f 29 3b 20 22 0d 0a 20 20 20 20 20 20  ....); "..      
20f0: 20 20 2b 20 22 09 d0 92 d0 be d0 b7 d0 b2 d1 80    + "...........
2100: d0 b0 d1 82 20 d0 98 d1 81 d1 82 d0 b8 d0 bd d0  .... ...........
2110: b0 3b 20 22 0d 0a 20 20 20 20 20 20 20 20 2b 20  .; "..        + 
2120: 22 d0 9a d0 be d0 bd d0 b5 d1 86 d0 a4 d1 83 d0  "...............
2130: bd d0 ba d1 86 d0 b8 d0 b8 20 22 0d 0a 20 20 20  ......... "..   
2140: 20 20 20 20 20 2b 20 22 d0 9c d0 be d1 8f d0 9f       + "........
2150: d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0  ................
2160: 28 31 2c 20 32 29 3b 20 22 0d 0a 20 20 20 20 20  (1, 2); "..     
2170: 20 20 20 2b 20 22 d0 a0 d0 b5 d0 b7 d1 83 d0 bb     + "..........
2180: d1 8c d1 82 d0 b0 d1 82 20 3d 20 d0 9c d0 be d1  ........ = .....
2190: 8f d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d1 8f 28  ...............(
21a0: 29 3b 20 22 0d 0a 0d 0a 20 20 20 20 76 61 72 20  ); "....    var 
21b0: 63 6e 74 20 3d 20 53 79 6e 74 61 78 41 6e 61 6c  cnt = SyntaxAnal
21c0: 79 73 69 73 2e 41 6e 61 6c 79 73 65 4d 6f 64 75  ysis.AnalyseModu
21d0: 6c 65 28 6d 6f 64 75 6c 65 54 65 78 74 29 3b 0d  le(moduleText);.
21e0: 0a 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75  ...    assertEqu
21f0: 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0  als('...........
2200: b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be d0 bf  ........... ....
2210: d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be  ................
2220: 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1   ...............
2230: 82 d0 b2 d0 be 20 d0 bc d0 b5 d1 82 d0 be d0 b4  ..... ..........
2240: d0 be d0 b2 21 27 2c 20 32 2c 20 63 6e 74 2e 4d  ....!', 2, cnt.M
2250: 65 74 68 6f 64 73 2e 6c 65 6e 67 74 68 29 3b 20  ethods.length); 
2260: 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74 45     ..    assertE
2270: 71 75 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0  quals('.........
2280: b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be  ............. ..
2290: d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd  ................
22a0: d0 be 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1  .. .............
22b0: 81 d1 82 d0 b2 d0 be 20 d0 bf d0 b5 d1 80 d0 b5  ....... ........
22c0: d0 bc d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc d0  ............ ...
22d0: be d0 b4 d1 83 d0 bb d1 8f 21 27 2c 20 30 2c 20  .........!', 0, 
22e0: 63 6e 74 2e 4d 6f 64 75 6c 65 56 61 72 73 2e 6c  cnt.ModuleVars.l
22f0: 65 6e 67 74 68 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75  ength);..}....fu
2300: 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73  nction macrosTes
2310: 74 41 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 37 5f  tAnalyseModule7_
2320: d0 9c d0 be d0 b4 d1 83 d0 bb d1 8c d0 92 d0 9e  ................
2330: d0 b4 d0 bd d1 83 d0 a1 d1 82 d1 80 d0 be d0 ba  ................
2340: d1 83 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 76 61  ..() {....    va
2350: 72 20 6d 6f 64 75 6c 65 54 65 78 74 20 3d 20 22  r moduleText = "
2360: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9f  "..        + "..
2370: d0 b5 d1 80 d0 b5 d0 bc 20 d0 bc d0 9f d0 b5 d1  ........ .......
2380: 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0  ................
2390: 9c d0 be d0 b4 d1 83 d0 bb d1 8f 3b 20 22 0d 0a  ...........; "..
23a0: 20 20 20 20 20 20 20 20 2b 20 22 d0 9f d0 b5 d1          + ".....
23b0: 80 d0 b5 d0 bc 20 d0 95 d1 89 d0 b5 d0 9e d0 b4  ..... ..........
23c0: d0 bd d0 b0 d0 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5  ................
23d0: d0 bd d0 bd d0 b0 d1 8f 3b 20 22 0d 0a 20 20 20  ........; "..   
23e0: 20 20 20 20 20 2b 20 22 d0 9f d0 b5 d1 80 d0 b5       + "........
23f0: d0 bc 20 d0 ad d0 ba d1 81 d0 bf d0 be d1 80 d1  .. .............
2400: 82 d0 bd d0 b0 d1 8f d0 9f d0 b5 d1 80 d0 b5 d0  ................
2410: bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 20 d0 ad d0 ba  ........... ....
2420: d1 81 d0 bf d0 be d1 80 d1 82 3b 20 22 0d 0a 20  ..........; ".. 
2430: 20 20 20 20 20 20 20 2b 20 22 d0 9f d0 b5 d1 80         + "......
2440: d0 b5 d0 bc 20 d0 ad d0 ba d1 81 d0 bf d0 be d1  .... ...........
2450: 80 d1 82 d0 bd d1 8b d0 b9 d0 9c d0 b0 d1 81 d1  ................
2460: 81 d0 b8 d0 b2 5b 31 30 5d 20 d0 ad d0 ba d1 81  .....[10] ......
2470: d0 bf d0 be d1 80 d1 82 2c 20 d0 9b d0 be d0 ba  ........, ......
2480: d0 b0 d0 bb d1 8c d0 bd d1 8b d0 b9 d0 9c d0 b0  ................
2490: d1 81 d1 81 d0 b8 d0 b2 5b 33 5d 2c 20 d0 9f d1  ........[3], ...
24a0: 80 d0 be d1 81 d1 82 d0 be d0 9f d0 b5 d1 80 d0  ................
24b0: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 3b 20 22  .............; "
24c0: 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9f d1  ..        + "...
24d0: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0 20  ............... 
24e0: d0 9c d0 be d1 8f d0 9f d1 80 d0 be d1 86 d0 b5  ................
24f0: d0 b4 d1 83 d1 80 d0 b0 28 d0 9f d0 b0 d1 80 d0  ........(.......
2500: b0 d0 bc 31 2c 20 d0 9f d0 b0 d1 80 d0 b0 d0 bc  ...1, ..........
2510: 32 29 20 22 0d 0a 20 20 20 20 20 20 20 20 2b 20  2) "..        + 
2520: 22 09 d0 9f d0 b5 d1 80 d0 b5 d0 bc 20 d0 9c d0  "........... ...
2530: be d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc 31 3b 20  .............1; 
2540: 22 09 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 09  "...        + ".
2550: d0 9c d0 be d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc  ................
2560: 31 20 3d 20 34 32 3b 20 22 0d 0a 20 20 20 20 20  1 = 42; "..     
2570: 20 20 20 2b 20 22 09 d0 90 d0 b2 d1 82 d0 be d0     + "..........
2580: bc d0 b0 d1 82 d0 b8 d1 87 d0 b5 d1 81 d0 ba d0  ................
2590: b0 d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0  ................
25a0: bd d0 bd d0 b0 d1 8f 20 3d 20 31 30 3b 20 22 09  ....... = 10; ".
25b0: 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 09 d0 bc  ..        + "...
25c0: d0 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd  ................
25d0: d0 b0 d1 8f d0 9c d0 be d0 b4 d1 83 d0 bb d1 8f  ................
25e0: 20 3d 20 5c 22 5c 22 3b 20 22 09 0d 0a 20 20 20   = \"\"; "...   
25f0: 20 20 20 20 20 2b 20 22 d0 9a d0 be d0 bd d0 b5       + "........
2600: d1 86 d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83  ................
2610: d1 80 d1 8b 20 22 0d 0a 20 20 20 20 20 20 20 20  .... "..        
2620: 2b 20 22 d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d1  + ".............
2630: 8f 20 d0 9c d0 be d1 8f d0 a4 d1 83 d0 bd d0 ba  . ..............
2640: d1 86 d0 b8 d1 8f 28 d0 9f d0 b0 d1 80 d0 b0 d0  ......(.........
2650: bc d0 b5 d1 82 d1 80 d0 a4 d1 83 d0 bd d0 ba d1  ................
2660: 86 d0 b8 d0 b8 29 20 22 0d 0a 20 20 20 20 20 20  .....) "..      
2670: 20 20 2b 20 22 09 d0 a1 d0 be d0 be d0 b1 d1 89    + "...........
2680: d0 b8 d1 82 d1 8c 28 d0 bc d0 9f d0 b5 d1 80 d0  ......(.........
2690: b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f d0 9c d0  ................
26a0: be d0 b4 d1 83 d0 bb d1 8f 29 3b 20 22 0d 0a 20  .........); ".. 
26b0: 20 20 20 20 20 20 20 2b 20 22 09 d0 92 d0 be d0         + "......
26c0: b7 d0 b2 d1 80 d0 b0 d1 82 20 d0 98 d1 81 d1 82  ......... ......
26d0: d0 b8 d0 bd d0 b0 3b 09 20 22 0d 0a 20 20 20 20  ......;. "..    
26e0: 20 20 20 20 2b 20 22 d0 9a d0 be d0 bd d0 b5 d1      + ".........
26f0: 86 d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8 20  ............... 
2700: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9c  "..        + "..
2710: d0 be d1 8f d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4  ................
2720: d1 83 d1 80 d0 b0 28 31 2c 20 32 29 3b 20 22 0d  ......(1, 2); ".
2730: 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 a0 d0 b5  .        + "....
2740: d0 b7 d1 83 d0 bb d1 8c d1 82 d0 b0 d1 82 20 3d  .............. =
2750: 20 d0 9c d0 be d1 8f d0 a4 d1 83 d0 bd d0 ba d1   ...............
2760: 86 d0 b8 d1 8f 28 29 3b 22 0d 0a 0d 0a 2f 2f 64  .....();"....//d
2770: 65 62 75 67 67 65 72 3b 20 20 20 20 20 20 20 20  ebugger;        
2780: 0d 0a 20 20 20 20 76 61 72 20 63 6e 74 20 3d 20  ..    var cnt = 
2790: 53 79 6e 74 61 78 41 6e 61 6c 79 73 69 73 2e 41  SyntaxAnalysis.A
27a0: 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 28 6d 6f 64  nalyseModule(mod
27b0: 75 6c 65 54 65 78 74 29 3b 0d 0a 20 20 20 20 2f  uleText);..    /
27c0: 2f 4d 65 73 73 61 67 65 28 63 6e 74 2e 4d 6f 64  /Message(cnt.Mod
27d0: 75 6c 65 56 61 72 73 2e 6a 6f 69 6e 28 27 2c 27  uleVars.join(','
27e0: 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20  ));..        .. 
27f0: 20 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 28     assertEquals(
2800: 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0  '...............
2810: bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1 80 d0 b5  ....... ........
2820: d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be 20 d0 ba d0  ............ ...
2830: be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0  ................
2840: be 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0 be d0 b2  . ..............
2850: 21 27 2c 20 32 2c 20 63 6e 74 2e 4d 65 74 68 6f  !', 2, cnt.Metho
2860: 64 73 2e 6c 65 6e 67 74 68 29 3b 0d 0a 20 20 20  ds.length);..   
2870: 20 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75   ..    assertEqu
2880: 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0  als('...........
2890: b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be d0 bf  ........... ....
28a0: d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be  ................
28b0: 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1   ...............
28c0: 82 d0 b2 d0 be 20 d0 bf d0 b5 d1 80 d0 b5 d0 bc  ..... ..........
28d0: d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc d0 be d0  .......... .....
28e0: b4 d1 83 d0 bb d1 8f 21 27 2c 20 36 2c 20 63 6e  .......!', 6, cn
28f0: 74 2e 4d 6f 64 75 6c 65 56 61 72 73 2e 6c 65 6e  t.ModuleVars.len
2900: 67 74 68 29 3b 0d 0a 20 20 20 20 61 73 73 65 72  gth);..    asser
2910: 74 41 72 72 61 79 45 71 75 61 6c 73 49 67 6e 6f  tArrayEqualsIgno
2920: 72 69 6e 67 4f 72 64 65 72 28 27 d0 9d d0 b5 d0  ringOrder('.....
2930: bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0  ................
2940: be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb  . ..............
2950: d0 b5 d0 bd 20 d1 81 d0 bf d0 b8 d1 81 d0 be d0  .... ...........
2960: ba 20 d0 bf d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd  . ..............
2970: d0 bd d1 8b d1 85 20 d0 bc d0 be d0 b4 d1 83 d0  ...... .........
2980: bb d1 8f 21 27 2c 0d 0a 20 20 20 20 20 20 20 20  ...!',..        
2990: 5b 27 d0 bc d0 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5  ['..............
29a0: d0 bd d0 bd d0 b0 d1 8f d0 9c d0 be d0 b4 d1 83  ................
29b0: d0 bb d1 8f 27 2c 20 27 d0 95 d1 89 d0 b5 d0 9e  ....', '........
29c0: d0 b4 d0 bd d0 b0 d0 9f d0 b5 d1 80 d0 b5 d0 bc  ................
29d0: d0 b5 d0 bd d0 bd d0 b0 d1 8f 27 2c 20 27 d0 ad  ..........', '..
29e0: d0 ba d1 81 d0 bf d0 be d1 80 d1 82 d0 bd d0 b0  ................
29f0: d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd  ................
2a00: d0 bd d0 b0 d1 8f 27 2c 20 0d 0a 20 20 20 20 20  ......', ..     
2a10: 20 20 20 27 d0 ad d0 ba d1 81 d0 bf d0 be d1 80     '............
2a20: d1 82 d0 bd d1 8b d0 b9 d0 9c d0 b0 d1 81 d1 81  ................
2a30: d0 b8 d0 b2 27 2c 20 27 d0 9b d0 be d0 ba d0 b0  ....', '........
2a40: d0 bb d1 8c d0 bd d1 8b d0 b9 d0 9c d0 b0 d1 81  ................
2a50: d1 81 d0 b8 d0 b2 27 2c 20 27 d0 9f d1 80 d0 be  ......', '......
2a60: d1 81 d1 82 d0 be d0 9f d0 b5 d1 80 d0 b5 d0 bc  ................
2a70: d0 b5 d0 bd d0 bd d0 b0 d1 8f 27 5d 2c 20 63 6e  ..........'], cn
2a80: 74 2e 4d 6f 64 75 6c 65 56 61 72 73 29 3b 0d 0a  t.ModuleVars);..
2a90: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61  }....function ma
2aa0: 63 72 6f 73 54 65 73 74 41 6e 61 6c 79 73 65 4d  crosTestAnalyseM
2ab0: 6f 64 75 6c 65 38 5f d0 9e d0 bf d1 80 d0 b5 d0  odule8_.........
2ac0: b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5 d0 9b d0  ................
2ad0: be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b d1 85 d0  ................
2ae0: 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1  ................
2af0: 8b d1 85 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 76  ...() {....    v
2b00: 61 72 20 6d 6f 64 75 6c 65 54 65 78 74 20 3d 20  ar moduleText = 
2b10: 22 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0  ""..        + ".
2b20: 9f d0 b5 d1 80 d0 b5 d0 bc 20 d0 bc d0 9f d0 b5  ......... ......
2b30: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
2b40: d0 9c d0 be d0 b4 d1 83 d0 bb d1 8f 3b 5c 6e 5c  ............;\n\
2b50: 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0  n"..        + ".
2b60: 9f d0 b5 d1 80 d0 b5 d0 bc 20 d0 95 d1 89 d0 b5  ......... ......
2b70: d0 9e d0 b4 d0 bd d0 b0 d0 9f d0 b5 d1 80 d0 b5  ................
2b80: d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 3b 5c 6e 22  ............;\n"
2b90: 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9f d0  ..        + "...
2ba0: b5 d1 80 d0 b5 d0 bc 20 d0 ad d0 ba d1 81 d0 bf  ....... ........
2bb0: d0 be d1 80 d1 82 d0 bd d0 b0 d1 8f d0 9f d0 b5  ................
2bc0: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
2bd0: 20 d0 ad d0 ba d1 81 d0 bf d0 be d1 80 d1 82 3b   ..............;
2be0: 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22  \n"..        + "
2bf0: d0 9f d0 b5 d1 80 d0 b5 d0 bc 20 d0 ad d0 ba d1  .......... .....
2c00: 81 d0 bf d0 be d1 80 d1 82 d0 bd d1 8b d0 b9 d0  ................
2c10: 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 5b 31 30 5d 20  ...........[10] 
2c20: d0 ad d0 ba d1 81 d0 bf d0 be d1 80 d1 82 2c 20  .............., 
2c30: d0 9b d0 be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b  ................
2c40: d0 b9 d0 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 5b 33  ..............[3
2c50: 5d 2c 20 d0 9f d1 80 d0 be d1 81 d1 82 d0 be d0  ], .............
2c60: 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0  ................
2c70: b0 d1 8f 3b 5c 6e 22 0d 0a 20 20 20 20 20 20 20  ...;\n"..       
2c80: 20 2b 20 22 d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4   + "............
2c90: d1 83 d1 80 d0 b0 20 d0 9c d0 be d1 8f d0 9f d1  ...... .........
2ca0: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0 28  ...............(
2cb0: d0 9f d0 b0 d1 80 d0 b0 d0 bc 31 2c 20 d0 9f d0  ..........1, ...
2cc0: b0 d1 80 d0 b0 d0 bc 32 29 5c 6e 22 0d 0a 20 20  .......2)\n"..  
2cd0: 20 20 20 20 20 20 2b 20 22 09 d0 9f d0 b5 d1 80        + ".......
2ce0: d0 b5 d0 bc 20 d0 9c d0 be d1 8f d0 9f d0 b5 d1  .... ...........
2cf0: 80 d0 b5 d0 bc 31 3b 5c 6e 5c 6e 22 09 0d 0a 20  .....1;\n\n"... 
2d00: 20 20 20 20 20 20 20 2b 20 22 09 d0 9c d0 be d1         + "......
2d10: 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc 31 20 3d 20 34  ...........1 = 4
2d20: 32 3b 5c 6e 5c 6e 22 0d 0a 20 20 20 20 20 20 20  2;\n\n"..       
2d30: 20 2b 20 22 09 d0 90 d0 b2 d1 82 d0 be d0 bc d0   + "............
2d40: b0 d1 82 d0 b8 d1 87 d0 b5 d1 81 d0 ba d0 b0 d1  ................
2d50: 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0  ................
2d60: bd d0 b0 d1 8f 20 3d 20 31 30 3b 5c 6e 22 09 0d  ..... = 10;\n"..
2d70: 0a 20 20 20 20 20 20 20 20 2b 20 22 09 d0 bc d0  .        + "....
2d80: 9f d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0  ................
2d90: b0 d1 8f d0 9c d0 be d0 b4 d1 83 d0 bb d1 8f 20  ............... 
2da0: 3d 20 5c 22 5c 22 3b 5c 6e 22 09 0d 0a 20 20 20  = \"\";\n"...   
2db0: 20 20 20 20 20 2b 20 22 d0 9a d0 be d0 bd d0 b5       + "........
2dc0: d1 86 d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83  ................
2dd0: d1 80 d1 8b 5c 6e 5c 6e 22 0d 0a 20 20 20 20 20  ....\n\n"..     
2de0: 20 20 20 2b 20 22 d0 a4 d1 83 d0 bd d0 ba d1 86     + "..........
2df0: d0 b8 d1 8f 20 d0 9c d0 be d1 8f d0 a4 d1 83 d0  .... ...........
2e00: bd d0 ba d1 86 d0 b8 d1 8f 28 d0 9f d0 b0 d1 80  .........(......
2e10: d0 b0 d0 bc d0 b5 d1 82 d1 80 d0 a4 d1 83 d0 bd  ................
2e20: d0 ba d1 86 d0 b8 d0 b8 29 5c 6e 22 0d 0a 20 20  ........)\n"..  
2e30: 20 20 20 20 20 20 2b 20 22 09 d0 a1 d0 be d0 be        + ".......
2e40: d0 b1 d1 89 d0 b8 d1 82 d1 8c 28 d0 bc d0 9f d0  ..........(.....
2e50: b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1  ................
2e60: 8f d0 9c d0 be d0 b4 d1 83 d0 bb d1 8f 29 3b 09  .............);.
2e70: 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22  \n"..        + "
2e80: 09 d0 92 d0 be d0 b7 d0 b2 d1 80 d0 b0 d1 82 20  ............... 
2e90: d0 98 d1 81 d1 82 d0 b8 d0 bd d0 b0 3b 09 5c 6e  ............;.\n
2ea0: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9a  "..        + "..
2eb0: d0 be d0 bd d0 b5 d1 86 d0 a4 d1 83 d0 bd d0 ba  ................
2ec0: d1 86 d0 b8 d0 b8 5c 6e 5c 6e 22 0d 0a 20 20 20  ......\n\n"..   
2ed0: 20 20 20 20 20 2b 20 22 d0 9c d0 be d1 8f d0 9f       + "........
2ee0: d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0  ................
2ef0: 28 31 2c 20 32 29 3b 5c 6e 22 0d 0a 20 20 20 20  (1, 2);\n"..    
2f00: 20 20 20 20 2b 20 22 d0 a0 d0 b5 d0 b7 d1 83 d0      + ".........
2f10: bb d1 8c d1 82 d0 b0 d1 82 20 3d 20 d0 9c d0 be  ......... = ....
2f20: d1 8f d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d1 8f  ................
2f30: 28 29 3b 5c 6e 22 0d 0a 0d 0a 20 20 20 20 76 61  ();\n"....    va
2f40: 72 20 63 6e 74 20 3d 20 53 79 6e 74 61 78 41 6e  r cnt = SyntaxAn
2f50: 61 6c 79 73 69 73 2e 41 6e 61 6c 79 73 65 4d 6f  alysis.AnalyseMo
2f60: 64 75 6c 65 28 6d 6f 64 75 6c 65 54 65 78 74 29  dule(moduleText)
2f70: 3b 0d 0a 20 20 20 20 2f 2f 4d 65 73 73 61 67 65  ;..    //Message
2f80: 28 63 6e 74 2e 4d 6f 64 75 6c 65 56 61 72 73 2e  (cnt.ModuleVars.
2f90: 6a 6f 69 6e 28 27 2c 27 29 29 3b 0d 0a 20 20 20  join(','));..   
2fa0: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 61           ..    a
2fb0: 73 73 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0  ssertEquals('...
2fc0: b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0  ................
2fd0: bd d0 be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5  ... ............
2fe0: d0 bb d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0  ........ .......
2ff0: b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bf  ............. ..
3000: d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b  ................
3010: d1 85 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8f 21  .. ............!
3020: 27 2c 20 36 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65  ', 6, cnt.Module
3030: 56 61 72 73 2e 6c 65 6e 67 74 68 29 3b 0d 0a 20  Vars.length);.. 
3040: 20 20 20 61 73 73 65 72 74 41 72 72 61 79 45 71     assertArrayEq
3050: 75 61 6c 73 49 67 6e 6f 72 69 6e 67 4f 72 64 65  ualsIgnoringOrde
3060: 72 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0  r('.............
3070: b8 d0 bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1 80  ......... ......
3080: d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd 20 d1 81 d0  ............ ...
3090: bf d0 b8 d1 81 d0 be d0 ba 20 d0 bf d0 b5 d1 80  ......... ......
30a0: d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0  .............. .
30b0: bc d0 be d0 b4 d1 83 d0 bb d1 8f 21 27 2c 0d 0a  ...........!',..
30c0: 20 20 20 20 20 20 20 20 5b 27 d0 bc d0 9f d0 b5          ['......
30d0: d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f  ................
30e0: d0 9c d0 be d0 b4 d1 83 d0 bb d1 8f 27 2c 20 27  ............', '
30f0: d0 95 d1 89 d0 b5 d0 9e d0 b4 d0 bd d0 b0 d0 9f  ................
3100: d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0  ................
3110: d1 8f 27 2c 20 27 d0 ad d0 ba d1 81 d0 bf d0 be  ..', '..........
3120: d1 80 d1 82 d0 bd d0 b0 d1 8f d0 9f d0 b5 d1 80  ................
3130: d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0 d1 8f 27 2c  ..............',
3140: 20 0d 0a 20 20 20 20 20 20 20 20 27 d0 ad d0 ba   ..        '....
3150: d1 81 d0 bf d0 be d1 80 d1 82 d0 bd d1 8b d0 b9  ................
3160: d0 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 27 2c 20 27  ............', '
3170: d0 9b d0 be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b  ................
3180: d0 b9 d0 9c d0 b0 d1 81 d1 81 d0 b8 d0 b2 27 2c  ..............',
3190: 20 27 d0 9f d1 80 d0 be d1 81 d1 82 d0 be d0 9f   '..............
31a0: d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d0 b0  ................
31b0: d1 8f 27 5d 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65  ..'], cnt.Module
31c0: 56 61 72 73 29 3b 0d 0a 0d 0a 20 20 20 20 61 73  Vars);....    as
31d0: 73 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5  sertEquals('....
31e0: d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd  ................
31f0: d0 be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0  .. .............
3200: bb d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8  ....... ........
3210: d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bc d0  ............ ...
3220: b5 d1 82 d0 be d0 b4 d0 be d0 b2 21 27 2c 20 32  ...........!', 2
3230: 2c 20 63 6e 74 2e 4d 65 74 68 6f 64 73 2e 6c 65  , cnt.Methods.le
3240: 6e 67 74 68 29 3b 0d 0a 20 20 20 20 20 20 20 20  ngth);..        
3250: 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 66 75      ..    var fu
3260: 6e 63 20 3d 20 63 6e 74 2e 67 65 74 4d 65 74 68  nc = cnt.getMeth
3270: 6f 64 42 79 4e 61 6d 65 28 27 d0 9c d0 be d1 8f  odByName('......
3280: d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d1 8f 27 29  ..............')
3290: 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 4e 6f 74  ;..    assertNot
32a0: 55 6e 64 65 66 69 6e 65 64 28 22 d0 9c d0 b5 d1  Undefined(".....
32b0: 82 d0 be d0 b4 20 d0 9c d0 be d1 8f d0 a4 d1 83  ..... ..........
32c0: d0 bd d0 ba d1 86 d0 b8 d1 8f 20 d0 bd d0 b5 20  .......... .... 
32d0: d0 bd d0 b0 d0 b9 d0 b4 d0 b5 d0 bd 22 2c 20 66  ............", f
32e0: 75 6e 63 29 3b 20 20 20 20 0d 0a 20 20 20 20 61  unc);    ..    a
32f0: 73 73 65 72 74 41 72 72 61 79 45 71 75 61 6c 73  ssertArrayEquals
3300: 49 67 6e 6f 72 69 6e 67 4f 72 64 65 72 28 5b 27  IgnoringOrder(['
3310: d0 9f d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82 d1 80  ................
3320: d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8 27 5d  ..............']
3330: 2c 20 66 75 6e 63 2e 50 61 72 61 6d 73 29 3b 0d  , func.Params);.
3340: 0a 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75  ...    assertEqu
3350: 61 6c 73 28 30 2c 20 66 75 6e 63 2e 44 65 63 6c  als(0, func.Decl
3360: 61 72 65 64 56 61 72 73 2e 6c 65 6e 67 74 68 29  aredVars.length)
3370: 3b 20 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72  ;    ..    asser
3380: 74 45 71 75 61 6c 73 28 30 2c 20 66 75 6e 63 2e  tEquals(0, func.
3390: 41 75 74 6f 6d 61 74 69 63 56 61 72 73 2e 6c 65  AutomaticVars.le
33a0: 6e 67 74 68 29 3b 20 20 20 20 0d 0a 20 20 20 20  ngth);    ..    
33b0: 0d 0a 20 20 20 20 76 61 72 20 70 72 6f 63 20 3d  ..    var proc =
33c0: 20 63 6e 74 2e 67 65 74 4d 65 74 68 6f 64 42 79   cnt.getMethodBy
33d0: 4e 61 6d 65 28 27 d0 9c d0 be d1 8f d0 9f d1 80  Name('..........
33e0: d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0 27 29  ..............')
33f0: 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 4e 6f 74  ;..    assertNot
3400: 4e 75 6c 6c 28 22 d0 9c d0 b5 d1 82 d0 be d0 b4  Null("..........
3410: 20 d0 9c d0 be d1 8f d0 9f d1 80 d0 be d1 86 d0   ...............
3420: b5 d0 b4 d1 83 d1 80 d0 b0 20 d0 bd d0 b5 20 d0  ......... .... .
3430: bd d0 b0 d0 b9 d0 b4 d0 b5 d0 bd 22 2c 20 70 72  ...........", pr
3440: 6f 63 29 3b 20 20 20 20 0d 0a 20 20 20 20 61 73  oc);    ..    as
3450: 73 65 72 74 41 72 72 61 79 45 71 75 61 6c 73 49  sertArrayEqualsI
3460: 67 6e 6f 72 69 6e 67 4f 72 64 65 72 28 5b 27 d0  gnoringOrder(['.
3470: 9f d0 b0 d1 80 d0 b0 d0 bc 31 27 2c 20 27 d0 9f  .........1', '..
3480: d0 b0 d1 80 d0 b0 d0 bc 32 27 5d 2c 20 70 72 6f  ........2'], pro
3490: 63 2e 50 61 72 61 6d 73 29 3b 0d 0a 0d 0a 20 20  c.Params);....  
34a0: 20 20 2f 2f 20 d0 9b d0 be d0 ba d0 b0 d0 bb d1    // ...........
34b0: 8c d0 bd d1 8b d0 b5 20 d0 bf d0 b5 d1 80 d0 b5  ....... ........
34c0: d0 bc d0 b5 d0 bd d0 bd d1 8b d0 b5 20 d0 bf d1  ............ ...
34d0: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 2e  ................
34e0: 0d 0a 20 20 20 20 61 73 73 65 72 74 41 72 72 61  ..    assertArra
34f0: 79 45 71 75 61 6c 73 49 67 6e 6f 72 69 6e 67 4f  yEqualsIgnoringO
3500: 72 64 65 72 28 5b 27 d0 9c d0 be d1 8f d0 9f d0  rder(['.........
3510: b5 d1 80 d0 b5 d0 bc 31 27 5d 2c 20 70 72 6f 63  .......1'], proc
3520: 2e 44 65 63 6c 61 72 65 64 56 61 72 73 29 3b 20  .DeclaredVars); 
3530: 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74 41     ..    assertA
3540: 72 72 61 79 45 71 75 61 6c 73 49 67 6e 6f 72 69  rrayEqualsIgnori
3550: 6e 67 4f 72 64 65 72 28 5b 27 d0 90 d0 b2 d1 82  ngOrder(['......
3560: d0 be d0 bc d0 b0 d1 82 d0 b8 d1 87 d0 b5 d1 81  ................
3570: d0 ba d0 b0 d1 8f d0 9f d0 b5 d1 80 d0 b5 d0 bc  ................
3580: d0 b5 d0 bd d0 bd d0 b0 d1 8f 27 5d 2c 20 70 72  ..........'], pr
3590: 6f 63 2e 41 75 74 6f 6d 61 74 69 63 56 61 72 73  oc.AutomaticVars
35a0: 29 3b 20 20 20 20 0d 0a 20 20 20 20 0d 0a 7d 0a  );    ..    ..}.
35b0: 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f  ..function macro
35c0: 73 54 65 73 74 41 6e 61 6c 79 73 65 4d 6f 64 75  sTestAnalyseModu
35d0: 6c 65 39 5f d0 9e d0 bf d1 80 d0 b5 d0 b4 d0 b5  le9_............
35e0: d0 bb d0 b5 d0 bd d0 b8 d0 b5 d0 9c d0 b5 d1 82  ................
35f0: d0 be d0 b4 d0 b0 d0 9d d0 b0 d0 a0 d0 b0 d0 b7  ................
3600: d0 bd d1 8b d1 85 d0 a1 d1 82 d1 80 d0 be d0 ba  ................
3610: d0 b0 d1 85 28 29 20 7b 0d 0a 20 20 20 20 76 61  ....() {..    va
3620: 72 20 6d 6f 64 75 6c 65 54 65 78 74 20 3d 20 22  r moduleText = "
3630: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9f  "..        + "..
3640: d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0  ................
3650: 20 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20   \n"..        + 
3660: 22 20 20 20 20 d0 9f d1 80 d0 be d0 b2 d0 b5 d1  "    ...........
3670: 80 d0 ba d0 b8 20 28 20 d0 9f d0 b5 d1 80 d0 b5  ..... ( ........
3680: d0 bc 31 2c d0 9f d0 b5 d1 80 d0 b5 d0 bc 32 2c  ..1,..........2,
3690: 20 d0 9f d0 b5 d1 80 d0 b5 d0 bc 33 29 5c 6e 22   ..........3)\n"
36a0: 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9a d0  ..        + "...
36b0: be d0 bd d0 b5 d1 86 d0 9f d1 80 d0 be d1 86 d0  ................
36c0: b5 d0 b4 d1 83 d1 80 d1 8b 22 0d 0a 0d 0a 20 20  ........."....  
36d0: 20 20 76 61 72 20 63 6e 74 20 3d 20 53 79 6e 74    var cnt = Synt
36e0: 61 78 41 6e 61 6c 79 73 69 73 2e 41 6e 61 6c 79  axAnalysis.Analy
36f0: 73 65 4d 6f 64 75 6c 65 28 6d 6f 64 75 6c 65 54  seModule(moduleT
3700: 65 78 74 29 3b 0d 0a 0d 0a 20 20 20 20 61 73 73  ext);....    ass
3710: 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5 d0  ertEquals('.....
3720: bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0  ................
3730: be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb  . ..............
3740: d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8 d1  ...... .........
3750: 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bc d0 b5  ........... ....
3760: d1 82 d0 be d0 b4 d0 be d0 b2 21 27 2c 20 31 2c  ..........!', 1,
3770: 20 63 6e 74 2e 4d 65 74 68 6f 64 73 2e 6c 65 6e   cnt.Methods.len
3780: 67 74 68 29 3b 20 20 20 20 0d 0a 20 20 20 20 61  gth);    ..    a
3790: 73 73 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0  ssertEquals('...
37a0: b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0  ................
37b0: bd d0 be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5  ... ............
37c0: d0 bb d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0  ........ .......
37d0: b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bf  ............. ..
37e0: d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b  ................
37f0: d1 85 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8f 21  .. ............!
3800: 27 2c 20 30 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65  ', 0, cnt.Module
3810: 56 61 72 73 2e 6c 65 6e 67 74 68 29 3b 0d 0a 7d  Vars.length);..}
3820: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63  ....function mac
3830: 72 6f 73 54 65 73 74 41 6e 61 6c 79 73 65 4d 6f  rosTestAnalyseMo
3840: 64 75 6c 65 31 30 5f d0 9e d0 bf d1 80 d0 b5 d0  dule10_.........
3850: b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5 d0 9c d0  ................
3860: b5 d1 82 d0 be d0 b4 d0 b0 d0 9d d0 b0 d0 a0 d0  ................
3870: b0 d0 b7 d0 bd d1 8b d1 85 d0 a1 d1 82 d1 80 d0  ................
3880: be d0 ba d0 b0 d1 85 32 28 29 20 7b 0d 0a 20 20  .......2() {..  
3890: 20 20 76 61 72 20 6d 6f 64 75 6c 65 54 65 78 74    var moduleText
38a0: 20 3d 20 22 22 0d 0a 20 20 20 20 20 20 20 20 2b   = ""..        +
38b0: 20 22 d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83   "..............
38c0: d1 80 d0 b0 20 d0 9f d1 80 d0 be d0 b2 d0 b5 d1  .... ...........
38d0: 80 d0 ba d0 b8 20 28 20 d0 9f d0 b5 d1 80 d0 b5  ..... ( ........
38e0: d0 bc 31 2c 20 5c 6e 22 0d 0a 20 20 20 20 20 20  ..1, \n"..      
38f0: 20 20 2b 20 22 20 20 20 20 d0 9f d0 b5 d1 80 d0    + "    .......
3900: b5 d0 bc 32 2c 20 d0 9f d0 b5 d1 80 d0 b5 d0 bc  ...2, ..........
3910: 33 29 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b  3)\n"..        +
3920: 20 22 d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f d1 80   "..............
3930: d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 22 0d  ..............".
3940: 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 63  .    ..    var c
3950: 6e 74 20 3d 20 53 79 6e 74 61 78 41 6e 61 6c 79  nt = SyntaxAnaly
3960: 73 69 73 2e 41 6e 61 6c 79 73 65 4d 6f 64 75 6c  sis.AnalyseModul
3970: 65 28 6d 6f 64 75 6c 65 54 65 78 74 29 3b 0d 0a  e(moduleText);..
3980: 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61  ..    assertEqua
3990: 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2  ls('............
39a0: d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1  .......... .....
39b0: 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be 20  ............... 
39c0: d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82  ................
39d0: d0 b2 d0 be 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0  .... ...........
39e0: be d0 b2 21 27 2c 20 31 2c 20 63 6e 74 2e 4d 65  ...!', 1, cnt.Me
39f0: 74 68 6f 64 73 2e 6c 65 6e 67 74 68 29 3b 20 20  thods.length);  
3a00: 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71    ..    assertEq
3a10: 75 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0  uals('..........
3a20: d0 b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be d0  ............ ...
3a30: bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0  ................
3a40: be 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81  . ..............
3a50: d1 82 d0 b2 d0 be 20 d0 bf d0 b5 d1 80 d0 b5 d0  ...... .........
3a60: bc d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc d0 be  ........... ....
3a70: d0 b4 d1 83 d0 bb d1 8f 21 27 2c 20 30 2c 20 63  ........!', 0, c
3a80: 6e 74 2e 4d 6f 64 75 6c 65 56 61 72 73 2e 6c 65  nt.ModuleVars.le
3a90: 6e 67 74 68 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e  ngth);..}....fun
3aa0: 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74  ction macrosTest
3ab0: 41 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 31 31 5f  AnalyseModule11_
3ac0: d0 9e d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5  ................
3ad0: d0 bd d0 b8 d0 b5 d0 9f d0 b0 d1 80 d0 b0 d0 bc  ................
3ae0: d0 b5 d1 82 d1 80 d0 be d0 b2 d0 9c d0 b5 d1 82  ................
3af0: d0 be d0 b4 d0 b0 d0 9d d0 b0 d0 a0 d0 b0 d0 b7  ................
3b00: d0 bd d1 8b d1 85 d0 a1 d1 82 d1 80 d0 be d0 ba  ................
3b10: d0 b0 d1 85 28 29 20 7b 0d 0a 20 20 20 20 76 61  ....() {..    va
3b20: 72 20 6d 6f 64 75 6c 65 54 65 78 74 20 3d 20 22  r moduleText = "
3b30: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9f  "..        + "..
3b40: d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0  ................
3b50: 20 d0 9f d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0   ...............
3b60: b8 20 28 20 d0 9f d0 b5 d1 80 d0 b5 d0 bc 31 2c  . ( ..........1,
3b70: 20 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20   \n"..        + 
3b80: 22 20 20 20 20 d0 9f d0 b5 d1 80 d0 b5 d0 bc 32  "    ..........2
3b90: 2c 20 d0 9f d0 b5 d1 80 d0 b5 d0 bc 33 29 5c 6e  , ..........3)\n
3ba0: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9a  "..        + "..
3bb0: d0 be d0 bd d0 b5 d1 86 d0 9f d1 80 d0 be d1 86  ................
3bc0: d0 b5 d0 b4 d1 83 d1 80 d1 8b 22 0d 0a 20 20 20  .........."..   
3bd0: 20 2f 2f 64 65 62 75 67 67 65 72 0d 0a 20 20 20   //debugger..   
3be0: 20 76 61 72 20 63 6e 74 20 3d 20 53 79 6e 74 61   var cnt = Synta
3bf0: 78 41 6e 61 6c 79 73 69 73 2e 41 6e 61 6c 79 73  xAnalysis.Analys
3c00: 65 4d 6f 64 75 6c 65 28 6d 6f 64 75 6c 65 54 65  eModule(moduleTe
3c10: 78 74 29 3b 0d 0a 0d 0a 20 20 20 20 61 73 73 65  xt);....    asse
3c20: 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5 d0 bf  rtEquals('......
3c30: d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0 be  ................
3c40: 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0   ...............
3c50: b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8 d1 87  ..... ..........
3c60: d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bc d0 b5 d1  .......... .....
3c70: 82 d0 be d0 b4 d0 be d0 b2 21 27 2c 20 31 2c 20  .........!', 1, 
3c80: 63 6e 74 2e 4d 65 74 68 6f 64 73 2e 6c 65 6e 67  cnt.Methods.leng
3c90: 74 68 29 3b 20 20 20 20 0d 0a 20 20 20 20 61 73  th);    ..    as
3ca0: 73 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5  sertEquals('....
3cb0: d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd  ................
3cc0: d0 be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0  .. .............
3cd0: bb d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8  ....... ........
3ce0: d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bf d0  ............ ...
3cf0: b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d1  ................
3d00: 85 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8f 21 27  . ............!'
3d10: 2c 20 30 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65 56  , 0, cnt.ModuleV
3d20: 61 72 73 2e 6c 65 6e 67 74 68 29 3b 0d 0a 20 20  ars.length);..  
3d30: 20 20 76 61 72 20 70 72 6f 63 20 3d 20 63 6e 74    var proc = cnt
3d40: 2e 67 65 74 4d 65 74 68 6f 64 42 79 4e 61 6d 65  .getMethodByName
3d50: 28 27 d0 9f d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba  ('..............
3d60: d0 b8 27 29 3b 0d 0a 20 20 20 20 61 73 73 65 72  ..');..    asser
3d70: 74 4e 6f 74 4e 75 6c 6c 28 22 d0 9c d0 b5 d1 82  tNotNull("......
3d80: d0 be d0 b4 20 d0 9f d1 80 d0 be d0 b2 d0 b5 d1  .... ...........
3d90: 80 d0 ba d0 b8 20 d0 bd d0 b5 20 d0 bd d0 b0 d0  ..... .... .....
3da0: b9 d0 b4 d0 b5 d0 bd 22 2c 20 70 72 6f 63 29 3b  .......", proc);
3db0: 20 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74      ..    assert
3dc0: 41 72 72 61 79 45 71 75 61 6c 73 49 67 6e 6f 72  ArrayEqualsIgnor
3dd0: 69 6e 67 4f 72 64 65 72 28 5b 27 d0 9f d0 b5 d1  ingOrder(['.....
3de0: 80 d0 b5 d0 bc 31 27 2c 20 27 d0 9f d0 b5 d1 80  .....1', '......
3df0: d0 b5 d0 bc 32 27 2c 20 27 d0 9f d0 b5 d1 80 d0  ....2', '.......
3e00: b5 d0 bc 33 27 5d 2c 20 70 72 6f 63 2e 50 61 72  ...3'], proc.Par
3e10: 61 6d 73 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63  ams);..}....func
3e20: 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 41  tion macrosTestA
3e30: 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 31 32 5f d0  nalyseModule12_.
3e40: 9e d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0  ................
3e50: bd d0 b8 d0 b5 d0 9f d0 b5 d1 80 d0 b5 d0 bc d0  ................
3e60: b5 d0 bd d0 bd d1 8b d1 85 d0 9c d0 b5 d1 82 d0  ................
3e70: be d0 b4 d0 b0 d0 9f d0 be d0 a3 d0 bc d0 be d0  ................
3e80: bb d1 87 d0 b0 d0 bd d0 b8 d1 8e 28 29 20 7b 0d  ...........() {.
3e90: 0a 20 20 20 20 76 61 72 20 6d 6f 64 75 6c 65 54  .    var moduleT
3ea0: 65 78 74 20 3d 20 22 22 0d 0a 20 20 20 20 20 20  ext = ""..      
3eb0: 20 20 2b 20 22 d0 9f d1 80 d0 be d1 86 d0 b5 d0    + "...........
3ec0: b4 d1 83 d1 80 d0 b0 20 d0 9f d1 80 d0 be d0 b2  ....... ........
3ed0: d0 b5 d1 80 d0 ba d0 b8 20 28 d0 97 d0 bd d0 b0  ........ (......
3ee0: d1 87 20 d0 9f d0 b0 d1 80 d0 b0 d0 bc 31 2c 20  .. ..........1, 
3ef0: d0 9f d0 b0 d1 80 d0 b0 d0 bc 32 20 3d 20 d0 9b  ..........2 = ..
3f00: d0 be d0 b6 d1 8c 29 5c 6e 22 0d 0a 20 20 20 20  ......)\n"..    
3f10: 20 20 20 20 2b 20 22 d0 9a d0 be d0 bd d0 b5 d1      + ".........
3f20: 86 d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1  ................
3f30: 80 d1 8b 22 0d 0a 20 20 20 20 2f 2f 64 65 62 75  ..."..    //debu
3f40: 67 67 65 72 0d 0a 20 20 20 20 76 61 72 20 63 6e  gger..    var cn
3f50: 74 20 3d 20 53 79 6e 74 61 78 41 6e 61 6c 79 73  t = SyntaxAnalys
3f60: 69 73 2e 41 6e 61 6c 79 73 65 4d 6f 64 75 6c 65  is.AnalyseModule
3f70: 28 6d 6f 64 75 6c 65 54 65 78 74 29 3b 0d 0a 0d  (moduleText);...
3f80: 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61 6c  .    assertEqual
3f90: 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0  s('.............
3fa0: b8 d0 bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1 80  ......... ......
3fb0: d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be 20 d0  .............. .
3fc0: ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0  ................
3fd0: b2 d0 be 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0 be  ... ............
3fe0: d0 b2 21 27 2c 20 31 2c 20 63 6e 74 2e 4d 65 74  ..!', 1, cnt.Met
3ff0: 68 6f 64 73 2e 6c 65 6e 67 74 68 29 3b 20 20 20  hods.length);   
4000: 20 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75   ..    assertEqu
4010: 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0  als('...........
4020: b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be d0 bf  ........... ....
4030: d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be  ................
4040: 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1   ...............
4050: 82 d0 b2 d0 be 20 d0 bf d0 b5 d1 80 d0 b5 d0 bc  ..... ..........
4060: d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc d0 be d0  .......... .....
4070: b4 d1 83 d0 bb d1 8f 21 27 2c 20 30 2c 20 63 6e  .......!', 0, cn
4080: 74 2e 4d 6f 64 75 6c 65 56 61 72 73 2e 6c 65 6e  t.ModuleVars.len
4090: 67 74 68 29 3b 0d 0a 20 20 20 20 76 61 72 20 70  gth);..    var p
40a0: 72 6f 63 20 3d 20 63 6e 74 2e 67 65 74 4d 65 74  roc = cnt.getMet
40b0: 68 6f 64 42 79 4e 61 6d 65 28 27 d0 9f d1 80 d0  hodByName('.....
40c0: be d0 b2 d0 b5 d1 80 d0 ba d0 b8 27 29 3b 0d 0a  ...........');..
40d0: 20 20 20 20 61 73 73 65 72 74 4e 6f 74 4e 75 6c      assertNotNul
40e0: 6c 28 22 d0 9c d0 b5 d1 82 d0 be d0 b4 20 d0 9f  l(".......... ..
40f0: d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0 b8 20 d0  .............. .
4100: bd d0 b5 20 d0 bd d0 b0 d0 b9 d0 b4 d0 b5 d0 bd  ... ............
4110: 22 2c 20 70 72 6f 63 29 3b 20 20 20 20 0d 0a 20  ", proc);    .. 
4120: 20 20 20 61 73 73 65 72 74 41 72 72 61 79 45 71     assertArrayEq
4130: 75 61 6c 73 49 67 6e 6f 72 69 6e 67 4f 72 64 65  ualsIgnoringOrde
4140: 72 28 5b 27 d0 9f d0 b0 d1 80 d0 b0 d0 bc 31 27  r(['..........1'
4150: 2c 20 27 d0 9f d0 b0 d1 80 d0 b0 d0 bc 32 27 5d  , '..........2']
4160: 2c 20 70 72 6f 63 2e 50 61 72 61 6d 73 29 3b 0d  , proc.Params);.
4170: 0a 20 20 20 20 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63  .    ..}....func
4180: 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 41  tion macrosTestA
4190: 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 31 33 5f d0  nalyseModule13_.
41a0: 9e d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0  ................
41b0: bd d0 b8 d0 b5 d0 9a d0 be d0 bd d0 b5 d1 82 d0  ................
41c0: ba d1 81 d1 82 d0 b0 d0 9a d0 be d0 bc d0 bf d0  ................
41d0: b8 d0 bb d1 8f d1 86 d0 b8 d0 b8 28 29 20 7b 0d  ...........() {.
41e0: 0a 20 20 20 20 76 61 72 20 6d 6f 64 75 6c 65 54  .    var moduleT
41f0: 65 78 74 20 3d 20 22 22 0d 0a 20 20 20 20 20 20  ext = ""..      
4200: 20 20 2b 20 22 26 d0 9d d0 b0 d0 9a d0 bb d0 b8    + "&..........
4210: d0 b5 d0 bd d1 82 d0 b5 5c 6e 22 0d 0a 20 20 20  ........\n"..   
4220: 20 20 20 20 20 2b 20 22 d0 9f d1 80 d0 be d1 86       + "........
4230: d0 b5 d0 b4 d1 83 d1 80 d0 b0 20 d0 9f d1 80 d0  .......... .....
4240: be d0 b2 d0 b5 d1 80 d0 ba d0 b8 20 28 d0 97 d0  ........... (...
4250: bd d0 b0 d1 87 20 d0 9f d0 b0 d1 80 d0 b0 d0 bc  ..... ..........
4260: 31 2c 20 d0 9f d0 b0 d1 80 d0 b0 d0 bc 32 20 3d  1, ..........2 =
4270: 20 d0 9b d0 be d0 b6 d1 8c 29 5c 6e 22 0d 0a 20   ........)\n".. 
4280: 20 20 20 20 20 20 20 2b 20 22 d0 9a d0 be d0 bd         + "......
4290: d0 b5 d1 86 d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4  ................
42a0: d1 83 d1 80 d1 8b 22 0d 0a 20 20 20 20 76 61 72  ......"..    var
42b0: 20 63 6e 74 20 3d 20 53 79 6e 74 61 78 41 6e 61   cnt = SyntaxAna
42c0: 6c 79 73 69 73 2e 41 6e 61 6c 79 73 65 4d 6f 64  lysis.AnalyseMod
42d0: 75 6c 65 28 6d 6f 64 75 6c 65 54 65 78 74 29 3b  ule(moduleText);
42e0: 0d 0a 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71  ....    assertEq
42f0: 75 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80 d0 b0  uals('..........
4300: d0 b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0 be d0  ............ ...
4310: bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0  ................
4320: be 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81  . ..............
4330: d1 82 d0 b2 d0 be 20 d0 bc d0 b5 d1 82 d0 be d0  ...... .........
4340: b4 d0 be d0 b2 21 27 2c 20 31 2c 20 63 6e 74 2e  .....!', 1, cnt.
4350: 4d 65 74 68 6f 64 73 2e 6c 65 6e 67 74 68 29 3b  Methods.length);
4360: 20 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74      ..    assert
4370: 45 71 75 61 6c 73 28 27 d0 9d d0 b5 d0 bf d1 80  Equals('........
4380: d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0 be 20 d0  .............. .
4390: be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0  ................
43a0: bd d0 be 20 d0 ba d0 be d0 bb d0 b8 d1 87 d0 b5  ... ............
43b0: d1 81 d1 82 d0 b2 d0 be 20 d0 bf d0 b5 d1 80 d0  ........ .......
43c0: b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d1 85 20 d0 bc  ............. ..
43d0: d0 be d0 b4 d1 83 d0 bb d1 8f 21 27 2c 20 30 2c  ..........!', 0,
43e0: 20 63 6e 74 2e 4d 6f 64 75 6c 65 56 61 72 73 2e   cnt.ModuleVars.
43f0: 6c 65 6e 67 74 68 29 3b 0d 0a 20 20 20 20 76 61  length);..    va
4400: 72 20 70 72 6f 63 20 3d 20 63 6e 74 2e 67 65 74  r proc = cnt.get
4410: 4d 65 74 68 6f 64 42 79 4e 61 6d 65 28 27 d0 9f  MethodByName('..
4420: d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0 b8 27 29  ..............')
4430: 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 4e 6f 74  ;..    assertNot
4440: 4e 75 6c 6c 28 22 d0 9c d0 b5 d1 82 d0 be d0 b4  Null("..........
4450: 20 d0 9f d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0   ...............
4460: b8 20 d0 bd d0 b5 20 d0 bd d0 b0 d0 b9 d0 b4 d0  . .... .........
4470: b5 d0 bd 22 2c 20 70 72 6f 63 29 3b 20 20 20 20  ...", proc);    
4480: 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61  ..    assertEqua
4490: 6c 73 28 22 d0 9a d0 be d0 bd d0 b5 d1 82 d0 b5  ls("............
44a0: d0 ba d1 81 d1 82 20 d0 ba d0 be d0 bc d0 bf d0  ...... .........
44b0: b8 d0 bb d1 8f d1 86 d0 b8 d0 b8 20 d0 bd d0 b5  ........... ....
44c0: 20 d0 be d0 b1 d0 bd d0 b0 d1 80 d1 83 d0 b6 d0   ...............
44d0: b5 d0 bd 22 2c 20 22 d0 9d d0 b0 d0 9a d0 bb d0  ...", ".........
44e0: b8 d0 b5 d0 bd d1 82 d0 b5 22 2c 20 70 72 6f 63  .........", proc
44f0: 2e 43 6f 6e 74 65 78 74 29 0d 0a 20 20 20 20 61  .Context)..    a
4500: 73 73 65 72 74 41 72 72 61 79 45 71 75 61 6c 73  ssertArrayEquals
4510: 49 67 6e 6f 72 69 6e 67 4f 72 64 65 72 28 5b 27  IgnoringOrder(['
4520: d0 9f d0 b0 d1 80 d0 b0 d0 bc 31 27 2c 20 27 d0  ..........1', '.
4530: 9f d0 b0 d1 80 d0 b0 d0 bc 32 27 5d 2c 20 70 72  .........2'], pr
4540: 6f 63 2e 50 61 72 61 6d 73 29 3b 0d 0a 20 20 20  oc.Params);..   
4550: 20 0d 0a 7d 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d   ..}..function m
4560: 61 63 72 6f 73 54 65 73 74 41 6e 61 6c 79 73 65  acrosTestAnalyse
4570: 4d 6f 64 75 6c 65 31 34 5f d0 9e d0 bf d1 80 d0  Module14_.......
4580: b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5 d0  ................
4590: 9f d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82 d1 80 d0  ................
45a0: be d0 b2 d0 9c d0 b5 d1 82 d0 be d0 b4 d0 b0 d0  ................
45b0: 9d d0 b0 d0 a0 d0 b0 d0 b7 d0 bd d1 8b d1 85 d0  ................
45c0: a1 d1 82 d1 80 d0 be d0 ba d0 b0 d1 85 d0 a1 d0  ................
45d0: 9a d0 be d0 bc d0 bc d0 b5 d0 bd d1 82 d0 b0 d1  ................
45e0: 80 d0 b8 d1 8f d0 bc d0 b8 28 29 20 7b 0d 0a 20  .........() {.. 
45f0: 20 20 20 76 61 72 20 6d 6f 64 75 6c 65 54 65 78     var moduleTex
4600: 74 20 3d 20 22 22 0d 0a 20 20 20 20 20 20 20 20  t = ""..        
4610: 2b 20 22 d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1  + ".............
4620: 83 d1 80 d0 b0 20 d0 9f d1 80 d0 be d0 b2 d0 b5  ..... ..........
4630: d1 80 d0 ba d0 b8 20 28 20 d0 9f d0 b5 d1 80 d0  ...... ( .......
4640: b5 d0 bc 31 2c 20 2f 2f d0 a2 d0 b5 d0 ba d1 81  ...1, //........
4650: d1 82 d0 be d0 b2 d1 8b d0 b9 20 d0 ba d0 be d0  .......... .....
4660: bc d0 bc d0 b5 d0 bd d1 82 d0 b0 d1 80 d0 b8 d0  ................
4670: b9 20 d0 bf d0 b5 d1 80 d0 b5 d0 bc d0 bc d0 b5  . ..............
4680: d0 bd d0 bd d0 be d0 b9 2c 20 d0 b4 d0 b0 20 d0  ........, .... .
4690: b8 20 d1 82 d0 b0 d0 ba d0 be d0 b5 20 d0 bc d0  . .......... ...
46a0: be d0 b6 d0 b5 d1 82 20 d0 b1 d1 8b d1 82 d1 8c  ....... ........
46b0: 2e 20 20 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20  .  \n"..        
46c0: 2b 20 22 20 20 20 20 d0 9f d0 b5 d1 80 d0 b5 d0  + "    .........
46d0: bc 32 2c 20 d0 9f d0 b5 d1 80 d0 b5 d0 bc 33 29  .2, ..........3)
46e0: 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22  \n"..        + "
46f0: d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f d1 80 d0 be  ................
4700: d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 22 0d 0a 20  ............".. 
4710: 20 20 20 64 65 62 75 67 67 65 72 0d 0a 20 20 20     debugger..   
4720: 20 76 61 72 20 63 6e 74 20 3d 20 53 79 6e 74 61   var cnt = Synta
4730: 78 41 6e 61 6c 79 73 69 73 2e 41 6e 61 6c 79 73  xAnalysis.Analys
4740: 65 4d 6f 64 75 6c 65 28 6d 6f 64 75 6c 65 54 65  eModule(moduleTe
4750: 78 74 29 3b 0d 0a 0d 0a 20 20 20 20 61 73 73 65  xt);....    asse
4760: 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5 d0 bf  rtEquals('......
4770: d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd d0 be  ................
4780: 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0   ...............
4790: b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8 d1 87  ..... ..........
47a0: d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bc d0 b5 d1  .......... .....
47b0: 82 d0 be d0 b4 d0 be d0 b2 21 27 2c 20 31 2c 20  .........!', 1, 
47c0: 63 6e 74 2e 4d 65 74 68 6f 64 73 2e 6c 65 6e 67  cnt.Methods.leng
47d0: 74 68 29 3b 20 20 20 20 0d 0a 20 20 20 20 61 73  th);    ..    as
47e0: 73 65 72 74 45 71 75 61 6c 73 28 27 d0 9d d0 b5  sertEquals('....
47f0: d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1 8c d0 bd  ................
4800: d0 be 20 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0  .. .............
4810: bb d0 b5 d0 bd d0 be 20 d0 ba d0 be d0 bb d0 b8  ....... ........
4820: d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20 d0 bf d0  ............ ...
4830: b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d1  ................
4840: 85 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8f 21 27  . ............!'
4850: 2c 20 30 2c 20 63 6e 74 2e 4d 6f 64 75 6c 65 56  , 0, cnt.ModuleV
4860: 61 72 73 2e 6c 65 6e 67 74 68 29 3b 0d 0a 20 20  ars.length);..  
4870: 20 20 76 61 72 20 70 72 6f 63 20 3d 20 63 6e 74    var proc = cnt
4880: 2e 67 65 74 4d 65 74 68 6f 64 42 79 4e 61 6d 65  .getMethodByName
4890: 28 27 d0 9f d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba  ('..............
48a0: d0 b8 27 29 3b 0d 0a 20 20 20 20 61 73 73 65 72  ..');..    asser
48b0: 74 4e 6f 74 4e 75 6c 6c 28 22 d0 9c d0 b5 d1 82  tNotNull("......
48c0: d0 be d0 b4 20 d0 9f d1 80 d0 be d0 b2 d0 b5 d1  .... ...........
48d0: 80 d0 ba d0 b8 20 d0 bd d0 b5 20 d0 bd d0 b0 d0  ..... .... .....
48e0: b9 d0 b4 d0 b5 d0 bd 22 2c 20 70 72 6f 63 29 3b  .......", proc);
48f0: 20 20 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74      ..    assert
4900: 41 72 72 61 79 45 71 75 61 6c 73 49 67 6e 6f 72  ArrayEqualsIgnor
4910: 69 6e 67 4f 72 64 65 72 28 5b 27 d0 9f d0 b5 d1  ingOrder(['.....
4920: 80 d0 b5 d0 bc 31 27 2c 20 27 d0 9f d0 b5 d1 80  .....1', '......
4930: d0 b5 d0 bc 32 27 2c 20 27 d0 9f d0 b5 d1 80 d0  ....2', '.......
4940: b5 d0 bc 33 27 5d 2c 20 70 72 6f 63 2e 50 61 72  ...3'], proc.Par
4950: 61 6d 73 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63  ams);..}....func
4960: 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 41  tion macrosTestA
4970: 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 31 35 5f d0  nalyseModule15_.
4980: 9e d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0  ................
4990: bd d0 b8 d0 b5 d0 9f d0 b0 d1 80 d0 b0 d0 bc d0  ................
49a0: b5 d1 82 d1 80 d0 be d0 b2 d0 9c d0 b5 d1 82 d0  ................
49b0: be d0 b4 d0 b0 d0 9d d0 b0 d0 a0 d0 b0 d0 b7 d0  ................
49c0: bd d1 8b d1 85 d0 a1 d1 82 d1 80 d0 be d0 ba d0  ................
49d0: b0 d1 85 d0 a1 d0 9a d0 be d0 bc d0 bc d0 b5 d0  ................
49e0: bd d1 82 d0 b0 d1 80 d0 b8 d1 8f d0 bc d0 b8 d0  ................
49f0: 98 d0 a1 d0 ba d0 be d0 b1 d0 ba d0 b0 d0 bc d0  ................
4a00: b8 28 29 20 7b 0d 0a 20 20 20 20 76 61 72 20 6d  .() {..    var m
4a10: 6f 64 75 6c 65 54 65 78 74 20 3d 20 22 22 0d 0a  oduleText = ""..
4a20: 20 20 20 20 20 20 20 20 2b 20 22 d0 9f d1 80 d0          + ".....
4a30: be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0 20 d0 9f  ............. ..
4a40: d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0 b8 20 28  .............. (
4a50: 20 d0 9f d0 b5 d1 80 d0 b5 d0 bc 31 2c 20 2f 2f   ..........1, //
4a60: d0 a2 d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d1 8b  ................
4a70: d0 b9 20 d0 ba d0 be d0 bc d0 bc d0 b5 d0 bd d1  .. .............
4a80: 82 d0 b0 d1 80 d0 b8 d0 b9 20 d0 bf d0 b5 d1 80  ......... ......
4a90: d0 b5 d0 bc d0 bc d0 b5 d0 bd d0 bd d0 be d0 b9  ................
4aa0: 2c 20 d0 b4 d0 b0 20 d0 b8 20 d1 82 d0 b0 d0 ba  , .... .. ......
4ab0: d0 be d0 b5 20 d0 bc d0 be d0 b6 d0 b5 d1 82 20  .... .......... 
4ac0: d0 b1 d1 8b d1 82 d1 8c 2e 20 20 5c 6e 22 0d 0a  .........  \n"..
4ad0: 20 20 20 20 20 20 20 20 2b 20 22 20 20 20 20 d0          + "    .
4ae0: 9f d0 b5 d1 80 d0 b5 d0 bc 32 2c 20 2f 2f 20 d0  .........2, // .
4af0: 9b d1 8e d0 b1 d0 be d0 b9 20 d1 82 d0 b5 d0 ba  ......... ......
4b00: d1 81 d1 82 20 d0 b8 20 d1 81 d1 81 d1 8b d0 bb  .... .. ........
4b10: d0 ba d0 b0 20 d0 bd d0 b0 20 d0 bf d1 80 d0 be  .... .... ......
4b20: d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 83 20 d0 b8 d0  ............ ...
4b30: bb d0 b8 20 d1 84 d1 83 d0 bd d0 ba d1 86 d0 b8  ... ............
4b40: d1 8e 20 d0 9c d0 be d1 8f d0 9f d1 80 d0 be d1  .. .............
4b50: 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0 28 29 5c 6e 22  ...........()\n"
4b60: 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 20 20 20  ..        + "   
4b70: 20 d0 9f d0 b5 d1 80 d0 b5 d0 bc 33 29 5c 6e 22   ..........3)\n"
4b80: 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 9a d0  ..        + "...
4b90: be d0 bd d0 b5 d1 86 d0 9f d1 80 d0 be d1 86 d0  ................
4ba0: b5 d0 b4 d1 83 d1 80 d1 8b 22 0d 0a 20 20 20 20  ........."..    
4bb0: 0d 0a 20 20 20 20 76 61 72 20 63 6e 74 20 3d 20  ..    var cnt = 
4bc0: 53 79 6e 74 61 78 41 6e 61 6c 79 73 69 73 2e 41  SyntaxAnalysis.A
4bd0: 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 28 6d 6f 64  nalyseModule(mod
4be0: 75 6c 65 54 65 78 74 29 3b 0d 0a 0d 0a 20 20 20  uleText);....   
4bf0: 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 27 d0   assertEquals('.
4c00: 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0 bb d1  ................
4c10: 8c d0 bd d0 be 20 d0 be d0 bf d1 80 d0 b5 d0 b4  ..... ..........
4c20: d0 b5 d0 bb d0 b5 d0 bd d0 be 20 d0 ba d0 be d0  .......... .....
4c30: bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 20  ............... 
4c40: d0 bc d0 b5 d1 82 d0 be d0 b4 d0 be d0 b2 21 27  ..............!'
4c50: 2c 20 31 2c 20 63 6e 74 2e 4d 65 74 68 6f 64 73  , 1, cnt.Methods
4c60: 2e 6c 65 6e 67 74 68 29 3b 20 20 20 20 0d 0a 20  .length);    .. 
4c70: 20 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 28     assertEquals(
4c80: 27 d0 9d d0 b5 d0 bf d1 80 d0 b0 d0 b2 d0 b8 d0  '...............
4c90: bb d1 8c d0 bd d0 be 20 d0 be d0 bf d1 80 d0 b5  ....... ........
4ca0: d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be 20 d0 ba d0  ............ ...
4cb0: be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0  ................
4cc0: be 20 d0 bf d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd  . ..............
4cd0: d0 bd d1 8b d1 85 20 d0 bc d0 be d0 b4 d1 83 d0  ...... .........
4ce0: bb d1 8f 21 27 2c 20 30 2c 20 63 6e 74 2e 4d 6f  ...!', 0, cnt.Mo
4cf0: 64 75 6c 65 56 61 72 73 2e 6c 65 6e 67 74 68 29  duleVars.length)
4d00: 3b 0d 0a 20 20 20 20 76 61 72 20 70 72 6f 63 20  ;..    var proc 
4d10: 3d 20 63 6e 74 2e 67 65 74 4d 65 74 68 6f 64 42  = cnt.getMethodB
4d20: 79 4e 61 6d 65 28 27 d0 9f d1 80 d0 be d0 b2 d0  yName('.........
4d30: b5 d1 80 d0 ba d0 b8 27 29 3b 0d 0a 20 20 20 20  .......');..    
4d40: 61 73 73 65 72 74 4e 6f 74 4e 75 6c 6c 28 22 d0  assertNotNull(".
4d50: 9c d0 b5 d1 82 d0 be d0 b4 20 d0 9f d1 80 d0 be  ......... ......
4d60: d0 b2 d0 b5 d1 80 d0 ba d0 b8 20 d0 bd d0 b5 20  .......... .... 
4d70: d0 bd d0 b0 d0 b9 d0 b4 d0 b5 d0 bd 22 2c 20 70  ............", p
4d80: 72 6f 63 29 3b 20 20 20 20 0d 0a 20 20 20 20 61  roc);    ..    a
4d90: 73 73 65 72 74 41 72 72 61 79 45 71 75 61 6c 73  ssertArrayEquals
4da0: 49 67 6e 6f 72 69 6e 67 4f 72 64 65 72 28 5b 27  IgnoringOrder(['
4db0: d0 9f d0 b5 d1 80 d0 b5 d0 bc 31 27 2c 20 27 d0  ..........1', '.
4dc0: 9f d0 b5 d1 80 d0 b5 d0 bc 32 27 2c 20 27 d0 9f  .........2', '..
4dd0: d0 b5 d1 80 d0 b5 d0 bc 33 27 5d 2c 20 70 72 6f  ........3'], pro
4de0: 63 2e 50 61 72 61 6d 73 29 3b 0d 0a 7d 0d 0a 0d  c.Params);..}...
4df0: 0a 0d 0a 2f 2f 7d 20 74 65 73 74 73 20 6f 66 20  ...//} tests of 
4e00: 41 6e 61 6c 79 73 65 4d 6f 64 75 6c 65 0d 0a 0d  AnalyseModule...
4e10: 0a                                               .