home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / devel / eiffel / eiffel_p.z / eiffel_p / ep / ParserISE.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-12-09  |  375.1 KB  |  10,557 lines

  1. # include    "ParserISE.h"
  2. # include    "Errors.h"
  3.  
  4. # define    xxbool    char
  5. # define    xxtrue    1
  6. # define    xxfalse    0
  7. # define    xxEof    0
  8.  
  9. typedef struct xxsUnion {
  10.       struct xxsUnion *    xxGlobalRecoverySet;
  11.       unsigned short    xxLocalRecoverySet;
  12.     } xxtUnion, * xxtUnionPtr;
  13. typedef    long    xxtSet [4];
  14.  
  15. ParserISE_tParsAttribute    ParserISE_ParsAttribute;
  16.  
  17. static short    xxToken;
  18. static int    xxErrorCount;
  19. static xxbool    xxIsInitialized = xxfalse, xxIsRepairMode = xxfalse;
  20. static long    xxHorizontalSet [] [4] = {
  21.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  22.  },
  23.   { 0x00000000L, 0x00220402L, 0x00000000L, 0x00000000L,
  24.  },
  25.   { 0x00001000L, 0x00321442L, 0x90400000L, 0x00000000L,
  26.  },
  27.   { 0x00001000L, 0x00321440L, 0x90400000L, 0x00000000L,
  28.  },
  29.   { 0x00001000L, 0x00101040L, 0x90400000L, 0x00000000L,
  30.  },
  31.   { 0x00000000L, 0x00101040L, 0x90400000L, 0x00000000L,
  32.  },
  33.   { 0x00000000L, 0x00101040L, 0x90000000L, 0x00000000L,
  34.  },
  35.   { 0x00000000L, 0x00101040L, 0x10000000L, 0x00000000L,
  36.  },
  37.   { 0x00000000L, 0x00001040L, 0x10000000L, 0x00000000L,
  38.  },
  39.   { 0x00000000L, 0x00001000L, 0x10000000L, 0x00000000L,
  40.  },
  41.   { 0x00000000L, 0x00001000L, 0x00000000L, 0x00000000L,
  42.  },
  43.   { 0x7C000006L, 0x00000082L, 0x00000020L, 0x00200000L,
  44.  },
  45.   { 0x7D000006L, 0x00000080L, 0x00000020L, 0x00200000L,
  46.  },
  47.   { 0x01000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  48.  },
  49.   { 0x00C00000L, 0x00000000L, 0x00000000L, 0x00000000L,
  50.  },
  51.   { 0x7C400006L, 0x00000080L, 0x00000020L, 0x00200000L,
  52.  },
  53.   { 0x00800000L, 0x00000000L, 0x00000000L, 0x00000000L,
  54.  },
  55.   { 0x7C800006L, 0x00000080L, 0x00000020L, 0x00200000L,
  56.  },
  57.   { 0x7C000006L, 0x00000080L, 0x00000020L, 0x00200000L,
  58.  },
  59.   { 0x00000000L, 0x01A28000L, 0x20820100L, 0x00200000L,
  60.  },
  61.   { 0x00000000L, 0x01A08000L, 0x20820100L, 0x00200000L,
  62.  },
  63.   { 0x00000000L, 0x01A08400L, 0x20820100L, 0x00200000L,
  64.  },
  65.   { 0x00000000L, 0x00220400L, 0x00000000L, 0x00000000L,
  66.  },
  67.   { 0x04000000L, 0x00000000L, 0x00400000L, 0x00000000L,
  68.  },
  69.   { 0x04000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  70.  },
  71.   { 0x00000400L, 0x00000051L, 0x00040000L, 0x00200000L,
  72.  },
  73.   { 0x00000000L, 0x00000040L, 0x00000000L, 0x00000000L,
  74.  },
  75.   { 0x00000400L, 0x00000011L, 0x00040000L, 0x00200000L,
  76.  },
  77.   { 0x00000000L, 0x00000011L, 0x00040000L, 0x00200000L,
  78.  },
  79.   { 0x00404000L, 0x00000000L, 0x08000000L, 0x00000000L,
  80.  },
  81.   { 0x00400000L, 0x00000000L, 0x08000000L, 0x00000000L,
  82.  },
  83.   { 0x00000000L, 0x00000000L, 0x08000000L, 0x00000000L,
  84.  },
  85.   { 0x7C000006L, 0x00030180L, 0x0A504028L, 0x00000000L,
  86.  },
  87.   { 0x7C000006L, 0x00030180L, 0x02504028L, 0x00000000L,
  88.  },
  89.   { 0x00800000L, 0x00000011L, 0x00040000L, 0x00200000L,
  90.  },
  91.   { 0x00000000L, 0x00000001L, 0x00040000L, 0x00200000L,
  92.  },
  93.   { 0x02000006L, 0x00000000L, 0x00040000L, 0x00400000L,
  94.  },
  95.   { 0x02000006L, 0x48000005L, 0x00080000L, 0xFF800000L,
  96.  },
  97.   { 0x02000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  98.  },
  99.   { 0x02000006L, 0x00000000L, 0x00000000L, 0x00400000L,
  100.  },
  101.   { 0x02000006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  102.  },
  103.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00400000L,
  104.  },
  105.   { 0x00000004L, 0x00000000L, 0x00000000L, 0x00000000L,
  106.  },
  107.   { 0x00000002L, 0x00000000L, 0x00000000L, 0x00000000L,
  108.  },
  109.   { 0x00000006L, 0x00000000L, 0x00000000L, 0x00400000L,
  110.  },
  111.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x01000000L,
  112.  },
  113.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x02000000L,
  114.  },
  115.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00800000L,
  116.  },
  117.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x20000000L,
  118.  },
  119.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x10000000L,
  120.  },
  121.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x08000000L,
  122.  },
  123.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x04000000L,
  124.  },
  125.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x40000000L,
  126.  },
  127.   { 0x00000000L, 0x40000000L, 0x00000000L, 0x00000000L,
  128.  },
  129.   { 0x00000000L, 0x08000000L, 0x00000040L, 0x00000000L,
  130.  },
  131.   { 0x00000000L, 0x00000000L, 0x00000040L, 0x00000000L,
  132.  },
  133.   { 0x00000000L, 0x00004000L, 0x00080000L, 0x00000000L,
  134.  },
  135.   { 0x00000000L, 0x00004000L, 0x00000000L, 0x00000000L,
  136.  },
  137.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x80000000L,
  138.  },
  139.   { 0x00000000L, 0x00000004L, 0x00000000L, 0x00000000L,
  140.  },
  141.   { 0x00000006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  142.  },
  143.   { 0x00000000L, 0x00000400L, 0x80000000L, 0x00200000L,
  144.  },
  145.   { 0x00000000L, 0x00000400L, 0x00000000L, 0x00200000L,
  146.  },
  147.   { 0x01000000L, 0x00000400L, 0x00000000L, 0x00200000L,
  148.  },
  149.   { 0x00000000L, 0x00001200L, 0x00018410L, 0x00000000L,
  150.  },
  151.   { 0x00000000L, 0x00001200L, 0x00010410L, 0x00000000L,
  152.  },
  153.   { 0x00000000L, 0x00001000L, 0x00010410L, 0x00000000L,
  154.  },
  155.   { 0x00000000L, 0x00001000L, 0x00010400L, 0x00000000L,
  156.  },
  157.   { 0x00000000L, 0x00001000L, 0x00000400L, 0x00000000L,
  158.  },
  159.   { 0x00000000L, 0x00000001L, 0x00048000L, 0x00200000L,
  160.  },
  161.   { 0x00800000L, 0x00000001L, 0x00040000L, 0x00200000L,
  162.  },
  163.   { 0x00000000L, 0x04000001L, 0x00040000L, 0x00200000L,
  164.  },
  165.   { 0x00000600L, 0x01808000L, 0x20820100L, 0x00200000L,
  166.  },
  167.   { 0x00000200L, 0x00000000L, 0x00000000L, 0x00000000L,
  168.  },
  169.   { 0x00000000L, 0x01808000L, 0x20820100L, 0x00200000L,
  170.  },
  171.   { 0x00800000L, 0x01808000L, 0x20820100L, 0x00200000L,
  172.  },
  173.   { 0x01000400L, 0x10000201L, 0x00040000L, 0x00200000L,
  174.  },
  175.   { 0x01000400L, 0x10000001L, 0x00040000L, 0x00200000L,
  176.  },
  177.   { 0x00000400L, 0x10000001L, 0x00040000L, 0x00200000L,
  178.  },
  179.   { 0x00000000L, 0x10000001L, 0x00040000L, 0x00200000L,
  180.  },
  181.   { 0x00000000L, 0x10000000L, 0x00000000L, 0x00000000L,
  182.  },
  183.   { 0x00006000L, 0x00000000L, 0x00000000L, 0x00200000L,
  184.  },
  185.   { 0x00002000L, 0x00000000L, 0x00000000L, 0x00000000L,
  186.  },
  187.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00200000L,
  188.  },
  189.   { 0x00400000L, 0x00000000L, 0x00000000L, 0x00000000L,
  190.  },
  191.   { 0x00800000L, 0x00000000L, 0x00000000L, 0x00200000L,
  192.  },
  193.   { 0x00400000L, 0x03808400L, 0x24820100L, 0x00200000L,
  194.  },
  195.   { 0x00000000L, 0x00030100L, 0x02504000L, 0x00000000L,
  196.  },
  197.   { 0x00000000L, 0x00031900L, 0x02506000L, 0x00000000L,
  198.  },
  199.   { 0x00000000L, 0x00031900L, 0x02106000L, 0x00000000L,
  200.  },
  201.   { 0x00000000L, 0x00030100L, 0x02104000L, 0x00000000L,
  202.  },
  203.   { 0x00000000L, 0x00031900L, 0x02102000L, 0x00000000L,
  204.  },
  205.   { 0x00000000L, 0x00030100L, 0x02100000L, 0x00000000L,
  206.  },
  207.   { 0x00000000L, 0x00031900L, 0x00102000L, 0x00000000L,
  208.  },
  209.   { 0x00000000L, 0x00001800L, 0x00002000L, 0x00000000L,
  210.  },
  211.   { 0x00000000L, 0x00001000L, 0x00002000L, 0x00000000L,
  212.  },
  213.   { 0x00000000L, 0x00030100L, 0x00100000L, 0x00000000L,
  214.  },
  215.   { 0x00000000L, 0x00010100L, 0x00100000L, 0x00000000L,
  216.  },
  217.   { 0x01184000L, 0x004D0028L, 0x40001800L, 0x00200000L,
  218.  },
  219.   { 0x01184000L, 0x004C0028L, 0x40101800L, 0x00200000L,
  220.  },
  221.   { 0x00000000L, 0x00010000L, 0x00100000L, 0x00000000L,
  222.  },
  223.   { 0x00000000L, 0x00020000L, 0x00000000L, 0x00000000L,
  224.  },
  225.   { 0x00000000L, 0x00000000L, 0x02000000L, 0x00200000L,
  226.  },
  227.   { 0x01184000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  228.  },
  229.   { 0x00204000L, 0x00080000L, 0x00000000L, 0x00000000L,
  230.  },
  231.   { 0x00204000L, 0x00000000L, 0x00000000L, 0x00000000L,
  232.  },
  233.   { 0x00200000L, 0x00000000L, 0x00000000L, 0x00000000L,
  234.  },
  235.   { 0x00200000L, 0x00080000L, 0x00001000L, 0x00200000L,
  236.  },
  237.   { 0x00204060L, 0x00000000L, 0x00001000L, 0x00000000L,
  238.  },
  239.   { 0x7E004146L, 0x00080080L, 0x002010A0L, 0x00600000L,
  240.  },
  241.   { 0x7E004126L, 0x00080080L, 0x002010A0L, 0x00600000L,
  242.  },
  243.   { 0x00204060L, 0x00000000L, 0x00000000L, 0x00000000L,
  244.  },
  245.   { 0x7E004106L, 0x00084080L, 0x002050A0L, 0x00700000L,
  246.  },
  247.   { 0x7E004106L, 0x00084080L, 0x002010A0L, 0x00700000L,
  248.  },
  249.   { 0x7E004106L, 0x00080880L, 0x002010E0L, 0x00700000L,
  250.  },
  251.   { 0x7E004106L, 0x00080080L, 0x002010E0L, 0x00700000L,
  252.  },
  253.   { 0x7E004106L, 0x00080080L, 0x102010A0L, 0x00700000L,
  254.  },
  255.   { 0x7E004106L, 0x00080080L, 0x002010A0L, 0x00700000L,
  256.  },
  257.   { 0x02664006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  258.  },
  259.   { 0x7E404106L, 0x00080080L, 0x002010A0L, 0x00700000L,
  260.  },
  261.   { 0x02264006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  262.  },
  263.   { 0x02260006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  264.  },
  265.   { 0x02260006L, 0x48080004L, 0x00081000L, 0xFFA00000L,
  266.  },
  267.   { 0x02060006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  268.  },
  269.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00100000L,
  270.  },
  271.   { 0x7E004106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  272.  },
  273.   { 0x7E004106L, 0x00481080L, 0x002010A0L, 0x00700000L,
  274.  },
  275.   { 0x02664006L, 0x48000004L, 0x00080002L, 0xFFA00000L,
  276.  },
  277.   { 0x7E404106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  278.  },
  279.   { 0x7E004106L, 0x00080080L, 0x002010A2L, 0x00600000L,
  280.  },
  281.   { 0x00000000L, 0x00000001L, 0x00050000L, 0x00200000L,
  282.  },
  283.   { 0x00000000L, 0x00000001L, 0x00040010L, 0x00200000L,
  284.  },
  285.   { 0x00000000L, 0x00000001L, 0x00040400L, 0x00200000L,
  286.  },
  287.   { 0x00000000L, 0x01000000L, 0x00000000L, 0x00000000L,
  288.  },
  289.   { 0x00000000L, 0x00800000L, 0x00000000L, 0x00000000L,
  290.  },
  291.   { 0x00000000L, 0x00008000L, 0x00000000L, 0x00000000L,
  292.  },
  293.   { 0x00000000L, 0x00000000L, 0x20000000L, 0x00000000L,
  294.  },
  295.   { 0x00000000L, 0x00000000L, 0x00800000L, 0x00000000L,
  296.  },
  297.   { 0x00000000L, 0x00000000L, 0x00020000L, 0x00000000L,
  298.  },
  299.   { 0x00000000L, 0x00000000L, 0x00000100L, 0x00000000L,
  300.  },
  301.   { 0x00000000L, 0x03808400L, 0x24820100L, 0x00200000L,
  302.  },
  303.   { 0x00001000L, 0x00000000L, 0x00000000L, 0x00000000L,
  304.  },
  305.   { 0x00001000L, 0x00000400L, 0x00000000L, 0x00200000L,
  306.  },
  307.   { 0x00001800L, 0x03808400L, 0x24820100L, 0x00200000L,
  308.  },
  309.   { 0x00000800L, 0x00000000L, 0x00000000L, 0x00000000L,
  310.  },
  311.   { 0x00800000L, 0x03808400L, 0x24820100L, 0x00200000L,
  312.  },
  313.   { 0x7C000006L, 0x02080080L, 0x00001020L, 0x00200000L,
  314.  },
  315.   { 0x00000000L, 0x00080000L, 0x04000000L, 0x00200000L,
  316.  },
  317.   { 0x00000000L, 0x00080000L, 0x00000000L, 0x00000000L,
  318.  },
  319.   { 0x00000000L, 0x00080000L, 0x00000000L, 0x00200000L,
  320.  },
  321.   { 0x00001800L, 0x01808000L, 0x20820100L, 0x00200000L,
  322.  },
  323.   { 0x00010000L, 0x00000000L, 0x00000000L, 0x00000000L,
  324.  },
  325.   { 0x00010000L, 0x00000400L, 0x00000000L, 0x00200000L,
  326.  },
  327.   { 0x7E004106L, 0x00085088L, 0x002010A0L, 0x00600000L,
  328.  },
  329.   { 0x00000000L, 0x00005000L, 0x00000000L, 0x00000000L,
  330.  },
  331.   { 0x00000000L, 0x00002000L, 0x00000000L, 0x00000000L,
  332.  },
  333.   { 0x7E004106L, 0x00082080L, 0x002010A0L, 0x00600000L,
  334.  },
  335.   { 0x01184000L, 0x004C0028L, 0x40001840L, 0x00200000L,
  336.  },
  337.   { 0x01184000L, 0x004C4028L, 0x40001800L, 0x00200000L,
  338.  },
  339.   { 0x7E004106L, 0x00085080L, 0x402010A1L, 0x00600000L,
  340.  },
  341.   { 0x00000000L, 0x00005000L, 0x00000001L, 0x00000000L,
  342.  },
  343.   { 0x7C000006L, 0x00000080L, 0x00000061L, 0x00200000L,
  344.  },
  345.   { 0x00000000L, 0x00000000L, 0x00000001L, 0x00000000L,
  346.  },
  347.   { 0x40008000L, 0x00000000L, 0x00000000L, 0x00000000L,
  348.  },
  349.   { 0x00008000L, 0x00000000L, 0x00000000L, 0x00000000L,
  350.  },
  351.   { 0x40000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  352.  },
  353.   { 0x18008006L, 0x00000000L, 0x00000000L, 0x00000000L,
  354.  },
  355.   { 0x7C008006L, 0x00000080L, 0x00000020L, 0x00200000L,
  356.  },
  357.   { 0x7E004106L, 0x00081080L, 0x102010A6L, 0x00600000L,
  358.  },
  359.   { 0x7E004106L, 0x00080080L, 0x102010A6L, 0x00600000L,
  360.  },
  361.   { 0x7E004106L, 0x00081080L, 0x002010A6L, 0x00600000L,
  362.  },
  363.   { 0x7E004106L, 0x00080080L, 0x002010A6L, 0x00600000L,
  364.  },
  365.   { 0x00000000L, 0x00001000L, 0x00000004L, 0x00000000L,
  366.  },
  367.   { 0x01184000L, 0x004C0028L, 0x41001800L, 0x00200000L,
  368.  },
  369.   { 0x7E004106L, 0x00080080L, 0x002010A4L, 0x00600000L,
  370.  },
  371.   { 0x01184000L, 0x004C1028L, 0x40001800L, 0x00200000L,
  372.  },
  373.   { 0x7E006106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  374.  },
  375.   { 0x02862006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  376.  },
  377.   { 0x05986000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  378.  },
  379.   { 0x01186000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  380.  },
  381.   { 0x01386000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  382.  },
  383.   { 0x01384000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  384.  },
  385.   { 0x04800000L, 0x00000000L, 0x00000000L, 0x00000000L,
  386.  },
  387.   { 0x01184000L, 0x004C0028L, 0x40003800L, 0x00200000L,
  388.  },
  389.   { 0x00000000L, 0x00000000L, 0x00000800L, 0x00000000L,
  390.  },
  391.   { 0x00000000L, 0x00000000L, 0x00000008L, 0x00000000L,
  392.  },
  393.   { 0x00000000L, 0x00080000L, 0x00001000L, 0x00200000L,
  394.  },
  395.   { 0x00000000L, 0x00000000L, 0x00001000L, 0x00200000L,
  396.  },
  397.   { 0x00000000L, 0x00000000L, 0x00001000L, 0x00000000L,
  398.  },
  399.   { 0x00000400L, 0x00100001L, 0x00040000L, 0x00200000L,
  400.  },
  401.   { 0x00000000L, 0x00100000L, 0x00000000L, 0x00000000L,
  402.  },
  403.   { 0x00000400L, 0x00000001L, 0x00040000L, 0x00200000L,
  404.  },
  405.   { 0x00300000L, 0x03808400L, 0x24821100L, 0x00200000L,
  406.  },
  407.   { 0x00100000L, 0x03808400L, 0x24820100L, 0x00200000L,
  408.  },
  409.   { 0x00300000L, 0x00000000L, 0x00001000L, 0x00200000L,
  410.  },
  411.   { 0x00280000L, 0x00000000L, 0x00001000L, 0x00200000L,
  412.  },
  413.   { 0x00180000L, 0x00000000L, 0x00001000L, 0x00200000L,
  414.  },
  415.   { 0x00380000L, 0x00000000L, 0x00001000L, 0x00200000L,
  416.  },
  417.   { 0x7E206106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  418.  },
  419.   { 0x00202000L, 0x00000000L, 0x00000000L, 0x00000000L,
  420.  },
  421.   { 0x00004000L, 0x00000000L, 0x00000000L, 0x00000000L,
  422.  },
  423.   { 0x7E006107L, 0x00080080L, 0x002010A0L, 0x00600000L,
  424.  },
  425.   { 0x7E004107L, 0x00080080L, 0x002010A0L, 0x00600000L,
  426.  },
  427.   { 0x7E804107L, 0x00080080L, 0x002010A0L, 0x00600000L,
  428.  },
  429.   { 0x00000001L, 0x00080000L, 0x00001000L, 0x00200000L,
  430.  },
  431.   { 0x7E064106L, 0x48080084L, 0x002810A0L, 0xFFE00000L,
  432.  },
  433.   { 0x02264006L, 0x48000004L, 0x00081000L, 0xFF800000L,
  434.  },
  435.   { 0x02264006L, 0x48080004L, 0x00080000L, 0xFF800000L,
  436.  },
  437.   { 0x7E266106L, 0x48080084L, 0x002810A0L, 0xFFE00000L,
  438.  },
  439.   { 0x02262006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  440.  },
  441.   { 0x10000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  442.  },
  443.   { 0x08000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  444.  },
  445.   { 0x20000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  446.  },
  447.   { 0x7C000000L, 0x00000080L, 0x00000020L, 0x00000000L,
  448.  },
  449.   { 0x00040000L, 0x00000000L, 0x00000000L, 0x00000000L,
  450.  },
  451.   { 0x00020000L, 0x00000000L, 0x00000000L, 0x00000000L,
  452.  },
  453.   { 0x00060000L, 0x00000000L, 0x00000000L, 0x00000000L,
  454.  },
  455.   { 0x7C000006L, 0x00080080L, 0x00001020L, 0x00200000L,
  456.  },
  457.   { 0x7C000006L, 0x00000080L, 0x00000020L, 0x00000000L,
  458.  },
  459.   { 0x18000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  460.  },
  461.   { 0x00000006L, 0x00000000L, 0x00000000L, 0x00000000L,
  462.  },
  463.   { 0x00000000L, 0x00000000L, 0x00000020L, 0x00000000L,
  464.  },
  465.   { 0x00000000L, 0x00000080L, 0x00000000L, 0x00000000L,
  466.  },
  467.   { 0x00000000L, 0x00000080L, 0x00000020L, 0x00000000L,
  468.  },
  469.   { 0x7E004186L, 0x00080080L, 0x002010A0L, 0x00600000L,
  470.  },
  471.   { 0x00000080L, 0x00000000L, 0x00000000L, 0x00000000L,
  472.  },
  473.   { 0x7E804106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  474.  },
  475.   { 0x00006000L, 0x00000000L, 0x00000080L, 0x00200000L,
  476.  },
  477.   { 0x04000000L, 0x20000100L, 0x00000000L, 0x00000000L,
  478.  },
  479.   { 0x00000000L, 0x20000000L, 0x00000000L, 0x00000000L,
  480.  },
  481.   { 0x04000000L, 0x20000000L, 0x00000000L, 0x00000000L,
  482.  },
  483. };
  484. static unsigned char xxVerticalSet [] = {
  485.  0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80,
  486.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  487.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  488.  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00,
  489.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  490.  0x00, 0x00, 0x03, 0x1C, 0x00, 0x00, 0x03, 0x00,
  491.  0x00, 0x00, 0x00, 0x7C, 0x00, 0x03, 0x00, 0x00,
  492.  0x80, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
  493.  0x0C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00,
  494.  0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  495.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  496.  0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
  497.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  498.  0x00, 0x00, 0x80, 0x00,
  499.  
  500.  0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0xE1,
  501.  0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  502.  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
  503.  0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00,
  504.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  505.  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
  506.  0x00, 0x00, 0x00, 0xE8, 0x00, 0x01, 0x00, 0x00,
  507.  0x02, 0xEC, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC,
  508.  0x00, 0x00, 0x00, 0xE8, 0x60, 0x00, 0x00, 0x00,
  509.  0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
  510.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  511.  0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
  512.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  513.  0x00, 0x00, 0xFE, 0x00,
  514.  
  515.  0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x13,
  516.  0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  517.  0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
  518.  0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00,
  519.  0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
  520.  0x00, 0x00, 0x00, 0x12, 0x02, 0x00, 0x00, 0x00,
  521.  0x00, 0x00, 0x00, 0xFB, 0x00, 0x04, 0x2A, 0x00,
  522.  0x02, 0x13, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
  523.  0x00, 0x00, 0x00, 0x13, 0x03, 0x00, 0x00, 0x00,
  524.  0x00, 0x00, 0x02, 0x00, 0x00, 0x03, 0x00, 0xEA,
  525.  0x08, 0x00, 0x00, 0x02, 0x00, 0xEA, 0x00, 0x00,
  526.  0x02, 0x00, 0x02, 0x6A, 0x00, 0x00, 0x00, 0x00,
  527.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  528.  0x00, 0x02, 0x07, 0x00,
  529.  
  530.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38,
  531.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  532.  0x00, 0x00, 0xC0, 0x00, 0x00, 0x08, 0x00, 0x00,
  533.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  534.  0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x04,
  535.  0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0xC0, 0xC0,
  536.  0x04, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0xC0,
  537.  0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A,
  538.  0x00, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00,
  539.  0x04, 0x00, 0x00, 0xC0, 0x00, 0x1A, 0x04, 0x30,
  540.  0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x04,
  541.  0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00,
  542.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  543.  0x00, 0x00, 0x9E, 0x00,
  544.  
  545.  0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x30,
  546.  0x00, 0x00, 0x10, 0x30, 0x30, 0x00, 0x00, 0x00,
  547.  0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
  548.  0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00,
  549.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  550.  0x00, 0x30, 0x00, 0x00, 0xF0, 0x30, 0x47, 0x47,
  551.  0x00, 0x30, 0x30, 0xB8, 0x30, 0x00, 0x00, 0x47,
  552.  0xF0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
  553.  0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x43, 0x00,
  554.  0x00, 0x00, 0xF0, 0x47, 0x00, 0x00, 0x00, 0x00,
  555.  0x00, 0x01, 0xB8, 0xF0, 0x30, 0x00, 0x00, 0x00,
  556.  0xF0, 0x00, 0xF0, 0x00, 0x00, 0x30, 0x30, 0x30,
  557.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  558.  0x00, 0xF0, 0xF0, 0xC0,
  559.  
  560.  0x00, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0xFF, 0x58,
  561.  0x00, 0x00, 0x88, 0x00, 0x00, 0xB8, 0xB8, 0x00,
  562.  0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F,
  563.  0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00,
  564.  0x00, 0xB8, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00,
  565.  0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x5E, 0x5E,
  566.  0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x5E,
  567.  0x5F, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00,
  568.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x00,
  569.  0x00, 0x00, 0x5F, 0x5E, 0xB8, 0x00, 0x00, 0x00,
  570.  0x00, 0x00, 0x5E, 0x5F, 0x00, 0x00, 0x00, 0x00,
  571.  0x5F, 0x00, 0x5F, 0x00, 0x00, 0xDE, 0x5E, 0x00,
  572.  0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
  573.  0xB8, 0x5F, 0x5F, 0x5D,
  574.  
  575.  0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x12,
  576.  0x0A, 0x00, 0x00, 0x12, 0x10, 0x01, 0x01, 0x00,
  577.  0x00, 0x70, 0x02, 0x00, 0x0A, 0x00, 0x00, 0x60,
  578.  0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x61, 0x00,
  579.  0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x04, 0x04,
  580.  0x04, 0x10, 0x00, 0x02, 0x70, 0x10, 0x02, 0x02,
  581.  0x04, 0xA0, 0x20, 0xA2, 0x20, 0x04, 0x02, 0x02,
  582.  0x60, 0x02, 0x10, 0x02, 0x10, 0x01, 0x00, 0x02,
  583.  0x00, 0x10, 0x04, 0x22, 0x02, 0x04, 0x00, 0x00,
  584.  0x04, 0x00, 0x60, 0x02, 0x01, 0x02, 0x04, 0x02,
  585.  0x02, 0x00, 0x20, 0x70, 0x10, 0x02, 0x00, 0x04,
  586.  0x60, 0x00, 0x60, 0x02, 0x00, 0x21, 0x20, 0x20,
  587.  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  588.  0x01, 0x60, 0x76, 0x00,
  589.  
  590.  0x00, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8C, 0x80,
  591.  0x82, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00,
  592.  0x00, 0x8C, 0x80, 0x00, 0x00, 0x10, 0x00, 0x8C,
  593.  0x80, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x8D, 0x00,
  594.  0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
  595.  0x00, 0x80, 0x00, 0x30, 0xCC, 0x80, 0x80, 0x80,
  596.  0x00, 0x80, 0x80, 0xA0, 0x80, 0x00, 0x00, 0x80,
  597.  0x8D, 0x20, 0x80, 0x00, 0x80, 0x80, 0x00, 0x30,
  598.  0x00, 0x80, 0x00, 0xA0, 0x00, 0x00, 0x80, 0x80,
  599.  0x00, 0x00, 0x8C, 0x80, 0x80, 0x30, 0x00, 0x00,
  600.  0x00, 0x00, 0x80, 0xCC, 0x80, 0x00, 0x00, 0x00,
  601.  0x8C, 0x83, 0x8D, 0x00, 0x00, 0x84, 0x8C, 0x81,
  602.  0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
  603.  0x80, 0x8C, 0xFD, 0x80,
  604.  
  605.  0x00, 0x03, 0x03, 0x0B, 0x0B, 0x03, 0x03, 0x01,
  606.  0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
  607.  0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03,
  608.  0x01, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x02,
  609.  0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  610.  0x00, 0x01, 0x00, 0x00, 0x03, 0x01, 0x01, 0x01,
  611.  0x00, 0x01, 0x01, 0x11, 0x11, 0x00, 0x00, 0x01,
  612.  0x03, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00,
  613.  0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01,
  614.  0x00, 0x00, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00,
  615.  0x00, 0x00, 0x11, 0x03, 0x01, 0x00, 0x00, 0x00,
  616.  0x03, 0x01, 0x03, 0x00, 0x00, 0x01, 0x01, 0x01,
  617.  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  618.  0x01, 0x03, 0x03, 0x01,
  619. };
  620. char *        ParserISE_TokenName [] = {
  621. "_EndOfFile",
  622. "Character_constant",
  623. "Bit_sequence",
  624. "Integer",
  625. "Real",
  626. "Manifest_string",
  627. "Free_op",
  628. ";",
  629. ",",
  630. ":",
  631. ".",
  632. "!",
  633. "!!",
  634. "Eq",
  635. "Not_eq",
  636. "->",
  637. "..",
  638. "(",
  639. ")",
  640. "[",
  641. "]",
  642. "{",
  643. "}",
  644. "<<",
  645. ">>",
  646. ":=",
  647. "?=",
  648. "\\'",
  649. "\"",
  650. "plus",
  651. "minus",
  652. "$",
  653. "%",
  654. "div",
  655. "alias",
  656. "all",
  657. "and",
  658. "as",
  659. "BIT",
  660. "BOOLEAN",
  661. "CHARACTER",
  662. "check",
  663. "class",
  664. "creation",
  665. "Current",
  666. "debug",
  667. "deferred",
  668. "do",
  669. "DOUBLE",
  670. "else",
  671. "elseif",
  672. "end",
  673. "ensure",
  674. "expanded",
  675. "export",
  676. "external",
  677. "false",
  678. "feature",
  679. "from",
  680. "frozen",
  681. "if",
  682. "implies",
  683. "indexing",
  684. "infix",
  685. "inherit",
  686. "inspect",
  687. "INTEGER",
  688. "invariant",
  689. "is",
  690. "like",
  691. "local",
  692. "loop",
  693. "_NONE",
  694. "obsolete",
  695. "old",
  696. "once",
  697. "or",
  698. "prefix",
  699. "REAL",
  700. "redefine",
  701. "rename",
  702. "require",
  703. "rescue",
  704. "Result",
  705. "retry",
  706. "select",
  707. "separate",
  708. "STRING",
  709. "strip",
  710. "then",
  711. "true",
  712. "undefine",
  713. "unique",
  714. "until",
  715. "variant",
  716. "when",
  717. "xor",
  718. "times",
  719. "smaller",
  720. "greater",
  721. "sm_eq",
  722. "gr_eq",
  723. "idiv",
  724. "imod",
  725. "power",
  726. "not",
  727. "Id",
  728. "Comment",
  729. };
  730.  
  731. static void yyEiffel ARGS((ParserISE_tParsAttribute * Eiffel0, xxtUnionPtr xxGlobalRecoverySet));
  732. static void yyClass_declaration ARGS((ParserISE_tParsAttribute * Class_declaration0, xxtUnionPtr xxGlobalRecoverySet));
  733. static void yyIndexing ARGS((ParserISE_tParsAttribute * Indexing0, xxtUnionPtr xxGlobalRecoverySet));
  734. static void yyIndex_list ARGS((ParserISE_tParsAttribute * Index_list0, xxtUnionPtr xxGlobalRecoverySet));
  735. static void yyIndex_clause ARGS((ParserISE_tParsAttribute * Index_clause0, xxtUnionPtr xxGlobalRecoverySet));
  736. static void yyIndex_terms ARGS((ParserISE_tParsAttribute * Index_terms0, xxtUnionPtr xxGlobalRecoverySet));
  737. static void yyIndex_value ARGS((ParserISE_tParsAttribute * Index_value0, xxtUnionPtr xxGlobalRecoverySet));
  738. static void yyClass_header ARGS((ParserISE_tParsAttribute * Class_header0, xxtUnionPtr xxGlobalRecoverySet));
  739. static void yyClass_name ARGS((ParserISE_tParsAttribute * Class_name0, xxtUnionPtr xxGlobalRecoverySet));
  740. static void yyObsolete ARGS((ParserISE_tParsAttribute * Obsolete0, xxtUnionPtr xxGlobalRecoverySet));
  741. static void yyMessage ARGS((ParserISE_tParsAttribute * Message0, xxtUnionPtr xxGlobalRecoverySet));
  742. static void yyFeatures ARGS((ParserISE_tParsAttribute * Features0, xxtUnionPtr xxGlobalRecoverySet));
  743. static void yyFeature_clause ARGS((ParserISE_tParsAttribute * Feature_clause0, xxtUnionPtr xxGlobalRecoverySet));
  744. static void yyFeature_declaration_list ARGS((ParserISE_tParsAttribute * Feature_declaration_list0, xxtUnionPtr xxGlobalRecoverySet));
  745. static void yyFeature_declaration ARGS((ParserISE_tParsAttribute * Feature_declaration0, xxtUnionPtr xxGlobalRecoverySet));
  746. static void yyDeclaration_body ARGS((ParserISE_tParsAttribute * Declaration_body0, xxtUnionPtr xxGlobalRecoverySet));
  747. static void yyConstant_or_routine ARGS((ParserISE_tParsAttribute * Constant_or_routine0, xxtUnionPtr xxGlobalRecoverySet));
  748. static void yyFeature_value ARGS((ParserISE_tParsAttribute * Feature_value0, xxtUnionPtr xxGlobalRecoverySet));
  749. static void yyNew_feature_list ARGS((ParserISE_tParsAttribute * New_feature_list0, xxtUnionPtr xxGlobalRecoverySet));
  750. static void yyNew_feature ARGS((ParserISE_tParsAttribute * New_feature0, xxtUnionPtr xxGlobalRecoverySet));
  751. static void yyFeature_name ARGS((ParserISE_tParsAttribute * Feature_name0, xxtUnionPtr xxGlobalRecoverySet));
  752. static void yyPrefix ARGS((ParserISE_tParsAttribute * Prefix0, xxtUnionPtr xxGlobalRecoverySet));
  753. static void yyInfix ARGS((ParserISE_tParsAttribute * Infix0, xxtUnionPtr xxGlobalRecoverySet));
  754. static void yyPrefix_operator ARGS((ParserISE_tParsAttribute * Prefix_operator0, xxtUnionPtr xxGlobalRecoverySet));
  755. static void yyInfix_operator ARGS((ParserISE_tParsAttribute * Infix_operator0, xxtUnionPtr xxGlobalRecoverySet));
  756. static void yyUnary ARGS((ParserISE_tParsAttribute * Unary0, xxtUnionPtr xxGlobalRecoverySet));
  757. static void yyBinary ARGS((ParserISE_tParsAttribute * Binary0, xxtUnionPtr xxGlobalRecoverySet));
  758. static void yyInheritance ARGS((ParserISE_tParsAttribute * Inheritance0, xxtUnionPtr xxGlobalRecoverySet));
  759. static void yyParent_list ARGS((ParserISE_tParsAttribute * Parent_list0, xxtUnionPtr xxGlobalRecoverySet));
  760. static void yyParent ARGS((ParserISE_tParsAttribute * Parent0, xxtUnionPtr xxGlobalRecoverySet));
  761. static void yyFeature_adaptation ARGS((ParserISE_tParsAttribute * Feature_adaptation0, xxtUnionPtr xxGlobalRecoverySet));
  762. static void yyRename ARGS((ParserISE_tParsAttribute * Rename0, xxtUnionPtr xxGlobalRecoverySet));
  763. static void yyRename_list ARGS((ParserISE_tParsAttribute * Rename_list0, xxtUnionPtr xxGlobalRecoverySet));
  764. static void yyRename_pair ARGS((ParserISE_tParsAttribute * Rename_pair0, xxtUnionPtr xxGlobalRecoverySet));
  765. static void yyClients ARGS((ParserISE_tParsAttribute * Clients0, xxtUnionPtr xxGlobalRecoverySet));
  766. static void yyClass_list ARGS((ParserISE_tParsAttribute * Class_list0, xxtUnionPtr xxGlobalRecoverySet));
  767. static void yyNew_exports ARGS((ParserISE_tParsAttribute * New_exports0, xxtUnionPtr xxGlobalRecoverySet));
  768. static void yyNew_export_list ARGS((ParserISE_tParsAttribute * New_export_list0, xxtUnionPtr xxGlobalRecoverySet));
  769. static void yyNew_export_item ARGS((ParserISE_tParsAttribute * New_export_item0, xxtUnionPtr xxGlobalRecoverySet));
  770. static void yyFeature_set ARGS((ParserISE_tParsAttribute * Feature_set0, xxtUnionPtr xxGlobalRecoverySet));
  771. static void yyFeature_list ARGS((ParserISE_tParsAttribute * Feature_list0, xxtUnionPtr xxGlobalRecoverySet));
  772. static void yyFormal_arguments ARGS((ParserISE_tParsAttribute * Formal_arguments0, xxtUnionPtr xxGlobalRecoverySet));
  773. static void yyEntity_declaration_list ARGS((ParserISE_tParsAttribute * Entity_declaration_list0, xxtUnionPtr xxGlobalRecoverySet));
  774. static void yyEntity_declaration_group ARGS((ParserISE_tParsAttribute * Entity_declaration_group0, xxtUnionPtr xxGlobalRecoverySet));
  775. static void yyIdentifier_list ARGS((ParserISE_tParsAttribute * Identifier_list0, xxtUnionPtr xxGlobalRecoverySet));
  776. static void yyType_mark ARGS((ParserISE_tParsAttribute * Type_mark0, xxtUnionPtr xxGlobalRecoverySet));
  777. static void yyRoutine ARGS((ParserISE_tParsAttribute * Routine0, xxtUnionPtr xxGlobalRecoverySet));
  778. static void yyRoutine_body ARGS((ParserISE_tParsAttribute * Routine_body0, xxtUnionPtr xxGlobalRecoverySet));
  779. static void yyEffective ARGS((ParserISE_tParsAttribute * Effective0, xxtUnionPtr xxGlobalRecoverySet));
  780. static void yyInternal ARGS((ParserISE_tParsAttribute * Internal0, xxtUnionPtr xxGlobalRecoverySet));
  781. static void yyDeferred ARGS((ParserISE_tParsAttribute * Deferred0, xxtUnionPtr xxGlobalRecoverySet));
  782. static void yyLocal_declarations ARGS((ParserISE_tParsAttribute * Local_declarations0, xxtUnionPtr xxGlobalRecoverySet));
  783. static void yyInstruction ARGS((ParserISE_tParsAttribute * Instruction0, xxtUnionPtr xxGlobalRecoverySet));
  784. static void yyCurrent_instruct ARGS((ParserISE_tParsAttribute * Current_instruct0, xxtUnionPtr xxGlobalRecoverySet));
  785. static void yyResult_instruct ARGS((ParserISE_tParsAttribute * Result_instruct0, xxtUnionPtr xxGlobalRecoverySet));
  786. static void yyIdent_instruct ARGS((ParserISE_tParsAttribute * Ident_instruct0, xxtUnionPtr xxGlobalRecoverySet));
  787. static void yyPrecondition ARGS((ParserISE_tParsAttribute * Precondition0, xxtUnionPtr xxGlobalRecoverySet));
  788. static void yyPostcondition ARGS((ParserISE_tParsAttribute * Postcondition0, xxtUnionPtr xxGlobalRecoverySet));
  789. static void yyInvariant ARGS((ParserISE_tParsAttribute * Invariant0, xxtUnionPtr xxGlobalRecoverySet));
  790. static void yyAssertion ARGS((ParserISE_tParsAttribute * Assertion0, xxtUnionPtr xxGlobalRecoverySet));
  791. static void yyAssertion_clause ARGS((ParserISE_tParsAttribute * Assertion_clause0, xxtUnionPtr xxGlobalRecoverySet));
  792. static void yyUnlabeled_assertion_clause ARGS((ParserISE_tParsAttribute * Unlabeled_assertion_clause0, xxtUnionPtr xxGlobalRecoverySet));
  793. static void yyTag ARGS((ParserISE_tParsAttribute * Tag0, xxtUnionPtr xxGlobalRecoverySet));
  794. static void yyOld ARGS((ParserISE_tParsAttribute * Old0, xxtUnionPtr xxGlobalRecoverySet));
  795. static void yyCheck ARGS((ParserISE_tParsAttribute * Check0, xxtUnionPtr xxGlobalRecoverySet));
  796. static void yyVariant ARGS((ParserISE_tParsAttribute * Variant0, xxtUnionPtr xxGlobalRecoverySet));
  797. static void yyRedefine ARGS((ParserISE_tParsAttribute * Redefine0, xxtUnionPtr xxGlobalRecoverySet));
  798. static void yyUndefine ARGS((ParserISE_tParsAttribute * Undefine0, xxtUnionPtr xxGlobalRecoverySet));
  799. static void yySelect ARGS((ParserISE_tParsAttribute * Select0, xxtUnionPtr xxGlobalRecoverySet));
  800. static void yyType ARGS((ParserISE_tParsAttribute * Type0, xxtUnionPtr xxGlobalRecoverySet));
  801. static void yyClass_type ARGS((ParserISE_tParsAttribute * Class_type0, xxtUnionPtr xxGlobalRecoverySet));
  802. static void yyActual_generics ARGS((ParserISE_tParsAttribute * Actual_generics0, xxtUnionPtr xxGlobalRecoverySet));
  803. static void yyType_list ARGS((ParserISE_tParsAttribute * Type_list0, xxtUnionPtr xxGlobalRecoverySet));
  804. static void yyBit_type ARGS((ParserISE_tParsAttribute * Bit_type0, xxtUnionPtr xxGlobalRecoverySet));
  805. static void yyAnchored ARGS((ParserISE_tParsAttribute * Anchored0, xxtUnionPtr xxGlobalRecoverySet));
  806. static void yyAnchor ARGS((ParserISE_tParsAttribute * Anchor0, xxtUnionPtr xxGlobalRecoverySet));
  807. static void yyFormal_generics ARGS((ParserISE_tParsAttribute * Formal_generics0, xxtUnionPtr xxGlobalRecoverySet));
  808. static void yyFormal_generic_list ARGS((ParserISE_tParsAttribute * Formal_generic_list0, xxtUnionPtr xxGlobalRecoverySet));
  809. static void yyFormal_generic ARGS((ParserISE_tParsAttribute * Formal_generic0, xxtUnionPtr xxGlobalRecoverySet));
  810. static void yyFormal_generic_name ARGS((ParserISE_tParsAttribute * Formal_generic_name0, xxtUnionPtr xxGlobalRecoverySet));
  811. static void yyConstraint ARGS((ParserISE_tParsAttribute * Constraint0, xxtUnionPtr xxGlobalRecoverySet));
  812. static void yyCompound ARGS((ParserISE_tParsAttribute * Compound0, xxtUnionPtr xxGlobalRecoverySet));
  813. static void yyConditional ARGS((ParserISE_tParsAttribute * Conditional0, xxtUnionPtr xxGlobalRecoverySet));
  814. static void yyThen_part_list ARGS((ParserISE_tParsAttribute * Then_part_list0, xxtUnionPtr xxGlobalRecoverySet));
  815. static void yyThen_part ARGS((ParserISE_tParsAttribute * Then_part0, xxtUnionPtr xxGlobalRecoverySet));
  816. static void yyElse_part ARGS((ParserISE_tParsAttribute * Else_part0, xxtUnionPtr xxGlobalRecoverySet));
  817. static void yyMulti_branch ARGS((ParserISE_tParsAttribute * Multi_branch0, xxtUnionPtr xxGlobalRecoverySet));
  818. static void yyWhen_part_list ARGS((ParserISE_tParsAttribute * When_part_list0, xxtUnionPtr xxGlobalRecoverySet));
  819. static void yyWhen_part ARGS((ParserISE_tParsAttribute * When_part0, xxtUnionPtr xxGlobalRecoverySet));
  820. static void yyChoices ARGS((ParserISE_tParsAttribute * Choices0, xxtUnionPtr xxGlobalRecoverySet));
  821. static void yyChoice ARGS((ParserISE_tParsAttribute * Choice0, xxtUnionPtr xxGlobalRecoverySet));
  822. static void yyLoop ARGS((ParserISE_tParsAttribute * Loop0, xxtUnionPtr xxGlobalRecoverySet));
  823. static void yyInitialization ARGS((ParserISE_tParsAttribute * Initialization0, xxtUnionPtr xxGlobalRecoverySet));
  824. static void yyLoop_body ARGS((ParserISE_tParsAttribute * Loop_body0, xxtUnionPtr xxGlobalRecoverySet));
  825. static void yyExit ARGS((ParserISE_tParsAttribute * Exit0, xxtUnionPtr xxGlobalRecoverySet));
  826. static void yyDebug ARGS((ParserISE_tParsAttribute * Debug0, xxtUnionPtr xxGlobalRecoverySet));
  827. static void yyKeys_or_qual_call ARGS((ParserISE_tParsAttribute * Keys_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet));
  828. static void yyString ARGS((ParserISE_tParsAttribute * String0, xxtUnionPtr xxGlobalRecoverySet));
  829. static void yyString_list ARGS((ParserISE_tParsAttribute * String_list0, xxtUnionPtr xxGlobalRecoverySet));
  830. static void yyOne_compound ARGS((ParserISE_tParsAttribute * One_compound0, xxtUnionPtr xxGlobalRecoverySet));
  831. static void yyRescue ARGS((ParserISE_tParsAttribute * Rescue0, xxtUnionPtr xxGlobalRecoverySet));
  832. static void yyRetry ARGS((ParserISE_tParsAttribute * Retry0, xxtUnionPtr xxGlobalRecoverySet));
  833. static void yyUnique ARGS((ParserISE_tParsAttribute * Unique0, xxtUnionPtr xxGlobalRecoverySet));
  834. static void yyEntity ARGS((ParserISE_tParsAttribute * Entity0, xxtUnionPtr xxGlobalRecoverySet));
  835. static void yyWritable ARGS((ParserISE_tParsAttribute * Writable0, xxtUnionPtr xxGlobalRecoverySet));
  836. static void yyAttribute ARGS((ParserISE_tParsAttribute * Attribute0, xxtUnionPtr xxGlobalRecoverySet));
  837. static void yyLocal ARGS((ParserISE_tParsAttribute * Local0, xxtUnionPtr xxGlobalRecoverySet));
  838. static void yyCreators ARGS((ParserISE_tParsAttribute * Creators0, xxtUnionPtr xxGlobalRecoverySet));
  839. static void yyCreation_clause ARGS((ParserISE_tParsAttribute * Creation_clause0, xxtUnionPtr xxGlobalRecoverySet));
  840. static void yyCreation ARGS((ParserISE_tParsAttribute * Creation0, xxtUnionPtr xxGlobalRecoverySet));
  841. static void yyCreation_call ARGS((ParserISE_tParsAttribute * Creation_call0, xxtUnionPtr xxGlobalRecoverySet));
  842. static void yyQualified_call ARGS((ParserISE_tParsAttribute * Qualified_call0, xxtUnionPtr xxGlobalRecoverySet));
  843. static void yyParenthesized_qualifier ARGS((ParserISE_tParsAttribute * Parenthesized_qualifier0, xxtUnionPtr xxGlobalRecoverySet));
  844. static void yyCall_chain ARGS((ParserISE_tParsAttribute * Call_chain0, xxtUnionPtr xxGlobalRecoverySet));
  845. static void yyUnqualified_call ARGS((ParserISE_tParsAttribute * Unqualified_call0, xxtUnionPtr xxGlobalRecoverySet));
  846. static void yyActuals ARGS((ParserISE_tParsAttribute * Actuals0, xxtUnionPtr xxGlobalRecoverySet));
  847. static void yyActual_list ARGS((ParserISE_tParsAttribute * Actual_list0, xxtUnionPtr xxGlobalRecoverySet));
  848. static void yyActual ARGS((ParserISE_tParsAttribute * Actual0, xxtUnionPtr xxGlobalRecoverySet));
  849. static void yyAddress ARGS((ParserISE_tParsAttribute * Address0, xxtUnionPtr xxGlobalRecoverySet));
  850. static void yyAddress_mark ARGS((ParserISE_tParsAttribute * Address_mark0, xxtUnionPtr xxGlobalRecoverySet));
  851. static void yyExpression ARGS((ParserISE_tParsAttribute * Expression0, xxtUnionPtr xxGlobalRecoverySet));
  852. static void yyExpr_tail ARGS((ParserISE_tParsAttribute * Expr_tail0, xxtUnionPtr xxGlobalRecoverySet));
  853. static void yyIdent_call ARGS((ParserISE_tParsAttribute * Ident_call0, xxtUnionPtr xxGlobalRecoverySet));
  854. static void yyResult_call ARGS((ParserISE_tParsAttribute * Result_call0, xxtUnionPtr xxGlobalRecoverySet));
  855. static void yyCurrent_call ARGS((ParserISE_tParsAttribute * Current_call0, xxtUnionPtr xxGlobalRecoverySet));
  856. static void yyParenth_expr_or_qual_call ARGS((ParserISE_tParsAttribute * Parenth_expr_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet));
  857. static void yyNo_sign_constant ARGS((ParserISE_tParsAttribute * No_sign_constant0, xxtUnionPtr xxGlobalRecoverySet));
  858. static void yyBoolean_expression ARGS((ParserISE_tParsAttribute * Boolean_expression0, xxtUnionPtr xxGlobalRecoverySet));
  859. static void yyComparison ARGS((ParserISE_tParsAttribute * Comparison0, xxtUnionPtr xxGlobalRecoverySet));
  860. static void yyConstant ARGS((ParserISE_tParsAttribute * Constant0, xxtUnionPtr xxGlobalRecoverySet));
  861. static void yyConstant_attribute ARGS((ParserISE_tParsAttribute * Constant_attribute0, xxtUnionPtr xxGlobalRecoverySet));
  862. static void yyManifest_constant ARGS((ParserISE_tParsAttribute * Manifest_constant0, xxtUnionPtr xxGlobalRecoverySet));
  863. static void yyNumber_constant ARGS((ParserISE_tParsAttribute * Number_constant0, xxtUnionPtr xxGlobalRecoverySet));
  864. static void yySign ARGS((ParserISE_tParsAttribute * Sign0, xxtUnionPtr xxGlobalRecoverySet));
  865. static void yyBoolean_constant ARGS((ParserISE_tParsAttribute * Boolean_constant0, xxtUnionPtr xxGlobalRecoverySet));
  866. static void yyBit_constant ARGS((ParserISE_tParsAttribute * Bit_constant0, xxtUnionPtr xxGlobalRecoverySet));
  867. static void yyManifest_array ARGS((ParserISE_tParsAttribute * Manifest_array0, xxtUnionPtr xxGlobalRecoverySet));
  868. static void yyExpression_list ARGS((ParserISE_tParsAttribute * Expression_list0, xxtUnionPtr xxGlobalRecoverySet));
  869. static void yyStrip ARGS((ParserISE_tParsAttribute * Strip0, xxtUnionPtr xxGlobalRecoverySet));
  870. static void yyAttribute_list ARGS((ParserISE_tParsAttribute * Attribute_list0, xxtUnionPtr xxGlobalRecoverySet));
  871. static void yyExternal ARGS((ParserISE_tParsAttribute * External0, xxtUnionPtr xxGlobalRecoverySet));
  872. static void yyLanguage_name ARGS((ParserISE_tParsAttribute * Language_name0, xxtUnionPtr xxGlobalRecoverySet));
  873. static void yyExternal_name ARGS((ParserISE_tParsAttribute * External_name0, xxtUnionPtr xxGlobalRecoverySet));
  874. static void yyIdentifier ARGS((ParserISE_tParsAttribute * Identifier0, xxtUnionPtr xxGlobalRecoverySet));
  875.  
  876. static void BeginParserISE ()
  877. {
  878.   if (xxIsInitialized) return;
  879. /* line 17 "eiffel_ise.ell" */
  880.  
  881.     EiffelScan_BeginScanner();
  882.  
  883. }
  884.  
  885. void CloseParserISE ()
  886. {
  887. /* line 22 "eiffel_ise.ell" */
  888.  
  889.     EiffelScan_CloseScanner();
  890.  
  891. }
  892.  
  893. static xxbool xxIsElement
  894. # if defined __STDC__ | defined __cplusplus
  895. (xxtSet xySet, short xxElement)
  896. # else
  897. (xySet, xxElement) xxtSet xySet; short xxElement;
  898. # endif
  899. { return xySet [xxElement / 32] << xxElement % 32 < 0; }
  900.  
  901. static void xxSkipTokens
  902. # if defined __STDC__ | defined __cplusplus
  903. (unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet)
  904. # else
  905. (xxLocalRecoverySet, xxGlobalRecoverySet)
  906. unsigned short    xxLocalRecoverySet;
  907. xxtUnionPtr    xxGlobalRecoverySet;
  908. # endif
  909. {
  910.   xxbool xxTokensSkipped = xxfalse;
  911.   xxtSet xxRecoverySet;
  912.   xxRecoverySet [0] = xxHorizontalSet [xxLocalRecoverySet] [0];
  913.   xxRecoverySet [1] = xxHorizontalSet [xxLocalRecoverySet] [1];
  914.   xxRecoverySet [2] = xxHorizontalSet [xxLocalRecoverySet] [2];
  915.   xxRecoverySet [3] = xxHorizontalSet [xxLocalRecoverySet] [3];
  916.   xxRecoverySet [0] |= (unsigned long) 0x80000000L; /* INCL (xxRecoverySet [0], xxEof); */
  917.   while (xxGlobalRecoverySet != (xxtUnionPtr) 0L) {
  918.     xxRecoverySet [0] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [0];
  919.     xxRecoverySet [1] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [1];
  920.     xxRecoverySet [2] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [2];
  921.     xxRecoverySet [3] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [3];
  922.     xxGlobalRecoverySet = xxGlobalRecoverySet->xxGlobalRecoverySet;
  923.   }
  924.   while (! xxIsElement (xxRecoverySet, xxToken)) {
  925.     xxToken = EiffelScan_GetToken (); xxTokensSkipped = xxtrue;
  926.   }
  927.   if (xxTokensSkipped) ErrorMessage (xxRestartPoint, xxInformation, EiffelScan_Attribute.Position);
  928.   xxIsRepairMode = xxtrue;
  929. }
  930.  
  931. static void xxUnexpected
  932. # if defined __STDC__ | defined __cplusplus
  933. (unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet)
  934. # else
  935. (xxLocalRecoverySet, xxGlobalRecoverySet)
  936. unsigned short    xxLocalRecoverySet;
  937. xxtUnionPtr    xxGlobalRecoverySet;
  938. # endif
  939. {
  940.   if (! xxIsRepairMode) {
  941.     xxErrorCount ++;
  942.     ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position);
  943.     xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet);
  944.   }
  945. }
  946.  
  947. static void xxExpected
  948. # if defined __STDC__ | defined __cplusplus
  949. (unsigned short xxExpectedSet, unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet)
  950. # else
  951. (xxExpectedSet, xxLocalRecoverySet, xxGlobalRecoverySet)
  952. unsigned short    xxExpectedSet, xxLocalRecoverySet;
  953. xxtUnionPtr    xxGlobalRecoverySet;
  954. # endif
  955. {
  956.   if (! xxIsRepairMode) {
  957.     short yxToken;
  958.     int xxLength = 0;
  959.     char xxContinueString [256];
  960.     xxErrorCount ++;
  961.     ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position);
  962.     xxContinueString [0] = '\0';
  963.     for (yxToken = 0; yxToken <= 107; yxToken ++)
  964.       if (xxIsElement (xxHorizontalSet [xxExpectedSet], yxToken)) {
  965.     char * xxTokenString = ParserISE_TokenName [yxToken];
  966.     if ((xxLength += strlen (xxTokenString) + 1) >= 256) break;
  967.     (void) strcat (xxContinueString, xxTokenString);
  968.     (void) strcat (xxContinueString, " ");
  969.       }
  970.     ErrorMessageI (xxExpectedTokens, xxInformation, EiffelScan_Attribute.Position, xxString, xxContinueString);
  971.     xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet);
  972.   }
  973. }
  974.  
  975. static void xxRecoveryLiteral
  976. # if defined __STDC__ | defined __cplusplus
  977. (unsigned short xxExpected, unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet)
  978. # else
  979. (xxExpected, xxLocalRecoverySet, xxGlobalRecoverySet)
  980. unsigned short    xxExpected, xxLocalRecoverySet;
  981. xxtUnionPtr    xxGlobalRecoverySet;
  982. # endif
  983. {
  984.   if (! xxIsRepairMode) {
  985.     xxErrorCount ++;
  986.     ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position);
  987.     ErrorMessageI (xxExpectedTokens, xxInformation, EiffelScan_Attribute.Position, xxString, ParserISE_TokenName [xxExpected]);
  988.     xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet);
  989.   }
  990.   if (xxToken != xxExpected) {
  991.     ErrorMessageI (xxTokenInserted, xxRepair, EiffelScan_Attribute.Position, xxString, ParserISE_TokenName [xxExpected]);
  992.   } else {
  993.     if (xxToken != xxEof) xxToken = EiffelScan_GetToken ();
  994.     xxIsRepairMode = xxfalse;
  995.   }
  996. }
  997.  
  998. static void xxRecoveryTerminal
  999. # if defined __STDC__ | defined __cplusplus
  1000. (unsigned short xxExpected, unsigned short xxLocalRecoverySet,
  1001. xxtUnionPtr xxGlobalRecoverySet, EiffelScan_tScanAttribute * xxRepairAttribute)
  1002. # else
  1003. (xxExpected, xxLocalRecoverySet, xxGlobalRecoverySet, xxRepairAttribute)
  1004. unsigned short    xxExpected, xxLocalRecoverySet;
  1005. xxtUnionPtr    xxGlobalRecoverySet;
  1006. EiffelScan_tScanAttribute    * xxRepairAttribute;
  1007. # endif
  1008. {
  1009.   if (! xxIsRepairMode) {
  1010.     xxErrorCount ++;
  1011.     ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position);
  1012.     ErrorMessageI (xxExpectedTokens, xxInformation, EiffelScan_Attribute.Position, xxString, ParserISE_TokenName [xxExpected]);
  1013.     xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet);
  1014.   }
  1015.   if (xxToken != xxExpected) {
  1016.     ErrorMessageI (xxTokenInserted, xxRepair, EiffelScan_Attribute.Position, xxString, ParserISE_TokenName [xxExpected]);
  1017.     EiffelScan_ErrorAttribute ((int) xxExpected, xxRepairAttribute);
  1018.   } else {
  1019.     * xxRepairAttribute = EiffelScan_Attribute;
  1020.     if (xxToken != xxEof) xxToken = EiffelScan_GetToken ();
  1021.     xxIsRepairMode = xxfalse;
  1022.   }
  1023. }
  1024.  
  1025. int ParserISE ()
  1026. {
  1027.   xxErrorCount = 0;
  1028.   BeginParserISE ();
  1029.   xxToken = EiffelScan_GetToken ();
  1030.   yyEiffel (& ParserISE_ParsAttribute, (xxtUnionPtr) 0L);
  1031.   if (xxToken != xxEof) xxRecoveryLiteral (xxEof, 0, (xxtUnionPtr) 0L);
  1032.   return xxErrorCount;
  1033. }
  1034.  
  1035. static void yyEiffel
  1036. # if defined __STDC__ | defined __cplusplus
  1037. (ParserISE_tParsAttribute * Eiffel0, xxtUnionPtr xxGlobalRecoverySet)
  1038. # else
  1039. (Eiffel0, xxGlobalRecoverySet)
  1040. ParserISE_tParsAttribute    * Eiffel0;
  1041. xxtUnionPtr    xxGlobalRecoverySet;
  1042. # endif
  1043. {
  1044.   ParserISE_tParsAttribute Class_declaration1;
  1045.   xxtUnion xxUnion;
  1046.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1047. /* line 147 "eiffel_ise.ell" */
  1048.  TreeRoot = mClasses0();                                
  1049.   for (;;) {
  1050.     xxUnion.xxLocalRecoverySet = 0; yyClass_declaration (& Class_declaration1, & xxUnion); /*  */
  1051. /* line 148 "eiffel_ise.ell" */
  1052.  TreeRoot = mClasses1(Class_declaration1.Tree, TreeRoot);                
  1053.     if (! ((xxVerticalSet [xxToken] & 1 << 0 /*  'class' deferred expanded 'indexing' */))) {
  1054.       if ((xxToken == 0 /* _EndOfFile */)) break;
  1055.       xxExpected (1, 1, xxGlobalRecoverySet); /*  'class' deferred expanded 'indexing' /  'class' deferred expanded 'indexing' */
  1056.       if (! ((xxVerticalSet [xxToken] & 1 << 0 /*  'class' deferred expanded 'indexing' */))) break;
  1057.     }
  1058.   }
  1059. /* line 149 "eiffel_ise.ell" */
  1060.  TreeRoot = mEiffel(ReverseTree(TreeRoot));                          
  1061. }
  1062.  
  1063. static void yyClass_declaration
  1064. # if defined __STDC__ | defined __cplusplus
  1065. (ParserISE_tParsAttribute * Class_declaration0, xxtUnionPtr xxGlobalRecoverySet)
  1066. # else
  1067. (Class_declaration0, xxGlobalRecoverySet)
  1068. ParserISE_tParsAttribute    * Class_declaration0;
  1069. xxtUnionPtr    xxGlobalRecoverySet;
  1070. # endif
  1071. {
  1072.   ParserISE_tParsAttribute Indexing1;
  1073.   ParserISE_tParsAttribute Class_header1;
  1074.   ParserISE_tParsAttribute Formal_generics1;
  1075.   ParserISE_tParsAttribute Obsolete1;
  1076.   ParserISE_tParsAttribute Inheritance1;
  1077.   ParserISE_tParsAttribute Creators1;
  1078.   ParserISE_tParsAttribute Features1;
  1079.   ParserISE_tParsAttribute Invariant1;
  1080.   xxtUnion xxUnion;
  1081.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1082. /* line 154 "eiffel_ise.ell" */
  1083.  Class_declaration0->Tree = mClass_declaration(mIndex_list0(), 
  1084.                                     mClass_header0(),
  1085.                                     mFormal_generics0(),
  1086.                                     mString0(),
  1087.                                     mParent_list0(),
  1088.                                     mCreators0(),
  1089.                                     mFeatures0(),
  1090.                                     mCondition0(),
  1091.                                     no_comment);                 
  1092.   for (;;) {
  1093.     if ((xxToken == 62 /* 'indexing' */)) {
  1094.       xxUnion.xxLocalRecoverySet = 3; yyIndexing (& Indexing1, & xxUnion); /*  '[' 'class' 'creation' deferred 'end' expanded 'feature' 'inherit' 'invariant' 'obsolete' */
  1095. /* line 163 "eiffel_ise.ell" */
  1096.  Class_declaration0->Tree->Class_declaration.Indexing = Indexing1.Tree;        
  1097.       break;
  1098.     } else if ((xxVerticalSet [xxToken] & 1 << 1 /*  'class' deferred expanded */) || xxIsRepairMode) break;
  1099.     xxExpected (1, 2, xxGlobalRecoverySet); /*  'class' deferred expanded 'indexing' /  '[' 'class' 'creation' deferred 'end' expanded 'feature' 'indexing' 'inherit' 'invariant' 'obsolete' */
  1100.   }
  1101.   xxUnion.xxLocalRecoverySet = 4; yyClass_header (& Class_header1, & xxUnion); /*  '[' 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */
  1102. /* line 164 "eiffel_ise.ell" */
  1103.  Class_declaration0->Tree->Class_declaration.Class_header = Class_header1.Tree;
  1104.   for (;;) {
  1105.     if ((xxToken == 19 /* '[' */)) {
  1106.       xxUnion.xxLocalRecoverySet = 5; yyFormal_generics (& Formal_generics1, & xxUnion); /*  'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */
  1107. /* line 165 "eiffel_ise.ell" */
  1108.  Class_declaration0->Tree->Class_declaration.Formal_generics = Formal_generics1.Tree;     
  1109.       break;
  1110.     } else if ((xxVerticalSet [xxToken] & 1 << 2 /*  'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */) || xxIsRepairMode) break;
  1111.     xxExpected (4, 4, xxGlobalRecoverySet); /*  '[' 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' /  '[' 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */
  1112.   }
  1113.   for (;;) {
  1114.     if ((xxToken == 73 /* 'obsolete' */)) {
  1115.       xxUnion.xxLocalRecoverySet = 6; yyObsolete (& Obsolete1, & xxUnion); /*  'creation' 'end' 'feature' 'inherit' 'invariant' */
  1116. /* line 166 "eiffel_ise.ell" */
  1117.  Class_declaration0->Tree->Class_declaration.Obsolete = Obsolete1.Tree;         
  1118.       break;
  1119.     } else if ((xxVerticalSet [xxToken] & 1 << 3 /*  'creation' 'end' 'feature' 'inherit' 'invariant' */) || xxIsRepairMode) break;
  1120.     xxExpected (5, 5, xxGlobalRecoverySet); /*  'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' /  'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */
  1121.   }
  1122.   for (;;) {
  1123.     if ((xxToken == 64 /* 'inherit' */)) {
  1124.       xxUnion.xxLocalRecoverySet = 7; yyInheritance (& Inheritance1, & xxUnion); /*  'creation' 'end' 'feature' 'invariant' */
  1125. /* line 167 "eiffel_ise.ell" */
  1126.  Class_declaration0->Tree->Class_declaration.Inheritance = Inheritance1.Tree;        
  1127.       break;
  1128.     } else if ((xxVerticalSet [xxToken] & 1 << 4 /*  'creation' 'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  1129.     xxExpected (6, 6, xxGlobalRecoverySet); /*  'creation' 'end' 'feature' 'inherit' 'invariant' /  'creation' 'end' 'feature' 'inherit' 'invariant' */
  1130.   }
  1131.   for (;;) {
  1132.     if ((xxToken == 43 /* 'creation' */)) {
  1133.       xxUnion.xxLocalRecoverySet = 8; yyCreators (& Creators1, & xxUnion); /*  'end' 'feature' 'invariant' */
  1134. /* line 168 "eiffel_ise.ell" */
  1135.  Class_declaration0->Tree->Class_declaration.Creators = ReverseTree(Creators1.Tree);    
  1136.       break;
  1137.     } else if ((xxVerticalSet [xxToken] & 1 << 5 /*  'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  1138.     xxExpected (7, 7, xxGlobalRecoverySet); /*  'creation' 'end' 'feature' 'invariant' /  'creation' 'end' 'feature' 'invariant' */
  1139.   }
  1140.   for (;;) {
  1141.     if ((xxToken == 57 /* 'feature' */)) {
  1142.       xxUnion.xxLocalRecoverySet = 9; yyFeatures (& Features1, & xxUnion); /*  'end' 'invariant' */
  1143. /* line 169 "eiffel_ise.ell" */
  1144.  Class_declaration0->Tree->Class_declaration.Features = ReverseTree(Features1.Tree);    
  1145.       break;
  1146.     } else if ((xxVerticalSet [xxToken] & 1 << 6 /*  'end' 'invariant' */) || xxIsRepairMode) break;
  1147.     xxExpected (8, 8, xxGlobalRecoverySet); /*  'end' 'feature' 'invariant' /  'end' 'feature' 'invariant' */
  1148.   }
  1149.   for (;;) {
  1150.     if ((xxToken == 67 /* 'invariant' */)) {
  1151.       xxUnion.xxLocalRecoverySet = 10; yyInvariant (& Invariant1, & xxUnion); /*  'end' */
  1152. /* line 170 "eiffel_ise.ell" */
  1153.  Class_declaration0->Tree->Class_declaration.Invariant = Invariant1.Tree;        
  1154.       break;
  1155.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  1156.     xxExpected (9, 9, xxGlobalRecoverySet); /*  'end' 'invariant' /  'end' 'invariant' */
  1157.   }
  1158. /* line 171 "eiffel_ise.ell" */
  1159.  comment_ref = no_comment;                                 
  1160.   if (xxToken != 51 /* 'end' */)
  1161.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  1162.   else {
  1163.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1164.   }
  1165. /* line 173 "eiffel_ise.ell" */
  1166.   Class_declaration0->Tree->Class_declaration.comment = comment_ref;            
  1167. }
  1168.  
  1169. static void yyIndexing
  1170. # if defined __STDC__ | defined __cplusplus
  1171. (ParserISE_tParsAttribute * Indexing0, xxtUnionPtr xxGlobalRecoverySet)
  1172. # else
  1173. (Indexing0, xxGlobalRecoverySet)
  1174. ParserISE_tParsAttribute    * Indexing0;
  1175. xxtUnionPtr    xxGlobalRecoverySet;
  1176. # endif
  1177. {
  1178.   ParserISE_tParsAttribute Index_list1;
  1179.   xxtUnion xxUnion;
  1180.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1181.   if (xxToken != 62 /* 'indexing' */)
  1182.     xxRecoveryLiteral (62, 11, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false 'indexing' true Id */
  1183.   else {
  1184.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1185.   }
  1186.   xxUnion.xxLocalRecoverySet = 0; yyIndex_list (& Index_list1, & xxUnion); /*  */
  1187. /* line 180 "eiffel_ise.ell" */
  1188.  Indexing0->Tree = ReverseTree(Index_list1.Tree);                     
  1189. }
  1190.  
  1191. static void yyIndex_list
  1192. # if defined __STDC__ | defined __cplusplus
  1193. (ParserISE_tParsAttribute * Index_list0, xxtUnionPtr xxGlobalRecoverySet)
  1194. # else
  1195. (Index_list0, xxGlobalRecoverySet)
  1196. ParserISE_tParsAttribute    * Index_list0;
  1197. xxtUnionPtr    xxGlobalRecoverySet;
  1198. # endif
  1199. {
  1200.   ParserISE_tParsAttribute Index_clause1;
  1201.   xxtUnion xxUnion;
  1202.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1203. /* line 183 "eiffel_ise.ell" */
  1204.  Index_list0->Tree = mIndex_list0();                             
  1205.   for (;;) {
  1206.     if ((xxVerticalSet [xxToken] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */)) {
  1207.       for (;;) {
  1208.         xxUnion.xxLocalRecoverySet = 13; yyIndex_clause (& Index_clause1, & xxUnion); /*  ';' */
  1209. /* line 184 "eiffel_ise.ell" */
  1210.  Index_list0->Tree = mIndex_list1(Index_clause1.Tree, Index_list0->Tree);         
  1211.         if (! ((xxToken == 7 /* ';' */))) {
  1212.           if ((xxVerticalSet [xxToken] & 1 << 1 /*  'class' deferred expanded */)) break;
  1213.           xxExpected (13, 12, xxGlobalRecoverySet); /*  ';' /  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */
  1214.           if (! ((xxToken == 7 /* ';' */) || (xxVerticalSet [xxToken] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */))) break;
  1215.         }
  1216.         if (xxToken != 7 /* ';' */)
  1217.           xxRecoveryLiteral (7, 12, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */
  1218.         else {
  1219.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1220.         }
  1221.       }
  1222.       break;
  1223.     } else if ((xxVerticalSet [xxToken] & 1 << 1 /*  'class' deferred expanded */) || xxIsRepairMode) break;
  1224.     xxExpected (12, 12, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id /  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */
  1225.   }
  1226. }
  1227.  
  1228. static void yyIndex_clause
  1229. # if defined __STDC__ | defined __cplusplus
  1230. (ParserISE_tParsAttribute * Index_clause0, xxtUnionPtr xxGlobalRecoverySet)
  1231. # else
  1232. (Index_clause0, xxGlobalRecoverySet)
  1233. ParserISE_tParsAttribute    * Index_clause0;
  1234. xxtUnionPtr    xxGlobalRecoverySet;
  1235. # endif
  1236. {
  1237.   ParserISE_tParsAttribute Identifier1;
  1238.   ParserISE_tParsAttribute Index_terms1, Index_terms2;
  1239.   ParserISE_tParsAttribute Manifest_constant1;
  1240.   xxtUnion xxUnion;
  1241.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1242.   for (;;) {
  1243.     switch (xxToken) {
  1244.     case 106 /* Id */ :; 
  1245.       xxUnion.xxLocalRecoverySet = 14; yyIdentifier (& Identifier1, & xxUnion); /*  ',' ':' */
  1246.       for (;;) {
  1247.         switch (xxToken) {
  1248.         case 9 /* ':' */ :; 
  1249.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1250.           xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms1, & xxUnion); /*  */
  1251. /* line 190 "eiffel_ise.ell" */
  1252.  Index_clause0->Tree = mIndex_clause(Identifier1.Tree, Index_terms1.Tree);         
  1253.           goto xx2;
  1254.         case 7 /* ';' */ :; 
  1255.         case 8 /* ',' */ :; 
  1256.         case 42 /* 'class' */ :; 
  1257.         case 46 /* deferred */ :; 
  1258.         case 53 /* expanded */ :; 
  1259.           for (;;) {
  1260.             if ((xxToken == 8 /* ',' */)) {
  1261.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1262.               xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /*  */
  1263. /* line 191 "eiffel_ise.ell" */
  1264.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1265.                                 mlist(Identifier1.Tree, Index_terms2.Tree) );     
  1266.               break;
  1267.             } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1268.             xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1269.           }
  1270.           goto xx2;
  1271.         case 10:;
  1272.         case 11:;
  1273.         case 12:;
  1274.         case 13:;
  1275.         case 14:;
  1276.         case 15:;
  1277.         case 16:;
  1278.         case 17:;
  1279.         case 18:;
  1280.         case 19:;
  1281.         case 20:;
  1282.         case 21:;
  1283.         case 22:;
  1284.         case 23:;
  1285.         case 24:;
  1286.         case 25:;
  1287.         case 26:;
  1288.         case 27:;
  1289.         case 28:;
  1290.         case 29:;
  1291.         case 30:;
  1292.         case 31:;
  1293.         case 32:;
  1294.         case 33:;
  1295.         case 34:;
  1296.         case 35:;
  1297.         case 36:;
  1298.         case 37:;
  1299.         case 38:;
  1300.         case 39:;
  1301.         case 40:;
  1302.         case 41:;
  1303.         case 43:;
  1304.         case 44:;
  1305.         case 45:;
  1306.         case 47:;
  1307.         case 48:;
  1308.         case 49:;
  1309.         case 50:;
  1310.         case 51:;
  1311.         case 52:;
  1312.         default:
  1313.           if (xxIsRepairMode) {
  1314.             for (;;) {
  1315.               if ((xxToken == 8 /* ',' */)) {
  1316.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1317.                 xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /*  */
  1318. /* line 191 "eiffel_ise.ell" */
  1319.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1320.                                 mlist(Identifier1.Tree, Index_terms2.Tree) );     
  1321.                 break;
  1322.               } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1323.               xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1324.             }
  1325.             goto xx2;
  1326.           }
  1327. xxUnexpected (14, xxGlobalRecoverySet); /*  ',' ':' */
  1328.         }
  1329.       }
  1330.       xx2:;
  1331.       goto xx1;
  1332.     case 1 /* Character_constant */ :; 
  1333.     case 2 /* Bit_sequence */ :; 
  1334.     case 3 /* Integer */ :; 
  1335.     case 4 /* Real */ :; 
  1336.     case 5 /* Manifest_string */ :; 
  1337.     case 7 /* ';' */ :; 
  1338.     case 8 /* ',' */ :; 
  1339.     case 29 /* plus */ :; 
  1340.     case 30 /* minus */ :; 
  1341.     case 42 /* 'class' */ :; 
  1342.     case 46 /* deferred */ :; 
  1343.     case 53 /* expanded */ :; 
  1344.     case 56 /* false */ :; 
  1345.     case 90 /* true */ :; 
  1346.       xxUnion.xxLocalRecoverySet = 16; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  ',' */
  1347. /* line 193 "eiffel_ise.ell" */
  1348.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1349.                                 mlist(Manifest_constant1.Tree, mnolist()));     
  1350.       for (;;) {
  1351.         if ((xxToken == 8 /* ',' */)) {
  1352.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1353.           xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms1, & xxUnion); /*  */
  1354. /* line 195 "eiffel_ise.ell" */
  1355.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1356.                             mlist(Manifest_constant1.Tree, Index_terms1.Tree));     
  1357.           break;
  1358.         } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1359.         xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1360.       }
  1361.       goto xx1;
  1362.     case 6:;
  1363.     case 9:;
  1364.     case 10:;
  1365.     case 11:;
  1366.     case 12:;
  1367.     case 13:;
  1368.     case 14:;
  1369.     case 15:;
  1370.     case 16:;
  1371.     case 17:;
  1372.     case 18:;
  1373.     case 19:;
  1374.     case 20:;
  1375.     case 21:;
  1376.     case 22:;
  1377.     case 23:;
  1378.     case 24:;
  1379.     case 25:;
  1380.     case 26:;
  1381.     case 27:;
  1382.     case 28:;
  1383.     case 31:;
  1384.     case 32:;
  1385.     case 33:;
  1386.     case 34:;
  1387.     case 35:;
  1388.     case 36:;
  1389.     case 37:;
  1390.     case 38:;
  1391.     case 39:;
  1392.     case 40:;
  1393.     case 41:;
  1394.     case 43:;
  1395.     case 44:;
  1396.     case 45:;
  1397.     case 47:;
  1398.     case 48:;
  1399.     case 49:;
  1400.     case 50:;
  1401.     case 51:;
  1402.     case 52:;
  1403.     case 54:;
  1404.     case 55:;
  1405.     case 57:;
  1406.     case 58:;
  1407.     case 59:;
  1408.     case 60:;
  1409.     case 61:;
  1410.     case 62:;
  1411.     case 63:;
  1412.     case 64:;
  1413.     case 65:;
  1414.     case 66:;
  1415.     case 67:;
  1416.     case 68:;
  1417.     case 69:;
  1418.     case 70:;
  1419.     case 71:;
  1420.     case 72:;
  1421.     case 73:;
  1422.     case 74:;
  1423.     case 75:;
  1424.     case 76:;
  1425.     case 77:;
  1426.     case 78:;
  1427.     case 79:;
  1428.     case 80:;
  1429.     case 81:;
  1430.     case 82:;
  1431.     case 83:;
  1432.     case 84:;
  1433.     case 85:;
  1434.     case 86:;
  1435.     case 87:;
  1436.     case 88:;
  1437.     case 89:;
  1438.     case 91:;
  1439.     case 92:;
  1440.     case 93:;
  1441.     case 94:;
  1442.     case 95:;
  1443.     case 96:;
  1444.     case 97:;
  1445.     case 98:;
  1446.     case 99:;
  1447.     case 100:;
  1448.     case 101:;
  1449.     case 102:;
  1450.     case 103:;
  1451.     case 104:;
  1452.     case 105:;
  1453.     default:
  1454.       if (xxIsRepairMode) {
  1455.         xxUnion.xxLocalRecoverySet = 14; yyIdentifier (& Identifier1, & xxUnion); /*  ',' ':' */
  1456.         for (;;) {
  1457.           switch (xxToken) {
  1458.           case 9 /* ':' */ :; 
  1459.             if (xxToken != 9 /* ':' */)
  1460.               xxRecoveryLiteral (9, 15, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ':' plus minus false true Id */
  1461.             else {
  1462.               xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1463.             }
  1464.             xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms1, & xxUnion); /*  */
  1465. /* line 190 "eiffel_ise.ell" */
  1466.  Index_clause0->Tree = mIndex_clause(Identifier1.Tree, Index_terms1.Tree);         
  1467.             goto xx3;
  1468.           case 7 /* ';' */ :; 
  1469.           case 8 /* ',' */ :; 
  1470.           case 42 /* 'class' */ :; 
  1471.           case 46 /* deferred */ :; 
  1472.           case 53 /* expanded */ :; 
  1473.             for (;;) {
  1474.               if ((xxToken == 8 /* ',' */)) {
  1475.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1476.                 xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /*  */
  1477. /* line 191 "eiffel_ise.ell" */
  1478.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1479.                                 mlist(Identifier1.Tree, Index_terms2.Tree) );     
  1480.                 break;
  1481.               } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1482.               xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1483.             }
  1484.             goto xx3;
  1485.           case 10:;
  1486.           case 11:;
  1487.           case 12:;
  1488.           case 13:;
  1489.           case 14:;
  1490.           case 15:;
  1491.           case 16:;
  1492.           case 17:;
  1493.           case 18:;
  1494.           case 19:;
  1495.           case 20:;
  1496.           case 21:;
  1497.           case 22:;
  1498.           case 23:;
  1499.           case 24:;
  1500.           case 25:;
  1501.           case 26:;
  1502.           case 27:;
  1503.           case 28:;
  1504.           case 29:;
  1505.           case 30:;
  1506.           case 31:;
  1507.           case 32:;
  1508.           case 33:;
  1509.           case 34:;
  1510.           case 35:;
  1511.           case 36:;
  1512.           case 37:;
  1513.           case 38:;
  1514.           case 39:;
  1515.           case 40:;
  1516.           case 41:;
  1517.           case 43:;
  1518.           case 44:;
  1519.           case 45:;
  1520.           case 47:;
  1521.           case 48:;
  1522.           case 49:;
  1523.           case 50:;
  1524.           case 51:;
  1525.           case 52:;
  1526.           default:
  1527.             if (xxIsRepairMode) {
  1528.               for (;;) {
  1529.                 if ((xxToken == 8 /* ',' */)) {
  1530.                   xxToken =                   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1531.                   xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /*  */
  1532. /* line 191 "eiffel_ise.ell" */
  1533.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1534.                                 mlist(Identifier1.Tree, Index_terms2.Tree) );     
  1535.                   break;
  1536.                 } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1537.                 xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1538.               }
  1539.               goto xx3;
  1540.             }
  1541. xxUnexpected (14, xxGlobalRecoverySet); /*  ',' ':' */
  1542.           }
  1543.         }
  1544.         xx3:;
  1545.         goto xx1;
  1546.       }
  1547. xxUnexpected (17, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  1548.     }
  1549.   }
  1550.   xx1:;
  1551. }
  1552.  
  1553. static void yyIndex_terms
  1554. # if defined __STDC__ | defined __cplusplus
  1555. (ParserISE_tParsAttribute * Index_terms0, xxtUnionPtr xxGlobalRecoverySet)
  1556. # else
  1557. (Index_terms0, xxGlobalRecoverySet)
  1558. ParserISE_tParsAttribute    * Index_terms0;
  1559. xxtUnionPtr    xxGlobalRecoverySet;
  1560. # endif
  1561. {
  1562.   ParserISE_tParsAttribute Index_value1;
  1563.   xxtUnion xxUnion;
  1564.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1565. /* line 200 "eiffel_ise.ell" */
  1566.  Index_terms0->Tree = mnolist();                            
  1567.   for (;;) {
  1568.     xxUnion.xxLocalRecoverySet = 16; yyIndex_value (& Index_value1, & xxUnion); /*  ',' */
  1569. /* line 201 "eiffel_ise.ell" */
  1570.  Index_terms0->Tree = mlist(Index_value1.Tree, Index_terms0->Tree);             
  1571.     if (! ((xxToken == 8 /* ',' */))) {
  1572.       if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */)) break;
  1573.       xxExpected (16, 17, xxGlobalRecoverySet); /*  ',' /  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  1574.       if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 108] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */))) break;
  1575.     }
  1576.     if (xxToken != 8 /* ',' */)
  1577.       xxRecoveryLiteral (8, 17, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  1578.     else {
  1579.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1580.     }
  1581.   }
  1582. /* line 202 "eiffel_ise.ell" */
  1583.  Index_terms0->Tree = ReverseTree(Index_terms0->Tree);                    
  1584. }
  1585.  
  1586. static void yyIndex_value
  1587. # if defined __STDC__ | defined __cplusplus
  1588. (ParserISE_tParsAttribute * Index_value0, xxtUnionPtr xxGlobalRecoverySet)
  1589. # else
  1590. (Index_value0, xxGlobalRecoverySet)
  1591. ParserISE_tParsAttribute    * Index_value0;
  1592. xxtUnionPtr    xxGlobalRecoverySet;
  1593. # endif
  1594. {
  1595.   ParserISE_tParsAttribute Identifier1;
  1596.   ParserISE_tParsAttribute Manifest_constant1;
  1597.   xxtUnion xxUnion;
  1598.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1599.   for (;;) {
  1600.     switch (xxToken) {
  1601.     case 106 /* Id */ :; 
  1602.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  1603. /* line 206 "eiffel_ise.ell" */
  1604.  Index_value0->Tree = Identifier1.Tree;                          
  1605.       goto xx4;
  1606.     case 1 /* Character_constant */ :; 
  1607.     case 2 /* Bit_sequence */ :; 
  1608.     case 3 /* Integer */ :; 
  1609.     case 4 /* Real */ :; 
  1610.     case 5 /* Manifest_string */ :; 
  1611.     case 7 /* ';' */ :; 
  1612.     case 8 /* ',' */ :; 
  1613.     case 29 /* plus */ :; 
  1614.     case 30 /* minus */ :; 
  1615.     case 42 /* 'class' */ :; 
  1616.     case 46 /* deferred */ :; 
  1617.     case 53 /* expanded */ :; 
  1618.     case 56 /* false */ :; 
  1619.     case 90 /* true */ :; 
  1620.       xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  1621. /* line 207 "eiffel_ise.ell" */
  1622.  Index_value0->Tree = Manifest_constant1.Tree;                        
  1623.       goto xx4;
  1624.     case 6:;
  1625.     case 9:;
  1626.     case 10:;
  1627.     case 11:;
  1628.     case 12:;
  1629.     case 13:;
  1630.     case 14:;
  1631.     case 15:;
  1632.     case 16:;
  1633.     case 17:;
  1634.     case 18:;
  1635.     case 19:;
  1636.     case 20:;
  1637.     case 21:;
  1638.     case 22:;
  1639.     case 23:;
  1640.     case 24:;
  1641.     case 25:;
  1642.     case 26:;
  1643.     case 27:;
  1644.     case 28:;
  1645.     case 31:;
  1646.     case 32:;
  1647.     case 33:;
  1648.     case 34:;
  1649.     case 35:;
  1650.     case 36:;
  1651.     case 37:;
  1652.     case 38:;
  1653.     case 39:;
  1654.     case 40:;
  1655.     case 41:;
  1656.     case 43:;
  1657.     case 44:;
  1658.     case 45:;
  1659.     case 47:;
  1660.     case 48:;
  1661.     case 49:;
  1662.     case 50:;
  1663.     case 51:;
  1664.     case 52:;
  1665.     case 54:;
  1666.     case 55:;
  1667.     case 57:;
  1668.     case 58:;
  1669.     case 59:;
  1670.     case 60:;
  1671.     case 61:;
  1672.     case 62:;
  1673.     case 63:;
  1674.     case 64:;
  1675.     case 65:;
  1676.     case 66:;
  1677.     case 67:;
  1678.     case 68:;
  1679.     case 69:;
  1680.     case 70:;
  1681.     case 71:;
  1682.     case 72:;
  1683.     case 73:;
  1684.     case 74:;
  1685.     case 75:;
  1686.     case 76:;
  1687.     case 77:;
  1688.     case 78:;
  1689.     case 79:;
  1690.     case 80:;
  1691.     case 81:;
  1692.     case 82:;
  1693.     case 83:;
  1694.     case 84:;
  1695.     case 85:;
  1696.     case 86:;
  1697.     case 87:;
  1698.     case 88:;
  1699.     case 89:;
  1700.     case 91:;
  1701.     case 92:;
  1702.     case 93:;
  1703.     case 94:;
  1704.     case 95:;
  1705.     case 96:;
  1706.     case 97:;
  1707.     case 98:;
  1708.     case 99:;
  1709.     case 100:;
  1710.     case 101:;
  1711.     case 102:;
  1712.     case 103:;
  1713.     case 104:;
  1714.     case 105:;
  1715.     default:
  1716.       if (xxIsRepairMode) {
  1717.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  1718. /* line 206 "eiffel_ise.ell" */
  1719.  Index_value0->Tree = Identifier1.Tree;                          
  1720.         goto xx4;
  1721.       }
  1722. xxUnexpected (18, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false true Id */
  1723.     }
  1724.   }
  1725.   xx4:;
  1726. }
  1727.  
  1728. static void yyClass_header
  1729. # if defined __STDC__ | defined __cplusplus
  1730. (ParserISE_tParsAttribute * Class_header0, xxtUnionPtr xxGlobalRecoverySet)
  1731. # else
  1732. (Class_header0, xxGlobalRecoverySet)
  1733. ParserISE_tParsAttribute    * Class_header0;
  1734. xxtUnionPtr    xxGlobalRecoverySet;
  1735. # endif
  1736. {
  1737.     EiffelScan_tScanAttribute deferred1;
  1738.     EiffelScan_tScanAttribute expanded1;
  1739.   ParserISE_tParsAttribute Class_name1;
  1740.   xxtUnion xxUnion;
  1741.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1742.   for (;;) {
  1743.     switch (xxToken) {
  1744.     case 46 /* deferred */ :; 
  1745.       deferred1 =       EiffelScan_Attribute;
  1746.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1747.       if (xxToken != 42 /* 'class' */)
  1748.         xxRecoveryLiteral (42, 20, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER 'class' DOUBLE INTEGER _NONE REAL STRING Id */
  1749.       else {
  1750.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1751.       }
  1752.       xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /*  */
  1753. /* line 213 "eiffel_ise.ell" */
  1754.  Class_header0->Tree = mDeferred_class(Class_name1.Tree);            
  1755.       goto xx5;
  1756.     case 53 /* expanded */ :; 
  1757.       expanded1 =       EiffelScan_Attribute;
  1758.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1759.       if (xxToken != 42 /* 'class' */)
  1760.         xxRecoveryLiteral (42, 20, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER 'class' DOUBLE INTEGER _NONE REAL STRING Id */
  1761.       else {
  1762.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1763.       }
  1764.       xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /*  */
  1765. /* line 214 "eiffel_ise.ell" */
  1766.  Class_header0->Tree = mExpanded_class(Class_name1.Tree);            
  1767.       goto xx5;
  1768.     case 42 /* 'class' */ :; 
  1769.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1770.       xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /*  */
  1771. /* line 215 "eiffel_ise.ell" */
  1772.  Class_header0->Tree = mClass(Class_name1.Tree);                
  1773.       goto xx5;
  1774.     case 43:;
  1775.     case 44:;
  1776.     case 45:;
  1777.     case 47:;
  1778.     case 48:;
  1779.     case 49:;
  1780.     case 50:;
  1781.     case 51:;
  1782.     case 52:;
  1783.     default:
  1784.       if (xxIsRepairMode) {
  1785.         if (xxToken != 42 /* 'class' */)
  1786.           xxRecoveryLiteral (42, 20, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER 'class' DOUBLE INTEGER _NONE REAL STRING Id */
  1787.         else {
  1788.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1789.         }
  1790.         xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /*  */
  1791. /* line 215 "eiffel_ise.ell" */
  1792.  Class_header0->Tree = mClass(Class_name1.Tree);                
  1793.         goto xx5;
  1794.       }
  1795.       xxExpected (22, 22, xxGlobalRecoverySet); /*  'class' deferred expanded /  'class' deferred expanded */
  1796.     }
  1797.   }
  1798.   xx5:;
  1799. }
  1800.  
  1801. static void yyClass_name
  1802. # if defined __STDC__ | defined __cplusplus
  1803. (ParserISE_tParsAttribute * Class_name0, xxtUnionPtr xxGlobalRecoverySet)
  1804. # else
  1805. (Class_name0, xxGlobalRecoverySet)
  1806. ParserISE_tParsAttribute    * Class_name0;
  1807. xxtUnionPtr    xxGlobalRecoverySet;
  1808. # endif
  1809. {
  1810.   ParserISE_tParsAttribute Formal_generic_name1;
  1811.   xxtUnion xxUnion;
  1812.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1813.   xxUnion.xxLocalRecoverySet = 0; yyFormal_generic_name (& Formal_generic_name1, & xxUnion); /*  */
  1814. /* line 219 "eiffel_ise.ell" */
  1815.  Class_name0->Tree = Formal_generic_name1.Tree;                    
  1816. }
  1817.  
  1818. static void yyObsolete
  1819. # if defined __STDC__ | defined __cplusplus
  1820. (ParserISE_tParsAttribute * Obsolete0, xxtUnionPtr xxGlobalRecoverySet)
  1821. # else
  1822. (Obsolete0, xxGlobalRecoverySet)
  1823. ParserISE_tParsAttribute    * Obsolete0;
  1824. xxtUnionPtr    xxGlobalRecoverySet;
  1825. # endif
  1826. {
  1827.   ParserISE_tParsAttribute Message1;
  1828.   xxtUnion xxUnion;
  1829.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1830.   if (xxToken != 73 /* 'obsolete' */)
  1831.     xxRecoveryLiteral (73, 23, xxGlobalRecoverySet); /*  Manifest_string 'obsolete' */
  1832.   else {
  1833.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1834.   }
  1835. /* line 224 "eiffel_ise.ell" */
  1836.  comment_ref = no_comment;                                
  1837.   xxUnion.xxLocalRecoverySet = 0; yyMessage (& Message1, & xxUnion); /*  */
  1838. /* line 225 "eiffel_ise.ell" */
  1839.  Obsolete0->Tree = Message1.Tree;                             
  1840. }
  1841.  
  1842. static void yyMessage
  1843. # if defined __STDC__ | defined __cplusplus
  1844. (ParserISE_tParsAttribute * Message0, xxtUnionPtr xxGlobalRecoverySet)
  1845. # else
  1846. (Message0, xxGlobalRecoverySet)
  1847. ParserISE_tParsAttribute    * Message0;
  1848. xxtUnionPtr    xxGlobalRecoverySet;
  1849. # endif
  1850. {
  1851.     EiffelScan_tScanAttribute Manifest_string1;
  1852.   if (xxToken != 5 /* Manifest_string */)
  1853.     xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string */
  1854.   else {
  1855.     Manifest_string1 =   EiffelScan_Attribute;
  1856.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1857.   }
  1858. /* line 230 "eiffel_ise.ell" */
  1859.  Message0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position);    
  1860. }
  1861.  
  1862. static void yyFeatures
  1863. # if defined __STDC__ | defined __cplusplus
  1864. (ParserISE_tParsAttribute * Features0, xxtUnionPtr xxGlobalRecoverySet)
  1865. # else
  1866. (Features0, xxGlobalRecoverySet)
  1867. ParserISE_tParsAttribute    * Features0;
  1868. xxtUnionPtr    xxGlobalRecoverySet;
  1869. # endif
  1870. {
  1871.   ParserISE_tParsAttribute Feature_clause1;
  1872.   xxtUnion xxUnion;
  1873.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1874. /* line 234 "eiffel_ise.ell" */
  1875.  Features0->Tree = mFeatures0();                            
  1876.   if (xxToken != 57 /* 'feature' */)
  1877.     xxRecoveryLiteral (57, 25, xxGlobalRecoverySet); /*  '{' 'feature' 'frozen' infix prefix Id */
  1878.   else {
  1879.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1880.   }
  1881.   for (;;) {
  1882.     xxUnion.xxLocalRecoverySet = 26; yyFeature_clause (& Feature_clause1, & xxUnion); /*  'feature' */
  1883. /* line 236 "eiffel_ise.ell" */
  1884.  Features0->Tree = mFeatures1(Feature_clause1.Tree, Features0->Tree);            
  1885.     if (! ((xxToken == 57 /* 'feature' */))) {
  1886.       if ((xxVerticalSet [xxToken] & 1 << 6 /*  'end' 'invariant' */)) break;
  1887.       xxExpected (26, 25, xxGlobalRecoverySet); /*  'feature' /  '{' 'feature' 'frozen' infix prefix Id */
  1888.       if (! ((xxToken == 57 /* 'feature' */) || (xxVerticalSet [xxToken + 108] & 1 << 2 /*  '{' 'feature' 'frozen' infix prefix Id */))) break;
  1889.     }
  1890.     if (xxToken != 57 /* 'feature' */)
  1891.       xxRecoveryLiteral (57, 25, xxGlobalRecoverySet); /*  '{' 'feature' 'frozen' infix prefix Id */
  1892.     else {
  1893.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1894.     }
  1895.   }
  1896. }
  1897.  
  1898. static void yyFeature_clause
  1899. # if defined __STDC__ | defined __cplusplus
  1900. (ParserISE_tParsAttribute * Feature_clause0, xxtUnionPtr xxGlobalRecoverySet)
  1901. # else
  1902. (Feature_clause0, xxGlobalRecoverySet)
  1903. ParserISE_tParsAttribute    * Feature_clause0;
  1904. xxtUnionPtr    xxGlobalRecoverySet;
  1905. # endif
  1906. {
  1907.   ParserISE_tParsAttribute Clients1;
  1908.   ParserISE_tParsAttribute Feature_declaration_list1;
  1909.   xxtUnion xxUnion;
  1910.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1911. /* line 240 "eiffel_ise.ell" */
  1912.  Feature_clause0->Tree = mFeature_clause(mClients0(), no_comment, mFeature_decls0());    
  1913.   for (;;) {
  1914.     if ((xxToken == 21 /* '{' */)) {
  1915.       xxUnion.xxLocalRecoverySet = 28; yyClients (& Clients1, & xxUnion); /*  'frozen' infix prefix Id */
  1916. /* line 241 "eiffel_ise.ell" */
  1917.  Feature_clause0->Tree->Feature_clause.Clients = Clients1.Tree;            
  1918.       break;
  1919.     } else if ((xxVerticalSet [xxToken + 108] & 1 << 3 /*  'end' 'feature' 'frozen' infix 'invariant' prefix Id */) || xxIsRepairMode) break;
  1920.     xxExpected (27, 27, xxGlobalRecoverySet); /*  '{' 'frozen' infix prefix Id /  '{' 'frozen' infix prefix Id */
  1921.   }
  1922. /* line 242 "eiffel_ise.ell" */
  1923.  Feature_clause0->Tree->Feature_clause.comment = comment_ref;                
  1924.   xxUnion.xxLocalRecoverySet = 0; yyFeature_declaration_list (& Feature_declaration_list1, & xxUnion); /*  */
  1925. /* line 243 "eiffel_ise.ell" */
  1926.  Feature_clause0->Tree->Feature_clause.Feature_decls = 
  1927.                             ReverseTree(Feature_declaration_list1.Tree);         
  1928. }
  1929.  
  1930. static void yyFeature_declaration_list
  1931. # if defined __STDC__ | defined __cplusplus
  1932. (ParserISE_tParsAttribute * Feature_declaration_list0, xxtUnionPtr xxGlobalRecoverySet)
  1933. # else
  1934. (Feature_declaration_list0, xxGlobalRecoverySet)
  1935. ParserISE_tParsAttribute    * Feature_declaration_list0;
  1936. xxtUnionPtr    xxGlobalRecoverySet;
  1937. # endif
  1938. {
  1939.   ParserISE_tParsAttribute Feature_declaration1;
  1940.   xxtUnion xxUnion;
  1941.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1942. /* line 247 "eiffel_ise.ell" */
  1943.  Feature_declaration_list0->Tree = mFeature_decls0();                
  1944.   for (;;) {
  1945.     if ((xxVerticalSet [xxToken + 108] & 1 << 4 /*  'frozen' infix prefix Id */)) {
  1946.       xxUnion.xxLocalRecoverySet = 13; yyFeature_declaration (& Feature_declaration1, & xxUnion); /*  ';' */
  1947. /* line 248 "eiffel_ise.ell" */
  1948.  Feature_declaration_list0->Tree = mFeature_decls1(Feature_declaration1.Tree, 
  1949.                                 Feature_declaration_list0->Tree);         
  1950.       for (;;) {
  1951.         if ((xxToken == 7 /* ';' */)) {
  1952.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1953.           break;
  1954.         } else if ((xxVerticalSet [xxToken + 108] & 1 << 3 /*  'end' 'feature' 'frozen' infix 'invariant' prefix Id */) || xxIsRepairMode) break;
  1955.         xxExpected (13, 13, xxGlobalRecoverySet); /*  ';' /  ';' */
  1956.       }
  1957.     } else if ((xxVerticalSet [xxToken] & 1 << 5 /*  'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  1958.     else
  1959.       xxExpected (28, 28, xxGlobalRecoverySet); /*  'frozen' infix prefix Id /  'frozen' infix prefix Id */
  1960.   }
  1961. }
  1962.  
  1963. static void yyFeature_declaration
  1964. # if defined __STDC__ | defined __cplusplus
  1965. (ParserISE_tParsAttribute * Feature_declaration0, xxtUnionPtr xxGlobalRecoverySet)
  1966. # else
  1967. (Feature_declaration0, xxGlobalRecoverySet)
  1968. ParserISE_tParsAttribute    * Feature_declaration0;
  1969. xxtUnionPtr    xxGlobalRecoverySet;
  1970. # endif
  1971. {
  1972.   ParserISE_tParsAttribute New_feature_list1;
  1973.   ParserISE_tParsAttribute Declaration_body1;
  1974.   xxtUnion xxUnion;
  1975.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1976.   xxUnion.xxLocalRecoverySet = 29; yyNew_feature_list (& New_feature_list1, & xxUnion); /*  ':' '(' 'is' */
  1977.   xxUnion.xxLocalRecoverySet = 0; yyDeclaration_body (& Declaration_body1, & xxUnion); /*  */
  1978. /* line 255 "eiffel_ise.ell" */
  1979.  Feature_declaration0->Tree = mFeature_decl(ReverseTree(New_feature_list1.Tree), 
  1980.                                     Declaration_body1.Tree);        
  1981. }
  1982.  
  1983. static void yyDeclaration_body
  1984. # if defined __STDC__ | defined __cplusplus
  1985. (ParserISE_tParsAttribute * Declaration_body0, xxtUnionPtr xxGlobalRecoverySet)
  1986. # else
  1987. (Declaration_body0, xxGlobalRecoverySet)
  1988. ParserISE_tParsAttribute    * Declaration_body0;
  1989. xxtUnionPtr    xxGlobalRecoverySet;
  1990. # endif
  1991. {
  1992.   ParserISE_tParsAttribute Formal_arguments1;
  1993.   ParserISE_tParsAttribute Type_mark1;
  1994.   ParserISE_tParsAttribute Constant_or_routine1;
  1995.   xxtUnion xxUnion;
  1996.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1997. /* line 259 "eiffel_ise.ell" */
  1998.  Declaration_body0->Tree = mDeclaration_body(mFormal_args0(), mType0(), mConst_or_routine0());    
  1999.   for (;;) {
  2000.     if ((xxToken == 17 /* '(' */)) {
  2001.       xxUnion.xxLocalRecoverySet = 30; yyFormal_arguments (& Formal_arguments1, & xxUnion); /*  ':' 'is' */
  2002. /* line 260 "eiffel_ise.ell" */
  2003.  Declaration_body0->Tree->Declaration_body.Formal_args = Formal_arguments1.Tree;    
  2004.       break;
  2005.     } else if ((xxVerticalSet [xxToken + 108] & 1 << 5 /*  ';' ':' 'end' 'feature' 'frozen' infix 'invariant' 'is' prefix Id */) || xxIsRepairMode) break;
  2006.     xxExpected (29, 29, xxGlobalRecoverySet); /*  ':' '(' 'is' /  ':' '(' 'is' */
  2007.   }
  2008.   for (;;) {
  2009.     if ((xxToken == 9 /* ':' */)) {
  2010.       xxUnion.xxLocalRecoverySet = 31; yyType_mark (& Type_mark1, & xxUnion); /*  'is' */
  2011. /* line 261 "eiffel_ise.ell" */
  2012.  Declaration_body0->Tree->Declaration_body.Type_mark = Type_mark1.Tree;        
  2013.       break;
  2014.     } else if ((xxVerticalSet [xxToken + 108] & 1 << 6 /*  ';' 'end' 'feature' 'frozen' infix 'invariant' 'is' prefix Id */) || xxIsRepairMode) break;
  2015.     xxExpected (30, 30, xxGlobalRecoverySet); /*  ':' 'is' /  ':' 'is' */
  2016.   }
  2017.   for (;;) {
  2018.     if ((xxToken == 68 /* 'is' */)) {
  2019.       xxUnion.xxLocalRecoverySet = 0; yyConstant_or_routine (& Constant_or_routine1, & xxUnion); /*  */
  2020. /* line 262 "eiffel_ise.ell" */
  2021.  Declaration_body0->Tree->Declaration_body.Const_or_routine = Constant_or_routine1.Tree; 
  2022.       break;
  2023.     } else if ((xxVerticalSet [xxToken + 108] & 1 << 7 /*  ';' 'end' 'feature' 'frozen' infix 'invariant' prefix Id */) || xxIsRepairMode) break;
  2024.     xxExpected (31, 31, xxGlobalRecoverySet); /*  'is' /  'is' */
  2025.   }
  2026. }
  2027.  
  2028. static void yyConstant_or_routine
  2029. # if defined __STDC__ | defined __cplusplus
  2030. (ParserISE_tParsAttribute * Constant_or_routine0, xxtUnionPtr xxGlobalRecoverySet)
  2031. # else
  2032. (Constant_or_routine0, xxGlobalRecoverySet)
  2033. ParserISE_tParsAttribute    * Constant_or_routine0;
  2034. xxtUnionPtr    xxGlobalRecoverySet;
  2035. # endif
  2036. {
  2037.   ParserISE_tParsAttribute Feature_value1;
  2038.   xxtUnion xxUnion;
  2039.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2040. /* line 265 "eiffel_ise.ell" */
  2041.  comment_ref = no_comment;                                
  2042.   if (xxToken != 68 /* 'is' */)
  2043.     xxRecoveryLiteral (68, 32, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus deferred do 'external' false 'is' 'local' 'obsolete' once 'require' true unique */
  2044.   else {
  2045.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2046.   }
  2047.   xxUnion.xxLocalRecoverySet = 0; yyFeature_value (& Feature_value1, & xxUnion); /*  */
  2048. /* line 266 "eiffel_ise.ell" */
  2049.  Constant_or_routine0->Tree = Feature_value1.Tree;                    
  2050. }
  2051.  
  2052. static void yyFeature_value
  2053. # if defined __STDC__ | defined __cplusplus
  2054. (ParserISE_tParsAttribute * Feature_value0, xxtUnionPtr xxGlobalRecoverySet)
  2055. # else
  2056. (Feature_value0, xxGlobalRecoverySet)
  2057. ParserISE_tParsAttribute    * Feature_value0;
  2058. xxtUnionPtr    xxGlobalRecoverySet;
  2059. # endif
  2060. {
  2061.   ParserISE_tParsAttribute Manifest_constant1;
  2062.   ParserISE_tParsAttribute Unique1;
  2063.   ParserISE_tParsAttribute Routine1;
  2064.   xxtUnion xxUnion;
  2065.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2066.   for (;;) {
  2067.     switch (xxToken) {
  2068.     case 1 /* Character_constant */ :; 
  2069.     case 2 /* Bit_sequence */ :; 
  2070.     case 3 /* Integer */ :; 
  2071.     case 4 /* Real */ :; 
  2072.     case 5 /* Manifest_string */ :; 
  2073.     case 7 /* ';' */ :; 
  2074.     case 29 /* plus */ :; 
  2075.     case 30 /* minus */ :; 
  2076.     case 51 /* 'end' */ :; 
  2077.     case 56 /* false */ :; 
  2078.     case 57 /* 'feature' */ :; 
  2079.     case 59 /* 'frozen' */ :; 
  2080.     case 63 /* infix */ :; 
  2081.     case 67 /* 'invariant' */ :; 
  2082.     case 77 /* prefix */ :; 
  2083.     case 90 /* true */ :; 
  2084.     case 106 /* Id */ :; 
  2085.       xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  2086. /* line 270 "eiffel_ise.ell" */
  2087.  Feature_value0->Tree = mM_const(Manifest_constant1.Tree);                
  2088.       goto xx6;
  2089.     case 92 /* unique */ :; 
  2090.       xxUnion.xxLocalRecoverySet = 0; yyUnique (& Unique1, & xxUnion); /*  */
  2091. /* line 271 "eiffel_ise.ell" */
  2092.  Feature_value0->Tree = Unique1.Tree;                            
  2093.       goto xx6;
  2094.     case 46 /* deferred */ :; 
  2095.     case 47 /* do */ :; 
  2096.     case 55 /* 'external' */ :; 
  2097.     case 70 /* 'local' */ :; 
  2098.     case 73 /* 'obsolete' */ :; 
  2099.     case 75 /* once */ :; 
  2100.     case 81 /* 'require' */ :; 
  2101.       xxUnion.xxLocalRecoverySet = 0; yyRoutine (& Routine1, & xxUnion); /*  */
  2102. /* line 272 "eiffel_ise.ell" */
  2103.  Feature_value0->Tree = Routine1.Tree;                            
  2104.       goto xx6;
  2105.     case 6:;
  2106.     case 8:;
  2107.     case 9:;
  2108.     case 10:;
  2109.     case 11:;
  2110.     case 12:;
  2111.     case 13:;
  2112.     case 14:;
  2113.     case 15:;
  2114.     case 16:;
  2115.     case 17:;
  2116.     case 18:;
  2117.     case 19:;
  2118.     case 20:;
  2119.     case 21:;
  2120.     case 22:;
  2121.     case 23:;
  2122.     case 24:;
  2123.     case 25:;
  2124.     case 26:;
  2125.     case 27:;
  2126.     case 28:;
  2127.     case 31:;
  2128.     case 32:;
  2129.     case 33:;
  2130.     case 34:;
  2131.     case 35:;
  2132.     case 36:;
  2133.     case 37:;
  2134.     case 38:;
  2135.     case 39:;
  2136.     case 40:;
  2137.     case 41:;
  2138.     case 42:;
  2139.     case 43:;
  2140.     case 44:;
  2141.     case 45:;
  2142.     case 48:;
  2143.     case 49:;
  2144.     case 50:;
  2145.     case 52:;
  2146.     case 53:;
  2147.     case 54:;
  2148.     case 58:;
  2149.     case 60:;
  2150.     case 61:;
  2151.     case 62:;
  2152.     case 64:;
  2153.     case 65:;
  2154.     case 66:;
  2155.     case 68:;
  2156.     case 69:;
  2157.     case 71:;
  2158.     case 72:;
  2159.     case 74:;
  2160.     case 76:;
  2161.     case 78:;
  2162.     case 79:;
  2163.     case 80:;
  2164.     case 82:;
  2165.     case 83:;
  2166.     case 84:;
  2167.     case 85:;
  2168.     case 86:;
  2169.     case 87:;
  2170.     case 88:;
  2171.     case 89:;
  2172.     case 91:;
  2173.     case 93:;
  2174.     case 94:;
  2175.     case 95:;
  2176.     case 96:;
  2177.     case 97:;
  2178.     case 98:;
  2179.     case 99:;
  2180.     case 100:;
  2181.     case 101:;
  2182.     case 102:;
  2183.     case 103:;
  2184.     case 104:;
  2185.     case 105:;
  2186.     default:
  2187.       if (xxIsRepairMode) {
  2188.         xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  2189. /* line 270 "eiffel_ise.ell" */
  2190.  Feature_value0->Tree = mM_const(Manifest_constant1.Tree);                
  2191.         goto xx6;
  2192.       }
  2193. xxUnexpected (33, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus deferred do 'external' false 'local' 'obsolete' once 'require' true unique */
  2194.     }
  2195.   }
  2196.   xx6:;
  2197. }
  2198.  
  2199. static void yyNew_feature_list
  2200. # if defined __STDC__ | defined __cplusplus
  2201. (ParserISE_tParsAttribute * New_feature_list0, xxtUnionPtr xxGlobalRecoverySet)
  2202. # else
  2203. (New_feature_list0, xxGlobalRecoverySet)
  2204. ParserISE_tParsAttribute    * New_feature_list0;
  2205. xxtUnionPtr    xxGlobalRecoverySet;
  2206. # endif
  2207. {
  2208.   ParserISE_tParsAttribute New_feature1;
  2209.   xxtUnion xxUnion;
  2210.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2211. /* line 277 "eiffel_ise.ell" */
  2212.  New_feature_list0->Tree = mNew_feature_list0();                    
  2213.   for (;;) {
  2214.     xxUnion.xxLocalRecoverySet = 16; yyNew_feature (& New_feature1, & xxUnion); /*  ',' */
  2215. /* line 278 "eiffel_ise.ell" */
  2216.  New_feature_list0->Tree = mNew_feature_list1(New_feature1.Tree, New_feature_list0->Tree);
  2217.     if (! ((xxToken == 8 /* ',' */))) {
  2218.       if ((xxVerticalSet [xxToken + 216] & 1 << 0 /*  ';' ':' '(' 'end' 'feature' 'frozen' infix 'invariant' 'is' prefix Id */)) break;
  2219.       xxExpected (34, 34, xxGlobalRecoverySet); /*  ',' 'frozen' infix prefix Id /  ',' 'frozen' infix prefix Id */
  2220.       if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 108] & 1 << 4 /*  'frozen' infix prefix Id */))) break;
  2221.     }
  2222.     if (xxToken != 8 /* ',' */)
  2223.       xxRecoveryLiteral (8, 34, xxGlobalRecoverySet); /*  ',' 'frozen' infix prefix Id */
  2224.     else {
  2225.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2226.     }
  2227.   }
  2228. }
  2229.  
  2230. static void yyNew_feature
  2231. # if defined __STDC__ | defined __cplusplus
  2232. (ParserISE_tParsAttribute * New_feature0, xxtUnionPtr xxGlobalRecoverySet)
  2233. # else
  2234. (New_feature0, xxGlobalRecoverySet)
  2235. ParserISE_tParsAttribute    * New_feature0;
  2236. xxtUnionPtr    xxGlobalRecoverySet;
  2237. # endif
  2238. {
  2239.   ParserISE_tParsAttribute Feature_name1;
  2240.   xxtUnion xxUnion;
  2241.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2242.   for (;;) {
  2243.     switch (xxToken) {
  2244.     case 59 /* 'frozen' */ :; 
  2245.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2246.       xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name1, & xxUnion); /*  */
  2247. /* line 283 "eiffel_ise.ell" */
  2248.  New_feature0->Tree = mFrozen(Feature_name1.Tree);                    
  2249.       goto xx7;
  2250.     case 63 /* infix */ :; 
  2251.     case 77 /* prefix */ :; 
  2252.     case 106 /* Id */ :; 
  2253.       xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name1, & xxUnion); /*  */
  2254. /* line 284 "eiffel_ise.ell" */
  2255.  New_feature0->Tree = Feature_name1.Tree;                         
  2256.       goto xx7;
  2257.     case 60:;
  2258.     case 61:;
  2259.     case 62:;
  2260.     case 64:;
  2261.     case 65:;
  2262.     case 66:;
  2263.     case 67:;
  2264.     case 68:;
  2265.     case 69:;
  2266.     case 70:;
  2267.     case 71:;
  2268.     case 72:;
  2269.     case 73:;
  2270.     case 74:;
  2271.     case 75:;
  2272.     case 76:;
  2273.     case 78:;
  2274.     case 79:;
  2275.     case 80:;
  2276.     case 81:;
  2277.     case 82:;
  2278.     case 83:;
  2279.     case 84:;
  2280.     case 85:;
  2281.     case 86:;
  2282.     case 87:;
  2283.     case 88:;
  2284.     case 89:;
  2285.     case 90:;
  2286.     case 91:;
  2287.     case 92:;
  2288.     case 93:;
  2289.     case 94:;
  2290.     case 95:;
  2291.     case 96:;
  2292.     case 97:;
  2293.     case 98:;
  2294.     case 99:;
  2295.     case 100:;
  2296.     case 101:;
  2297.     case 102:;
  2298.     case 103:;
  2299.     case 104:;
  2300.     case 105:;
  2301.     default:
  2302.       if (xxIsRepairMode) {
  2303.         xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name1, & xxUnion); /*  */
  2304. /* line 284 "eiffel_ise.ell" */
  2305.  New_feature0->Tree = Feature_name1.Tree;                         
  2306.         goto xx7;
  2307.       }
  2308.       xxExpected (28, 28, xxGlobalRecoverySet); /*  'frozen' infix prefix Id /  'frozen' infix prefix Id */
  2309.     }
  2310.   }
  2311.   xx7:;
  2312. }
  2313.  
  2314. static void yyFeature_name
  2315. # if defined __STDC__ | defined __cplusplus
  2316. (ParserISE_tParsAttribute * Feature_name0, xxtUnionPtr xxGlobalRecoverySet)
  2317. # else
  2318. (Feature_name0, xxGlobalRecoverySet)
  2319. ParserISE_tParsAttribute    * Feature_name0;
  2320. xxtUnionPtr    xxGlobalRecoverySet;
  2321. # endif
  2322. {
  2323.   ParserISE_tParsAttribute Identifier1;
  2324.   ParserISE_tParsAttribute Prefix1;
  2325.   ParserISE_tParsAttribute Infix1;
  2326.   xxtUnion xxUnion;
  2327.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2328.   for (;;) {
  2329.     switch (xxToken) {
  2330.     case 106 /* Id */ :; 
  2331.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  2332. /* line 289 "eiffel_ise.ell" */
  2333.  Feature_name0->Tree = mIdent_name(Identifier1.Tree);                    
  2334.       goto xx8;
  2335.     case 77 /* prefix */ :; 
  2336.       xxUnion.xxLocalRecoverySet = 0; yyPrefix (& Prefix1, & xxUnion); /*  */
  2337. /* line 290 "eiffel_ise.ell" */
  2338.  Feature_name0->Tree = Prefix1.Tree;                            
  2339.       goto xx8;
  2340.     case 63 /* infix */ :; 
  2341.       xxUnion.xxLocalRecoverySet = 0; yyInfix (& Infix1, & xxUnion); /*  */
  2342. /* line 291 "eiffel_ise.ell" */
  2343.  Feature_name0->Tree = Infix1.Tree;                            
  2344.       goto xx8;
  2345.     case 64:;
  2346.     case 65:;
  2347.     case 66:;
  2348.     case 67:;
  2349.     case 68:;
  2350.     case 69:;
  2351.     case 70:;
  2352.     case 71:;
  2353.     case 72:;
  2354.     case 73:;
  2355.     case 74:;
  2356.     case 75:;
  2357.     case 76:;
  2358.     case 78:;
  2359.     case 79:;
  2360.     case 80:;
  2361.     case 81:;
  2362.     case 82:;
  2363.     case 83:;
  2364.     case 84:;
  2365.     case 85:;
  2366.     case 86:;
  2367.     case 87:;
  2368.     case 88:;
  2369.     case 89:;
  2370.     case 90:;
  2371.     case 91:;
  2372.     case 92:;
  2373.     case 93:;
  2374.     case 94:;
  2375.     case 95:;
  2376.     case 96:;
  2377.     case 97:;
  2378.     case 98:;
  2379.     case 99:;
  2380.     case 100:;
  2381.     case 101:;
  2382.     case 102:;
  2383.     case 103:;
  2384.     case 104:;
  2385.     case 105:;
  2386.     default:
  2387.       if (xxIsRepairMode) {
  2388.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  2389. /* line 289 "eiffel_ise.ell" */
  2390.  Feature_name0->Tree = mIdent_name(Identifier1.Tree);                    
  2391.         goto xx8;
  2392.       }
  2393.       xxExpected (35, 35, xxGlobalRecoverySet); /*  infix prefix Id /  infix prefix Id */
  2394.     }
  2395.   }
  2396.   xx8:;
  2397. }
  2398.  
  2399. static void yyPrefix
  2400. # if defined __STDC__ | defined __cplusplus
  2401. (ParserISE_tParsAttribute * Prefix0, xxtUnionPtr xxGlobalRecoverySet)
  2402. # else
  2403. (Prefix0, xxGlobalRecoverySet)
  2404. ParserISE_tParsAttribute    * Prefix0;
  2405. xxtUnionPtr    xxGlobalRecoverySet;
  2406. # endif
  2407. {
  2408.     EiffelScan_tScanAttribute prefix1;
  2409.   ParserISE_tParsAttribute Prefix_operator1;
  2410.   xxtUnion xxUnion;
  2411.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2412.   if (xxToken != 77 /* prefix */)
  2413.     xxRecoveryTerminal (77, 36, xxGlobalRecoverySet, & prefix1); /*  Free_op plus minus prefix not */
  2414.   else {
  2415.     prefix1 =   EiffelScan_Attribute;
  2416.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2417.   }
  2418.   xxUnion.xxLocalRecoverySet = 0; yyPrefix_operator (& Prefix_operator1, & xxUnion); /*  */
  2419. /* line 295 "eiffel_ise.ell" */
  2420.  Prefix0->Tree = Prefix_operator1.Tree;                
  2421. }
  2422.  
  2423. static void yyInfix
  2424. # if defined __STDC__ | defined __cplusplus
  2425. (ParserISE_tParsAttribute * Infix0, xxtUnionPtr xxGlobalRecoverySet)
  2426. # else
  2427. (Infix0, xxGlobalRecoverySet)
  2428. ParserISE_tParsAttribute    * Infix0;
  2429. xxtUnionPtr    xxGlobalRecoverySet;
  2430. # endif
  2431. {
  2432.     EiffelScan_tScanAttribute infix1;
  2433.   ParserISE_tParsAttribute Infix_operator1;
  2434.   xxtUnion xxUnion;
  2435.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2436.   if (xxToken != 63 /* infix */)
  2437.     xxRecoveryTerminal (63, 37, xxGlobalRecoverySet, & infix1); /*  Free_op plus minus div and implies infix or xor times smaller greater sm_eq gr_eq idiv imod power */
  2438.   else {
  2439.     infix1 =   EiffelScan_Attribute;
  2440.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2441.   }
  2442.   xxUnion.xxLocalRecoverySet = 0; yyInfix_operator (& Infix_operator1, & xxUnion); /*  */
  2443. /* line 299 "eiffel_ise.ell" */
  2444.  Infix0->Tree = Infix_operator1.Tree;                    
  2445. }
  2446.  
  2447. static void yyPrefix_operator
  2448. # if defined __STDC__ | defined __cplusplus
  2449. (ParserISE_tParsAttribute * Prefix_operator0, xxtUnionPtr xxGlobalRecoverySet)
  2450. # else
  2451. (Prefix_operator0, xxGlobalRecoverySet)
  2452. ParserISE_tParsAttribute    * Prefix_operator0;
  2453. xxtUnionPtr    xxGlobalRecoverySet;
  2454. # endif
  2455. {
  2456.     EiffelScan_tScanAttribute Free_op1;
  2457.   ParserISE_tParsAttribute Unary1;
  2458.   xxtUnion xxUnion;
  2459.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2460.   for (;;) {
  2461.     switch (xxToken) {
  2462.     case 29 /* plus */ :; 
  2463.     case 30 /* minus */ :; 
  2464.     case 105 /* not */ :; 
  2465.       xxUnion.xxLocalRecoverySet = 0; yyUnary (& Unary1, & xxUnion); /*  */
  2466. /* line 303 "eiffel_ise.ell" */
  2467.  Prefix_operator0->Tree = mPrefix(Unary1.Tree);                    
  2468.       goto xx9;
  2469.     case 6 /* Free_op */ :; 
  2470.       Free_op1 =       EiffelScan_Attribute;
  2471.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2472. /* line 304 "eiffel_ise.ell" */
  2473.  Prefix_operator0->Tree = mPrefix(mFree_op(Free_op1.Position, Free_op1.Ident));     
  2474.       goto xx9;
  2475.     case 7:;
  2476.     case 8:;
  2477.     case 9:;
  2478.     case 10:;
  2479.     case 11:;
  2480.     case 12:;
  2481.     case 13:;
  2482.     case 14:;
  2483.     case 15:;
  2484.     case 16:;
  2485.     case 17:;
  2486.     case 18:;
  2487.     case 19:;
  2488.     case 20:;
  2489.     case 21:;
  2490.     case 22:;
  2491.     case 23:;
  2492.     case 24:;
  2493.     case 25:;
  2494.     case 26:;
  2495.     case 27:;
  2496.     case 28:;
  2497.     case 31:;
  2498.     case 32:;
  2499.     case 33:;
  2500.     case 34:;
  2501.     case 35:;
  2502.     case 36:;
  2503.     case 37:;
  2504.     case 38:;
  2505.     case 39:;
  2506.     case 40:;
  2507.     case 41:;
  2508.     case 42:;
  2509.     case 43:;
  2510.     case 44:;
  2511.     case 45:;
  2512.     case 46:;
  2513.     case 47:;
  2514.     case 48:;
  2515.     case 49:;
  2516.     case 50:;
  2517.     case 51:;
  2518.     case 52:;
  2519.     case 53:;
  2520.     case 54:;
  2521.     case 55:;
  2522.     case 56:;
  2523.     case 57:;
  2524.     case 58:;
  2525.     case 59:;
  2526.     case 60:;
  2527.     case 61:;
  2528.     case 62:;
  2529.     case 63:;
  2530.     case 64:;
  2531.     case 65:;
  2532.     case 66:;
  2533.     case 67:;
  2534.     case 68:;
  2535.     case 69:;
  2536.     case 70:;
  2537.     case 71:;
  2538.     case 72:;
  2539.     case 73:;
  2540.     case 74:;
  2541.     case 75:;
  2542.     case 76:;
  2543.     case 77:;
  2544.     case 78:;
  2545.     case 79:;
  2546.     case 80:;
  2547.     case 81:;
  2548.     case 82:;
  2549.     case 83:;
  2550.     case 84:;
  2551.     case 85:;
  2552.     case 86:;
  2553.     case 87:;
  2554.     case 88:;
  2555.     case 89:;
  2556.     case 90:;
  2557.     case 91:;
  2558.     case 92:;
  2559.     case 93:;
  2560.     case 94:;
  2561.     case 95:;
  2562.     case 96:;
  2563.     case 97:;
  2564.     case 98:;
  2565.     case 99:;
  2566.     case 100:;
  2567.     case 101:;
  2568.     case 102:;
  2569.     case 103:;
  2570.     case 104:;
  2571.     default:
  2572.       if (xxIsRepairMode) {
  2573.         xxUnion.xxLocalRecoverySet = 0; yyUnary (& Unary1, & xxUnion); /*  */
  2574. /* line 303 "eiffel_ise.ell" */
  2575.  Prefix_operator0->Tree = mPrefix(Unary1.Tree);                    
  2576.         goto xx9;
  2577.       }
  2578.       xxExpected (39, 39, xxGlobalRecoverySet); /*  Free_op plus minus not /  Free_op plus minus not */
  2579.     }
  2580.   }
  2581.   xx9:;
  2582. }
  2583.  
  2584. static void yyInfix_operator
  2585. # if defined __STDC__ | defined __cplusplus
  2586. (ParserISE_tParsAttribute * Infix_operator0, xxtUnionPtr xxGlobalRecoverySet)
  2587. # else
  2588. (Infix_operator0, xxGlobalRecoverySet)
  2589. ParserISE_tParsAttribute    * Infix_operator0;
  2590. xxtUnionPtr    xxGlobalRecoverySet;
  2591. # endif
  2592. {
  2593.     EiffelScan_tScanAttribute Free_op1;
  2594.   ParserISE_tParsAttribute Binary1;
  2595.   xxtUnion xxUnion;
  2596.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2597.   for (;;) {
  2598.     switch (xxToken) {
  2599.     case 29 /* plus */ :; 
  2600.     case 30 /* minus */ :; 
  2601.     case 33 /* div */ :; 
  2602.     case 36 /* and */ :; 
  2603.     case 61 /* implies */ :; 
  2604.     case 76 /* or */ :; 
  2605.     case 96 /* xor */ :; 
  2606.     case 97 /* times */ :; 
  2607.     case 98 /* smaller */ :; 
  2608.     case 99 /* greater */ :; 
  2609.     case 100 /* sm_eq */ :; 
  2610.     case 101 /* gr_eq */ :; 
  2611.     case 102 /* idiv */ :; 
  2612.     case 103 /* imod */ :; 
  2613.     case 104 /* power */ :; 
  2614.       xxUnion.xxLocalRecoverySet = 0; yyBinary (& Binary1, & xxUnion); /*  */
  2615. /* line 309 "eiffel_ise.ell" */
  2616.  Infix_operator0->Tree = mInfix(Binary1.Tree);                        
  2617.       goto xx10;
  2618.     case 6 /* Free_op */ :; 
  2619.       Free_op1 =       EiffelScan_Attribute;
  2620.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2621. /* line 310 "eiffel_ise.ell" */
  2622.  Infix_operator0->Tree = mInfix(mFree_op(Free_op1.Position, Free_op1.Ident));        
  2623.       goto xx10;
  2624.     case 7:;
  2625.     case 8:;
  2626.     case 9:;
  2627.     case 10:;
  2628.     case 11:;
  2629.     case 12:;
  2630.     case 13:;
  2631.     case 14:;
  2632.     case 15:;
  2633.     case 16:;
  2634.     case 17:;
  2635.     case 18:;
  2636.     case 19:;
  2637.     case 20:;
  2638.     case 21:;
  2639.     case 22:;
  2640.     case 23:;
  2641.     case 24:;
  2642.     case 25:;
  2643.     case 26:;
  2644.     case 27:;
  2645.     case 28:;
  2646.     case 31:;
  2647.     case 32:;
  2648.     case 34:;
  2649.     case 35:;
  2650.     case 37:;
  2651.     case 38:;
  2652.     case 39:;
  2653.     case 40:;
  2654.     case 41:;
  2655.     case 42:;
  2656.     case 43:;
  2657.     case 44:;
  2658.     case 45:;
  2659.     case 46:;
  2660.     case 47:;
  2661.     case 48:;
  2662.     case 49:;
  2663.     case 50:;
  2664.     case 51:;
  2665.     case 52:;
  2666.     case 53:;
  2667.     case 54:;
  2668.     case 55:;
  2669.     case 56:;
  2670.     case 57:;
  2671.     case 58:;
  2672.     case 59:;
  2673.     case 60:;
  2674.     case 62:;
  2675.     case 63:;
  2676.     case 64:;
  2677.     case 65:;
  2678.     case 66:;
  2679.     case 67:;
  2680.     case 68:;
  2681.     case 69:;
  2682.     case 70:;
  2683.     case 71:;
  2684.     case 72:;
  2685.     case 73:;
  2686.     case 74:;
  2687.     case 75:;
  2688.     case 77:;
  2689.     case 78:;
  2690.     case 79:;
  2691.     case 80:;
  2692.     case 81:;
  2693.     case 82:;
  2694.     case 83:;
  2695.     case 84:;
  2696.     case 85:;
  2697.     case 86:;
  2698.     case 87:;
  2699.     case 88:;
  2700.     case 89:;
  2701.     case 90:;
  2702.     case 91:;
  2703.     case 92:;
  2704.     case 93:;
  2705.     case 94:;
  2706.     case 95:;
  2707.     default:
  2708.       if (xxIsRepairMode) {
  2709.         xxUnion.xxLocalRecoverySet = 0; yyBinary (& Binary1, & xxUnion); /*  */
  2710. /* line 309 "eiffel_ise.ell" */
  2711.  Infix_operator0->Tree = mInfix(Binary1.Tree);                        
  2712.         goto xx10;
  2713.       }
  2714.       xxExpected (40, 40, xxGlobalRecoverySet); /*  Free_op plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  2715.     }
  2716.   }
  2717.   xx10:;
  2718. }
  2719.  
  2720. static void yyUnary
  2721. # if defined __STDC__ | defined __cplusplus
  2722. (ParserISE_tParsAttribute * Unary0, xxtUnionPtr xxGlobalRecoverySet)
  2723. # else
  2724. (Unary0, xxGlobalRecoverySet)
  2725. ParserISE_tParsAttribute    * Unary0;
  2726. xxtUnionPtr    xxGlobalRecoverySet;
  2727. # endif
  2728. {
  2729.     EiffelScan_tScanAttribute plus1;
  2730.     EiffelScan_tScanAttribute minus1;
  2731.     EiffelScan_tScanAttribute not1;
  2732.   for (;;) {
  2733.     switch (xxToken) {
  2734.     case 105 /* not */ :; 
  2735.       not1 =       EiffelScan_Attribute;
  2736.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2737. /* line 315 "eiffel_ise.ell" */
  2738.  Unary0->Tree = mOper(not1.Position, NOT);                         
  2739.       goto xx11;
  2740.     case 29 /* plus */ :; 
  2741.       plus1 =       EiffelScan_Attribute;
  2742.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2743. /* line 316 "eiffel_ise.ell" */
  2744.  Unary0->Tree = mOper(plus1.Position, PLUS);                         
  2745.       goto xx11;
  2746.     case 30 /* minus */ :; 
  2747.       minus1 =       EiffelScan_Attribute;
  2748.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2749. /* line 317 "eiffel_ise.ell" */
  2750.  Unary0->Tree = mOper(minus1.Position, MINUS);                     
  2751.       goto xx11;
  2752.     case 31:;
  2753.     case 32:;
  2754.     case 33:;
  2755.     case 34:;
  2756.     case 35:;
  2757.     case 36:;
  2758.     case 37:;
  2759.     case 38:;
  2760.     case 39:;
  2761.     case 40:;
  2762.     case 41:;
  2763.     case 42:;
  2764.     case 43:;
  2765.     case 44:;
  2766.     case 45:;
  2767.     case 46:;
  2768.     case 47:;
  2769.     case 48:;
  2770.     case 49:;
  2771.     case 50:;
  2772.     case 51:;
  2773.     case 52:;
  2774.     case 53:;
  2775.     case 54:;
  2776.     case 55:;
  2777.     case 56:;
  2778.     case 57:;
  2779.     case 58:;
  2780.     case 59:;
  2781.     case 60:;
  2782.     case 61:;
  2783.     case 62:;
  2784.     case 63:;
  2785.     case 64:;
  2786.     case 65:;
  2787.     case 66:;
  2788.     case 67:;
  2789.     case 68:;
  2790.     case 69:;
  2791.     case 70:;
  2792.     case 71:;
  2793.     case 72:;
  2794.     case 73:;
  2795.     case 74:;
  2796.     case 75:;
  2797.     case 76:;
  2798.     case 77:;
  2799.     case 78:;
  2800.     case 79:;
  2801.     case 80:;
  2802.     case 81:;
  2803.     case 82:;
  2804.     case 83:;
  2805.     case 84:;
  2806.     case 85:;
  2807.     case 86:;
  2808.     case 87:;
  2809.     case 88:;
  2810.     case 89:;
  2811.     case 90:;
  2812.     case 91:;
  2813.     case 92:;
  2814.     case 93:;
  2815.     case 94:;
  2816.     case 95:;
  2817.     case 96:;
  2818.     case 97:;
  2819.     case 98:;
  2820.     case 99:;
  2821.     case 100:;
  2822.     case 101:;
  2823.     case 102:;
  2824.     case 103:;
  2825.     case 104:;
  2826.     default:
  2827.       if (xxIsRepairMode) {
  2828.         if (xxToken != 105 /* not */)
  2829.           xxRecoveryTerminal (105, 41, xxGlobalRecoverySet, & not1); /*  not */
  2830.         else {
  2831.           not1 =         EiffelScan_Attribute;
  2832.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2833.         }
  2834. /* line 315 "eiffel_ise.ell" */
  2835.  Unary0->Tree = mOper(not1.Position, NOT);                         
  2836.         goto xx11;
  2837.       }
  2838.       xxExpected (44, 44, xxGlobalRecoverySet); /*  plus minus not /  plus minus not */
  2839.     }
  2840.   }
  2841.   xx11:;
  2842. }
  2843.  
  2844. static void yyBinary
  2845. # if defined __STDC__ | defined __cplusplus
  2846. (ParserISE_tParsAttribute * Binary0, xxtUnionPtr xxGlobalRecoverySet)
  2847. # else
  2848. (Binary0, xxGlobalRecoverySet)
  2849. ParserISE_tParsAttribute    * Binary0;
  2850. xxtUnionPtr    xxGlobalRecoverySet;
  2851. # endif
  2852. {
  2853.     EiffelScan_tScanAttribute plus1;
  2854.     EiffelScan_tScanAttribute minus1;
  2855.     EiffelScan_tScanAttribute div1;
  2856.     EiffelScan_tScanAttribute and1;
  2857.     EiffelScan_tScanAttribute else1;
  2858.     EiffelScan_tScanAttribute implies1;
  2859.     EiffelScan_tScanAttribute or1;
  2860.     EiffelScan_tScanAttribute then1;
  2861.     EiffelScan_tScanAttribute xor1;
  2862.     EiffelScan_tScanAttribute times1;
  2863.     EiffelScan_tScanAttribute smaller1;
  2864.     EiffelScan_tScanAttribute greater1;
  2865.     EiffelScan_tScanAttribute sm_eq1;
  2866.     EiffelScan_tScanAttribute gr_eq1;
  2867.     EiffelScan_tScanAttribute idiv1;
  2868.     EiffelScan_tScanAttribute imod1;
  2869.     EiffelScan_tScanAttribute power1;
  2870.   for (;;) {
  2871.     switch (xxToken) {
  2872.     case 103 /* imod */ :; 
  2873.       imod1 =       EiffelScan_Attribute;
  2874.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2875. /* line 321 "eiffel_ise.ell" */
  2876.  Binary0->Tree = mOper(imod1.Position, IMOD);                         
  2877.       goto xx12;
  2878.     case 102 /* idiv */ :; 
  2879.       idiv1 =       EiffelScan_Attribute;
  2880.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2881. /* line 322 "eiffel_ise.ell" */
  2882.  Binary0->Tree = mOper(idiv1.Position, IDIV);                         
  2883.       goto xx12;
  2884.     case 104 /* power */ :; 
  2885.       power1 =       EiffelScan_Attribute;
  2886.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2887. /* line 323 "eiffel_ise.ell" */
  2888.  Binary0->Tree = mOper(power1.Position, POWER);                     
  2889.       goto xx12;
  2890.     case 98 /* smaller */ :; 
  2891.       smaller1 =       EiffelScan_Attribute;
  2892.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2893. /* line 324 "eiffel_ise.ell" */
  2894.  Binary0->Tree = mOper(smaller1.Position, SMALLER);                     
  2895.       goto xx12;
  2896.     case 99 /* greater */ :; 
  2897.       greater1 =       EiffelScan_Attribute;
  2898.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2899. /* line 325 "eiffel_ise.ell" */
  2900.  Binary0->Tree = mOper(greater1.Position, GREATER);                     
  2901.       goto xx12;
  2902.     case 100 /* sm_eq */ :; 
  2903.       sm_eq1 =       EiffelScan_Attribute;
  2904.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2905. /* line 326 "eiffel_ise.ell" */
  2906.  Binary0->Tree = mOper(sm_eq1.Position, SM_EQ);                     
  2907.       goto xx12;
  2908.     case 101 /* gr_eq */ :; 
  2909.       gr_eq1 =       EiffelScan_Attribute;
  2910.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2911. /* line 327 "eiffel_ise.ell" */
  2912.  Binary0->Tree = mOper(gr_eq1.Position, GR_EQ);                     
  2913.       goto xx12;
  2914.     case 29 /* plus */ :; 
  2915.       plus1 =       EiffelScan_Attribute;
  2916.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2917. /* line 328 "eiffel_ise.ell" */
  2918.  Binary0->Tree = mOper(plus1.Position, PLUS);                         
  2919.       goto xx12;
  2920.     case 30 /* minus */ :; 
  2921.       minus1 =       EiffelScan_Attribute;
  2922.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2923. /* line 329 "eiffel_ise.ell" */
  2924.  Binary0->Tree = mOper(minus1.Position, MINUS);                     
  2925.       goto xx12;
  2926.     case 97 /* times */ :; 
  2927.       times1 =       EiffelScan_Attribute;
  2928.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2929. /* line 330 "eiffel_ise.ell" */
  2930.  Binary0->Tree = mOper(times1.Position, TIMES);                     
  2931.       goto xx12;
  2932.     case 33 /* div */ :; 
  2933.       div1 =       EiffelScan_Attribute;
  2934.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2935. /* line 331 "eiffel_ise.ell" */
  2936.  Binary0->Tree = mOper(div1.Position, DIV);                         
  2937.       goto xx12;
  2938.     case 36 /* and */ :; 
  2939.       and1 =       EiffelScan_Attribute;
  2940.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2941. /* line 332 "eiffel_ise.ell" */
  2942.  Binary0->Tree = mOper(and1.Position, AND);                         
  2943.       for (;;) {
  2944.         if ((xxToken == 89 /* then */)) {
  2945.           then1 =           EiffelScan_Attribute;
  2946.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2947. /* line 333 "eiffel_ise.ell" */
  2948.  Binary0->Tree->Oper.op = AND_THEN;                             
  2949.           break;
  2950.         } else if ((xxVerticalSet [xxToken + 216] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' ':' '(' '<<' plus minus 'as' 'creation' Current 'end' 'export' false 'feature' 'frozen' infix 'invariant' 'is' 'old' prefix 'redefine' Result 'select' 'strip' true 'undefine' not Id */) || xxIsRepairMode) break;
  2951.         xxExpected (55, 55, xxGlobalRecoverySet); /*  then /  then */
  2952.       }
  2953.       goto xx12;
  2954.     case 76 /* or */ :; 
  2955.       or1 =       EiffelScan_Attribute;
  2956.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2957. /* line 334 "eiffel_ise.ell" */
  2958.  Binary0->Tree = mOper(or1.Position, OR);                         
  2959.       for (;;) {
  2960.         if ((xxToken == 49 /* else */)) {
  2961.           else1 =           EiffelScan_Attribute;
  2962.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2963. /* line 335 "eiffel_ise.ell" */
  2964.  Binary0->Tree->Oper.op = OR_ELSE;                             
  2965.           break;
  2966.         } else if ((xxVerticalSet [xxToken + 216] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' ':' '(' '<<' plus minus 'as' 'creation' Current 'end' 'export' false 'feature' 'frozen' infix 'invariant' 'is' 'old' prefix 'redefine' Result 'select' 'strip' true 'undefine' not Id */) || xxIsRepairMode) break;
  2967.         xxExpected (57, 57, xxGlobalRecoverySet); /*  else /  else */
  2968.       }
  2969.       goto xx12;
  2970.     case 96 /* xor */ :; 
  2971.       xor1 =       EiffelScan_Attribute;
  2972.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2973. /* line 336 "eiffel_ise.ell" */
  2974.  Binary0->Tree = mOper(xor1.Position, XOR);                         
  2975.       goto xx12;
  2976.     case 61 /* implies */ :; 
  2977.       implies1 =       EiffelScan_Attribute;
  2978.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2979. /* line 337 "eiffel_ise.ell" */
  2980.  Binary0->Tree = mOper(implies1.Position, IMPLIES);                     
  2981.       goto xx12;
  2982.     case 31:;
  2983.     case 32:;
  2984.     case 34:;
  2985.     case 35:;
  2986.     case 37:;
  2987.     case 38:;
  2988.     case 39:;
  2989.     case 40:;
  2990.     case 41:;
  2991.     case 42:;
  2992.     case 43:;
  2993.     case 44:;
  2994.     case 45:;
  2995.     case 46:;
  2996.     case 47:;
  2997.     case 48:;
  2998.     case 49:;
  2999.     case 50:;
  3000.     case 51:;
  3001.     case 52:;
  3002.     case 53:;
  3003.     case 54:;
  3004.     case 55:;
  3005.     case 56:;
  3006.     case 57:;
  3007.     case 58:;
  3008.     case 59:;
  3009.     case 60:;
  3010.     case 62:;
  3011.     case 63:;
  3012.     case 64:;
  3013.     case 65:;
  3014.     case 66:;
  3015.     case 67:;
  3016.     case 68:;
  3017.     case 69:;
  3018.     case 70:;
  3019.     case 71:;
  3020.     case 72:;
  3021.     case 73:;
  3022.     case 74:;
  3023.     case 75:;
  3024.     case 77:;
  3025.     case 78:;
  3026.     case 79:;
  3027.     case 80:;
  3028.     case 81:;
  3029.     case 82:;
  3030.     case 83:;
  3031.     case 84:;
  3032.     case 85:;
  3033.     case 86:;
  3034.     case 87:;
  3035.     case 88:;
  3036.     case 89:;
  3037.     case 90:;
  3038.     case 91:;
  3039.     case 92:;
  3040.     case 93:;
  3041.     case 94:;
  3042.     case 95:;
  3043.     default:
  3044.       if (xxIsRepairMode) {
  3045.         if (xxToken != 103 /* imod */)
  3046.           xxRecoveryTerminal (103, 45, xxGlobalRecoverySet, & imod1); /*  imod */
  3047.         else {
  3048.           imod1 =         EiffelScan_Attribute;
  3049.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3050.         }
  3051. /* line 321 "eiffel_ise.ell" */
  3052.  Binary0->Tree = mOper(imod1.Position, IMOD);                         
  3053.         goto xx12;
  3054.       }
  3055.       xxExpected (60, 60, xxGlobalRecoverySet); /*  plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  3056.     }
  3057.   }
  3058.   xx12:;
  3059. }
  3060.  
  3061. static void yyInheritance
  3062. # if defined __STDC__ | defined __cplusplus
  3063. (ParserISE_tParsAttribute * Inheritance0, xxtUnionPtr xxGlobalRecoverySet)
  3064. # else
  3065. (Inheritance0, xxGlobalRecoverySet)
  3066. ParserISE_tParsAttribute    * Inheritance0;
  3067. xxtUnionPtr    xxGlobalRecoverySet;
  3068. # endif
  3069. {
  3070.   ParserISE_tParsAttribute Parent_list1;
  3071.   xxtUnion xxUnion;
  3072.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3073.   if (xxToken != 64 /* 'inherit' */)
  3074.     xxRecoveryLiteral (64, 61, xxGlobalRecoverySet); /*  expanded 'inherit' Id */
  3075.   else {
  3076.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3077.   }
  3078.   xxUnion.xxLocalRecoverySet = 0; yyParent_list (& Parent_list1, & xxUnion); /*  */
  3079. /* line 342 "eiffel_ise.ell" */
  3080.  Inheritance0->Tree = ReverseTree(Parent_list1.Tree);                    
  3081. }
  3082.  
  3083. static void yyParent_list
  3084. # if defined __STDC__ | defined __cplusplus
  3085. (ParserISE_tParsAttribute * Parent_list0, xxtUnionPtr xxGlobalRecoverySet)
  3086. # else
  3087. (Parent_list0, xxGlobalRecoverySet)
  3088. ParserISE_tParsAttribute    * Parent_list0;
  3089. xxtUnionPtr    xxGlobalRecoverySet;
  3090. # endif
  3091. {
  3092.   ParserISE_tParsAttribute Parent1;
  3093.   xxtUnion xxUnion;
  3094.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3095. /* line 345 "eiffel_ise.ell" */
  3096.  Parent_list0->Tree = mParent_list0();                            
  3097.   for (;;) {
  3098.     if ((xxVerticalSet [xxToken + 216] & 1 << 2 /*  expanded Id */)) {
  3099.       for (;;) {
  3100.         xxUnion.xxLocalRecoverySet = 13; yyParent (& Parent1, & xxUnion); /*  ';' */
  3101. /* line 346 "eiffel_ise.ell" */
  3102.  Parent_list0->Tree = mParent_list1(Parent1.Tree, Parent_list0->Tree);            
  3103.         if (! ((xxToken == 7 /* ';' */))) {
  3104.           if ((xxVerticalSet [xxToken] & 1 << 4 /*  'creation' 'end' 'feature' 'invariant' */)) break;
  3105.           xxExpected (13, 63, xxGlobalRecoverySet); /*  ';' /  ';' expanded Id */
  3106.           if (! ((xxToken == 7 /* ';' */) || (xxVerticalSet [xxToken + 216] & 1 << 2 /*  expanded Id */))) break;
  3107.         }
  3108.         if (xxToken != 7 /* ';' */)
  3109.           xxRecoveryLiteral (7, 63, xxGlobalRecoverySet); /*  ';' expanded Id */
  3110.         else {
  3111.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3112.         }
  3113.       }
  3114.       break;
  3115.     } else if ((xxVerticalSet [xxToken] & 1 << 4 /*  'creation' 'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  3116.     xxExpected (62, 62, xxGlobalRecoverySet); /*  expanded Id /  expanded Id */
  3117.   }
  3118. }
  3119.  
  3120. static void yyParent
  3121. # if defined __STDC__ | defined __cplusplus
  3122. (ParserISE_tParsAttribute * Parent0, xxtUnionPtr xxGlobalRecoverySet)
  3123. # else
  3124. (Parent0, xxGlobalRecoverySet)
  3125. ParserISE_tParsAttribute    * Parent0;
  3126. xxtUnionPtr    xxGlobalRecoverySet;
  3127. # endif
  3128. {
  3129.   ParserISE_tParsAttribute Class_type1;
  3130.   ParserISE_tParsAttribute Feature_adaptation1;
  3131.   xxtUnion xxUnion;
  3132.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3133.   xxUnion.xxLocalRecoverySet = 64; yyClass_type (& Class_type1, & xxUnion); /*  'end' 'export' 'redefine' 'rename' 'select' 'undefine' */
  3134. /* line 351 "eiffel_ise.ell" */
  3135.  Parent0->Tree = mParent(Class_type1.Tree, mFeature_adaptation0());            
  3136.   for (;;) {
  3137.     if ((xxVerticalSet [xxToken + 216] & 1 << 3 /*  'end' 'export' 'redefine' 'rename' 'select' 'undefine' */)) {
  3138.       xxUnion.xxLocalRecoverySet = 0; yyFeature_adaptation (& Feature_adaptation1, & xxUnion); /*  */
  3139. /* line 352 "eiffel_ise.ell" */
  3140.  Parent0->Tree->Parent.Feature_adaptation = Feature_adaptation1.Tree;            
  3141.       break;
  3142.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 4 /*  ';' 'creation' 'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  3143.     xxExpected (64, 64, xxGlobalRecoverySet); /*  'end' 'export' 'redefine' 'rename' 'select' 'undefine' /  'end' 'export' 'redefine' 'rename' 'select' 'undefine' */
  3144.   }
  3145. }
  3146.  
  3147. static void yyFeature_adaptation
  3148. # if defined __STDC__ | defined __cplusplus
  3149. (ParserISE_tParsAttribute * Feature_adaptation0, xxtUnionPtr xxGlobalRecoverySet)
  3150. # else
  3151. (Feature_adaptation0, xxGlobalRecoverySet)
  3152. ParserISE_tParsAttribute    * Feature_adaptation0;
  3153. xxtUnionPtr    xxGlobalRecoverySet;
  3154. # endif
  3155. {
  3156.   ParserISE_tParsAttribute Rename1;
  3157.   ParserISE_tParsAttribute New_exports1;
  3158.   ParserISE_tParsAttribute Undefine1;
  3159.   ParserISE_tParsAttribute Redefine1;
  3160.   ParserISE_tParsAttribute Select1;
  3161.   xxtUnion xxUnion;
  3162.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3163. /* line 355 "eiffel_ise.ell" */
  3164.  Feature_adaptation0->Tree = mFeature_adaptation1(mRename_list0(), mNew_export_list0(),
  3165.                             mFeature_list0(), mFeature_list0(), mFeature_list0());  
  3166.   for (;;) {
  3167.     if ((xxToken == 80 /* 'rename' */)) {
  3168.       xxUnion.xxLocalRecoverySet = 65; yyRename (& Rename1, & xxUnion); /*  'end' 'export' 'redefine' 'select' 'undefine' */
  3169. /* line 357 "eiffel_ise.ell" */
  3170. Feature_adaptation0->Tree->Feature_adaptation1.Rename = Rename1.Tree;            
  3171.       break;
  3172.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 5 /*  'end' 'export' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3173.     xxExpected (64, 64, xxGlobalRecoverySet); /*  'end' 'export' 'redefine' 'rename' 'select' 'undefine' /  'end' 'export' 'redefine' 'rename' 'select' 'undefine' */
  3174.   }
  3175.   for (;;) {
  3176.     if ((xxToken == 54 /* 'export' */)) {
  3177.       xxUnion.xxLocalRecoverySet = 66; yyNew_exports (& New_exports1, & xxUnion); /*  'end' 'redefine' 'select' 'undefine' */
  3178. /* line 358 "eiffel_ise.ell" */
  3179. Feature_adaptation0->Tree->Feature_adaptation1.New_export = New_exports1.Tree;        
  3180.       break;
  3181.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 6 /*  'end' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3182.     xxExpected (65, 65, xxGlobalRecoverySet); /*  'end' 'export' 'redefine' 'select' 'undefine' /  'end' 'export' 'redefine' 'select' 'undefine' */
  3183.   }
  3184.   for (;;) {
  3185.     if ((xxToken == 91 /* 'undefine' */)) {
  3186.       xxUnion.xxLocalRecoverySet = 67; yyUndefine (& Undefine1, & xxUnion); /*  'end' 'redefine' 'select' */
  3187. /* line 359 "eiffel_ise.ell" */
  3188. Feature_adaptation0->Tree->Feature_adaptation1.Undefine = Undefine1.Tree;        
  3189.       break;
  3190.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 7 /*  'end' 'redefine' 'select' */) || xxIsRepairMode) break;
  3191.     xxExpected (66, 66, xxGlobalRecoverySet); /*  'end' 'redefine' 'select' 'undefine' /  'end' 'redefine' 'select' 'undefine' */
  3192.   }
  3193.   for (;;) {
  3194.     if ((xxToken == 79 /* 'redefine' */)) {
  3195.       xxUnion.xxLocalRecoverySet = 68; yyRedefine (& Redefine1, & xxUnion); /*  'end' 'select' */
  3196. /* line 360 "eiffel_ise.ell" */
  3197. Feature_adaptation0->Tree->Feature_adaptation1.Redefine = Redefine1.Tree;        
  3198.       break;
  3199.     } else if ((xxVerticalSet [xxToken + 324] & 1 << 0 /*  'end' 'select' */) || xxIsRepairMode) break;
  3200.     xxExpected (67, 67, xxGlobalRecoverySet); /*  'end' 'redefine' 'select' /  'end' 'redefine' 'select' */
  3201.   }
  3202.   for (;;) {
  3203.     if ((xxToken == 85 /* 'select' */)) {
  3204.       xxUnion.xxLocalRecoverySet = 10; yySelect (& Select1, & xxUnion); /*  'end' */
  3205. /* line 361 "eiffel_ise.ell" */
  3206. Feature_adaptation0->Tree->Feature_adaptation1.Select = Select1.Tree;            
  3207.       break;
  3208.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  3209.     xxExpected (68, 68, xxGlobalRecoverySet); /*  'end' 'select' /  'end' 'select' */
  3210.   }
  3211.   if (xxToken != 51 /* 'end' */)
  3212.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  3213.   else {
  3214.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3215.   }
  3216. }
  3217.  
  3218. static void yyRename
  3219. # if defined __STDC__ | defined __cplusplus
  3220. (ParserISE_tParsAttribute * Rename0, xxtUnionPtr xxGlobalRecoverySet)
  3221. # else
  3222. (Rename0, xxGlobalRecoverySet)
  3223. ParserISE_tParsAttribute    * Rename0;
  3224. xxtUnionPtr    xxGlobalRecoverySet;
  3225. # endif
  3226. {
  3227.   ParserISE_tParsAttribute Rename_list1;
  3228.   xxtUnion xxUnion;
  3229.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3230.   if (xxToken != 80 /* 'rename' */)
  3231.     xxRecoveryLiteral (80, 69, xxGlobalRecoverySet); /*  infix prefix 'rename' Id */
  3232.   else {
  3233.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3234.   }
  3235.   xxUnion.xxLocalRecoverySet = 0; yyRename_list (& Rename_list1, & xxUnion); /*  */
  3236. /* line 367 "eiffel_ise.ell" */
  3237.  Rename0->Tree = ReverseTree(Rename_list1.Tree);                    
  3238. }
  3239.  
  3240. static void yyRename_list
  3241. # if defined __STDC__ | defined __cplusplus
  3242. (ParserISE_tParsAttribute * Rename_list0, xxtUnionPtr xxGlobalRecoverySet)
  3243. # else
  3244. (Rename_list0, xxGlobalRecoverySet)
  3245. ParserISE_tParsAttribute    * Rename_list0;
  3246. xxtUnionPtr    xxGlobalRecoverySet;
  3247. # endif
  3248. {
  3249.   ParserISE_tParsAttribute Rename_pair1;
  3250.   xxtUnion xxUnion;
  3251.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3252. /* line 370 "eiffel_ise.ell" */
  3253.  Rename_list0->Tree = mRename_list0();                            
  3254.   for (;;) {
  3255.     if ((xxVerticalSet [xxToken + 324] & 1 << 1 /*  infix prefix Id */)) {
  3256.       for (;;) {
  3257.         xxUnion.xxLocalRecoverySet = 16; yyRename_pair (& Rename_pair1, & xxUnion); /*  ',' */
  3258. /* line 371 "eiffel_ise.ell" */
  3259.  Rename_list0->Tree = mRename_list1(Rename_pair1.Tree, Rename_list0->Tree);        
  3260.         if (! ((xxToken == 8 /* ',' */))) {
  3261.           if ((xxVerticalSet [xxToken + 216] & 1 << 5 /*  'end' 'export' 'redefine' 'select' 'undefine' */)) break;
  3262.           xxExpected (16, 70, xxGlobalRecoverySet); /*  ',' /  ',' infix prefix Id */
  3263.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 1 /*  infix prefix Id */))) break;
  3264.         }
  3265.         if (xxToken != 8 /* ',' */)
  3266.           xxRecoveryLiteral (8, 70, xxGlobalRecoverySet); /*  ',' infix prefix Id */
  3267.         else {
  3268.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3269.         }
  3270.       }
  3271.       break;
  3272.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 5 /*  'end' 'export' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3273.     xxExpected (35, 35, xxGlobalRecoverySet); /*  infix prefix Id /  infix prefix Id */
  3274.   }
  3275. }
  3276.  
  3277. static void yyRename_pair
  3278. # if defined __STDC__ | defined __cplusplus
  3279. (ParserISE_tParsAttribute * Rename_pair0, xxtUnionPtr xxGlobalRecoverySet)
  3280. # else
  3281. (Rename_pair0, xxGlobalRecoverySet)
  3282. ParserISE_tParsAttribute    * Rename_pair0;
  3283. xxtUnionPtr    xxGlobalRecoverySet;
  3284. # endif
  3285. {
  3286.   ParserISE_tParsAttribute Feature_name1, Feature_name2;
  3287.   xxtUnion xxUnion;
  3288.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3289.   xxUnion.xxLocalRecoverySet = 71; yyFeature_name (& Feature_name1, & xxUnion); /*  'as' infix prefix Id */
  3290.   if (xxToken != 37 /* 'as' */)
  3291.     xxRecoveryLiteral (37, 71, xxGlobalRecoverySet); /*  'as' infix prefix Id */
  3292.   else {
  3293.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3294.   }
  3295.   xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name2, & xxUnion); /*  */
  3296. /* line 376 "eiffel_ise.ell" */
  3297.  Rename_pair0->Tree = mRename_pair(Feature_name1.Tree, Feature_name2.Tree);     
  3298. }
  3299.  
  3300. static void yyClients
  3301. # if defined __STDC__ | defined __cplusplus
  3302. (ParserISE_tParsAttribute * Clients0, xxtUnionPtr xxGlobalRecoverySet)
  3303. # else
  3304. (Clients0, xxGlobalRecoverySet)
  3305. ParserISE_tParsAttribute    * Clients0;
  3306. xxtUnionPtr    xxGlobalRecoverySet;
  3307. # endif
  3308. {
  3309.   ParserISE_tParsAttribute Class_list1;
  3310.   xxtUnion xxUnion;
  3311.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3312.   if (xxToken != 21 /* '{' */)
  3313.     xxRecoveryLiteral (21, 72, xxGlobalRecoverySet); /*  '{' '}' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  3314.   else {
  3315.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3316.   }
  3317.   xxUnion.xxLocalRecoverySet = 73; yyClass_list (& Class_list1, & xxUnion); /*  '}' */
  3318. /* line 380 "eiffel_ise.ell" */
  3319.  comment_ref = no_comment; 
  3320.   if (xxToken != 22 /* '}' */)
  3321.     xxRecoveryLiteral (22, 73, xxGlobalRecoverySet); /*  '}' */
  3322.   else {
  3323.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3324.   }
  3325. /* line 380 "eiffel_ise.ell" */
  3326.  Clients0->Tree = mClients1(Class_list1.Tree);     
  3327. }
  3328.  
  3329. static void yyClass_list
  3330. # if defined __STDC__ | defined __cplusplus
  3331. (ParserISE_tParsAttribute * Class_list0, xxtUnionPtr xxGlobalRecoverySet)
  3332. # else
  3333. (Class_list0, xxGlobalRecoverySet)
  3334. ParserISE_tParsAttribute    * Class_list0;
  3335. xxtUnionPtr    xxGlobalRecoverySet;
  3336. # endif
  3337. {
  3338.   ParserISE_tParsAttribute Formal_generic_name1;
  3339.   xxtUnion xxUnion;
  3340.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3341. /* line 383 "eiffel_ise.ell" */
  3342.  Class_list0->Tree = mnolist();                            
  3343.   for (;;) {
  3344.     if ((xxVerticalSet [xxToken + 324] & 1 << 2 /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */)) {
  3345.       for (;;) {
  3346.         xxUnion.xxLocalRecoverySet = 16; yyFormal_generic_name (& Formal_generic_name1, & xxUnion); /*  ',' */
  3347. /* line 384 "eiffel_ise.ell" */
  3348.  Class_list0->Tree = mlist(Formal_generic_name1.Tree, Class_list0->Tree);    
  3349.         if (! ((xxToken == 8 /* ',' */))) {
  3350.           if ((xxToken == 22 /* '}' */)) break;
  3351.           xxExpected (16, 75, xxGlobalRecoverySet); /*  ',' /  ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  3352.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 2 /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */))) break;
  3353.         }
  3354.         if (xxToken != 8 /* ',' */)
  3355.           xxRecoveryLiteral (8, 75, xxGlobalRecoverySet); /*  ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  3356.         else {
  3357.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3358.         }
  3359.       }
  3360.       break;
  3361.     } else if ((xxToken == 22 /* '}' */) || xxIsRepairMode) break;
  3362.     xxExpected (74, 74, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id /  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  3363.   }
  3364. }
  3365.  
  3366. static void yyNew_exports
  3367. # if defined __STDC__ | defined __cplusplus
  3368. (ParserISE_tParsAttribute * New_exports0, xxtUnionPtr xxGlobalRecoverySet)
  3369. # else
  3370. (New_exports0, xxGlobalRecoverySet)
  3371. ParserISE_tParsAttribute    * New_exports0;
  3372. xxtUnionPtr    xxGlobalRecoverySet;
  3373. # endif
  3374. {
  3375.   ParserISE_tParsAttribute New_export_list1;
  3376.   xxtUnion xxUnion;
  3377.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3378.   if (xxToken != 54 /* 'export' */)
  3379.     xxRecoveryLiteral (54, 76, xxGlobalRecoverySet); /*  ';' '{' 'all' 'export' infix prefix Id */
  3380.   else {
  3381.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3382.   }
  3383.   xxUnion.xxLocalRecoverySet = 0; yyNew_export_list (& New_export_list1, & xxUnion); /*  */
  3384. /* line 391 "eiffel_ise.ell" */
  3385.  New_exports0->Tree = ReverseTree(New_export_list1.Tree);                
  3386. }
  3387.  
  3388. static void yyNew_export_list
  3389. # if defined __STDC__ | defined __cplusplus
  3390. (ParserISE_tParsAttribute * New_export_list0, xxtUnionPtr xxGlobalRecoverySet)
  3391. # else
  3392. (New_export_list0, xxGlobalRecoverySet)
  3393. ParserISE_tParsAttribute    * New_export_list0;
  3394. xxtUnionPtr    xxGlobalRecoverySet;
  3395. # endif
  3396. {
  3397.   ParserISE_tParsAttribute New_export_item1;
  3398.   xxtUnion xxUnion;
  3399.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3400. /* line 394 "eiffel_ise.ell" */
  3401.  New_export_list0->Tree = mNew_export_list0();                        
  3402.   for (;;) {
  3403.     if ((xxVerticalSet [xxToken + 324] & 1 << 3 /*  ';' '{' 'all' infix prefix Id */)) {
  3404.       for (;;) {
  3405.         xxUnion.xxLocalRecoverySet = 13; yyNew_export_item (& New_export_item1, & xxUnion); /*  ';' */
  3406. /* line 395 "eiffel_ise.ell" */
  3407.  New_export_list0->Tree = mNew_export_list1(New_export_item1.Tree, New_export_list0->Tree); 
  3408.         if (! ((xxToken == 7 /* ';' */))) {
  3409.           if ((xxVerticalSet [xxToken + 216] & 1 << 6 /*  'end' 'redefine' 'select' 'undefine' */)) break;
  3410.           xxExpected (13, 77, xxGlobalRecoverySet); /*  ';' /  ';' '{' 'all' infix prefix Id */
  3411.           if (! ((xxToken == 7 /* ';' */) || (xxVerticalSet [xxToken + 324] & 1 << 3 /*  ';' '{' 'all' infix prefix Id */))) break;
  3412.         }
  3413.         if (xxToken != 7 /* ';' */)
  3414.           xxRecoveryLiteral (7, 77, xxGlobalRecoverySet); /*  ';' '{' 'all' infix prefix Id */
  3415.         else {
  3416.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3417.         }
  3418.       }
  3419.       break;
  3420.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 6 /*  'end' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3421.     xxExpected (77, 77, xxGlobalRecoverySet); /*  ';' '{' 'all' infix prefix Id /  ';' '{' 'all' infix prefix Id */
  3422.   }
  3423. }
  3424.  
  3425. static void yyNew_export_item
  3426. # if defined __STDC__ | defined __cplusplus
  3427. (ParserISE_tParsAttribute * New_export_item0, xxtUnionPtr xxGlobalRecoverySet)
  3428. # else
  3429. (New_export_item0, xxGlobalRecoverySet)
  3430. ParserISE_tParsAttribute    * New_export_item0;
  3431. xxtUnionPtr    xxGlobalRecoverySet;
  3432. # endif
  3433. {
  3434.   ParserISE_tParsAttribute Clients1;
  3435.   ParserISE_tParsAttribute Feature_set1;
  3436.   xxtUnion xxUnion;
  3437.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3438. /* line 399 "eiffel_ise.ell" */
  3439.  New_export_item0->Tree = mNew_export_item(mClients0(), mFeature_list0());        
  3440.   for (;;) {
  3441.     if ((xxToken == 21 /* '{' */)) {
  3442.       xxUnion.xxLocalRecoverySet = 79; yyClients (& Clients1, & xxUnion); /*  'all' infix prefix Id */
  3443. /* line 400 "eiffel_ise.ell" */
  3444.  New_export_item0->Tree->New_export_item.Clients = Clients1.Tree;            
  3445.       break;
  3446.     } else if ((xxVerticalSet [xxToken + 324] & 1 << 4 /*  ';' 'all' 'end' infix prefix 'redefine' 'select' 'undefine' Id */) || xxIsRepairMode) break;
  3447.     xxExpected (78, 78, xxGlobalRecoverySet); /*  '{' 'all' infix prefix Id /  '{' 'all' infix prefix Id */
  3448.   }
  3449.   xxUnion.xxLocalRecoverySet = 0; yyFeature_set (& Feature_set1, & xxUnion); /*  */
  3450. /* line 401 "eiffel_ise.ell" */
  3451.  New_export_item0->Tree->New_export_item.Feature_set= Feature_set1.Tree;        
  3452. }
  3453.  
  3454. static void yyFeature_set
  3455. # if defined __STDC__ | defined __cplusplus
  3456. (ParserISE_tParsAttribute * Feature_set0, xxtUnionPtr xxGlobalRecoverySet)
  3457. # else
  3458. (Feature_set0, xxGlobalRecoverySet)
  3459. ParserISE_tParsAttribute    * Feature_set0;
  3460. xxtUnionPtr    xxGlobalRecoverySet;
  3461. # endif
  3462. {
  3463.   ParserISE_tParsAttribute Feature_list1;
  3464.   xxtUnion xxUnion;
  3465.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3466.   for (;;) {
  3467.     switch (xxToken) {
  3468.     case 7 /* ';' */ :; 
  3469.     case 51 /* 'end' */ :; 
  3470.     case 63 /* infix */ :; 
  3471.     case 77 /* prefix */ :; 
  3472.     case 79 /* 'redefine' */ :; 
  3473.     case 85 /* 'select' */ :; 
  3474.     case 91 /* 'undefine' */ :; 
  3475.     case 106 /* Id */ :; 
  3476.       xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  3477. /* line 405 "eiffel_ise.ell" */
  3478.  Feature_set0->Tree = ReverseTree(Feature_list1.Tree);                    
  3479.       goto xx13;
  3480.     case 35 /* 'all' */ :; 
  3481.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3482. /* line 406 "eiffel_ise.ell" */
  3483.  Feature_set0->Tree = mAll();                                
  3484.       goto xx13;
  3485.     case 8:;
  3486.     case 9:;
  3487.     case 10:;
  3488.     case 11:;
  3489.     case 12:;
  3490.     case 13:;
  3491.     case 14:;
  3492.     case 15:;
  3493.     case 16:;
  3494.     case 17:;
  3495.     case 18:;
  3496.     case 19:;
  3497.     case 20:;
  3498.     case 21:;
  3499.     case 22:;
  3500.     case 23:;
  3501.     case 24:;
  3502.     case 25:;
  3503.     case 26:;
  3504.     case 27:;
  3505.     case 28:;
  3506.     case 29:;
  3507.     case 30:;
  3508.     case 31:;
  3509.     case 32:;
  3510.     case 33:;
  3511.     case 34:;
  3512.     case 36:;
  3513.     case 37:;
  3514.     case 38:;
  3515.     case 39:;
  3516.     case 40:;
  3517.     case 41:;
  3518.     case 42:;
  3519.     case 43:;
  3520.     case 44:;
  3521.     case 45:;
  3522.     case 46:;
  3523.     case 47:;
  3524.     case 48:;
  3525.     case 49:;
  3526.     case 50:;
  3527.     case 52:;
  3528.     case 53:;
  3529.     case 54:;
  3530.     case 55:;
  3531.     case 56:;
  3532.     case 57:;
  3533.     case 58:;
  3534.     case 59:;
  3535.     case 60:;
  3536.     case 61:;
  3537.     case 62:;
  3538.     case 64:;
  3539.     case 65:;
  3540.     case 66:;
  3541.     case 67:;
  3542.     case 68:;
  3543.     case 69:;
  3544.     case 70:;
  3545.     case 71:;
  3546.     case 72:;
  3547.     case 73:;
  3548.     case 74:;
  3549.     case 75:;
  3550.     case 76:;
  3551.     case 78:;
  3552.     case 80:;
  3553.     case 81:;
  3554.     case 82:;
  3555.     case 83:;
  3556.     case 84:;
  3557.     case 86:;
  3558.     case 87:;
  3559.     case 88:;
  3560.     case 89:;
  3561.     case 90:;
  3562.     case 92:;
  3563.     case 93:;
  3564.     case 94:;
  3565.     case 95:;
  3566.     case 96:;
  3567.     case 97:;
  3568.     case 98:;
  3569.     case 99:;
  3570.     case 100:;
  3571.     case 101:;
  3572.     case 102:;
  3573.     case 103:;
  3574.     case 104:;
  3575.     case 105:;
  3576.     default:
  3577.       if (xxIsRepairMode) {
  3578.         xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  3579. /* line 405 "eiffel_ise.ell" */
  3580.  Feature_set0->Tree = ReverseTree(Feature_list1.Tree);                    
  3581.         goto xx13;
  3582.       }
  3583. xxUnexpected (79, xxGlobalRecoverySet); /*  'all' infix prefix Id */
  3584.     }
  3585.   }
  3586.   xx13:;
  3587. }
  3588.  
  3589. static void yyFeature_list
  3590. # if defined __STDC__ | defined __cplusplus
  3591. (ParserISE_tParsAttribute * Feature_list0, xxtUnionPtr xxGlobalRecoverySet)
  3592. # else
  3593. (Feature_list0, xxGlobalRecoverySet)
  3594. ParserISE_tParsAttribute    * Feature_list0;
  3595. xxtUnionPtr    xxGlobalRecoverySet;
  3596. # endif
  3597. {
  3598.   ParserISE_tParsAttribute Feature_name1;
  3599.   xxtUnion xxUnion;
  3600.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3601. /* line 409 "eiffel_ise.ell" */
  3602.  Feature_list0->Tree = mFeature_list0();                        
  3603.   for (;;) {
  3604.     if ((xxVerticalSet [xxToken + 324] & 1 << 1 /*  infix prefix Id */)) {
  3605.       for (;;) {
  3606.         xxUnion.xxLocalRecoverySet = 16; yyFeature_name (& Feature_name1, & xxUnion); /*  ',' */
  3607. /* line 410 "eiffel_ise.ell" */
  3608.  Feature_list0->Tree = mFeature_list1(Feature_name1.Tree, Feature_list0->Tree);    
  3609.         if (! ((xxToken == 8 /* ',' */))) {
  3610.           if ((xxVerticalSet [xxToken + 324] & 1 << 5 /*  ';' 'creation' 'end' 'feature' 'invariant' 'redefine' 'select' 'undefine' */)) break;
  3611.           xxExpected (16, 70, xxGlobalRecoverySet); /*  ',' /  ',' infix prefix Id */
  3612.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 1 /*  infix prefix Id */))) break;
  3613.         }
  3614.         if (xxToken != 8 /* ',' */)
  3615.           xxRecoveryLiteral (8, 70, xxGlobalRecoverySet); /*  ',' infix prefix Id */
  3616.         else {
  3617.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3618.         }
  3619.       }
  3620.       break;
  3621.     } else if ((xxVerticalSet [xxToken + 324] & 1 << 5 /*  ';' 'creation' 'end' 'feature' 'invariant' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3622.     xxExpected (35, 35, xxGlobalRecoverySet); /*  infix prefix Id /  infix prefix Id */
  3623.   }
  3624. }
  3625.  
  3626. static void yyFormal_arguments
  3627. # if defined __STDC__ | defined __cplusplus
  3628. (ParserISE_tParsAttribute * Formal_arguments0, xxtUnionPtr xxGlobalRecoverySet)
  3629. # else
  3630. (Formal_arguments0, xxGlobalRecoverySet)
  3631. ParserISE_tParsAttribute    * Formal_arguments0;
  3632. xxtUnionPtr    xxGlobalRecoverySet;
  3633. # endif
  3634. {
  3635.   ParserISE_tParsAttribute Entity_declaration_list1;
  3636.   xxtUnion xxUnion;
  3637.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3638.   if (xxToken != 17 /* '(' */)
  3639.     xxRecoveryLiteral (17, 81, xxGlobalRecoverySet); /*  '(' ')' Id */
  3640.   else {
  3641.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3642.   }
  3643.   xxUnion.xxLocalRecoverySet = 82; yyEntity_declaration_list (& Entity_declaration_list1, & xxUnion); /*  ')' */
  3644.   if (xxToken != 18 /* ')' */)
  3645.     xxRecoveryLiteral (18, 82, xxGlobalRecoverySet); /*  ')' */
  3646.   else {
  3647.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3648.   }
  3649. /* line 416 "eiffel_ise.ell" */
  3650.  Formal_arguments0->Tree = ReverseTree(Entity_declaration_list1.Tree);        
  3651. }
  3652.  
  3653. static void yyEntity_declaration_list
  3654. # if defined __STDC__ | defined __cplusplus
  3655. (ParserISE_tParsAttribute * Entity_declaration_list0, xxtUnionPtr xxGlobalRecoverySet)
  3656. # else
  3657. (Entity_declaration_list0, xxGlobalRecoverySet)
  3658. ParserISE_tParsAttribute    * Entity_declaration_list0;
  3659. xxtUnionPtr    xxGlobalRecoverySet;
  3660. # endif
  3661. {
  3662.   ParserISE_tParsAttribute Entity_declaration_group1;
  3663.   xxtUnion xxUnion;
  3664.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3665. /* line 419 "eiffel_ise.ell" */
  3666.  Entity_declaration_list0->Tree = mFormal_args0();                
  3667.   for (;;) {
  3668.     if ((xxToken == 106 /* Id */)) {
  3669.       xxUnion.xxLocalRecoverySet = 13; yyEntity_declaration_group (& Entity_declaration_group1, & xxUnion); /*  ';' */
  3670. /* line 420 "eiffel_ise.ell" */
  3671.  Entity_declaration_list0->Tree = mFormal_args1(Entity_declaration_group1.Tree,
  3672.                                      Entity_declaration_list0->Tree);    
  3673.       for (;;) {
  3674.         if ((xxToken == 7 /* ';' */)) {
  3675.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3676.           break;
  3677.         } else if ((xxVerticalSet [xxToken + 324] & 1 << 7 /*  ')' deferred do 'external' once Id */) || xxIsRepairMode) break;
  3678.         xxExpected (13, 13, xxGlobalRecoverySet); /*  ';' /  ';' */
  3679.       }
  3680.     } else if ((xxVerticalSet [xxToken + 324] & 1 << 6 /*  ')' deferred do 'external' once */) || xxIsRepairMode) break;
  3681.     else
  3682.       xxExpected (83, 83, xxGlobalRecoverySet); /*  Id /  Id */
  3683.   }
  3684. }
  3685.  
  3686. static void yyEntity_declaration_group
  3687. # if defined __STDC__ | defined __cplusplus
  3688. (ParserISE_tParsAttribute * Entity_declaration_group0, xxtUnionPtr xxGlobalRecoverySet)
  3689. # else
  3690. (Entity_declaration_group0, xxGlobalRecoverySet)
  3691. ParserISE_tParsAttribute    * Entity_declaration_group0;
  3692. xxtUnionPtr    xxGlobalRecoverySet;
  3693. # endif
  3694. {
  3695.   ParserISE_tParsAttribute Type_mark1;
  3696.   ParserISE_tParsAttribute Identifier_list1;
  3697.   xxtUnion xxUnion;
  3698.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3699.   xxUnion.xxLocalRecoverySet = 84; yyIdentifier_list (& Identifier_list1, & xxUnion); /*  ':' */
  3700.   xxUnion.xxLocalRecoverySet = 0; yyType_mark (& Type_mark1, & xxUnion); /*  */
  3701. /* line 426 "eiffel_ise.ell" */
  3702.  Entity_declaration_group0->Tree = mEntity_decl_group(Identifier_list1.Tree, 
  3703.                                             Type_mark1.Tree);    
  3704. }
  3705.  
  3706. static void yyIdentifier_list
  3707. # if defined __STDC__ | defined __cplusplus
  3708. (ParserISE_tParsAttribute * Identifier_list0, xxtUnionPtr xxGlobalRecoverySet)
  3709. # else
  3710. (Identifier_list0, xxGlobalRecoverySet)
  3711. ParserISE_tParsAttribute    * Identifier_list0;
  3712. xxtUnionPtr    xxGlobalRecoverySet;
  3713. # endif
  3714. {
  3715.   ParserISE_tParsAttribute Identifier1;
  3716.   xxtUnion xxUnion;
  3717.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3718. /* line 430 "eiffel_ise.ell" */
  3719.  Identifier_list0->Tree = mnolist();                            
  3720.   for (;;) {
  3721.     xxUnion.xxLocalRecoverySet = 16; yyIdentifier (& Identifier1, & xxUnion); /*  ',' */
  3722. /* line 431 "eiffel_ise.ell" */
  3723.  Identifier_list0->Tree = mlist(Identifier1.Tree, Identifier_list0->Tree);        
  3724.     if (! ((xxToken == 8 /* ',' */))) {
  3725.       if ((xxToken == 9 /* ':' */)) break;
  3726.       xxExpected (16, 85, xxGlobalRecoverySet); /*  ',' /  ',' Id */
  3727.       if (! ((xxToken == 8 /* ',' */) || (xxToken == 106 /* Id */))) break;
  3728.     }
  3729.     if (xxToken != 8 /* ',' */)
  3730.       xxRecoveryLiteral (8, 85, xxGlobalRecoverySet); /*  ',' Id */
  3731.     else {
  3732.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3733.     }
  3734.   }
  3735. /* line 432 "eiffel_ise.ell" */
  3736.  Identifier_list0->Tree = ReverseTree(Identifier_list0->Tree);                
  3737. }
  3738.  
  3739. static void yyType_mark
  3740. # if defined __STDC__ | defined __cplusplus
  3741. (ParserISE_tParsAttribute * Type_mark0, xxtUnionPtr xxGlobalRecoverySet)
  3742. # else
  3743. (Type_mark0, xxGlobalRecoverySet)
  3744. ParserISE_tParsAttribute    * Type_mark0;
  3745. xxtUnionPtr    xxGlobalRecoverySet;
  3746. # endif
  3747. {
  3748.   ParserISE_tParsAttribute Type1;
  3749.   xxtUnion xxUnion;
  3750.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3751.   if (xxToken != 9 /* ':' */)
  3752.     xxRecoveryLiteral (9, 86, xxGlobalRecoverySet); /*  ':' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  3753.   else {
  3754.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3755.   }
  3756.   xxUnion.xxLocalRecoverySet = 0; yyType (& Type1, & xxUnion); /*  */
  3757. /* line 436 "eiffel_ise.ell" */
  3758.  Type_mark0->Tree = Type1.Tree;                            
  3759. }
  3760.  
  3761. static void yyRoutine
  3762. # if defined __STDC__ | defined __cplusplus
  3763. (ParserISE_tParsAttribute * Routine0, xxtUnionPtr xxGlobalRecoverySet)
  3764. # else
  3765. (Routine0, xxGlobalRecoverySet)
  3766. ParserISE_tParsAttribute    * Routine0;
  3767. xxtUnionPtr    xxGlobalRecoverySet;
  3768. # endif
  3769. {
  3770.   ParserISE_tParsAttribute Obsolete1;
  3771.   ParserISE_tParsAttribute Precondition1;
  3772.   ParserISE_tParsAttribute Local_declarations1;
  3773.   ParserISE_tParsAttribute Routine_body1;
  3774.   ParserISE_tParsAttribute Postcondition1;
  3775.   ParserISE_tParsAttribute Rescue1;
  3776.   xxtUnion xxUnion;
  3777.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3778. /* line 440 "eiffel_ise.ell" */
  3779.  Routine0->Tree = mRoutine(mString0(), 
  3780.                             no_comment, 
  3781.                             mCondition0(), 
  3782.                             mFormal_args0(), 
  3783.                             mRoutine_body0(), 
  3784.                                 mCondition0(), 
  3785.                             mCompound0(), 
  3786.                             no_comment);                        
  3787.   for (;;) {
  3788.     if ((xxToken == 73 /* 'obsolete' */)) {
  3789.       xxUnion.xxLocalRecoverySet = 89; yyObsolete (& Obsolete1, & xxUnion); /*  deferred do 'end' 'ensure' 'external' 'local' once 'require' 'rescue' */
  3790. /* line 448 "eiffel_ise.ell" */
  3791.  Routine0->Tree->Routine.Obsolete = Obsolete1.Tree;                    
  3792.       break;
  3793.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 0 /*  deferred do 'external' 'local' once 'require' */) || xxIsRepairMode) break;
  3794.     xxExpected (87, 88, xxGlobalRecoverySet); /*  deferred do 'external' 'local' 'obsolete' once 'require' /  deferred do 'end' 'ensure' 'external' 'local' 'obsolete' once 'require' 'rescue' */
  3795.   }
  3796. /* line 449 "eiffel_ise.ell" */
  3797.  Routine0->Tree->Routine.comment = comment_ref;                    
  3798.   for (;;) {
  3799.     if ((xxToken == 81 /* 'require' */)) {
  3800.       xxUnion.xxLocalRecoverySet = 91; yyPrecondition (& Precondition1, & xxUnion); /*  deferred do 'end' 'ensure' 'external' 'local' once 'rescue' */
  3801. /* line 450 "eiffel_ise.ell" */
  3802.  Routine0->Tree->Routine.Precondition = Precondition1.Tree;                
  3803.       break;
  3804.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 1 /*  deferred do 'external' 'local' once */) || xxIsRepairMode) break;
  3805.     xxExpected (90, 89, xxGlobalRecoverySet); /*  deferred do 'external' 'local' once 'require' /  deferred do 'end' 'ensure' 'external' 'local' once 'require' 'rescue' */
  3806.   }
  3807.   for (;;) {
  3808.     if ((xxToken == 70 /* 'local' */)) {
  3809.       xxUnion.xxLocalRecoverySet = 93; yyLocal_declarations (& Local_declarations1, & xxUnion); /*  deferred do 'end' 'ensure' 'external' once 'rescue' */
  3810. /* line 451 "eiffel_ise.ell" */
  3811.  Routine0->Tree->Routine.Local_decls  = Local_declarations1.Tree;            
  3812.       break;
  3813.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 2 /*  deferred do 'external' once */) || xxIsRepairMode) break;
  3814.     xxExpected (92, 91, xxGlobalRecoverySet); /*  deferred do 'external' 'local' once /  deferred do 'end' 'ensure' 'external' 'local' once 'rescue' */
  3815.   }
  3816.   xxUnion.xxLocalRecoverySet = 94; yyRoutine_body (& Routine_body1, & xxUnion); /*  'end' 'ensure' 'rescue' */
  3817. /* line 452 "eiffel_ise.ell" */
  3818.  Routine0->Tree->Routine.Routine_body = Routine_body1.Tree;                
  3819.   for (;;) {
  3820.     if ((xxToken == 52 /* 'ensure' */)) {
  3821.       xxUnion.xxLocalRecoverySet = 95; yyPostcondition (& Postcondition1, & xxUnion); /*  'end' 'rescue' */
  3822. /* line 453 "eiffel_ise.ell" */
  3823.  Routine0->Tree->Routine.Postcondition = Postcondition1.Tree;                
  3824.       break;
  3825.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 3 /*  'end' 'rescue' */) || xxIsRepairMode) break;
  3826.     xxExpected (94, 94, xxGlobalRecoverySet); /*  'end' 'ensure' 'rescue' /  'end' 'ensure' 'rescue' */
  3827.   }
  3828.   for (;;) {
  3829.     if ((xxToken == 82 /* 'rescue' */)) {
  3830.       xxUnion.xxLocalRecoverySet = 10; yyRescue (& Rescue1, & xxUnion); /*  'end' */
  3831. /* line 454 "eiffel_ise.ell" */
  3832.  Routine0->Tree->Routine.Rescue = Rescue1.Tree;                    
  3833.       break;
  3834.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  3835.     xxExpected (95, 95, xxGlobalRecoverySet); /*  'end' 'rescue' /  'end' 'rescue' */
  3836.   }
  3837. /* line 455 "eiffel_ise.ell" */
  3838.  comment_ref = no_comment;                                
  3839.   if (xxToken != 51 /* 'end' */)
  3840.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  3841.   else {
  3842.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3843.   }
  3844. /* line 457 "eiffel_ise.ell" */
  3845.  Routine0->Tree->Routine.end_comment = comment_ref;                    
  3846. }
  3847.  
  3848. static void yyRoutine_body
  3849. # if defined __STDC__ | defined __cplusplus
  3850. (ParserISE_tParsAttribute * Routine_body0, xxtUnionPtr xxGlobalRecoverySet)
  3851. # else
  3852. (Routine_body0, xxGlobalRecoverySet)
  3853. ParserISE_tParsAttribute    * Routine_body0;
  3854. xxtUnionPtr    xxGlobalRecoverySet;
  3855. # endif
  3856. {
  3857.   ParserISE_tParsAttribute Effective1;
  3858.   ParserISE_tParsAttribute Deferred1;
  3859.   xxtUnion xxUnion;
  3860.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3861.   for (;;) {
  3862.     switch (xxToken) {
  3863.     case 47 /* do */ :; 
  3864.     case 55 /* 'external' */ :; 
  3865.     case 75 /* once */ :; 
  3866.       xxUnion.xxLocalRecoverySet = 0; yyEffective (& Effective1, & xxUnion); /*  */
  3867. /* line 461 "eiffel_ise.ell" */
  3868.  Routine_body0->Tree = Effective1.Tree;                        
  3869.       goto xx14;
  3870.     case 46 /* deferred */ :; 
  3871.       xxUnion.xxLocalRecoverySet = 0; yyDeferred (& Deferred1, & xxUnion); /*  */
  3872. /* line 462 "eiffel_ise.ell" */
  3873.  Routine_body0->Tree = Deferred1.Tree;                            
  3874.       goto xx14;
  3875.     case 48:;
  3876.     case 49:;
  3877.     case 50:;
  3878.     case 51:;
  3879.     case 52:;
  3880.     case 53:;
  3881.     case 54:;
  3882.     case 56:;
  3883.     case 57:;
  3884.     case 58:;
  3885.     case 59:;
  3886.     case 60:;
  3887.     case 61:;
  3888.     case 62:;
  3889.     case 63:;
  3890.     case 64:;
  3891.     case 65:;
  3892.     case 66:;
  3893.     case 67:;
  3894.     case 68:;
  3895.     case 69:;
  3896.     case 70:;
  3897.     case 71:;
  3898.     case 72:;
  3899.     case 73:;
  3900.     case 74:;
  3901.     default:
  3902.       if (xxIsRepairMode) {
  3903.         xxUnion.xxLocalRecoverySet = 0; yyEffective (& Effective1, & xxUnion); /*  */
  3904. /* line 461 "eiffel_ise.ell" */
  3905.  Routine_body0->Tree = Effective1.Tree;                        
  3906.         goto xx14;
  3907.       }
  3908.       xxExpected (96, 96, xxGlobalRecoverySet); /*  deferred do 'external' once /  deferred do 'external' once */
  3909.     }
  3910.   }
  3911.   xx14:;
  3912. }
  3913.  
  3914. static void yyEffective
  3915. # if defined __STDC__ | defined __cplusplus
  3916. (ParserISE_tParsAttribute * Effective0, xxtUnionPtr xxGlobalRecoverySet)
  3917. # else
  3918. (Effective0, xxGlobalRecoverySet)
  3919. ParserISE_tParsAttribute    * Effective0;
  3920. xxtUnionPtr    xxGlobalRecoverySet;
  3921. # endif
  3922. {
  3923.   ParserISE_tParsAttribute Internal1;
  3924.   ParserISE_tParsAttribute External1;
  3925.   xxtUnion xxUnion;
  3926.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3927.   for (;;) {
  3928.     switch (xxToken) {
  3929.     case 47 /* do */ :; 
  3930.     case 75 /* once */ :; 
  3931.       xxUnion.xxLocalRecoverySet = 0; yyInternal (& Internal1, & xxUnion); /*  */
  3932. /* line 466 "eiffel_ise.ell" */
  3933.  Effective0->Tree = Internal1.Tree;                            
  3934.       goto xx15;
  3935.     case 55 /* 'external' */ :; 
  3936.       xxUnion.xxLocalRecoverySet = 0; yyExternal (& External1, & xxUnion); /*  */
  3937. /* line 467 "eiffel_ise.ell" */
  3938.  Effective0->Tree = External1.Tree;                            
  3939.       goto xx15;
  3940.     case 48:;
  3941.     case 49:;
  3942.     case 50:;
  3943.     case 51:;
  3944.     case 52:;
  3945.     case 53:;
  3946.     case 54:;
  3947.     case 56:;
  3948.     case 57:;
  3949.     case 58:;
  3950.     case 59:;
  3951.     case 60:;
  3952.     case 61:;
  3953.     case 62:;
  3954.     case 63:;
  3955.     case 64:;
  3956.     case 65:;
  3957.     case 66:;
  3958.     case 67:;
  3959.     case 68:;
  3960.     case 69:;
  3961.     case 70:;
  3962.     case 71:;
  3963.     case 72:;
  3964.     case 73:;
  3965.     case 74:;
  3966.     default:
  3967.       if (xxIsRepairMode) {
  3968.         xxUnion.xxLocalRecoverySet = 0; yyInternal (& Internal1, & xxUnion); /*  */
  3969. /* line 466 "eiffel_ise.ell" */
  3970.  Effective0->Tree = Internal1.Tree;                            
  3971.         goto xx15;
  3972.       }
  3973.       xxExpected (97, 97, xxGlobalRecoverySet); /*  do 'external' once /  do 'external' once */
  3974.     }
  3975.   }
  3976.   xx15:;
  3977. }
  3978.  
  3979. static void yyInternal
  3980. # if defined __STDC__ | defined __cplusplus
  3981. (ParserISE_tParsAttribute * Internal0, xxtUnionPtr xxGlobalRecoverySet)
  3982. # else
  3983. (Internal0, xxGlobalRecoverySet)
  3984. ParserISE_tParsAttribute    * Internal0;
  3985. xxtUnionPtr    xxGlobalRecoverySet;
  3986. # endif
  3987. {
  3988.     EiffelScan_tScanAttribute do1;
  3989.     EiffelScan_tScanAttribute once1;
  3990.   ParserISE_tParsAttribute Compound1;
  3991.   xxtUnion xxUnion;
  3992.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3993.   for (;;) {
  3994.     switch (xxToken) {
  3995.     case 47 /* do */ :; 
  3996.       do1 =       EiffelScan_Attribute;
  3997.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3998.       xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  3999. /* line 471 "eiffel_ise.ell" */
  4000.  Internal0->Tree = mDo_body(ReverseTree(Compound1.Tree));                
  4001.       goto xx16;
  4002.     case 75 /* once */ :; 
  4003.       once1 =       EiffelScan_Attribute;
  4004.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4005.       xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  4006. /* line 472 "eiffel_ise.ell" */
  4007.  Internal0->Tree = mOnce_body(ReverseTree(Compound1.Tree));                
  4008.       goto xx16;
  4009.     case 48:;
  4010.     case 49:;
  4011.     case 50:;
  4012.     case 51:;
  4013.     case 52:;
  4014.     case 53:;
  4015.     case 54:;
  4016.     case 55:;
  4017.     case 56:;
  4018.     case 57:;
  4019.     case 58:;
  4020.     case 59:;
  4021.     case 60:;
  4022.     case 61:;
  4023.     case 62:;
  4024.     case 63:;
  4025.     case 64:;
  4026.     case 65:;
  4027.     case 66:;
  4028.     case 67:;
  4029.     case 68:;
  4030.     case 69:;
  4031.     case 70:;
  4032.     case 71:;
  4033.     case 72:;
  4034.     case 73:;
  4035.     case 74:;
  4036.     default:
  4037.       if (xxIsRepairMode) {
  4038.         if (xxToken != 47 /* do */)
  4039.           xxRecoveryTerminal (47, 98, xxGlobalRecoverySet, & do1); /*  ';' '!' '!!' '(' 'check' Current 'debug' do 'from' 'if' 'inspect' Result retry Id */
  4040.         else {
  4041.           do1 =         EiffelScan_Attribute;
  4042.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4043.         }
  4044.         xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  4045. /* line 471 "eiffel_ise.ell" */
  4046.  Internal0->Tree = mDo_body(ReverseTree(Compound1.Tree));                
  4047.         goto xx16;
  4048.       }
  4049.       xxExpected (100, 100, xxGlobalRecoverySet); /*  do once /  do once */
  4050.     }
  4051.   }
  4052.   xx16:;
  4053. }
  4054.  
  4055. static void yyDeferred
  4056. # if defined __STDC__ | defined __cplusplus
  4057. (ParserISE_tParsAttribute * Deferred0, xxtUnionPtr xxGlobalRecoverySet)
  4058. # else
  4059. (Deferred0, xxGlobalRecoverySet)
  4060. ParserISE_tParsAttribute    * Deferred0;
  4061. xxtUnionPtr    xxGlobalRecoverySet;
  4062. # endif
  4063. {
  4064.     EiffelScan_tScanAttribute deferred1;
  4065.   if (xxToken != 46 /* deferred */)
  4066.     xxRecoveryTerminal (46, 101, xxGlobalRecoverySet, & deferred1); /*  deferred */
  4067.   else {
  4068.     deferred1 =   EiffelScan_Attribute;
  4069.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4070.   }
  4071. /* line 477 "eiffel_ise.ell" */
  4072.  Deferred0->Tree = mDeferred(deferred1.Position);                    
  4073. }
  4074.  
  4075. static void yyLocal_declarations
  4076. # if defined __STDC__ | defined __cplusplus
  4077. (ParserISE_tParsAttribute * Local_declarations0, xxtUnionPtr xxGlobalRecoverySet)
  4078. # else
  4079. (Local_declarations0, xxGlobalRecoverySet)
  4080. ParserISE_tParsAttribute    * Local_declarations0;
  4081. xxtUnionPtr    xxGlobalRecoverySet;
  4082. # endif
  4083. {
  4084.   ParserISE_tParsAttribute Entity_declaration_list1;
  4085.   xxtUnion xxUnion;
  4086.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4087.   if (xxToken != 70 /* 'local' */)
  4088.     xxRecoveryLiteral (70, 102, xxGlobalRecoverySet); /*  'local' Id */
  4089.   else {
  4090.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4091.   }
  4092.   xxUnion.xxLocalRecoverySet = 0; yyEntity_declaration_list (& Entity_declaration_list1, & xxUnion); /*  */
  4093. /* line 484 "eiffel_ise.ell" */
  4094.  Local_declarations0->Tree = ReverseTree(Entity_declaration_list1.Tree);    
  4095. }
  4096.  
  4097. static void yyInstruction
  4098. # if defined __STDC__ | defined __cplusplus
  4099. (ParserISE_tParsAttribute * Instruction0, xxtUnionPtr xxGlobalRecoverySet)
  4100. # else
  4101. (Instruction0, xxGlobalRecoverySet)
  4102. ParserISE_tParsAttribute    * Instruction0;
  4103. xxtUnionPtr    xxGlobalRecoverySet;
  4104. # endif
  4105. {
  4106.   ParserISE_tParsAttribute Creation1;
  4107.   ParserISE_tParsAttribute Qualified_call1;
  4108.   ParserISE_tParsAttribute Current_instruct1;
  4109.   ParserISE_tParsAttribute Result_instruct1;
  4110.   ParserISE_tParsAttribute Ident_instruct1;
  4111.   ParserISE_tParsAttribute Conditional1;
  4112.   ParserISE_tParsAttribute Multi_branch1;
  4113.   ParserISE_tParsAttribute Loop1;
  4114.   ParserISE_tParsAttribute Debug1;
  4115.   ParserISE_tParsAttribute Check1;
  4116.   ParserISE_tParsAttribute Retry1;
  4117.   xxtUnion xxUnion;
  4118.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4119.   for (;;) {
  4120.     switch (xxToken) {
  4121.     case 11 /* '!' */ :; 
  4122.     case 12 /* '!!' */ :; 
  4123.       xxUnion.xxLocalRecoverySet = 0; yyCreation (& Creation1, & xxUnion); /*  */
  4124. /* line 491 "eiffel_ise.ell" */
  4125.  Instruction0->Tree = Creation1.Tree;                            
  4126.       goto xx17;
  4127.     case 17 /* '(' */ :; 
  4128.       xxUnion.xxLocalRecoverySet = 0; yyQualified_call (& Qualified_call1, & xxUnion); /*  */
  4129. /* line 492 "eiffel_ise.ell" */
  4130.  Instruction0->Tree = Qualified_call1.Tree;                        
  4131.       goto xx17;
  4132.     case 44 /* Current */ :; 
  4133.       xxUnion.xxLocalRecoverySet = 0; yyCurrent_instruct (& Current_instruct1, & xxUnion); /*  */
  4134. /* line 493 "eiffel_ise.ell" */
  4135.  Instruction0->Tree = Current_instruct1.Tree;                        
  4136.       goto xx17;
  4137.     case 83 /* Result */ :; 
  4138.       xxUnion.xxLocalRecoverySet = 0; yyResult_instruct (& Result_instruct1, & xxUnion); /*  */
  4139. /* line 494 "eiffel_ise.ell" */
  4140.  Instruction0->Tree = Result_instruct1.Tree;                        
  4141.       goto xx17;
  4142.     case 106 /* Id */ :; 
  4143.       xxUnion.xxLocalRecoverySet = 0; yyIdent_instruct (& Ident_instruct1, & xxUnion); /*  */
  4144. /* line 495 "eiffel_ise.ell" */
  4145.  Instruction0->Tree = Ident_instruct1.Tree;                        
  4146.       goto xx17;
  4147.     case 60 /* 'if' */ :; 
  4148.       xxUnion.xxLocalRecoverySet = 0; yyConditional (& Conditional1, & xxUnion); /*  */
  4149. /* line 496 "eiffel_ise.ell" */
  4150.  Instruction0->Tree = Conditional1.Tree;                        
  4151.       goto xx17;
  4152.     case 65 /* 'inspect' */ :; 
  4153.       xxUnion.xxLocalRecoverySet = 0; yyMulti_branch (& Multi_branch1, & xxUnion); /*  */
  4154. /* line 497 "eiffel_ise.ell" */
  4155.  Instruction0->Tree = Multi_branch1.Tree;                        
  4156.       goto xx17;
  4157.     case 58 /* 'from' */ :; 
  4158.       xxUnion.xxLocalRecoverySet = 0; yyLoop (& Loop1, & xxUnion); /*  */
  4159. /* line 498 "eiffel_ise.ell" */
  4160.  Instruction0->Tree = Loop1.Tree;                            
  4161.       goto xx17;
  4162.     case 45 /* 'debug' */ :; 
  4163.       xxUnion.xxLocalRecoverySet = 0; yyDebug (& Debug1, & xxUnion); /*  */
  4164. /* line 499 "eiffel_ise.ell" */
  4165.  Instruction0->Tree = Debug1.Tree;                            
  4166.       goto xx17;
  4167.     case 41 /* 'check' */ :; 
  4168.       xxUnion.xxLocalRecoverySet = 0; yyCheck (& Check1, & xxUnion); /*  */
  4169. /* line 500 "eiffel_ise.ell" */
  4170.  Instruction0->Tree = mCheck(Check1.Tree);                        
  4171.       goto xx17;
  4172.     case 84 /* retry */ :; 
  4173.       xxUnion.xxLocalRecoverySet = 0; yyRetry (& Retry1, & xxUnion); /*  */
  4174. /* line 501 "eiffel_ise.ell" */
  4175.  Instruction0->Tree = Retry1.Tree;                            
  4176.       goto xx17;
  4177.     case 7 /* ';' */ :; 
  4178.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4179. /* line 502 "eiffel_ise.ell" */
  4180.  Instruction0->Tree = NoTree;                                
  4181.       goto xx17;
  4182.     case 8:;
  4183.     case 9:;
  4184.     case 10:;
  4185.     case 13:;
  4186.     case 14:;
  4187.     case 15:;
  4188.     case 16:;
  4189.     case 18:;
  4190.     case 19:;
  4191.     case 20:;
  4192.     case 21:;
  4193.     case 22:;
  4194.     case 23:;
  4195.     case 24:;
  4196.     case 25:;
  4197.     case 26:;
  4198.     case 27:;
  4199.     case 28:;
  4200.     case 29:;
  4201.     case 30:;
  4202.     case 31:;
  4203.     case 32:;
  4204.     case 33:;
  4205.     case 34:;
  4206.     case 35:;
  4207.     case 36:;
  4208.     case 37:;
  4209.     case 38:;
  4210.     case 39:;
  4211.     case 40:;
  4212.     case 42:;
  4213.     case 43:;
  4214.     case 46:;
  4215.     case 47:;
  4216.     case 48:;
  4217.     case 49:;
  4218.     case 50:;
  4219.     case 51:;
  4220.     case 52:;
  4221.     case 53:;
  4222.     case 54:;
  4223.     case 55:;
  4224.     case 56:;
  4225.     case 57:;
  4226.     case 59:;
  4227.     case 61:;
  4228.     case 62:;
  4229.     case 63:;
  4230.     case 64:;
  4231.     case 66:;
  4232.     case 67:;
  4233.     case 68:;
  4234.     case 69:;
  4235.     case 70:;
  4236.     case 71:;
  4237.     case 72:;
  4238.     case 73:;
  4239.     case 74:;
  4240.     case 75:;
  4241.     case 76:;
  4242.     case 77:;
  4243.     case 78:;
  4244.     case 79:;
  4245.     case 80:;
  4246.     case 81:;
  4247.     case 82:;
  4248.     case 85:;
  4249.     case 86:;
  4250.     case 87:;
  4251.     case 88:;
  4252.     case 89:;
  4253.     case 90:;
  4254.     case 91:;
  4255.     case 92:;
  4256.     case 93:;
  4257.     case 94:;
  4258.     case 95:;
  4259.     case 96:;
  4260.     case 97:;
  4261.     case 98:;
  4262.     case 99:;
  4263.     case 100:;
  4264.     case 101:;
  4265.     case 102:;
  4266.     case 103:;
  4267.     case 104:;
  4268.     case 105:;
  4269.     default:
  4270.       if (xxIsRepairMode) {
  4271.         xxUnion.xxLocalRecoverySet = 0; yyCurrent_instruct (& Current_instruct1, & xxUnion); /*  */
  4272. /* line 493 "eiffel_ise.ell" */
  4273.  Instruction0->Tree = Current_instruct1.Tree;                        
  4274.         goto xx17;
  4275.       }
  4276.       xxExpected (103, 103, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  4277.     }
  4278.   }
  4279.   xx17:;
  4280. }
  4281.  
  4282. static void yyCurrent_instruct
  4283. # if defined __STDC__ | defined __cplusplus
  4284. (ParserISE_tParsAttribute * Current_instruct0, xxtUnionPtr xxGlobalRecoverySet)
  4285. # else
  4286. (Current_instruct0, xxGlobalRecoverySet)
  4287. ParserISE_tParsAttribute    * Current_instruct0;
  4288. xxtUnionPtr    xxGlobalRecoverySet;
  4289. # endif
  4290. {
  4291.     EiffelScan_tScanAttribute Current1;
  4292.   ParserISE_tParsAttribute Actuals1;
  4293.   ParserISE_tParsAttribute Call_chain1;
  4294.   xxtUnion xxUnion;
  4295.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4296.   if (xxToken != 44 /* Current */)
  4297.     xxRecoveryTerminal (44, 104, xxGlobalRecoverySet, & Current1); /*  '.' '(' Current */
  4298.   else {
  4299.     Current1 =   EiffelScan_Attribute;
  4300.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4301.   }
  4302. /* line 506 "eiffel_ise.ell" */
  4303.  Current_instruct0->Tree = mCall_chain1(mUnqual_call1( mCurrent(Current1.Position), 
  4304.                                         mActuals0()), mCall_chain0());     
  4305.   for (;;) {
  4306.     if ((xxToken == 17 /* '(' */)) {
  4307.       xxUnion.xxLocalRecoverySet = 106; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4308. /* line 508 "eiffel_ise.ell" */
  4309.  Current_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; 
  4310.       break;
  4311.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4312.     xxExpected (105, 105, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4313.   }
  4314.   for (;;) {
  4315.     if ((xxToken == 10 /* '.' */)) {
  4316.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4317.       xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4318. /* line 509 "eiffel_ise.ell" */
  4319.  Current_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4320.       break;
  4321.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4322.     xxExpected (106, 106, xxGlobalRecoverySet); /*  '.' /  '.' */
  4323.   }
  4324. /* line 510 "eiffel_ise.ell" */
  4325.  Current_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Current_instruct0->Tree)); 
  4326. }
  4327.  
  4328. static void yyResult_instruct
  4329. # if defined __STDC__ | defined __cplusplus
  4330. (ParserISE_tParsAttribute * Result_instruct0, xxtUnionPtr xxGlobalRecoverySet)
  4331. # else
  4332. (Result_instruct0, xxGlobalRecoverySet)
  4333. ParserISE_tParsAttribute    * Result_instruct0;
  4334. xxtUnionPtr    xxGlobalRecoverySet;
  4335. # endif
  4336. {
  4337.     EiffelScan_tScanAttribute Result1;
  4338.   ParserISE_tParsAttribute Actuals1;
  4339.   ParserISE_tParsAttribute Call_chain1;
  4340.   ParserISE_tParsAttribute Expression1, Expression2;
  4341.   xxtUnion xxUnion;
  4342.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4343.   if (xxToken != 83 /* Result */)
  4344.     xxRecoveryTerminal (83, 108, xxGlobalRecoverySet, & Result1); /*  '.' '(' ':=' '?=' Result */
  4345.   else {
  4346.     Result1 =   EiffelScan_Attribute;
  4347.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4348.   }
  4349.   for (;;) {
  4350.     switch (xxToken) {
  4351.     case 1 /* Character_constant */ :; 
  4352.     case 2 /* Bit_sequence */ :; 
  4353.     case 3 /* Integer */ :; 
  4354.     case 4 /* Real */ :; 
  4355.     case 5 /* Manifest_string */ :; 
  4356.     case 6 /* Free_op */ :; 
  4357.     case 7 /* ';' */ :; 
  4358.     case 10 /* '.' */ :; 
  4359.     case 11 /* '!' */ :; 
  4360.     case 12 /* '!!' */ :; 
  4361.     case 17 /* '(' */ :; 
  4362.     case 23 /* '<<' */ :; 
  4363.     case 29 /* plus */ :; 
  4364.     case 30 /* minus */ :; 
  4365.     case 41 /* 'check' */ :; 
  4366.     case 44 /* Current */ :; 
  4367.     case 45 /* 'debug' */ :; 
  4368.     case 49 /* else */ :; 
  4369.     case 50 /* 'elseif' */ :; 
  4370.     case 51 /* 'end' */ :; 
  4371.     case 52 /* 'ensure' */ :; 
  4372.     case 56 /* false */ :; 
  4373.     case 58 /* 'from' */ :; 
  4374.     case 60 /* 'if' */ :; 
  4375.     case 65 /* 'inspect' */ :; 
  4376.     case 67 /* 'invariant' */ :; 
  4377.     case 74 /* 'old' */ :; 
  4378.     case 82 /* 'rescue' */ :; 
  4379.     case 83 /* Result */ :; 
  4380.     case 84 /* retry */ :; 
  4381.     case 88 /* 'strip' */ :; 
  4382.     case 90 /* true */ :; 
  4383.     case 93 /* 'until' */ :; 
  4384.     case 94 /* 'variant' */ :; 
  4385.     case 95 /* 'when' */ :; 
  4386.     case 105 /* not */ :; 
  4387.     case 106 /* Id */ :; 
  4388. /* line 515 "eiffel_ise.ell" */
  4389.  Result_instruct0->Tree = mCall_chain1(mUnqual_call1( mResult(Result1.Position), 
  4390.                                         mActuals0()), mCall_chain0());     
  4391.       for (;;) {
  4392.         if ((xxToken == 17 /* '(' */)) {
  4393.           xxUnion.xxLocalRecoverySet = 106; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4394. /* line 517 "eiffel_ise.ell" */
  4395.  Result_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; 
  4396.           break;
  4397.         } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4398.         xxExpected (105, 105, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4399.       }
  4400.       for (;;) {
  4401.         if ((xxToken == 10 /* '.' */)) {
  4402.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4403.           xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4404. /* line 518 "eiffel_ise.ell" */
  4405.  Result_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4406.           break;
  4407.         } else if ((xxVerticalSet [xxToken + 432] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4408.         xxExpected (106, 106, xxGlobalRecoverySet); /*  '.' /  '.' */
  4409.       }
  4410. /* line 519 "eiffel_ise.ell" */
  4411.  Result_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Result_instruct0->Tree)); 
  4412.       goto xx18;
  4413.     case 25 /* ':=' */ :; 
  4414.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4415.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  4416. /* line 520 "eiffel_ise.ell" */
  4417.  Result_instruct0->Tree = mAssign(mResult(Result1.Position), Expression1.Tree);    
  4418.       goto xx18;
  4419.     case 26 /* '?=' */ :; 
  4420.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4421.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression2, & xxUnion); /*  */
  4422. /* line 521 "eiffel_ise.ell" */
  4423.  Result_instruct0->Tree = mRev_assign(mResult(Result1.Position), Expression2.Tree);    
  4424.       goto xx18;
  4425.     case 8:;
  4426.     case 9:;
  4427.     case 13:;
  4428.     case 14:;
  4429.     case 15:;
  4430.     case 16:;
  4431.     case 18:;
  4432.     case 19:;
  4433.     case 20:;
  4434.     case 21:;
  4435.     case 22:;
  4436.     case 24:;
  4437.     case 27:;
  4438.     case 28:;
  4439.     case 31:;
  4440.     case 32:;
  4441.     case 33:;
  4442.     case 34:;
  4443.     case 35:;
  4444.     case 36:;
  4445.     case 37:;
  4446.     case 38:;
  4447.     case 39:;
  4448.     case 40:;
  4449.     case 42:;
  4450.     case 43:;
  4451.     case 46:;
  4452.     case 47:;
  4453.     case 48:;
  4454.     case 53:;
  4455.     case 54:;
  4456.     case 55:;
  4457.     case 57:;
  4458.     case 59:;
  4459.     case 61:;
  4460.     case 62:;
  4461.     case 63:;
  4462.     case 64:;
  4463.     case 66:;
  4464.     case 68:;
  4465.     case 69:;
  4466.     case 70:;
  4467.     case 71:;
  4468.     case 72:;
  4469.     case 73:;
  4470.     case 75:;
  4471.     case 76:;
  4472.     case 77:;
  4473.     case 78:;
  4474.     case 79:;
  4475.     case 80:;
  4476.     case 81:;
  4477.     case 85:;
  4478.     case 86:;
  4479.     case 87:;
  4480.     case 89:;
  4481.     case 91:;
  4482.     case 92:;
  4483.     case 96:;
  4484.     case 97:;
  4485.     case 98:;
  4486.     case 99:;
  4487.     case 100:;
  4488.     case 101:;
  4489.     case 102:;
  4490.     case 103:;
  4491.     case 104:;
  4492.     default:
  4493.       if (xxIsRepairMode) {
  4494. /* line 515 "eiffel_ise.ell" */
  4495.  Result_instruct0->Tree = mCall_chain1(mUnqual_call1( mResult(Result1.Position), 
  4496.                                         mActuals0()), mCall_chain0());     
  4497.         for (;;) {
  4498.           if ((xxToken == 17 /* '(' */)) {
  4499.             xxUnion.xxLocalRecoverySet = 106; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4500. /* line 517 "eiffel_ise.ell" */
  4501.  Result_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; 
  4502.             break;
  4503.           } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4504.           xxExpected (105, 105, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4505.         }
  4506.         for (;;) {
  4507.           if ((xxToken == 10 /* '.' */)) {
  4508.             xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4509.             xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4510. /* line 518 "eiffel_ise.ell" */
  4511.  Result_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4512.             break;
  4513.           } else if ((xxVerticalSet [xxToken + 432] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4514.           xxExpected (106, 106, xxGlobalRecoverySet); /*  '.' /  '.' */
  4515.         }
  4516. /* line 519 "eiffel_ise.ell" */
  4517.  Result_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Result_instruct0->Tree)); 
  4518.         goto xx18;
  4519.       }
  4520.       xxExpected (111, 111, xxGlobalRecoverySet); /*  '.' '(' ':=' '?=' /  '.' '(' ':=' '?=' */
  4521.     }
  4522.   }
  4523.   xx18:;
  4524. }
  4525.  
  4526. static void yyIdent_instruct
  4527. # if defined __STDC__ | defined __cplusplus
  4528. (ParserISE_tParsAttribute * Ident_instruct0, xxtUnionPtr xxGlobalRecoverySet)
  4529. # else
  4530. (Ident_instruct0, xxGlobalRecoverySet)
  4531. ParserISE_tParsAttribute    * Ident_instruct0;
  4532. xxtUnionPtr    xxGlobalRecoverySet;
  4533. # endif
  4534. {
  4535.   ParserISE_tParsAttribute Identifier1;
  4536.   ParserISE_tParsAttribute Actuals1;
  4537.   ParserISE_tParsAttribute Call_chain1;
  4538.   ParserISE_tParsAttribute Expression1, Expression2;
  4539.   xxtUnion xxUnion;
  4540.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4541.   xxUnion.xxLocalRecoverySet = 111; yyIdentifier (& Identifier1, & xxUnion); /*  '.' '(' ':=' '?=' */
  4542.   for (;;) {
  4543.     switch (xxToken) {
  4544.     case 1 /* Character_constant */ :; 
  4545.     case 2 /* Bit_sequence */ :; 
  4546.     case 3 /* Integer */ :; 
  4547.     case 4 /* Real */ :; 
  4548.     case 5 /* Manifest_string */ :; 
  4549.     case 6 /* Free_op */ :; 
  4550.     case 7 /* ';' */ :; 
  4551.     case 10 /* '.' */ :; 
  4552.     case 11 /* '!' */ :; 
  4553.     case 12 /* '!!' */ :; 
  4554.     case 17 /* '(' */ :; 
  4555.     case 23 /* '<<' */ :; 
  4556.     case 29 /* plus */ :; 
  4557.     case 30 /* minus */ :; 
  4558.     case 41 /* 'check' */ :; 
  4559.     case 44 /* Current */ :; 
  4560.     case 45 /* 'debug' */ :; 
  4561.     case 49 /* else */ :; 
  4562.     case 50 /* 'elseif' */ :; 
  4563.     case 51 /* 'end' */ :; 
  4564.     case 52 /* 'ensure' */ :; 
  4565.     case 56 /* false */ :; 
  4566.     case 58 /* 'from' */ :; 
  4567.     case 60 /* 'if' */ :; 
  4568.     case 65 /* 'inspect' */ :; 
  4569.     case 67 /* 'invariant' */ :; 
  4570.     case 74 /* 'old' */ :; 
  4571.     case 82 /* 'rescue' */ :; 
  4572.     case 83 /* Result */ :; 
  4573.     case 84 /* retry */ :; 
  4574.     case 88 /* 'strip' */ :; 
  4575.     case 90 /* true */ :; 
  4576.     case 93 /* 'until' */ :; 
  4577.     case 94 /* 'variant' */ :; 
  4578.     case 95 /* 'when' */ :; 
  4579.     case 105 /* not */ :; 
  4580.     case 106 /* Id */ :; 
  4581. /* line 526 "eiffel_ise.ell" */
  4582.  Ident_instruct0->Tree = mCall_chain1(mUnqual_call1(Identifier1.Tree,
  4583.                                         mActuals0()),mCall_chain0());     
  4584.       for (;;) {
  4585.         if ((xxToken == 17 /* '(' */)) {
  4586.           xxUnion.xxLocalRecoverySet = 106; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4587. /* line 528 "eiffel_ise.ell" */
  4588.  Ident_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;    
  4589.           break;
  4590.         } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4591.         xxExpected (105, 105, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4592.       }
  4593.       for (;;) {
  4594.         if ((xxToken == 10 /* '.' */)) {
  4595.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4596.           xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4597. /* line 529 "eiffel_ise.ell" */
  4598.  Ident_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4599.           break;
  4600.         } else if ((xxVerticalSet [xxToken + 432] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4601.         xxExpected (106, 106, xxGlobalRecoverySet); /*  '.' /  '.' */
  4602.       }
  4603. /* line 530 "eiffel_ise.ell" */
  4604.  Ident_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Ident_instruct0->Tree)); 
  4605.       goto xx19;
  4606.     case 25 /* ':=' */ :; 
  4607.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4608.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  4609. /* line 531 "eiffel_ise.ell" */
  4610.  Ident_instruct0->Tree = mAssign(Identifier1.Tree, Expression1.Tree);            
  4611.       goto xx19;
  4612.     case 26 /* '?=' */ :; 
  4613.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4614.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression2, & xxUnion); /*  */
  4615. /* line 532 "eiffel_ise.ell" */
  4616.  Ident_instruct0->Tree = mRev_assign(Identifier1.Tree, Expression2.Tree);        
  4617.       goto xx19;
  4618.     case 8:;
  4619.     case 9:;
  4620.     case 13:;
  4621.     case 14:;
  4622.     case 15:;
  4623.     case 16:;
  4624.     case 18:;
  4625.     case 19:;
  4626.     case 20:;
  4627.     case 21:;
  4628.     case 22:;
  4629.     case 24:;
  4630.     case 27:;
  4631.     case 28:;
  4632.     case 31:;
  4633.     case 32:;
  4634.     case 33:;
  4635.     case 34:;
  4636.     case 35:;
  4637.     case 36:;
  4638.     case 37:;
  4639.     case 38:;
  4640.     case 39:;
  4641.     case 40:;
  4642.     case 42:;
  4643.     case 43:;
  4644.     case 46:;
  4645.     case 47:;
  4646.     case 48:;
  4647.     case 53:;
  4648.     case 54:;
  4649.     case 55:;
  4650.     case 57:;
  4651.     case 59:;
  4652.     case 61:;
  4653.     case 62:;
  4654.     case 63:;
  4655.     case 64:;
  4656.     case 66:;
  4657.     case 68:;
  4658.     case 69:;
  4659.     case 70:;
  4660.     case 71:;
  4661.     case 72:;
  4662.     case 73:;
  4663.     case 75:;
  4664.     case 76:;
  4665.     case 77:;
  4666.     case 78:;
  4667.     case 79:;
  4668.     case 80:;
  4669.     case 81:;
  4670.     case 85:;
  4671.     case 86:;
  4672.     case 87:;
  4673.     case 89:;
  4674.     case 91:;
  4675.     case 92:;
  4676.     case 96:;
  4677.     case 97:;
  4678.     case 98:;
  4679.     case 99:;
  4680.     case 100:;
  4681.     case 101:;
  4682.     case 102:;
  4683.     case 103:;
  4684.     case 104:;
  4685.     default:
  4686.       if (xxIsRepairMode) {
  4687. /* line 526 "eiffel_ise.ell" */
  4688.  Ident_instruct0->Tree = mCall_chain1(mUnqual_call1(Identifier1.Tree,
  4689.                                         mActuals0()),mCall_chain0());     
  4690.         for (;;) {
  4691.           if ((xxToken == 17 /* '(' */)) {
  4692.             xxUnion.xxLocalRecoverySet = 106; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4693. /* line 528 "eiffel_ise.ell" */
  4694.  Ident_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;    
  4695.             break;
  4696.           } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4697.           xxExpected (105, 105, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4698.         }
  4699.         for (;;) {
  4700.           if ((xxToken == 10 /* '.' */)) {
  4701.             xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4702.             xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4703. /* line 529 "eiffel_ise.ell" */
  4704.  Ident_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4705.             break;
  4706.           } else if ((xxVerticalSet [xxToken + 432] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4707.           xxExpected (106, 106, xxGlobalRecoverySet); /*  '.' /  '.' */
  4708.         }
  4709. /* line 530 "eiffel_ise.ell" */
  4710.  Ident_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Ident_instruct0->Tree)); 
  4711.         goto xx19;
  4712.       }
  4713.       xxExpected (111, 111, xxGlobalRecoverySet); /*  '.' '(' ':=' '?=' /  '.' '(' ':=' '?=' */
  4714.     }
  4715.   }
  4716.   xx19:;
  4717. }
  4718.  
  4719. static void yyPrecondition
  4720. # if defined __STDC__ | defined __cplusplus
  4721. (ParserISE_tParsAttribute * Precondition0, xxtUnionPtr xxGlobalRecoverySet)
  4722. # else
  4723. (Precondition0, xxGlobalRecoverySet)
  4724. ParserISE_tParsAttribute    * Precondition0;
  4725. xxtUnionPtr    xxGlobalRecoverySet;
  4726. # endif
  4727. {
  4728.     EiffelScan_tScanAttribute else1;
  4729.   ParserISE_tParsAttribute Assertion1;
  4730.   xxtUnion xxUnion;
  4731.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4732. /* line 536 "eiffel_ise.ell" */
  4733.  Precondition0->Tree = mCondition1(VOID, mAssertion0());                    
  4734.   if (xxToken != 81 /* 'require' */)
  4735.     xxRecoveryLiteral (81, 112, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else false 'old' 'require' Result 'strip' true not Id Comment */
  4736.   else {
  4737.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4738.   }
  4739.   for (;;) {
  4740.     if ((xxToken == 49 /* else */)) {
  4741.       else1 =       EiffelScan_Attribute;
  4742.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4743. /* line 537 "eiffel_ise.ell" */
  4744.  Precondition0->Tree->Condition1.extension = ELSE;                    
  4745.       break;
  4746.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current deferred do 'external' false 'local' 'old' once Result 'strip' true not Id Comment */) || xxIsRepairMode) break;
  4747.     xxExpected (113, 113, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else false 'old' Result 'strip' true not Id Comment */
  4748.   }
  4749.   xxUnion.xxLocalRecoverySet = 0; yyAssertion (& Assertion1, & xxUnion); /*  */
  4750. /* line 538 "eiffel_ise.ell" */
  4751.  Precondition0->Tree->Condition1.Assertion = ReverseTree(Assertion1.Tree);        
  4752. }
  4753.  
  4754. static void yyPostcondition
  4755. # if defined __STDC__ | defined __cplusplus
  4756. (ParserISE_tParsAttribute * Postcondition0, xxtUnionPtr xxGlobalRecoverySet)
  4757. # else
  4758. (Postcondition0, xxGlobalRecoverySet)
  4759. ParserISE_tParsAttribute    * Postcondition0;
  4760. xxtUnionPtr    xxGlobalRecoverySet;
  4761. # endif
  4762. {
  4763.     EiffelScan_tScanAttribute then1;
  4764.   ParserISE_tParsAttribute Assertion1;
  4765.   xxtUnion xxUnion;
  4766.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4767. /* line 541 "eiffel_ise.ell" */
  4768.  Postcondition0->Tree = mCondition1(VOID, mAssertion0());                
  4769.   if (xxToken != 52 /* 'ensure' */)
  4770.     xxRecoveryLiteral (52, 114, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'ensure' false 'old' Result 'strip' then true not Id Comment */
  4771.   else {
  4772.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4773.   }
  4774.   for (;;) {
  4775.     if ((xxToken == 89 /* then */)) {
  4776.       then1 =       EiffelScan_Attribute;
  4777.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4778. /* line 542 "eiffel_ise.ell" */
  4779.  Postcondition0->Tree->Condition1.extension = THEN;                    
  4780.       break;
  4781.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'old' 'rescue' Result 'strip' true not Id Comment */) || xxIsRepairMode) break;
  4782.     xxExpected (115, 115, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' then true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' then true not Id Comment */
  4783.   }
  4784.   xxUnion.xxLocalRecoverySet = 0; yyAssertion (& Assertion1, & xxUnion); /*  */
  4785. /* line 543 "eiffel_ise.ell" */
  4786.  Postcondition0->Tree->Condition1.Assertion = ReverseTree(Assertion1.Tree);        
  4787. }
  4788.  
  4789. static void yyInvariant
  4790. # if defined __STDC__ | defined __cplusplus
  4791. (ParserISE_tParsAttribute * Invariant0, xxtUnionPtr xxGlobalRecoverySet)
  4792. # else
  4793. (Invariant0, xxGlobalRecoverySet)
  4794. ParserISE_tParsAttribute    * Invariant0;
  4795. xxtUnionPtr    xxGlobalRecoverySet;
  4796. # endif
  4797. {
  4798.   ParserISE_tParsAttribute Assertion1;
  4799.   xxtUnion xxUnion;
  4800.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4801.   if (xxToken != 67 /* 'invariant' */)
  4802.     xxRecoveryLiteral (67, 116, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'invariant' 'old' Result 'strip' true not Id Comment */
  4803.   else {
  4804.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4805.   }
  4806.   xxUnion.xxLocalRecoverySet = 0; yyAssertion (& Assertion1, & xxUnion); /*  */
  4807. /* line 547 "eiffel_ise.ell" */
  4808.  Invariant0->Tree = mCondition1(VOID, ReverseTree(Assertion1.Tree));            
  4809. }
  4810.  
  4811. static void yyAssertion
  4812. # if defined __STDC__ | defined __cplusplus
  4813. (ParserISE_tParsAttribute * Assertion0, xxtUnionPtr xxGlobalRecoverySet)
  4814. # else
  4815. (Assertion0, xxGlobalRecoverySet)
  4816. ParserISE_tParsAttribute    * Assertion0;
  4817. xxtUnionPtr    xxGlobalRecoverySet;
  4818. # endif
  4819. {
  4820.   ParserISE_tParsAttribute Assertion_clause1;
  4821.   xxtUnion xxUnion;
  4822.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4823. /* line 550 "eiffel_ise.ell" */
  4824.  Assertion0->Tree = mAssertion0();                             
  4825.   for (;;) {
  4826.     if ((xxVerticalSet [xxToken + 540] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */)) {
  4827.       xxUnion.xxLocalRecoverySet = 13; yyAssertion_clause (& Assertion_clause1, & xxUnion); /*  ';' */
  4828. /* line 551 "eiffel_ise.ell" */
  4829.  Assertion0->Tree = mAssertion1(Assertion_clause1.Tree, Assertion0->Tree);         
  4830.       for (;;) {
  4831.         if ((xxToken == 7 /* ';' */)) {
  4832.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4833.           break;
  4834.         } else if ((xxVerticalSet [xxToken + 540] & 1 << 2 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id Comment */) || xxIsRepairMode) break;
  4835.         xxExpected (13, 13, xxGlobalRecoverySet); /*  ';' /  ';' */
  4836.       }
  4837.     } else if ((xxVerticalSet [xxToken + 540] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id */) || xxIsRepairMode) break;
  4838.     else
  4839.       xxExpected (117, 117, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  4840.   }
  4841. }
  4842.  
  4843. static void yyAssertion_clause
  4844. # if defined __STDC__ | defined __cplusplus
  4845. (ParserISE_tParsAttribute * Assertion_clause0, xxtUnionPtr xxGlobalRecoverySet)
  4846. # else
  4847. (Assertion_clause0, xxGlobalRecoverySet)
  4848. ParserISE_tParsAttribute    * Assertion_clause0;
  4849. xxtUnionPtr    xxGlobalRecoverySet;
  4850. # endif
  4851. {
  4852.   ParserISE_tParsAttribute Actuals1;
  4853.   ParserISE_tParsAttribute Call_chain1;
  4854.   ParserISE_tParsAttribute Tag1;
  4855.   ParserISE_tParsAttribute Unlabeled_assertion_clause1;
  4856.   ParserISE_tParsAttribute Expr_tail1;
  4857.   xxtUnion xxUnion;
  4858.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4859.   for (;;) {
  4860.     switch (xxToken) {
  4861.     case 106 /* Id */ :; 
  4862.       xxUnion.xxLocalRecoverySet = 118; yyTag (& Tag1, & xxUnion); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4863.       for (;;) {
  4864.         switch (xxToken) {
  4865.         case 9 /* ':' */ :; 
  4866. /* line 556 "eiffel_ise.ell" */
  4867.  comment_possible = ON; 
  4868.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4869.           xxUnion.xxLocalRecoverySet = 0; yyUnlabeled_assertion_clause (& Unlabeled_assertion_clause1, & xxUnion); /*  */
  4870. /* line 557 "eiffel_ise.ell" */
  4871.  Assertion_clause0->Tree = mAssertion_clause1(Tag1.Tree, 
  4872.                                 Unlabeled_assertion_clause1.Tree);         
  4873.           goto xx21;
  4874.         case 1 /* Character_constant */ :; 
  4875.         case 2 /* Bit_sequence */ :; 
  4876.         case 3 /* Integer */ :; 
  4877.         case 4 /* Real */ :; 
  4878.         case 5 /* Manifest_string */ :; 
  4879.         case 6 /* Free_op */ :; 
  4880.         case 7 /* ';' */ :; 
  4881.         case 10 /* '.' */ :; 
  4882.         case 13 /* Eq */ :; 
  4883.         case 14 /* Not_eq */ :; 
  4884.         case 17 /* '(' */ :; 
  4885.         case 23 /* '<<' */ :; 
  4886.         case 29 /* plus */ :; 
  4887.         case 30 /* minus */ :; 
  4888.         case 33 /* div */ :; 
  4889.         case 36 /* and */ :; 
  4890.         case 44 /* Current */ :; 
  4891.         case 46 /* deferred */ :; 
  4892.         case 47 /* do */ :; 
  4893.         case 51 /* 'end' */ :; 
  4894.         case 55 /* 'external' */ :; 
  4895.         case 56 /* false */ :; 
  4896.         case 61 /* implies */ :; 
  4897.         case 70 /* 'local' */ :; 
  4898.         case 74 /* 'old' */ :; 
  4899.         case 75 /* once */ :; 
  4900.         case 76 /* or */ :; 
  4901.         case 82 /* 'rescue' */ :; 
  4902.         case 83 /* Result */ :; 
  4903.         case 88 /* 'strip' */ :; 
  4904.         case 90 /* true */ :; 
  4905.         case 93 /* 'until' */ :; 
  4906.         case 94 /* 'variant' */ :; 
  4907.         case 96 /* xor */ :; 
  4908.         case 97 /* times */ :; 
  4909.         case 98 /* smaller */ :; 
  4910.         case 99 /* greater */ :; 
  4911.         case 100 /* sm_eq */ :; 
  4912.         case 101 /* gr_eq */ :; 
  4913.         case 102 /* idiv */ :; 
  4914.         case 103 /* imod */ :; 
  4915.         case 104 /* power */ :; 
  4916.         case 105 /* not */ :; 
  4917.         case 106 /* Id */ :; 
  4918.         case 107 /* Comment */ :; 
  4919. /* line 559 "eiffel_ise.ell" */
  4920.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), 
  4921.                                             mCall_chain0());    
  4922.           for (;;) {
  4923.             if ((xxToken == 17 /* '(' */)) {
  4924.               xxUnion.xxLocalRecoverySet = 121; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4925. /* line 561 "eiffel_ise.ell" */
  4926.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), 
  4927.                                                     mCall_chain0());
  4928.               break;
  4929.             } else if ((xxVerticalSet [xxToken + 540] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  4930.             xxExpected (120, 120, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4931.           }
  4932.           for (;;) {
  4933.             if ((xxToken == 10 /* '.' */)) {
  4934.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4935.               xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4936. /* line 563 "eiffel_ise.ell" */
  4937.  Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;         
  4938.               break;
  4939.             } else if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  4940.             xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4941.           }
  4942. /* line 564 "eiffel_ise.ell" */
  4943.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  4944.                                    mCall(mExpression0(), Assertion_clause0->Tree)); 
  4945.           for (;;) {
  4946.             if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  4947.               xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  4948. /* line 567 "eiffel_ise.ell" */
  4949.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  4950.                         mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, 
  4951.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop));    
  4952.               break;
  4953.             } else if ((xxVerticalSet [xxToken + 540] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id Comment */) || xxIsRepairMode) break;
  4954.             xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4955.           }
  4956.           goto xx21;
  4957.         case 8:;
  4958.         case 11:;
  4959.         case 12:;
  4960.         case 15:;
  4961.         case 16:;
  4962.         case 18:;
  4963.         case 19:;
  4964.         case 20:;
  4965.         case 21:;
  4966.         case 22:;
  4967.         case 24:;
  4968.         case 25:;
  4969.         case 26:;
  4970.         case 27:;
  4971.         case 28:;
  4972.         case 31:;
  4973.         case 32:;
  4974.         case 34:;
  4975.         case 35:;
  4976.         case 37:;
  4977.         case 38:;
  4978.         case 39:;
  4979.         case 40:;
  4980.         case 41:;
  4981.         case 42:;
  4982.         case 43:;
  4983.         case 45:;
  4984.         case 48:;
  4985.         case 49:;
  4986.         case 50:;
  4987.         case 52:;
  4988.         case 53:;
  4989.         case 54:;
  4990.         case 57:;
  4991.         case 58:;
  4992.         case 59:;
  4993.         case 60:;
  4994.         case 62:;
  4995.         case 63:;
  4996.         case 64:;
  4997.         case 65:;
  4998.         case 66:;
  4999.         case 67:;
  5000.         case 68:;
  5001.         case 69:;
  5002.         case 71:;
  5003.         case 72:;
  5004.         case 73:;
  5005.         case 77:;
  5006.         case 78:;
  5007.         case 79:;
  5008.         case 80:;
  5009.         case 81:;
  5010.         case 84:;
  5011.         case 85:;
  5012.         case 86:;
  5013.         case 87:;
  5014.         case 89:;
  5015.         case 91:;
  5016.         case 92:;
  5017.         case 95:;
  5018.         default:
  5019.           if (xxIsRepairMode) {
  5020. /* line 559 "eiffel_ise.ell" */
  5021.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), 
  5022.                                             mCall_chain0());    
  5023.             for (;;) {
  5024.               if ((xxToken == 17 /* '(' */)) {
  5025.                 xxUnion.xxLocalRecoverySet = 121; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5026. /* line 561 "eiffel_ise.ell" */
  5027.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), 
  5028.                                                     mCall_chain0());
  5029.                 break;
  5030.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5031.               xxExpected (120, 120, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5032.             }
  5033.             for (;;) {
  5034.               if ((xxToken == 10 /* '.' */)) {
  5035.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5036.                 xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5037. /* line 563 "eiffel_ise.ell" */
  5038.  Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;         
  5039.                 break;
  5040.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5041.               xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5042.             }
  5043. /* line 564 "eiffel_ise.ell" */
  5044.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5045.                                    mCall(mExpression0(), Assertion_clause0->Tree)); 
  5046.             for (;;) {
  5047.               if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5048.                 xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5049. /* line 567 "eiffel_ise.ell" */
  5050.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5051.                         mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, 
  5052.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop));    
  5053.                 break;
  5054.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id Comment */) || xxIsRepairMode) break;
  5055.               xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5056.             }
  5057.             goto xx21;
  5058.           }
  5059.           xxExpected (118, 118, xxGlobalRecoverySet); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5060.         }
  5061.       }
  5062.       xx21:;
  5063.       goto xx20;
  5064.     case 1 /* Character_constant */ :; 
  5065.     case 2 /* Bit_sequence */ :; 
  5066.     case 3 /* Integer */ :; 
  5067.     case 4 /* Real */ :; 
  5068.     case 5 /* Manifest_string */ :; 
  5069.     case 6 /* Free_op */ :; 
  5070.     case 17 /* '(' */ :; 
  5071.     case 23 /* '<<' */ :; 
  5072.     case 29 /* plus */ :; 
  5073.     case 30 /* minus */ :; 
  5074.     case 44 /* Current */ :; 
  5075.     case 56 /* false */ :; 
  5076.     case 74 /* 'old' */ :; 
  5077.     case 83 /* Result */ :; 
  5078.     case 88 /* 'strip' */ :; 
  5079.     case 90 /* true */ :; 
  5080.     case 105 /* not */ :; 
  5081.     case 107 /* Comment */ :; 
  5082.       xxUnion.xxLocalRecoverySet = 0; yyUnlabeled_assertion_clause (& Unlabeled_assertion_clause1, & xxUnion); /*  */
  5083. /* line 570 "eiffel_ise.ell" */
  5084.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5085.                                     Unlabeled_assertion_clause1.Tree);     
  5086.       goto xx20;
  5087.     case 7:;
  5088.     case 8:;
  5089.     case 9:;
  5090.     case 10:;
  5091.     case 11:;
  5092.     case 12:;
  5093.     case 13:;
  5094.     case 14:;
  5095.     case 15:;
  5096.     case 16:;
  5097.     case 18:;
  5098.     case 19:;
  5099.     case 20:;
  5100.     case 21:;
  5101.     case 22:;
  5102.     case 24:;
  5103.     case 25:;
  5104.     case 26:;
  5105.     case 27:;
  5106.     case 28:;
  5107.     case 31:;
  5108.     case 32:;
  5109.     case 33:;
  5110.     case 34:;
  5111.     case 35:;
  5112.     case 36:;
  5113.     case 37:;
  5114.     case 38:;
  5115.     case 39:;
  5116.     case 40:;
  5117.     case 41:;
  5118.     case 42:;
  5119.     case 43:;
  5120.     case 45:;
  5121.     case 46:;
  5122.     case 47:;
  5123.     case 48:;
  5124.     case 49:;
  5125.     case 50:;
  5126.     case 51:;
  5127.     case 52:;
  5128.     case 53:;
  5129.     case 54:;
  5130.     case 55:;
  5131.     case 57:;
  5132.     case 58:;
  5133.     case 59:;
  5134.     case 60:;
  5135.     case 61:;
  5136.     case 62:;
  5137.     case 63:;
  5138.     case 64:;
  5139.     case 65:;
  5140.     case 66:;
  5141.     case 67:;
  5142.     case 68:;
  5143.     case 69:;
  5144.     case 70:;
  5145.     case 71:;
  5146.     case 72:;
  5147.     case 73:;
  5148.     case 75:;
  5149.     case 76:;
  5150.     case 77:;
  5151.     case 78:;
  5152.     case 79:;
  5153.     case 80:;
  5154.     case 81:;
  5155.     case 82:;
  5156.     case 84:;
  5157.     case 85:;
  5158.     case 86:;
  5159.     case 87:;
  5160.     case 89:;
  5161.     case 91:;
  5162.     case 92:;
  5163.     case 93:;
  5164.     case 94:;
  5165.     case 95:;
  5166.     case 96:;
  5167.     case 97:;
  5168.     case 98:;
  5169.     case 99:;
  5170.     case 100:;
  5171.     case 101:;
  5172.     case 102:;
  5173.     case 103:;
  5174.     case 104:;
  5175.     default:
  5176.       if (xxIsRepairMode) {
  5177.         xxUnion.xxLocalRecoverySet = 118; yyTag (& Tag1, & xxUnion); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5178.         for (;;) {
  5179.           switch (xxToken) {
  5180.           case 9 /* ':' */ :; 
  5181. /* line 556 "eiffel_ise.ell" */
  5182.  comment_possible = ON; 
  5183.             if (xxToken != 9 /* ':' */)
  5184.               xxRecoveryLiteral (9, 119, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ':' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  5185.             else {
  5186.               xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5187.             }
  5188.             xxUnion.xxLocalRecoverySet = 0; yyUnlabeled_assertion_clause (& Unlabeled_assertion_clause1, & xxUnion); /*  */
  5189. /* line 557 "eiffel_ise.ell" */
  5190.  Assertion_clause0->Tree = mAssertion_clause1(Tag1.Tree, 
  5191.                                 Unlabeled_assertion_clause1.Tree);         
  5192.             goto xx22;
  5193.           case 1 /* Character_constant */ :; 
  5194.           case 2 /* Bit_sequence */ :; 
  5195.           case 3 /* Integer */ :; 
  5196.           case 4 /* Real */ :; 
  5197.           case 5 /* Manifest_string */ :; 
  5198.           case 6 /* Free_op */ :; 
  5199.           case 7 /* ';' */ :; 
  5200.           case 10 /* '.' */ :; 
  5201.           case 13 /* Eq */ :; 
  5202.           case 14 /* Not_eq */ :; 
  5203.           case 17 /* '(' */ :; 
  5204.           case 23 /* '<<' */ :; 
  5205.           case 29 /* plus */ :; 
  5206.           case 30 /* minus */ :; 
  5207.           case 33 /* div */ :; 
  5208.           case 36 /* and */ :; 
  5209.           case 44 /* Current */ :; 
  5210.           case 46 /* deferred */ :; 
  5211.           case 47 /* do */ :; 
  5212.           case 51 /* 'end' */ :; 
  5213.           case 55 /* 'external' */ :; 
  5214.           case 56 /* false */ :; 
  5215.           case 61 /* implies */ :; 
  5216.           case 70 /* 'local' */ :; 
  5217.           case 74 /* 'old' */ :; 
  5218.           case 75 /* once */ :; 
  5219.           case 76 /* or */ :; 
  5220.           case 82 /* 'rescue' */ :; 
  5221.           case 83 /* Result */ :; 
  5222.           case 88 /* 'strip' */ :; 
  5223.           case 90 /* true */ :; 
  5224.           case 93 /* 'until' */ :; 
  5225.           case 94 /* 'variant' */ :; 
  5226.           case 96 /* xor */ :; 
  5227.           case 97 /* times */ :; 
  5228.           case 98 /* smaller */ :; 
  5229.           case 99 /* greater */ :; 
  5230.           case 100 /* sm_eq */ :; 
  5231.           case 101 /* gr_eq */ :; 
  5232.           case 102 /* idiv */ :; 
  5233.           case 103 /* imod */ :; 
  5234.           case 104 /* power */ :; 
  5235.           case 105 /* not */ :; 
  5236.           case 106 /* Id */ :; 
  5237.           case 107 /* Comment */ :; 
  5238. /* line 559 "eiffel_ise.ell" */
  5239.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), 
  5240.                                             mCall_chain0());    
  5241.             for (;;) {
  5242.               if ((xxToken == 17 /* '(' */)) {
  5243.                 xxUnion.xxLocalRecoverySet = 121; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5244. /* line 561 "eiffel_ise.ell" */
  5245.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), 
  5246.                                                     mCall_chain0());
  5247.                 break;
  5248.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5249.               xxExpected (120, 120, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5250.             }
  5251.             for (;;) {
  5252.               if ((xxToken == 10 /* '.' */)) {
  5253.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5254.                 xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5255. /* line 563 "eiffel_ise.ell" */
  5256.  Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;         
  5257.                 break;
  5258.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5259.               xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5260.             }
  5261. /* line 564 "eiffel_ise.ell" */
  5262.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5263.                                    mCall(mExpression0(), Assertion_clause0->Tree)); 
  5264.             for (;;) {
  5265.               if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5266.                 xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5267. /* line 567 "eiffel_ise.ell" */
  5268.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5269.                         mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, 
  5270.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop));    
  5271.                 break;
  5272.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id Comment */) || xxIsRepairMode) break;
  5273.               xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5274.             }
  5275.             goto xx22;
  5276.           case 8:;
  5277.           case 11:;
  5278.           case 12:;
  5279.           case 15:;
  5280.           case 16:;
  5281.           case 18:;
  5282.           case 19:;
  5283.           case 20:;
  5284.           case 21:;
  5285.           case 22:;
  5286.           case 24:;
  5287.           case 25:;
  5288.           case 26:;
  5289.           case 27:;
  5290.           case 28:;
  5291.           case 31:;
  5292.           case 32:;
  5293.           case 34:;
  5294.           case 35:;
  5295.           case 37:;
  5296.           case 38:;
  5297.           case 39:;
  5298.           case 40:;
  5299.           case 41:;
  5300.           case 42:;
  5301.           case 43:;
  5302.           case 45:;
  5303.           case 48:;
  5304.           case 49:;
  5305.           case 50:;
  5306.           case 52:;
  5307.           case 53:;
  5308.           case 54:;
  5309.           case 57:;
  5310.           case 58:;
  5311.           case 59:;
  5312.           case 60:;
  5313.           case 62:;
  5314.           case 63:;
  5315.           case 64:;
  5316.           case 65:;
  5317.           case 66:;
  5318.           case 67:;
  5319.           case 68:;
  5320.           case 69:;
  5321.           case 71:;
  5322.           case 72:;
  5323.           case 73:;
  5324.           case 77:;
  5325.           case 78:;
  5326.           case 79:;
  5327.           case 80:;
  5328.           case 81:;
  5329.           case 84:;
  5330.           case 85:;
  5331.           case 86:;
  5332.           case 87:;
  5333.           case 89:;
  5334.           case 91:;
  5335.           case 92:;
  5336.           case 95:;
  5337.           default:
  5338.             if (xxIsRepairMode) {
  5339. /* line 559 "eiffel_ise.ell" */
  5340.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), 
  5341.                                             mCall_chain0());    
  5342.               for (;;) {
  5343.                 if ((xxToken == 17 /* '(' */)) {
  5344.                   xxUnion.xxLocalRecoverySet = 121; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5345. /* line 561 "eiffel_ise.ell" */
  5346.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), 
  5347.                                                     mCall_chain0());
  5348.                   break;
  5349.                 } else if ((xxVerticalSet [xxToken + 540] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5350.                 xxExpected (120, 120, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5351.               }
  5352.               for (;;) {
  5353.                 if ((xxToken == 10 /* '.' */)) {
  5354.                   xxToken =                   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5355.                   xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5356. /* line 563 "eiffel_ise.ell" */
  5357.  Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;         
  5358.                   break;
  5359.                 } else if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5360.                 xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5361.               }
  5362. /* line 564 "eiffel_ise.ell" */
  5363.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5364.                                    mCall(mExpression0(), Assertion_clause0->Tree)); 
  5365.               for (;;) {
  5366.                 if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5367.                   xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5368. /* line 567 "eiffel_ise.ell" */
  5369.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5370.                         mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, 
  5371.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop));    
  5372.                   break;
  5373.                 } else if ((xxVerticalSet [xxToken + 540] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id Comment */) || xxIsRepairMode) break;
  5374.                 xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5375.               }
  5376.               goto xx22;
  5377.             }
  5378.             xxExpected (118, 118, xxGlobalRecoverySet); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5379.           }
  5380.         }
  5381.         xx22:;
  5382.         goto xx20;
  5383.       }
  5384.       xxExpected (117, 117, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  5385.     }
  5386.   }
  5387.   xx20:;
  5388. }
  5389.  
  5390. static void yyUnlabeled_assertion_clause
  5391. # if defined __STDC__ | defined __cplusplus
  5392. (ParserISE_tParsAttribute * Unlabeled_assertion_clause0, xxtUnionPtr xxGlobalRecoverySet)
  5393. # else
  5394. (Unlabeled_assertion_clause0, xxGlobalRecoverySet)
  5395. ParserISE_tParsAttribute    * Unlabeled_assertion_clause0;
  5396. xxtUnionPtr    xxGlobalRecoverySet;
  5397. # endif
  5398. {
  5399.     EiffelScan_tScanAttribute Comment1;
  5400.   ParserISE_tParsAttribute Boolean_expression1;
  5401.   xxtUnion xxUnion;
  5402.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5403.   for (;;) {
  5404.     switch (xxToken) {
  5405.     case 1 /* Character_constant */ :; 
  5406.     case 2 /* Bit_sequence */ :; 
  5407.     case 3 /* Integer */ :; 
  5408.     case 4 /* Real */ :; 
  5409.     case 5 /* Manifest_string */ :; 
  5410.     case 6 /* Free_op */ :; 
  5411.     case 17 /* '(' */ :; 
  5412.     case 23 /* '<<' */ :; 
  5413.     case 29 /* plus */ :; 
  5414.     case 30 /* minus */ :; 
  5415.     case 44 /* Current */ :; 
  5416.     case 56 /* false */ :; 
  5417.     case 74 /* 'old' */ :; 
  5418.     case 83 /* Result */ :; 
  5419.     case 88 /* 'strip' */ :; 
  5420.     case 90 /* true */ :; 
  5421.     case 105 /* not */ :; 
  5422.     case 106 /* Id */ :; 
  5423.       xxUnion.xxLocalRecoverySet = 0; yyBoolean_expression (& Boolean_expression1, & xxUnion); /*  */
  5424. /* line 576 "eiffel_ise.ell" */
  5425.  comment_possible = OFF; Unlabeled_assertion_clause0->Tree = Boolean_expression1.Tree;    
  5426.       goto xx23;
  5427.     case 107 /* Comment */ :; 
  5428.       Comment1 =       EiffelScan_Attribute;
  5429.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5430. /* line 577 "eiffel_ise.ell" */
  5431.  Unlabeled_assertion_clause0->Tree = mComment(Comment1.StringRef);            
  5432.       goto xx23;
  5433.     case 7:;
  5434.     case 8:;
  5435.     case 9:;
  5436.     case 10:;
  5437.     case 11:;
  5438.     case 12:;
  5439.     case 13:;
  5440.     case 14:;
  5441.     case 15:;
  5442.     case 16:;
  5443.     case 18:;
  5444.     case 19:;
  5445.     case 20:;
  5446.     case 21:;
  5447.     case 22:;
  5448.     case 24:;
  5449.     case 25:;
  5450.     case 26:;
  5451.     case 27:;
  5452.     case 28:;
  5453.     case 31:;
  5454.     case 32:;
  5455.     case 33:;
  5456.     case 34:;
  5457.     case 35:;
  5458.     case 36:;
  5459.     case 37:;
  5460.     case 38:;
  5461.     case 39:;
  5462.     case 40:;
  5463.     case 41:;
  5464.     case 42:;
  5465.     case 43:;
  5466.     case 45:;
  5467.     case 46:;
  5468.     case 47:;
  5469.     case 48:;
  5470.     case 49:;
  5471.     case 50:;
  5472.     case 51:;
  5473.     case 52:;
  5474.     case 53:;
  5475.     case 54:;
  5476.     case 55:;
  5477.     case 57:;
  5478.     case 58:;
  5479.     case 59:;
  5480.     case 60:;
  5481.     case 61:;
  5482.     case 62:;
  5483.     case 63:;
  5484.     case 64:;
  5485.     case 65:;
  5486.     case 66:;
  5487.     case 67:;
  5488.     case 68:;
  5489.     case 69:;
  5490.     case 70:;
  5491.     case 71:;
  5492.     case 72:;
  5493.     case 73:;
  5494.     case 75:;
  5495.     case 76:;
  5496.     case 77:;
  5497.     case 78:;
  5498.     case 79:;
  5499.     case 80:;
  5500.     case 81:;
  5501.     case 82:;
  5502.     case 84:;
  5503.     case 85:;
  5504.     case 86:;
  5505.     case 87:;
  5506.     case 89:;
  5507.     case 91:;
  5508.     case 92:;
  5509.     case 93:;
  5510.     case 94:;
  5511.     case 95:;
  5512.     case 96:;
  5513.     case 97:;
  5514.     case 98:;
  5515.     case 99:;
  5516.     case 100:;
  5517.     case 101:;
  5518.     case 102:;
  5519.     case 103:;
  5520.     case 104:;
  5521.     default:
  5522.       if (xxIsRepairMode) {
  5523.         xxUnion.xxLocalRecoverySet = 0; yyBoolean_expression (& Boolean_expression1, & xxUnion); /*  */
  5524. /* line 576 "eiffel_ise.ell" */
  5525.  comment_possible = OFF; Unlabeled_assertion_clause0->Tree = Boolean_expression1.Tree;    
  5526.         goto xx23;
  5527.       }
  5528.       xxExpected (117, 117, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  5529.     }
  5530.   }
  5531.   xx23:;
  5532. }
  5533.  
  5534. static void yyTag
  5535. # if defined __STDC__ | defined __cplusplus
  5536. (ParserISE_tParsAttribute * Tag0, xxtUnionPtr xxGlobalRecoverySet)
  5537. # else
  5538. (Tag0, xxGlobalRecoverySet)
  5539. ParserISE_tParsAttribute    * Tag0;
  5540. xxtUnionPtr    xxGlobalRecoverySet;
  5541. # endif
  5542. {
  5543.   ParserISE_tParsAttribute Identifier1;
  5544.   xxtUnion xxUnion;
  5545.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5546.   xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  5547. /* line 583 "eiffel_ise.ell" */
  5548.  Tag0->Tree = Identifier1.Tree;                            
  5549. }
  5550.  
  5551. static void yyOld
  5552. # if defined __STDC__ | defined __cplusplus
  5553. (ParserISE_tParsAttribute * Old0, xxtUnionPtr xxGlobalRecoverySet)
  5554. # else
  5555. (Old0, xxGlobalRecoverySet)
  5556. ParserISE_tParsAttribute    * Old0;
  5557. xxtUnionPtr    xxGlobalRecoverySet;
  5558. # endif
  5559. {
  5560.   ParserISE_tParsAttribute Expression1;
  5561.   xxtUnion xxUnion;
  5562.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5563.   if (xxToken != 74 /* 'old' */)
  5564.     xxRecoveryLiteral (74, 125, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  5565.   else {
  5566.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5567.   }
  5568.   xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  5569. /* line 588 "eiffel_ise.ell" */
  5570.  Old0->Tree = mOld(Expression1.Tree);                            
  5571. }
  5572.  
  5573. static void yyCheck
  5574. # if defined __STDC__ | defined __cplusplus
  5575. (ParserISE_tParsAttribute * Check0, xxtUnionPtr xxGlobalRecoverySet)
  5576. # else
  5577. (Check0, xxGlobalRecoverySet)
  5578. ParserISE_tParsAttribute    * Check0;
  5579. xxtUnionPtr    xxGlobalRecoverySet;
  5580. # endif
  5581. {
  5582.   ParserISE_tParsAttribute Assertion1;
  5583.   xxtUnion xxUnion;
  5584.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5585.   if (xxToken != 41 /* 'check' */)
  5586.     xxRecoveryLiteral (41, 126, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus 'check' Current 'end' false 'old' Result 'strip' true not Id Comment */
  5587.   else {
  5588.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5589.   }
  5590.   xxUnion.xxLocalRecoverySet = 10; yyAssertion (& Assertion1, & xxUnion); /*  'end' */
  5591. /* line 593 "eiffel_ise.ell" */
  5592.  Check0->Tree = Assertion1.Tree;                            
  5593.   if (xxToken != 51 /* 'end' */)
  5594.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  5595.   else {
  5596.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5597.   }
  5598. }
  5599.  
  5600. static void yyVariant
  5601. # if defined __STDC__ | defined __cplusplus
  5602. (ParserISE_tParsAttribute * Variant0, xxtUnionPtr xxGlobalRecoverySet)
  5603. # else
  5604. (Variant0, xxGlobalRecoverySet)
  5605. ParserISE_tParsAttribute    * Variant0;
  5606. xxtUnionPtr    xxGlobalRecoverySet;
  5607. # endif
  5608. {
  5609.   ParserISE_tParsAttribute Actuals1;
  5610.   ParserISE_tParsAttribute Call_chain1;
  5611.   ParserISE_tParsAttribute Expression1;
  5612.   ParserISE_tParsAttribute Tag1;
  5613.   ParserISE_tParsAttribute Expr_tail1;
  5614.   xxtUnion xxUnion;
  5615.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5616.   for (;;) {
  5617.     switch (xxToken) {
  5618.     case 94 /* 'variant' */ :; 
  5619.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5620.       xxUnion.xxLocalRecoverySet = 118; yyTag (& Tag1, & xxUnion); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5621.       for (;;) {
  5622.         switch (xxToken) {
  5623.         case 9 /* ':' */ :; 
  5624.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5625.           xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  5626. /* line 604 "eiffel_ise.ell" */
  5627.  Variant0->Tree = mAssertion_clause1(Tag1.Tree, Expression1.Tree);             
  5628.           goto xx25;
  5629.         case 6 /* Free_op */ :; 
  5630.         case 10 /* '.' */ :; 
  5631.         case 13 /* Eq */ :; 
  5632.         case 14 /* Not_eq */ :; 
  5633.         case 17 /* '(' */ :; 
  5634.         case 29 /* plus */ :; 
  5635.         case 30 /* minus */ :; 
  5636.         case 33 /* div */ :; 
  5637.         case 36 /* and */ :; 
  5638.         case 61 /* implies */ :; 
  5639.         case 76 /* or */ :; 
  5640.         case 93 /* 'until' */ :; 
  5641.         case 96 /* xor */ :; 
  5642.         case 97 /* times */ :; 
  5643.         case 98 /* smaller */ :; 
  5644.         case 99 /* greater */ :; 
  5645.         case 100 /* sm_eq */ :; 
  5646.         case 101 /* gr_eq */ :; 
  5647.         case 102 /* idiv */ :; 
  5648.         case 103 /* imod */ :; 
  5649.         case 104 /* power */ :; 
  5650. /* line 605 "eiffel_ise.ell" */
  5651.  Variant0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, mActuals0()), mCall_chain0());    
  5652.           for (;;) {
  5653.             if ((xxToken == 17 /* '(' */)) {
  5654.               xxUnion.xxLocalRecoverySet = 121; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5655. /* line 606 "eiffel_ise.ell" */
  5656.  Variant0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;        
  5657.               break;
  5658.             } else if ((xxVerticalSet [xxToken + 540] & 1 << 7 /*  Free_op '.' Eq Not_eq plus minus div and implies or 'until' xor times smaller greater sm_eq gr_eq idiv imod power */) || xxIsRepairMode) break;
  5659.             xxExpected (120, 120, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5660.           }
  5661.           for (;;) {
  5662.             if ((xxToken == 10 /* '.' */)) {
  5663.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5664.               xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5665. /* line 607 "eiffel_ise.ell" */
  5666.  Variant0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;                 
  5667.               break;
  5668.             } else if ((xxVerticalSet [xxToken + 648] & 1 << 0 /*  Free_op Eq Not_eq plus minus div and implies or 'until' xor times smaller greater sm_eq gr_eq idiv imod power */) || xxIsRepairMode) break;
  5669.             xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5670.           }
  5671. /* line 608 "eiffel_ise.ell" */
  5672.  Variant0->Tree = mCall(mExpression0(), Variant0->Tree);                
  5673.           for (;;) {
  5674.             if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5675.               xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5676. /* line 609 "eiffel_ise.ell" */
  5677.  Variant0->Tree = mBin_expr(Variant0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  5678.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  5679.               break;
  5680.             } else if ((xxToken == 93 /* 'until' */) || xxIsRepairMode) break;
  5681.             xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5682.           }
  5683.           goto xx25;
  5684.         case 7:;
  5685.         case 8:;
  5686.         case 11:;
  5687.         case 12:;
  5688.         case 15:;
  5689.         case 16:;
  5690.         case 18:;
  5691.         case 19:;
  5692.         case 20:;
  5693.         case 21:;
  5694.         case 22:;
  5695.         case 23:;
  5696.         case 24:;
  5697.         case 25:;
  5698.         case 26:;
  5699.         case 27:;
  5700.         case 28:;
  5701.         case 31:;
  5702.         case 32:;
  5703.         case 34:;
  5704.         case 35:;
  5705.         case 37:;
  5706.         case 38:;
  5707.         case 39:;
  5708.         case 40:;
  5709.         case 41:;
  5710.         case 42:;
  5711.         case 43:;
  5712.         case 44:;
  5713.         case 45:;
  5714.         case 46:;
  5715.         case 47:;
  5716.         case 48:;
  5717.         case 49:;
  5718.         case 50:;
  5719.         case 51:;
  5720.         case 52:;
  5721.         case 53:;
  5722.         case 54:;
  5723.         case 55:;
  5724.         case 56:;
  5725.         case 57:;
  5726.         case 58:;
  5727.         case 59:;
  5728.         case 60:;
  5729.         case 62:;
  5730.         case 63:;
  5731.         case 64:;
  5732.         case 65:;
  5733.         case 66:;
  5734.         case 67:;
  5735.         case 68:;
  5736.         case 69:;
  5737.         case 70:;
  5738.         case 71:;
  5739.         case 72:;
  5740.         case 73:;
  5741.         case 74:;
  5742.         case 75:;
  5743.         case 77:;
  5744.         case 78:;
  5745.         case 79:;
  5746.         case 80:;
  5747.         case 81:;
  5748.         case 82:;
  5749.         case 83:;
  5750.         case 84:;
  5751.         case 85:;
  5752.         case 86:;
  5753.         case 87:;
  5754.         case 88:;
  5755.         case 89:;
  5756.         case 90:;
  5757.         case 91:;
  5758.         case 92:;
  5759.         case 94:;
  5760.         case 95:;
  5761.         default:
  5762.           if (xxIsRepairMode) {
  5763. /* line 605 "eiffel_ise.ell" */
  5764.  Variant0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, mActuals0()), mCall_chain0());    
  5765.             for (;;) {
  5766.               if ((xxToken == 17 /* '(' */)) {
  5767.                 xxUnion.xxLocalRecoverySet = 121; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5768. /* line 606 "eiffel_ise.ell" */
  5769.  Variant0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;        
  5770.                 break;
  5771.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 7 /*  Free_op '.' Eq Not_eq plus minus div and implies or 'until' xor times smaller greater sm_eq gr_eq idiv imod power */) || xxIsRepairMode) break;
  5772.               xxExpected (120, 120, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5773.             }
  5774.             for (;;) {
  5775.               if ((xxToken == 10 /* '.' */)) {
  5776.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5777.                 xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5778. /* line 607 "eiffel_ise.ell" */
  5779.  Variant0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;                 
  5780.                 break;
  5781.               } else if ((xxVerticalSet [xxToken + 648] & 1 << 0 /*  Free_op Eq Not_eq plus minus div and implies or 'until' xor times smaller greater sm_eq gr_eq idiv imod power */) || xxIsRepairMode) break;
  5782.               xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5783.             }
  5784. /* line 608 "eiffel_ise.ell" */
  5785.  Variant0->Tree = mCall(mExpression0(), Variant0->Tree);                
  5786.             for (;;) {
  5787.               if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5788.                 xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5789. /* line 609 "eiffel_ise.ell" */
  5790.  Variant0->Tree = mBin_expr(Variant0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  5791.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  5792.                 break;
  5793.               } else if ((xxToken == 93 /* 'until' */) || xxIsRepairMode) break;
  5794.               xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5795.             }
  5796.             goto xx25;
  5797.           }
  5798. xxUnexpected (118, xxGlobalRecoverySet); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5799.         }
  5800.       }
  5801.       xx25:;
  5802. /* line 611 "eiffel_ise.ell" */
  5803.  Variant0->Tree = mAssertion_clause1(Tag1.Tree, Variant0->Tree);            
  5804.       goto xx24;
  5805.     case 1 /* Character_constant */ :; 
  5806.     case 2 /* Bit_sequence */ :; 
  5807.     case 3 /* Integer */ :; 
  5808.     case 4 /* Real */ :; 
  5809.     case 5 /* Manifest_string */ :; 
  5810.     case 6 /* Free_op */ :; 
  5811.     case 17 /* '(' */ :; 
  5812.     case 23 /* '<<' */ :; 
  5813.     case 29 /* plus */ :; 
  5814.     case 30 /* minus */ :; 
  5815.     case 44 /* Current */ :; 
  5816.     case 56 /* false */ :; 
  5817.     case 74 /* 'old' */ :; 
  5818.     case 83 /* Result */ :; 
  5819.     case 88 /* 'strip' */ :; 
  5820.     case 90 /* true */ :; 
  5821.     case 105 /* not */ :; 
  5822.     case 106 /* Id */ :; 
  5823.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  5824. /* line 612 "eiffel_ise.ell" */
  5825.  Variant0->Tree = mAssertion_clause1(mManifest_constant0(), Expression1.Tree);             
  5826.       goto xx24;
  5827.     case 7:;
  5828.     case 8:;
  5829.     case 9:;
  5830.     case 10:;
  5831.     case 11:;
  5832.     case 12:;
  5833.     case 13:;
  5834.     case 14:;
  5835.     case 15:;
  5836.     case 16:;
  5837.     case 18:;
  5838.     case 19:;
  5839.     case 20:;
  5840.     case 21:;
  5841.     case 22:;
  5842.     case 24:;
  5843.     case 25:;
  5844.     case 26:;
  5845.     case 27:;
  5846.     case 28:;
  5847.     case 31:;
  5848.     case 32:;
  5849.     case 33:;
  5850.     case 34:;
  5851.     case 35:;
  5852.     case 36:;
  5853.     case 37:;
  5854.     case 38:;
  5855.     case 39:;
  5856.     case 40:;
  5857.     case 41:;
  5858.     case 42:;
  5859.     case 43:;
  5860.     case 45:;
  5861.     case 46:;
  5862.     case 47:;
  5863.     case 48:;
  5864.     case 49:;
  5865.     case 50:;
  5866.     case 51:;
  5867.     case 52:;
  5868.     case 53:;
  5869.     case 54:;
  5870.     case 55:;
  5871.     case 57:;
  5872.     case 58:;
  5873.     case 59:;
  5874.     case 60:;
  5875.     case 61:;
  5876.     case 62:;
  5877.     case 63:;
  5878.     case 64:;
  5879.     case 65:;
  5880.     case 66:;
  5881.     case 67:;
  5882.     case 68:;
  5883.     case 69:;
  5884.     case 70:;
  5885.     case 71:;
  5886.     case 72:;
  5887.     case 73:;
  5888.     case 75:;
  5889.     case 76:;
  5890.     case 77:;
  5891.     case 78:;
  5892.     case 79:;
  5893.     case 80:;
  5894.     case 81:;
  5895.     case 82:;
  5896.     case 84:;
  5897.     case 85:;
  5898.     case 86:;
  5899.     case 87:;
  5900.     case 89:;
  5901.     case 91:;
  5902.     case 92:;
  5903.     case 93:;
  5904.     case 95:;
  5905.     case 96:;
  5906.     case 97:;
  5907.     case 98:;
  5908.     case 99:;
  5909.     case 100:;
  5910.     case 101:;
  5911.     case 102:;
  5912.     case 103:;
  5913.     case 104:;
  5914.     default:
  5915.       if (xxIsRepairMode) {
  5916.         xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  5917. /* line 612 "eiffel_ise.ell" */
  5918.  Variant0->Tree = mAssertion_clause1(mManifest_constant0(), Expression1.Tree);             
  5919.         goto xx24;
  5920.       }
  5921.       xxExpected (129, 129, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'variant' not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'variant' not Id */
  5922.     }
  5923.   }
  5924.   xx24:;
  5925. }
  5926.  
  5927. static void yyRedefine
  5928. # if defined __STDC__ | defined __cplusplus
  5929. (ParserISE_tParsAttribute * Redefine0, xxtUnionPtr xxGlobalRecoverySet)
  5930. # else
  5931. (Redefine0, xxGlobalRecoverySet)
  5932. ParserISE_tParsAttribute    * Redefine0;
  5933. xxtUnionPtr    xxGlobalRecoverySet;
  5934. # endif
  5935. {
  5936.   ParserISE_tParsAttribute Feature_list1;
  5937.   xxtUnion xxUnion;
  5938.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5939.   if (xxToken != 79 /* 'redefine' */)
  5940.     xxRecoveryLiteral (79, 130, xxGlobalRecoverySet); /*  infix prefix 'redefine' Id */
  5941.   else {
  5942.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5943.   }
  5944.   xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  5945. /* line 618 "eiffel_ise.ell" */
  5946.  Redefine0->Tree = ReverseTree(Feature_list1.Tree);                    
  5947. }
  5948.  
  5949. static void yyUndefine
  5950. # if defined __STDC__ | defined __cplusplus
  5951. (ParserISE_tParsAttribute * Undefine0, xxtUnionPtr xxGlobalRecoverySet)
  5952. # else
  5953. (Undefine0, xxGlobalRecoverySet)
  5954. ParserISE_tParsAttribute    * Undefine0;
  5955. xxtUnionPtr    xxGlobalRecoverySet;
  5956. # endif
  5957. {
  5958.   ParserISE_tParsAttribute Feature_list1;
  5959.   xxtUnion xxUnion;
  5960.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5961.   if (xxToken != 91 /* 'undefine' */)
  5962.     xxRecoveryLiteral (91, 131, xxGlobalRecoverySet); /*  infix prefix 'undefine' Id */
  5963.   else {
  5964.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5965.   }
  5966.   xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  5967. /* line 622 "eiffel_ise.ell" */
  5968.  Undefine0->Tree = ReverseTree(Feature_list1.Tree);                    
  5969. }
  5970.  
  5971. static void yySelect
  5972. # if defined __STDC__ | defined __cplusplus
  5973. (ParserISE_tParsAttribute * Select0, xxtUnionPtr xxGlobalRecoverySet)
  5974. # else
  5975. (Select0, xxGlobalRecoverySet)
  5976. ParserISE_tParsAttribute    * Select0;
  5977. xxtUnionPtr    xxGlobalRecoverySet;
  5978. # endif
  5979. {
  5980.   ParserISE_tParsAttribute Feature_list1;
  5981.   xxtUnion xxUnion;
  5982.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5983.   if (xxToken != 85 /* 'select' */)
  5984.     xxRecoveryLiteral (85, 132, xxGlobalRecoverySet); /*  infix prefix 'select' Id */
  5985.   else {
  5986.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5987.   }
  5988.   xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  5989. /* line 626 "eiffel_ise.ell" */
  5990.  Select0->Tree = ReverseTree(Feature_list1.Tree);                    
  5991. }
  5992.  
  5993. static void yyType
  5994. # if defined __STDC__ | defined __cplusplus
  5995. (ParserISE_tParsAttribute * Type0, xxtUnionPtr xxGlobalRecoverySet)
  5996. # else
  5997. (Type0, xxGlobalRecoverySet)
  5998. ParserISE_tParsAttribute    * Type0;
  5999. xxtUnionPtr    xxGlobalRecoverySet;
  6000. # endif
  6001. {
  6002.     EiffelScan_tScanAttribute BOOLEAN1;
  6003.     EiffelScan_tScanAttribute CHARACTER1;
  6004.     EiffelScan_tScanAttribute DOUBLE1;
  6005.     EiffelScan_tScanAttribute INTEGER1;
  6006.     EiffelScan_tScanAttribute _NONE1;
  6007.     EiffelScan_tScanAttribute REAL1;
  6008.     EiffelScan_tScanAttribute STRING1;
  6009.   ParserISE_tParsAttribute Class_type1;
  6010.   ParserISE_tParsAttribute Anchored1;
  6011.   ParserISE_tParsAttribute Bit_type1;
  6012.   xxtUnion xxUnion;
  6013.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6014.   for (;;) {
  6015.     switch (xxToken) {
  6016.     case 53 /* expanded */ :; 
  6017.     case 106 /* Id */ :; 
  6018.       xxUnion.xxLocalRecoverySet = 0; yyClass_type (& Class_type1, & xxUnion); /*  */
  6019. /* line 633 "eiffel_ise.ell" */
  6020.  Type0->Tree = Class_type1.Tree;                             
  6021.       goto xx26;
  6022.     case 69 /* 'like' */ :; 
  6023.       xxUnion.xxLocalRecoverySet = 0; yyAnchored (& Anchored1, & xxUnion); /*  */
  6024. /* line 634 "eiffel_ise.ell" */
  6025.  Type0->Tree = Anchored1.Tree;                                
  6026.       goto xx26;
  6027.     case 38 /* BIT */ :; 
  6028.       xxUnion.xxLocalRecoverySet = 0; yyBit_type (& Bit_type1, & xxUnion); /*  */
  6029. /* line 635 "eiffel_ise.ell" */
  6030.  Type0->Tree = Bit_type1.Tree;                                
  6031.       goto xx26;
  6032.     case 39 /* BOOLEAN */ :; 
  6033.       BOOLEAN1 =       EiffelScan_Attribute;
  6034.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6035. /* line 636 "eiffel_ise.ell" */
  6036.  Type0->Tree = mSimple_type(m_BOOLEAN(BOOLEAN1.Position));                
  6037.       goto xx26;
  6038.     case 40 /* CHARACTER */ :; 
  6039.       CHARACTER1 =       EiffelScan_Attribute;
  6040.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6041. /* line 637 "eiffel_ise.ell" */
  6042.  Type0->Tree = mSimple_type(m_CHARACTER(CHARACTER1.Position));                
  6043.       goto xx26;
  6044.     case 48 /* DOUBLE */ :; 
  6045.       DOUBLE1 =       EiffelScan_Attribute;
  6046.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6047. /* line 638 "eiffel_ise.ell" */
  6048.  Type0->Tree = mSimple_type(m_DOUBLE(DOUBLE1.Position));                
  6049.       goto xx26;
  6050.     case 66 /* INTEGER */ :; 
  6051.       INTEGER1 =       EiffelScan_Attribute;
  6052.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6053. /* line 639 "eiffel_ise.ell" */
  6054.  Type0->Tree = mSimple_type(m_INTEGER(INTEGER1.Position));                 
  6055.       goto xx26;
  6056.     case 72 /* _NONE */ :; 
  6057.       _NONE1 =       EiffelScan_Attribute;
  6058.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6059. /* line 640 "eiffel_ise.ell" */
  6060.  Type0->Tree = mSimple_type(m_NONE(_NONE1.Position));                     
  6061.       goto xx26;
  6062.     case 78 /* REAL */ :; 
  6063.       REAL1 =       EiffelScan_Attribute;
  6064.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6065. /* line 641 "eiffel_ise.ell" */
  6066.  Type0->Tree = mSimple_type(m_REAL(REAL1.Position));                     
  6067.       goto xx26;
  6068.     case 87 /* STRING */ :; 
  6069.       STRING1 =       EiffelScan_Attribute;
  6070.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6071. /* line 642 "eiffel_ise.ell" */
  6072.  Type0->Tree = mSimple_type(m_STRING(STRING1.Position));                 
  6073.       goto xx26;
  6074.     case 41:;
  6075.     case 42:;
  6076.     case 43:;
  6077.     case 44:;
  6078.     case 45:;
  6079.     case 46:;
  6080.     case 47:;
  6081.     case 49:;
  6082.     case 50:;
  6083.     case 51:;
  6084.     case 52:;
  6085.     case 54:;
  6086.     case 55:;
  6087.     case 56:;
  6088.     case 57:;
  6089.     case 58:;
  6090.     case 59:;
  6091.     case 60:;
  6092.     case 61:;
  6093.     case 62:;
  6094.     case 63:;
  6095.     case 64:;
  6096.     case 65:;
  6097.     case 67:;
  6098.     case 68:;
  6099.     case 70:;
  6100.     case 71:;
  6101.     case 73:;
  6102.     case 74:;
  6103.     case 75:;
  6104.     case 76:;
  6105.     case 77:;
  6106.     case 79:;
  6107.     case 80:;
  6108.     case 81:;
  6109.     case 82:;
  6110.     case 83:;
  6111.     case 84:;
  6112.     case 85:;
  6113.     case 86:;
  6114.     case 88:;
  6115.     case 89:;
  6116.     case 90:;
  6117.     case 91:;
  6118.     case 92:;
  6119.     case 93:;
  6120.     case 94:;
  6121.     case 95:;
  6122.     case 96:;
  6123.     case 97:;
  6124.     case 98:;
  6125.     case 99:;
  6126.     case 100:;
  6127.     case 101:;
  6128.     case 102:;
  6129.     case 103:;
  6130.     case 104:;
  6131.     case 105:;
  6132.     default:
  6133.       if (xxIsRepairMode) {
  6134.         xxUnion.xxLocalRecoverySet = 0; yyClass_type (& Class_type1, & xxUnion); /*  */
  6135. /* line 633 "eiffel_ise.ell" */
  6136.  Type0->Tree = Class_type1.Tree;                             
  6137.         goto xx26;
  6138.       }
  6139.       xxExpected (140, 140, xxGlobalRecoverySet); /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id /  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6140.     }
  6141.   }
  6142.   xx26:;
  6143. }
  6144.  
  6145. static void yyClass_type
  6146. # if defined __STDC__ | defined __cplusplus
  6147. (ParserISE_tParsAttribute * Class_type0, xxtUnionPtr xxGlobalRecoverySet)
  6148. # else
  6149. (Class_type0, xxGlobalRecoverySet)
  6150. ParserISE_tParsAttribute    * Class_type0;
  6151. xxtUnionPtr    xxGlobalRecoverySet;
  6152. # endif
  6153. {
  6154.     EiffelScan_tScanAttribute expanded1;
  6155.   ParserISE_tParsAttribute Identifier1;
  6156.   ParserISE_tParsAttribute Actual_generics1;
  6157.   xxtUnion xxUnion;
  6158.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6159.   for (;;) {
  6160.     switch (xxToken) {
  6161.     case 106 /* Id */ :; 
  6162.       xxUnion.xxLocalRecoverySet = 141; yyIdentifier (& Identifier1, & xxUnion); /*  '[' */
  6163. /* line 647 "eiffel_ise.ell" */
  6164.  Class_type0->Tree = mClass_type(Identifier1.Tree, mActual_generics0());         
  6165.       for (;;) {
  6166.         if ((xxToken == 19 /* '[' */)) {
  6167.           xxUnion.xxLocalRecoverySet = 0; yyActual_generics (& Actual_generics1, & xxUnion); /*  */
  6168. /* line 648 "eiffel_ise.ell" */
  6169.  Class_type0->Tree->Class_type.Actual_generics = Actual_generics1.Tree;         
  6170.           break;
  6171.         } else if ((xxVerticalSet [xxToken + 648] & 1 << 1 /*  ';' ',' '!' ')' ']' 'creation' deferred do 'end' 'export' 'external' 'feature' 'frozen' infix 'invariant' 'is' once prefix 'redefine' 'rename' 'select' 'undefine' Id */) || xxIsRepairMode) break;
  6172.         xxExpected (141, 141, xxGlobalRecoverySet); /*  '[' /  '[' */
  6173.       }
  6174.       goto xx27;
  6175.     case 53 /* expanded */ :; 
  6176.       expanded1 =       EiffelScan_Attribute;
  6177.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6178.       xxUnion.xxLocalRecoverySet = 141; yyIdentifier (& Identifier1, & xxUnion); /*  '[' */
  6179. /* line 649 "eiffel_ise.ell" */
  6180.  Class_type0->Tree = mClass_type_expanded(Identifier1.Tree, mActual_generics0());    
  6181.       for (;;) {
  6182.         if ((xxToken == 19 /* '[' */)) {
  6183.           xxUnion.xxLocalRecoverySet = 0; yyActual_generics (& Actual_generics1, & xxUnion); /*  */
  6184. /* line 650 "eiffel_ise.ell" */
  6185.  Class_type0->Tree->Class_type_expanded.Actual_generics = Actual_generics1.Tree;     
  6186.           break;
  6187.         } else if ((xxVerticalSet [xxToken + 648] & 1 << 1 /*  ';' ',' '!' ')' ']' 'creation' deferred do 'end' 'export' 'external' 'feature' 'frozen' infix 'invariant' 'is' once prefix 'redefine' 'rename' 'select' 'undefine' Id */) || xxIsRepairMode) break;
  6188.         xxExpected (141, 141, xxGlobalRecoverySet); /*  '[' /  '[' */
  6189.       }
  6190.       goto xx27;
  6191.     case 54:;
  6192.     case 55:;
  6193.     case 56:;
  6194.     case 57:;
  6195.     case 58:;
  6196.     case 59:;
  6197.     case 60:;
  6198.     case 61:;
  6199.     case 62:;
  6200.     case 63:;
  6201.     case 64:;
  6202.     case 65:;
  6203.     case 66:;
  6204.     case 67:;
  6205.     case 68:;
  6206.     case 69:;
  6207.     case 70:;
  6208.     case 71:;
  6209.     case 72:;
  6210.     case 73:;
  6211.     case 74:;
  6212.     case 75:;
  6213.     case 76:;
  6214.     case 77:;
  6215.     case 78:;
  6216.     case 79:;
  6217.     case 80:;
  6218.     case 81:;
  6219.     case 82:;
  6220.     case 83:;
  6221.     case 84:;
  6222.     case 85:;
  6223.     case 86:;
  6224.     case 87:;
  6225.     case 88:;
  6226.     case 89:;
  6227.     case 90:;
  6228.     case 91:;
  6229.     case 92:;
  6230.     case 93:;
  6231.     case 94:;
  6232.     case 95:;
  6233.     case 96:;
  6234.     case 97:;
  6235.     case 98:;
  6236.     case 99:;
  6237.     case 100:;
  6238.     case 101:;
  6239.     case 102:;
  6240.     case 103:;
  6241.     case 104:;
  6242.     case 105:;
  6243.     default:
  6244.       if (xxIsRepairMode) {
  6245.         xxUnion.xxLocalRecoverySet = 141; yyIdentifier (& Identifier1, & xxUnion); /*  '[' */
  6246. /* line 647 "eiffel_ise.ell" */
  6247.  Class_type0->Tree = mClass_type(Identifier1.Tree, mActual_generics0());         
  6248.         for (;;) {
  6249.           if ((xxToken == 19 /* '[' */)) {
  6250.             xxUnion.xxLocalRecoverySet = 0; yyActual_generics (& Actual_generics1, & xxUnion); /*  */
  6251. /* line 648 "eiffel_ise.ell" */
  6252.  Class_type0->Tree->Class_type.Actual_generics = Actual_generics1.Tree;         
  6253.             break;
  6254.           } else if ((xxVerticalSet [xxToken + 648] & 1 << 1 /*  ';' ',' '!' ')' ']' 'creation' deferred do 'end' 'export' 'external' 'feature' 'frozen' infix 'invariant' 'is' once prefix 'redefine' 'rename' 'select' 'undefine' Id */) || xxIsRepairMode) break;
  6255.           xxExpected (141, 141, xxGlobalRecoverySet); /*  '[' /  '[' */
  6256.         }
  6257.         goto xx27;
  6258.       }
  6259.       xxExpected (62, 62, xxGlobalRecoverySet); /*  expanded Id /  expanded Id */
  6260.     }
  6261.   }
  6262.   xx27:;
  6263. }
  6264.  
  6265. static void yyActual_generics
  6266. # if defined __STDC__ | defined __cplusplus
  6267. (ParserISE_tParsAttribute * Actual_generics0, xxtUnionPtr xxGlobalRecoverySet)
  6268. # else
  6269. (Actual_generics0, xxGlobalRecoverySet)
  6270. ParserISE_tParsAttribute    * Actual_generics0;
  6271. xxtUnionPtr    xxGlobalRecoverySet;
  6272. # endif
  6273. {
  6274.   ParserISE_tParsAttribute Type_list1;
  6275.   xxtUnion xxUnion;
  6276.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6277.   if (xxToken != 19 /* '[' */)
  6278.     xxRecoveryLiteral (19, 143, xxGlobalRecoverySet); /*  '[' ']' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6279.   else {
  6280.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6281.   }
  6282.   xxUnion.xxLocalRecoverySet = 144; yyType_list (& Type_list1, & xxUnion); /*  ']' */
  6283.   if (xxToken != 20 /* ']' */)
  6284.     xxRecoveryLiteral (20, 144, xxGlobalRecoverySet); /*  ']' */
  6285.   else {
  6286.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6287.   }
  6288. /* line 654 "eiffel_ise.ell" */
  6289.  Actual_generics0->Tree = mActual_generics1(Type_list1.Tree);                 
  6290. }
  6291.  
  6292. static void yyType_list
  6293. # if defined __STDC__ | defined __cplusplus
  6294. (ParserISE_tParsAttribute * Type_list0, xxtUnionPtr xxGlobalRecoverySet)
  6295. # else
  6296. (Type_list0, xxGlobalRecoverySet)
  6297. ParserISE_tParsAttribute    * Type_list0;
  6298. xxtUnionPtr    xxGlobalRecoverySet;
  6299. # endif
  6300. {
  6301.   ParserISE_tParsAttribute Type1;
  6302.   xxtUnion xxUnion;
  6303.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6304. /* line 657 "eiffel_ise.ell" */
  6305.  Type_list0->Tree = mType_list0();                             
  6306.   for (;;) {
  6307.     if ((xxVerticalSet [xxToken + 648] & 1 << 2 /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */)) {
  6308.       for (;;) {
  6309.         xxUnion.xxLocalRecoverySet = 16; yyType (& Type1, & xxUnion); /*  ',' */
  6310. /* line 658 "eiffel_ise.ell" */
  6311.  Type_list0->Tree = mType_list1(Type1.Tree, Type_list0->Tree);                
  6312.         if (! ((xxToken == 8 /* ',' */))) {
  6313.           if ((xxToken == 20 /* ']' */)) break;
  6314.           xxExpected (16, 145, xxGlobalRecoverySet); /*  ',' /  ',' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6315.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 648] & 1 << 2 /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */))) break;
  6316.         }
  6317.         if (xxToken != 8 /* ',' */)
  6318.           xxRecoveryLiteral (8, 145, xxGlobalRecoverySet); /*  ',' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6319.         else {
  6320.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6321.         }
  6322.       }
  6323.       break;
  6324.     } else if ((xxToken == 20 /* ']' */) || xxIsRepairMode) break;
  6325.     xxExpected (140, 140, xxGlobalRecoverySet); /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id /  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6326.   }
  6327. /* line 659 "eiffel_ise.ell" */
  6328.  Type_list0->Tree = ReverseTree(Type_list0->Tree);                    
  6329. }
  6330.  
  6331. static void yyBit_type
  6332. # if defined __STDC__ | defined __cplusplus
  6333. (ParserISE_tParsAttribute * Bit_type0, xxtUnionPtr xxGlobalRecoverySet)
  6334. # else
  6335. (Bit_type0, xxGlobalRecoverySet)
  6336. ParserISE_tParsAttribute    * Bit_type0;
  6337. xxtUnionPtr    xxGlobalRecoverySet;
  6338. # endif
  6339. {
  6340.     EiffelScan_tScanAttribute BIT1;
  6341.   ParserISE_tParsAttribute Constant1;
  6342.   xxtUnion xxUnion;
  6343.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6344.   if (xxToken != 38 /* BIT */)
  6345.     xxRecoveryTerminal (38, 146, xxGlobalRecoverySet, & BIT1); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus BIT Current false Result true Id */
  6346.   else {
  6347.     BIT1 =   EiffelScan_Attribute;
  6348.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6349.   }
  6350.   xxUnion.xxLocalRecoverySet = 0; yyConstant (& Constant1, & xxUnion); /*  */
  6351. /* line 663 "eiffel_ise.ell" */
  6352.  Bit_type0->Tree = mBit_type(Constant1.Tree);                        
  6353. }
  6354.  
  6355. static void yyAnchored
  6356. # if defined __STDC__ | defined __cplusplus
  6357. (ParserISE_tParsAttribute * Anchored0, xxtUnionPtr xxGlobalRecoverySet)
  6358. # else
  6359. (Anchored0, xxGlobalRecoverySet)
  6360. ParserISE_tParsAttribute    * Anchored0;
  6361. xxtUnionPtr    xxGlobalRecoverySet;
  6362. # endif
  6363. {
  6364.   ParserISE_tParsAttribute Anchor1;
  6365.   xxtUnion xxUnion;
  6366.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6367.   if (xxToken != 69 /* 'like' */)
  6368.     xxRecoveryLiteral (69, 147, xxGlobalRecoverySet); /*  Current 'like' Id */
  6369.   else {
  6370.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6371.   }
  6372.   xxUnion.xxLocalRecoverySet = 0; yyAnchor (& Anchor1, & xxUnion); /*  */
  6373. /* line 667 "eiffel_ise.ell" */
  6374.  Anchored0->Tree = mAnchored(Anchor1.Tree);                        
  6375. }
  6376.  
  6377. static void yyAnchor
  6378. # if defined __STDC__ | defined __cplusplus
  6379. (ParserISE_tParsAttribute * Anchor0, xxtUnionPtr xxGlobalRecoverySet)
  6380. # else
  6381. (Anchor0, xxGlobalRecoverySet)
  6382. ParserISE_tParsAttribute    * Anchor0;
  6383. xxtUnionPtr    xxGlobalRecoverySet;
  6384. # endif
  6385. {
  6386.     EiffelScan_tScanAttribute Current1;
  6387.   ParserISE_tParsAttribute Identifier1;
  6388.   xxtUnion xxUnion;
  6389.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6390.   for (;;) {
  6391.     switch (xxToken) {
  6392.     case 106 /* Id */ :; 
  6393.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  6394. /* line 671 "eiffel_ise.ell" */
  6395.  Anchor0->Tree = Identifier1.Tree;                            
  6396.       goto xx28;
  6397.     case 44 /* Current */ :; 
  6398.       Current1 =       EiffelScan_Attribute;
  6399.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6400. /* line 672 "eiffel_ise.ell" */
  6401.  Anchor0->Tree = mCurrent(Current1.Position);                        
  6402.       goto xx28;
  6403.     case 45:;
  6404.     case 46:;
  6405.     case 47:;
  6406.     case 48:;
  6407.     case 49:;
  6408.     case 50:;
  6409.     case 51:;
  6410.     case 52:;
  6411.     case 53:;
  6412.     case 54:;
  6413.     case 55:;
  6414.     case 56:;
  6415.     case 57:;
  6416.     case 58:;
  6417.     case 59:;
  6418.     case 60:;
  6419.     case 61:;
  6420.     case 62:;
  6421.     case 63:;
  6422.     case 64:;
  6423.     case 65:;
  6424.     case 66:;
  6425.     case 67:;
  6426.     case 68:;
  6427.     case 69:;
  6428.     case 70:;
  6429.     case 71:;
  6430.     case 72:;
  6431.     case 73:;
  6432.     case 74:;
  6433.     case 75:;
  6434.     case 76:;
  6435.     case 77:;
  6436.     case 78:;
  6437.     case 79:;
  6438.     case 80:;
  6439.     case 81:;
  6440.     case 82:;
  6441.     case 83:;
  6442.     case 84:;
  6443.     case 85:;
  6444.     case 86:;
  6445.     case 87:;
  6446.     case 88:;
  6447.     case 89:;
  6448.     case 90:;
  6449.     case 91:;
  6450.     case 92:;
  6451.     case 93:;
  6452.     case 94:;
  6453.     case 95:;
  6454.     case 96:;
  6455.     case 97:;
  6456.     case 98:;
  6457.     case 99:;
  6458.     case 100:;
  6459.     case 101:;
  6460.     case 102:;
  6461.     case 103:;
  6462.     case 104:;
  6463.     case 105:;
  6464.     default:
  6465.       if (xxIsRepairMode) {
  6466.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  6467. /* line 671 "eiffel_ise.ell" */
  6468.  Anchor0->Tree = Identifier1.Tree;                            
  6469.         goto xx28;
  6470.       }
  6471.       xxExpected (149, 149, xxGlobalRecoverySet); /*  Current Id /  Current Id */
  6472.     }
  6473.   }
  6474.   xx28:;
  6475. }
  6476.  
  6477. static void yyFormal_generics
  6478. # if defined __STDC__ | defined __cplusplus
  6479. (ParserISE_tParsAttribute * Formal_generics0, xxtUnionPtr xxGlobalRecoverySet)
  6480. # else
  6481. (Formal_generics0, xxGlobalRecoverySet)
  6482. ParserISE_tParsAttribute    * Formal_generics0;
  6483. xxtUnionPtr    xxGlobalRecoverySet;
  6484. # endif
  6485. {
  6486.   ParserISE_tParsAttribute Formal_generic_list1;
  6487.   xxtUnion xxUnion;
  6488.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6489.   if (xxToken != 19 /* '[' */)
  6490.     xxRecoveryLiteral (19, 150, xxGlobalRecoverySet); /*  '[' ']' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6491.   else {
  6492.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6493.   }
  6494.   xxUnion.xxLocalRecoverySet = 144; yyFormal_generic_list (& Formal_generic_list1, & xxUnion); /*  ']' */
  6495.   if (xxToken != 20 /* ']' */)
  6496.     xxRecoveryLiteral (20, 144, xxGlobalRecoverySet); /*  ']' */
  6497.   else {
  6498.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6499.   }
  6500. /* line 678 "eiffel_ise.ell" */
  6501.  Formal_generics0->Tree = ReverseTree(Formal_generic_list1.Tree);         
  6502. }
  6503.  
  6504. static void yyFormal_generic_list
  6505. # if defined __STDC__ | defined __cplusplus
  6506. (ParserISE_tParsAttribute * Formal_generic_list0, xxtUnionPtr xxGlobalRecoverySet)
  6507. # else
  6508. (Formal_generic_list0, xxGlobalRecoverySet)
  6509. ParserISE_tParsAttribute    * Formal_generic_list0;
  6510. xxtUnionPtr    xxGlobalRecoverySet;
  6511. # endif
  6512. {
  6513.   ParserISE_tParsAttribute Formal_generic1;
  6514.   xxtUnion xxUnion;
  6515.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6516. /* line 680 "eiffel_ise.ell" */
  6517.  Formal_generic_list0->Tree = mFormal_generics0();                     
  6518.   for (;;) {
  6519.     if ((xxVerticalSet [xxToken + 324] & 1 << 2 /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */)) {
  6520.       for (;;) {
  6521.         xxUnion.xxLocalRecoverySet = 16; yyFormal_generic (& Formal_generic1, & xxUnion); /*  ',' */
  6522. /* line 681 "eiffel_ise.ell" */
  6523.  Formal_generic_list0->Tree = mFormal_generics1(Formal_generic1.Tree, 
  6524.                                         Formal_generic_list0->Tree);     
  6525.         if (! ((xxToken == 8 /* ',' */))) {
  6526.           if ((xxToken == 20 /* ']' */)) break;
  6527.           xxExpected (16, 75, xxGlobalRecoverySet); /*  ',' /  ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6528.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 2 /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */))) break;
  6529.         }
  6530.         if (xxToken != 8 /* ',' */)
  6531.           xxRecoveryLiteral (8, 75, xxGlobalRecoverySet); /*  ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6532.         else {
  6533.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6534.         }
  6535.       }
  6536.       break;
  6537.     } else if ((xxToken == 20 /* ']' */) || xxIsRepairMode) break;
  6538.     xxExpected (74, 74, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id /  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6539.   }
  6540. }
  6541.  
  6542. static void yyFormal_generic
  6543. # if defined __STDC__ | defined __cplusplus
  6544. (ParserISE_tParsAttribute * Formal_generic0, xxtUnionPtr xxGlobalRecoverySet)
  6545. # else
  6546. (Formal_generic0, xxGlobalRecoverySet)
  6547. ParserISE_tParsAttribute    * Formal_generic0;
  6548. xxtUnionPtr    xxGlobalRecoverySet;
  6549. # endif
  6550. {
  6551.   ParserISE_tParsAttribute Formal_generic_name1;
  6552.   ParserISE_tParsAttribute Constraint1;
  6553.   xxtUnion xxUnion;
  6554.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6555.   xxUnion.xxLocalRecoverySet = 151; yyFormal_generic_name (& Formal_generic_name1, & xxUnion); /*  '->' */
  6556. /* line 686 "eiffel_ise.ell" */
  6557.  Formal_generic0->Tree = mFormal_generic(Formal_generic_name1.Tree, mConstraint0());     
  6558.   for (;;) {
  6559.     if ((xxToken == 15 /* '->' */)) {
  6560.       xxUnion.xxLocalRecoverySet = 0; yyConstraint (& Constraint1, & xxUnion); /*  */
  6561. /* line 687 "eiffel_ise.ell" */
  6562.  Formal_generic0->Tree->Formal_generic.Constraint = Constraint1.Tree;             
  6563.       break;
  6564.     } else if ((xxVerticalSet [xxToken + 648] & 1 << 3 /*  ',' ']' */) || xxIsRepairMode) break;
  6565.     xxExpected (151, 151, xxGlobalRecoverySet); /*  '->' /  '->' */
  6566.   }
  6567. }
  6568.  
  6569. static void yyFormal_generic_name
  6570. # if defined __STDC__ | defined __cplusplus
  6571. (ParserISE_tParsAttribute * Formal_generic_name0, xxtUnionPtr xxGlobalRecoverySet)
  6572. # else
  6573. (Formal_generic_name0, xxGlobalRecoverySet)
  6574. ParserISE_tParsAttribute    * Formal_generic_name0;
  6575. xxtUnionPtr    xxGlobalRecoverySet;
  6576. # endif
  6577. {
  6578.     EiffelScan_tScanAttribute BOOLEAN1;
  6579.     EiffelScan_tScanAttribute CHARACTER1;
  6580.     EiffelScan_tScanAttribute DOUBLE1;
  6581.     EiffelScan_tScanAttribute INTEGER1;
  6582.     EiffelScan_tScanAttribute _NONE1;
  6583.     EiffelScan_tScanAttribute REAL1;
  6584.     EiffelScan_tScanAttribute STRING1;
  6585.   ParserISE_tParsAttribute Identifier1;
  6586.   xxtUnion xxUnion;
  6587.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6588.   for (;;) {
  6589.     switch (xxToken) {
  6590.     case 106 /* Id */ :; 
  6591.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  6592. /* line 690 "eiffel_ise.ell" */
  6593.  Formal_generic_name0->Tree = Identifier1.Tree;                     
  6594.       goto xx29;
  6595.     case 39 /* BOOLEAN */ :; 
  6596.       BOOLEAN1 =       EiffelScan_Attribute;
  6597.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6598. /* line 691 "eiffel_ise.ell" */
  6599.   Formal_generic_name0->Tree = m_BOOLEAN(BOOLEAN1.Position);                
  6600.       goto xx29;
  6601.     case 40 /* CHARACTER */ :; 
  6602.       CHARACTER1 =       EiffelScan_Attribute;
  6603.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6604. /* line 692 "eiffel_ise.ell" */
  6605.   Formal_generic_name0->Tree = m_CHARACTER(CHARACTER1.Position);            
  6606.       goto xx29;
  6607.     case 48 /* DOUBLE */ :; 
  6608.       DOUBLE1 =       EiffelScan_Attribute;
  6609.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6610. /* line 693 "eiffel_ise.ell" */
  6611.   Formal_generic_name0->Tree = m_DOUBLE(DOUBLE1.Position);                
  6612.       goto xx29;
  6613.     case 66 /* INTEGER */ :; 
  6614.       INTEGER1 =       EiffelScan_Attribute;
  6615.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6616. /* line 694 "eiffel_ise.ell" */
  6617.   Formal_generic_name0->Tree = m_INTEGER(INTEGER1.Position);                 
  6618.       goto xx29;
  6619.     case 72 /* _NONE */ :; 
  6620.       _NONE1 =       EiffelScan_Attribute;
  6621.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6622. /* line 695 "eiffel_ise.ell" */
  6623.   Formal_generic_name0->Tree = m_NONE(_NONE1.Position);                 
  6624.       goto xx29;
  6625.     case 78 /* REAL */ :; 
  6626.       REAL1 =       EiffelScan_Attribute;
  6627.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6628. /* line 696 "eiffel_ise.ell" */
  6629.   Formal_generic_name0->Tree = m_REAL(REAL1.Position);                 
  6630.       goto xx29;
  6631.     case 87 /* STRING */ :; 
  6632.       STRING1 =       EiffelScan_Attribute;
  6633.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6634. /* line 697 "eiffel_ise.ell" */
  6635.   Formal_generic_name0->Tree = m_STRING(STRING1.Position);                 
  6636.       goto xx29;
  6637.     case 41:;
  6638.     case 42:;
  6639.     case 43:;
  6640.     case 44:;
  6641.     case 45:;
  6642.     case 46:;
  6643.     case 47:;
  6644.     case 49:;
  6645.     case 50:;
  6646.     case 51:;
  6647.     case 52:;
  6648.     case 53:;
  6649.     case 54:;
  6650.     case 55:;
  6651.     case 56:;
  6652.     case 57:;
  6653.     case 58:;
  6654.     case 59:;
  6655.     case 60:;
  6656.     case 61:;
  6657.     case 62:;
  6658.     case 63:;
  6659.     case 64:;
  6660.     case 65:;
  6661.     case 67:;
  6662.     case 68:;
  6663.     case 69:;
  6664.     case 70:;
  6665.     case 71:;
  6666.     case 73:;
  6667.     case 74:;
  6668.     case 75:;
  6669.     case 76:;
  6670.     case 77:;
  6671.     case 79:;
  6672.     case 80:;
  6673.     case 81:;
  6674.     case 82:;
  6675.     case 83:;
  6676.     case 84:;
  6677.     case 85:;
  6678.     case 86:;
  6679.     case 88:;
  6680.     case 89:;
  6681.     case 90:;
  6682.     case 91:;
  6683.     case 92:;
  6684.     case 93:;
  6685.     case 94:;
  6686.     case 95:;
  6687.     case 96:;
  6688.     case 97:;
  6689.     case 98:;
  6690.     case 99:;
  6691.     case 100:;
  6692.     case 101:;
  6693.     case 102:;
  6694.     case 103:;
  6695.     case 104:;
  6696.     case 105:;
  6697.     default:
  6698.       if (xxIsRepairMode) {
  6699.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  6700. /* line 690 "eiffel_ise.ell" */
  6701.  Formal_generic_name0->Tree = Identifier1.Tree;                     
  6702.         goto xx29;
  6703.       }
  6704.       xxExpected (74, 74, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id /  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6705.     }
  6706.   }
  6707.   xx29:;
  6708. }
  6709.  
  6710. static void yyConstraint
  6711. # if defined __STDC__ | defined __cplusplus
  6712. (ParserISE_tParsAttribute * Constraint0, xxtUnionPtr xxGlobalRecoverySet)
  6713. # else
  6714. (Constraint0, xxGlobalRecoverySet)
  6715. ParserISE_tParsAttribute    * Constraint0;
  6716. xxtUnionPtr    xxGlobalRecoverySet;
  6717. # endif
  6718. {
  6719.   ParserISE_tParsAttribute Class_type1;
  6720.   xxtUnion xxUnion;
  6721.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6722.   if (xxToken != 15 /* '->' */)
  6723.     xxRecoveryLiteral (15, 152, xxGlobalRecoverySet); /*  '->' expanded Id */
  6724.   else {
  6725.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6726.   }
  6727.   xxUnion.xxLocalRecoverySet = 0; yyClass_type (& Class_type1, & xxUnion); /*  */
  6728. /* line 700 "eiffel_ise.ell" */
  6729.  Constraint0->Tree = mConstraint1(Class_type1.Tree);                     
  6730. }
  6731.  
  6732. static void yyCompound
  6733. # if defined __STDC__ | defined __cplusplus
  6734. (ParserISE_tParsAttribute * Compound0, xxtUnionPtr xxGlobalRecoverySet)
  6735. # else
  6736. (Compound0, xxGlobalRecoverySet)
  6737. ParserISE_tParsAttribute    * Compound0;
  6738. xxtUnionPtr    xxGlobalRecoverySet;
  6739. # endif
  6740. {
  6741.   ParserISE_tParsAttribute Instruction1;
  6742.   xxtUnion xxUnion;
  6743.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6744. /* line 704 "eiffel_ise.ell" */
  6745.  Compound0->Tree = mCompound0();                            
  6746.   for (;;) {
  6747.     if ((xxVerticalSet [xxToken + 648] & 1 << 4 /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */)) {
  6748.       xxUnion.xxLocalRecoverySet = 0; yyInstruction (& Instruction1, & xxUnion); /*  */
  6749. /* line 705 "eiffel_ise.ell" */
  6750.  if (Instruction1.Tree != NoTree) 
  6751.                     Compound0->Tree = mCompound1(Instruction1.Tree, Compound0->Tree);    
  6752.     } else if ((xxVerticalSet [xxToken + 648] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else 'elseif' 'end' 'ensure' false 'invariant' 'old' 'rescue' Result 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  6753.     else
  6754.       xxExpected (103, 103, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  6755.   }
  6756. }
  6757.  
  6758. static void yyConditional
  6759. # if defined __STDC__ | defined __cplusplus
  6760. (ParserISE_tParsAttribute * Conditional0, xxtUnionPtr xxGlobalRecoverySet)
  6761. # else
  6762. (Conditional0, xxGlobalRecoverySet)
  6763. ParserISE_tParsAttribute    * Conditional0;
  6764. xxtUnionPtr    xxGlobalRecoverySet;
  6765. # endif
  6766. {
  6767.   ParserISE_tParsAttribute Then_part_list1;
  6768.   ParserISE_tParsAttribute Else_part1;
  6769.   xxtUnion xxUnion;
  6770.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6771.   if (xxToken != 60 /* 'if' */)
  6772.     xxRecoveryLiteral (60, 153, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else 'end' false 'if' 'old' Result 'strip' true not Id */
  6773.   else {
  6774.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6775.   }
  6776.   xxUnion.xxLocalRecoverySet = 154; yyThen_part_list (& Then_part_list1, & xxUnion); /*  else 'end' */
  6777. /* line 711 "eiffel_ise.ell" */
  6778.  Conditional0->Tree = mConditional(ReverseTree(Then_part_list1.Tree), mCompound0());    
  6779.   for (;;) {
  6780.     if ((xxToken == 49 /* else */)) {
  6781.       xxUnion.xxLocalRecoverySet = 10; yyElse_part (& Else_part1, & xxUnion); /*  'end' */
  6782. /* line 712 "eiffel_ise.ell" */
  6783.  Conditional0->Tree->Conditional.Else_part = Else_part1.Tree;                
  6784.       break;
  6785.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  6786.     xxExpected (154, 154, xxGlobalRecoverySet); /*  else 'end' /  else 'end' */
  6787.   }
  6788.   if (xxToken != 51 /* 'end' */)
  6789.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  6790.   else {
  6791.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6792.   }
  6793. }
  6794.  
  6795. static void yyThen_part_list
  6796. # if defined __STDC__ | defined __cplusplus
  6797. (ParserISE_tParsAttribute * Then_part_list0, xxtUnionPtr xxGlobalRecoverySet)
  6798. # else
  6799. (Then_part_list0, xxGlobalRecoverySet)
  6800. ParserISE_tParsAttribute    * Then_part_list0;
  6801. xxtUnionPtr    xxGlobalRecoverySet;
  6802. # endif
  6803. {
  6804.   ParserISE_tParsAttribute Then_part1;
  6805.   xxtUnion xxUnion;
  6806.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6807. /* line 715 "eiffel_ise.ell" */
  6808.  Then_part_list0->Tree = mThen_part_list0();                        
  6809.   for (;;) {
  6810.     xxUnion.xxLocalRecoverySet = 155; yyThen_part (& Then_part1, & xxUnion); /*  'elseif' */
  6811. /* line 716 "eiffel_ise.ell" */
  6812.  Then_part_list0->Tree = mThen_part_list1(Then_part1.Tree, Then_part_list0->Tree);    
  6813.     if (! ((xxToken == 50 /* 'elseif' */))) {
  6814.       if ((xxVerticalSet [xxToken + 648] & 1 << 7 /*  else 'end' */)) break;
  6815.       xxExpected (155, 156, xxGlobalRecoverySet); /*  'elseif' /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'elseif' false 'old' Result 'strip' true not Id */
  6816.       if (! ((xxToken == 50 /* 'elseif' */) || (xxVerticalSet [xxToken + 648] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */))) break;
  6817.     }
  6818.     if (xxToken != 50 /* 'elseif' */)
  6819.       xxRecoveryLiteral (50, 156, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'elseif' false 'old' Result 'strip' true not Id */
  6820.     else {
  6821.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6822.     }
  6823.   }
  6824. }
  6825.  
  6826. static void yyThen_part
  6827. # if defined __STDC__ | defined __cplusplus
  6828. (ParserISE_tParsAttribute * Then_part0, xxtUnionPtr xxGlobalRecoverySet)
  6829. # else
  6830. (Then_part0, xxGlobalRecoverySet)
  6831. ParserISE_tParsAttribute    * Then_part0;
  6832. xxtUnionPtr    xxGlobalRecoverySet;
  6833. # endif
  6834. {
  6835.     EiffelScan_tScanAttribute then1;
  6836.   ParserISE_tParsAttribute Compound1;
  6837.   ParserISE_tParsAttribute Boolean_expression1;
  6838.   xxtUnion xxUnion;
  6839.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6840.   xxUnion.xxLocalRecoverySet = 157; yyBoolean_expression (& Boolean_expression1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */
  6841.   if (xxToken != 89 /* then */)
  6842.     xxRecoveryTerminal (89, 157, xxGlobalRecoverySet, & then1); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */
  6843.   else {
  6844.     then1 =   EiffelScan_Attribute;
  6845.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6846.   }
  6847.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  6848. /* line 721 "eiffel_ise.ell" */
  6849.  Then_part0->Tree = mThen_part(Boolean_expression1.Tree, ReverseTree(Compound1.Tree));    
  6850. }
  6851.  
  6852. static void yyElse_part
  6853. # if defined __STDC__ | defined __cplusplus
  6854. (ParserISE_tParsAttribute * Else_part0, xxtUnionPtr xxGlobalRecoverySet)
  6855. # else
  6856. (Else_part0, xxGlobalRecoverySet)
  6857. ParserISE_tParsAttribute    * Else_part0;
  6858. xxtUnionPtr    xxGlobalRecoverySet;
  6859. # endif
  6860. {
  6861.     EiffelScan_tScanAttribute else1;
  6862.   ParserISE_tParsAttribute Compound1;
  6863.   xxtUnion xxUnion;
  6864.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6865.   if (xxToken != 49 /* else */)
  6866.     xxRecoveryTerminal (49, 158, xxGlobalRecoverySet, & else1); /*  ';' '!' '!!' '(' 'check' Current 'debug' else 'from' 'if' 'inspect' Result retry Id */
  6867.   else {
  6868.     else1 =   EiffelScan_Attribute;
  6869.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6870.   }
  6871.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  6872. /* line 724 "eiffel_ise.ell" */
  6873.  Else_part0->Tree = ReverseTree(Compound1.Tree);                    
  6874. }
  6875.  
  6876. static void yyMulti_branch
  6877. # if defined __STDC__ | defined __cplusplus
  6878. (ParserISE_tParsAttribute * Multi_branch0, xxtUnionPtr xxGlobalRecoverySet)
  6879. # else
  6880. (Multi_branch0, xxGlobalRecoverySet)
  6881. ParserISE_tParsAttribute    * Multi_branch0;
  6882. xxtUnionPtr    xxGlobalRecoverySet;
  6883. # endif
  6884. {
  6885.   ParserISE_tParsAttribute Expression1;
  6886.   ParserISE_tParsAttribute Else_part1;
  6887.   ParserISE_tParsAttribute When_part_list1;
  6888.   xxtUnion xxUnion;
  6889.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6890.   if (xxToken != 65 /* 'inspect' */)
  6891.     xxRecoveryLiteral (65, 159, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else 'end' false 'inspect' 'old' Result 'strip' true 'when' not Id */
  6892.   else {
  6893.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6894.   }
  6895.   xxUnion.xxLocalRecoverySet = 160; yyExpression (& Expression1, & xxUnion); /*  else 'end' 'when' */
  6896. /* line 729 "eiffel_ise.ell" */
  6897.  Multi_branch0->Tree = mMulti_branch(Expression1.Tree, mWhen_part_list0(), mCompound0());
  6898.   for (;;) {
  6899.     if ((xxToken == 95 /* 'when' */)) {
  6900.       xxUnion.xxLocalRecoverySet = 154; yyWhen_part_list (& When_part_list1, & xxUnion); /*  else 'end' */
  6901. /* line 730 "eiffel_ise.ell" */
  6902.  Multi_branch0->Tree->Multi_branch.When_part_list = ReverseTree(When_part_list1.Tree);    
  6903.       break;
  6904.     } else if ((xxVerticalSet [xxToken + 648] & 1 << 7 /*  else 'end' */) || xxIsRepairMode) break;
  6905.     xxExpected (160, 160, xxGlobalRecoverySet); /*  else 'end' 'when' /  else 'end' 'when' */
  6906.   }
  6907.   for (;;) {
  6908.     if ((xxToken == 49 /* else */)) {
  6909.       xxUnion.xxLocalRecoverySet = 10; yyElse_part (& Else_part1, & xxUnion); /*  'end' */
  6910. /* line 731 "eiffel_ise.ell" */
  6911.  Multi_branch0->Tree->Multi_branch.Else_part = Else_part1.Tree;            
  6912.       break;
  6913.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  6914.     xxExpected (154, 154, xxGlobalRecoverySet); /*  else 'end' /  else 'end' */
  6915.   }
  6916.   if (xxToken != 51 /* 'end' */)
  6917.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  6918.   else {
  6919.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6920.   }
  6921. }
  6922.  
  6923. static void yyWhen_part_list
  6924. # if defined __STDC__ | defined __cplusplus
  6925. (ParserISE_tParsAttribute * When_part_list0, xxtUnionPtr xxGlobalRecoverySet)
  6926. # else
  6927. (When_part_list0, xxGlobalRecoverySet)
  6928. ParserISE_tParsAttribute    * When_part_list0;
  6929. xxtUnionPtr    xxGlobalRecoverySet;
  6930. # endif
  6931. {
  6932.   ParserISE_tParsAttribute When_part1;
  6933.   xxtUnion xxUnion;
  6934.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6935. /* line 734 "eiffel_ise.ell" */
  6936.  When_part_list0->Tree = mWhen_part_list0();                        
  6937.   if (xxToken != 95 /* 'when' */)
  6938.     xxRecoveryLiteral (95, 161, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */
  6939.   else {
  6940.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6941.   }
  6942.   for (;;) {
  6943.     xxUnion.xxLocalRecoverySet = 162; yyWhen_part (& When_part1, & xxUnion); /*  'when' */
  6944. /* line 735 "eiffel_ise.ell" */
  6945.  When_part_list0->Tree = mWhen_part_list1(When_part1.Tree, When_part_list0->Tree);    
  6946.     if (! ((xxToken == 95 /* 'when' */))) {
  6947.       if ((xxVerticalSet [xxToken + 648] & 1 << 7 /*  else 'end' */)) break;
  6948.       xxExpected (162, 161, xxGlobalRecoverySet); /*  'when' /  Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */
  6949.       if (! ((xxToken == 95 /* 'when' */) || (xxVerticalSet [xxToken + 756] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */))) break;
  6950.     }
  6951.     if (xxToken != 95 /* 'when' */)
  6952.       xxRecoveryLiteral (95, 161, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */
  6953.     else {
  6954.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6955.     }
  6956.   }
  6957. }
  6958.  
  6959. static void yyWhen_part
  6960. # if defined __STDC__ | defined __cplusplus
  6961. (ParserISE_tParsAttribute * When_part0, xxtUnionPtr xxGlobalRecoverySet)
  6962. # else
  6963. (When_part0, xxGlobalRecoverySet)
  6964. ParserISE_tParsAttribute    * When_part0;
  6965. xxtUnionPtr    xxGlobalRecoverySet;
  6966. # endif
  6967. {
  6968.     EiffelScan_tScanAttribute then1;
  6969.   ParserISE_tParsAttribute Compound1;
  6970.   ParserISE_tParsAttribute Choices1;
  6971.   xxtUnion xxUnion;
  6972.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6973.   xxUnion.xxLocalRecoverySet = 157; yyChoices (& Choices1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */
  6974.   if (xxToken != 89 /* then */)
  6975.     xxRecoveryTerminal (89, 157, xxGlobalRecoverySet, & then1); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */
  6976.   else {
  6977.     then1 =   EiffelScan_Attribute;
  6978.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6979.   }
  6980.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  6981. /* line 739 "eiffel_ise.ell" */
  6982.  When_part0->Tree = mWhen_part(ReverseTree(Choices1.Tree), ReverseTree(Compound1.Tree));
  6983. }
  6984.  
  6985. static void yyChoices
  6986. # if defined __STDC__ | defined __cplusplus
  6987. (ParserISE_tParsAttribute * Choices0, xxtUnionPtr xxGlobalRecoverySet)
  6988. # else
  6989. (Choices0, xxGlobalRecoverySet)
  6990. ParserISE_tParsAttribute    * Choices0;
  6991. xxtUnionPtr    xxGlobalRecoverySet;
  6992. # endif
  6993. {
  6994.   ParserISE_tParsAttribute Choice1;
  6995.   xxtUnion xxUnion;
  6996.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6997. /* line 741 "eiffel_ise.ell" */
  6998.  Choices0->Tree = mChoices0();                                
  6999.   for (;;) {
  7000.     if ((xxVerticalSet [xxToken + 108] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */)) {
  7001.       for (;;) {
  7002.         xxUnion.xxLocalRecoverySet = 16; yyChoice (& Choice1, & xxUnion); /*  ',' */
  7003. /* line 742 "eiffel_ise.ell" */
  7004.  Choices0->Tree = mChoices1(Choice1.Tree, Choices0->Tree);                
  7005.         if (! ((xxToken == 8 /* ',' */))) {
  7006.           if ((xxToken == 89 /* then */)) break;
  7007.           xxExpected (16, 17, xxGlobalRecoverySet); /*  ',' /  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  7008.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 108] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */))) break;
  7009.         }
  7010.         if (xxToken != 8 /* ',' */)
  7011.           xxRecoveryLiteral (8, 17, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  7012.         else {
  7013.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7014.         }
  7015.       }
  7016.       break;
  7017.     } else if ((xxToken == 89 /* then */) || xxIsRepairMode) break;
  7018.     xxExpected (17, 17, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id /  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  7019.   }
  7020. }
  7021.  
  7022. static void yyChoice
  7023. # if defined __STDC__ | defined __cplusplus
  7024. (ParserISE_tParsAttribute * Choice0, xxtUnionPtr xxGlobalRecoverySet)
  7025. # else
  7026. (Choice0, xxGlobalRecoverySet)
  7027. ParserISE_tParsAttribute    * Choice0;
  7028. xxtUnionPtr    xxGlobalRecoverySet;
  7029. # endif
  7030. {
  7031.     EiffelScan_tScanAttribute Character_constant1, Character_constant2;
  7032.     EiffelScan_tScanAttribute Manifest_string1;
  7033.   ParserISE_tParsAttribute Identifier1;
  7034.   ParserISE_tParsAttribute Number_constant1, Number_constant2;
  7035.   ParserISE_tParsAttribute Boolean_constant1;
  7036.   ParserISE_tParsAttribute Bit_constant1;
  7037.   xxtUnion xxUnion;
  7038.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7039.   for (;;) {
  7040.     switch (xxToken) {
  7041.     case 1 /* Character_constant */ :; 
  7042.       Character_constant1 =       EiffelScan_Attribute;
  7043.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7044. /* line 746 "eiffel_ise.ell" */
  7045.  Choice0->Tree = mVal(mCh(Character_constant1.Char, Character_constant1.Position));    
  7046.       for (;;) {
  7047.         if ((xxToken == 16 /* '..' */)) {
  7048.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7049.           if (xxToken != 1 /* Character_constant */)
  7050.             xxRecoveryTerminal (1, 165, xxGlobalRecoverySet, & Character_constant2); /*  Character_constant */
  7051.           else {
  7052.             Character_constant2 =           EiffelScan_Attribute;
  7053.             xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7054.           }
  7055. /* line 747 "eiffel_ise.ell" */
  7056.  Choice0->Tree = mInterval(Choice0->Tree, mCh(Character_constant2.Char, 
  7057.                                         Character_constant2.Position));    
  7058.           break;
  7059.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 1 /*  ',' then */) || xxIsRepairMode) break;
  7060.         xxExpected (164, 164, xxGlobalRecoverySet); /*  '..' /  '..' */
  7061.       }
  7062.       goto xx30;
  7063.     case 3 /* Integer */ :; 
  7064.     case 4 /* Real */ :; 
  7065.     case 8 /* ',' */ :; 
  7066.     case 16 /* '..' */ :; 
  7067.     case 29 /* plus */ :; 
  7068.     case 30 /* minus */ :; 
  7069.     case 89 /* then */ :; 
  7070.       xxUnion.xxLocalRecoverySet = 164; yyNumber_constant (& Number_constant1, & xxUnion); /*  '..' */
  7071. /* line 750 "eiffel_ise.ell" */
  7072.  Choice0->Tree = mVal(Number_constant1.Tree);                        
  7073.       for (;;) {
  7074.         if ((xxToken == 16 /* '..' */)) {
  7075.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7076.           xxUnion.xxLocalRecoverySet = 0; yyNumber_constant (& Number_constant2, & xxUnion); /*  */
  7077. /* line 751 "eiffel_ise.ell" */
  7078.  Choice0->Tree = mInterval(Number_constant1.Tree, Number_constant2.Tree);         
  7079.           break;
  7080.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 1 /*  ',' then */) || xxIsRepairMode) break;
  7081.         xxExpected (164, 164, xxGlobalRecoverySet); /*  '..' /  '..' */
  7082.       }
  7083.       goto xx30;
  7084.     case 56 /* false */ :; 
  7085.     case 90 /* true */ :; 
  7086.       xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  7087. /* line 752 "eiffel_ise.ell" */
  7088.  Choice0->Tree = mVal(Boolean_constant1.Tree);                        
  7089.       goto xx30;
  7090.     case 5 /* Manifest_string */ :; 
  7091.       Manifest_string1 =       EiffelScan_Attribute;
  7092.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7093. /* line 753 "eiffel_ise.ell" */
  7094.  Choice0->Tree = mVal(mString(Manifest_string1.StringRef, Manifest_string1.Position)); 
  7095.       goto xx30;
  7096.     case 2 /* Bit_sequence */ :; 
  7097.       xxUnion.xxLocalRecoverySet = 0; yyBit_constant (& Bit_constant1, & xxUnion); /*  */
  7098. /* line 754 "eiffel_ise.ell" */
  7099.  Choice0->Tree = mVal(Bit_constant1.Tree);                        
  7100.       goto xx30;
  7101.     case 106 /* Id */ :; 
  7102.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  7103. /* line 755 "eiffel_ise.ell" */
  7104.  Choice0->Tree = mVal(Identifier1.Tree);                        
  7105.       goto xx30;
  7106.     case 6:;
  7107.     case 7:;
  7108.     case 9:;
  7109.     case 10:;
  7110.     case 11:;
  7111.     case 12:;
  7112.     case 13:;
  7113.     case 14:;
  7114.     case 15:;
  7115.     case 17:;
  7116.     case 18:;
  7117.     case 19:;
  7118.     case 20:;
  7119.     case 21:;
  7120.     case 22:;
  7121.     case 23:;
  7122.     case 24:;
  7123.     case 25:;
  7124.     case 26:;
  7125.     case 27:;
  7126.     case 28:;
  7127.     case 31:;
  7128.     case 32:;
  7129.     case 33:;
  7130.     case 34:;
  7131.     case 35:;
  7132.     case 36:;
  7133.     case 37:;
  7134.     case 38:;
  7135.     case 39:;
  7136.     case 40:;
  7137.     case 41:;
  7138.     case 42:;
  7139.     case 43:;
  7140.     case 44:;
  7141.     case 45:;
  7142.     case 46:;
  7143.     case 47:;
  7144.     case 48:;
  7145.     case 49:;
  7146.     case 50:;
  7147.     case 51:;
  7148.     case 52:;
  7149.     case 53:;
  7150.     case 54:;
  7151.     case 55:;
  7152.     case 57:;
  7153.     case 58:;
  7154.     case 59:;
  7155.     case 60:;
  7156.     case 61:;
  7157.     case 62:;
  7158.     case 63:;
  7159.     case 64:;
  7160.     case 65:;
  7161.     case 66:;
  7162.     case 67:;
  7163.     case 68:;
  7164.     case 69:;
  7165.     case 70:;
  7166.     case 71:;
  7167.     case 72:;
  7168.     case 73:;
  7169.     case 74:;
  7170.     case 75:;
  7171.     case 76:;
  7172.     case 77:;
  7173.     case 78:;
  7174.     case 79:;
  7175.     case 80:;
  7176.     case 81:;
  7177.     case 82:;
  7178.     case 83:;
  7179.     case 84:;
  7180.     case 85:;
  7181.     case 86:;
  7182.     case 87:;
  7183.     case 88:;
  7184.     case 91:;
  7185.     case 92:;
  7186.     case 93:;
  7187.     case 94:;
  7188.     case 95:;
  7189.     case 96:;
  7190.     case 97:;
  7191.     case 98:;
  7192.     case 99:;
  7193.     case 100:;
  7194.     case 101:;
  7195.     case 102:;
  7196.     case 103:;
  7197.     case 104:;
  7198.     case 105:;
  7199.     default:
  7200.       if (xxIsRepairMode) {
  7201.         if (xxToken != 1 /* Character_constant */)
  7202.           xxRecoveryTerminal (1, 163, xxGlobalRecoverySet, & Character_constant1); /*  Character_constant '..' */
  7203.         else {
  7204.           Character_constant1 =         EiffelScan_Attribute;
  7205.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7206.         }
  7207. /* line 746 "eiffel_ise.ell" */
  7208.  Choice0->Tree = mVal(mCh(Character_constant1.Char, Character_constant1.Position));    
  7209.         for (;;) {
  7210.           if ((xxToken == 16 /* '..' */)) {
  7211.             xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7212.             if (xxToken != 1 /* Character_constant */)
  7213.               xxRecoveryTerminal (1, 165, xxGlobalRecoverySet, & Character_constant2); /*  Character_constant */
  7214.             else {
  7215.               Character_constant2 =             EiffelScan_Attribute;
  7216.               xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7217.             }
  7218. /* line 747 "eiffel_ise.ell" */
  7219.  Choice0->Tree = mInterval(Choice0->Tree, mCh(Character_constant2.Char, 
  7220.                                         Character_constant2.Position));    
  7221.             break;
  7222.           } else if ((xxVerticalSet [xxToken + 756] & 1 << 1 /*  ',' then */) || xxIsRepairMode) break;
  7223.           xxExpected (164, 164, xxGlobalRecoverySet); /*  '..' /  '..' */
  7224.         }
  7225.         goto xx30;
  7226.       }
  7227. xxUnexpected (167, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string '..' plus minus false true Id */
  7228.     }
  7229.   }
  7230.   xx30:;
  7231. }
  7232.  
  7233. static void yyLoop
  7234. # if defined __STDC__ | defined __cplusplus
  7235. (ParserISE_tParsAttribute * Loop0, xxtUnionPtr xxGlobalRecoverySet)
  7236. # else
  7237. (Loop0, xxGlobalRecoverySet)
  7238. ParserISE_tParsAttribute    * Loop0;
  7239. xxtUnionPtr    xxGlobalRecoverySet;
  7240. # endif
  7241. {
  7242.   ParserISE_tParsAttribute Invariant1;
  7243.   ParserISE_tParsAttribute Variant1;
  7244.   ParserISE_tParsAttribute Initialization1;
  7245.   ParserISE_tParsAttribute Loop_body1;
  7246.   xxtUnion xxUnion;
  7247.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7248.   xxUnion.xxLocalRecoverySet = 168; yyInitialization (& Initialization1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'invariant' 'old' Result 'strip' true 'until' 'variant' not Id */
  7249. /* line 760 "eiffel_ise.ell" */
  7250.  Loop0->Tree = mLoop(Initialization1.Tree, mCondition0(), mAssertion_clause0(), mLoop_body0());
  7251.   for (;;) {
  7252.     if ((xxToken == 67 /* 'invariant' */)) {
  7253.       xxUnion.xxLocalRecoverySet = 170; yyInvariant (& Invariant1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'old' Result 'strip' true 'until' 'variant' not Id */
  7254. /* line 761 "eiffel_ise.ell" */
  7255.  Loop0->Tree->Loop.Invariant = Invariant1.Tree;                    
  7256.       break;
  7257.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 2 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'until' 'variant' not Id */) || xxIsRepairMode) break;
  7258.     xxExpected (169, 168, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'invariant' 'old' Result 'strip' true 'until' 'variant' not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'invariant' 'old' Result 'strip' true 'until' 'variant' not Id */
  7259.   }
  7260.   for (;;) {
  7261.     if ((xxVerticalSet [xxToken + 756] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'variant' not Id */)) {
  7262.       xxUnion.xxLocalRecoverySet = 172; yyVariant (& Variant1, & xxUnion); /*  'end' 'until' */
  7263. /* line 762 "eiffel_ise.ell" */
  7264.  Loop0->Tree->Loop.Variant = Variant1.Tree;                        
  7265.       break;
  7266.     } else if ((xxToken == 93 /* 'until' */) || xxIsRepairMode) break;
  7267.     xxExpected (171, 170, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'until' 'variant' not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'old' Result 'strip' true 'until' 'variant' not Id */
  7268.   }
  7269.   xxUnion.xxLocalRecoverySet = 10; yyLoop_body (& Loop_body1, & xxUnion); /*  'end' */
  7270. /* line 763 "eiffel_ise.ell" */
  7271.  Loop0->Tree->Loop.Loop_body = Loop_body1.Tree;                    
  7272.   if (xxToken != 51 /* 'end' */)
  7273.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  7274.   else {
  7275.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7276.   }
  7277. }
  7278.  
  7279. static void yyInitialization
  7280. # if defined __STDC__ | defined __cplusplus
  7281. (ParserISE_tParsAttribute * Initialization0, xxtUnionPtr xxGlobalRecoverySet)
  7282. # else
  7283. (Initialization0, xxGlobalRecoverySet)
  7284. ParserISE_tParsAttribute    * Initialization0;
  7285. xxtUnionPtr    xxGlobalRecoverySet;
  7286. # endif
  7287. {
  7288.   ParserISE_tParsAttribute Compound1;
  7289.   xxtUnion xxUnion;
  7290.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7291.   if (xxToken != 58 /* 'from' */)
  7292.     xxRecoveryLiteral (58, 103, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7293.   else {
  7294.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7295.   }
  7296.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  7297. /* line 770 "eiffel_ise.ell" */
  7298.  Initialization0->Tree = ReverseTree(Compound1.Tree);                    
  7299. }
  7300.  
  7301. static void yyLoop_body
  7302. # if defined __STDC__ | defined __cplusplus
  7303. (ParserISE_tParsAttribute * Loop_body0, xxtUnionPtr xxGlobalRecoverySet)
  7304. # else
  7305. (Loop_body0, xxGlobalRecoverySet)
  7306. ParserISE_tParsAttribute    * Loop_body0;
  7307. xxtUnionPtr    xxGlobalRecoverySet;
  7308. # endif
  7309. {
  7310.   ParserISE_tParsAttribute Compound1;
  7311.   ParserISE_tParsAttribute Exit1;
  7312.   xxtUnion xxUnion;
  7313.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7314.   xxUnion.xxLocalRecoverySet = 173; yyExit (& Exit1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' 'loop' Result retry Id */
  7315.   if (xxToken != 71 /* 'loop' */)
  7316.     xxRecoveryLiteral (71, 173, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' 'loop' Result retry Id */
  7317.   else {
  7318.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7319.   }
  7320.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  7321. /* line 773 "eiffel_ise.ell" */
  7322.  Loop_body0->Tree = mLoop_body1(Exit1.Tree, ReverseTree(Compound1.Tree));        
  7323. }
  7324.  
  7325. static void yyExit
  7326. # if defined __STDC__ | defined __cplusplus
  7327. (ParserISE_tParsAttribute * Exit0, xxtUnionPtr xxGlobalRecoverySet)
  7328. # else
  7329. (Exit0, xxGlobalRecoverySet)
  7330. ParserISE_tParsAttribute    * Exit0;
  7331. xxtUnionPtr    xxGlobalRecoverySet;
  7332. # endif
  7333. {
  7334.   ParserISE_tParsAttribute Boolean_expression1;
  7335.   xxtUnion xxUnion;
  7336.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7337.   if (xxToken != 93 /* 'until' */)
  7338.     xxRecoveryLiteral (93, 174, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'until' not Id */
  7339.   else {
  7340.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7341.   }
  7342.   xxUnion.xxLocalRecoverySet = 0; yyBoolean_expression (& Boolean_expression1, & xxUnion); /*  */
  7343. /* line 776 "eiffel_ise.ell" */
  7344.  Exit0->Tree = Boolean_expression1.Tree;                    
  7345. }
  7346.  
  7347. static void yyDebug
  7348. # if defined __STDC__ | defined __cplusplus
  7349. (ParserISE_tParsAttribute * Debug0, xxtUnionPtr xxGlobalRecoverySet)
  7350. # else
  7351. (Debug0, xxGlobalRecoverySet)
  7352. ParserISE_tParsAttribute    * Debug0;
  7353. xxtUnionPtr    xxGlobalRecoverySet;
  7354. # endif
  7355. {
  7356.   ParserISE_tParsAttribute Compound1;
  7357.   ParserISE_tParsAttribute Keys_or_qual_call1;
  7358.   xxtUnion xxUnion;
  7359.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7360.   if (xxToken != 45 /* 'debug' */)
  7361.     xxRecoveryLiteral (45, 175, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'end' 'from' 'if' 'inspect' Result retry Id */
  7362.   else {
  7363.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7364.   }
  7365.   for (;;) {
  7366.     switch (xxToken) {
  7367.     case 17 /* '(' */ :; 
  7368.       xxUnion.xxLocalRecoverySet = 10; yyKeys_or_qual_call (& Keys_or_qual_call1, & xxUnion); /*  'end' */
  7369. /* line 781 "eiffel_ise.ell" */
  7370.  Debug0->Tree = Keys_or_qual_call1.Tree;                    
  7371.       goto xx31;
  7372.     case 7 /* ';' */ :; 
  7373.     case 11 /* '!' */ :; 
  7374.     case 12 /* '!!' */ :; 
  7375.     case 41 /* 'check' */ :; 
  7376.     case 44 /* Current */ :; 
  7377.     case 45 /* 'debug' */ :; 
  7378.     case 51 /* 'end' */ :; 
  7379.     case 58 /* 'from' */ :; 
  7380.     case 60 /* 'if' */ :; 
  7381.     case 65 /* 'inspect' */ :; 
  7382.     case 83 /* Result */ :; 
  7383.     case 84 /* retry */ :; 
  7384.     case 106 /* Id */ :; 
  7385.       xxUnion.xxLocalRecoverySet = 10; yyCompound (& Compound1, & xxUnion); /*  'end' */
  7386. /* line 782 "eiffel_ise.ell" */
  7387.  Debug0->Tree = mDebug(mnolist(), ReverseTree(Compound1.Tree));        
  7388.       goto xx31;
  7389.     case 8:;
  7390.     case 9:;
  7391.     case 10:;
  7392.     case 13:;
  7393.     case 14:;
  7394.     case 15:;
  7395.     case 16:;
  7396.     case 18:;
  7397.     case 19:;
  7398.     case 20:;
  7399.     case 21:;
  7400.     case 22:;
  7401.     case 23:;
  7402.     case 24:;
  7403.     case 25:;
  7404.     case 26:;
  7405.     case 27:;
  7406.     case 28:;
  7407.     case 29:;
  7408.     case 30:;
  7409.     case 31:;
  7410.     case 32:;
  7411.     case 33:;
  7412.     case 34:;
  7413.     case 35:;
  7414.     case 36:;
  7415.     case 37:;
  7416.     case 38:;
  7417.     case 39:;
  7418.     case 40:;
  7419.     case 42:;
  7420.     case 43:;
  7421.     case 46:;
  7422.     case 47:;
  7423.     case 48:;
  7424.     case 49:;
  7425.     case 50:;
  7426.     case 52:;
  7427.     case 53:;
  7428.     case 54:;
  7429.     case 55:;
  7430.     case 56:;
  7431.     case 57:;
  7432.     case 59:;
  7433.     case 61:;
  7434.     case 62:;
  7435.     case 63:;
  7436.     case 64:;
  7437.     case 66:;
  7438.     case 67:;
  7439.     case 68:;
  7440.     case 69:;
  7441.     case 70:;
  7442.     case 71:;
  7443.     case 72:;
  7444.     case 73:;
  7445.     case 74:;
  7446.     case 75:;
  7447.     case 76:;
  7448.     case 77:;
  7449.     case 78:;
  7450.     case 79:;
  7451.     case 80:;
  7452.     case 81:;
  7453.     case 82:;
  7454.     case 85:;
  7455.     case 86:;
  7456.     case 87:;
  7457.     case 88:;
  7458.     case 89:;
  7459.     case 90:;
  7460.     case 91:;
  7461.     case 92:;
  7462.     case 93:;
  7463.     case 94:;
  7464.     case 95:;
  7465.     case 96:;
  7466.     case 97:;
  7467.     case 98:;
  7468.     case 99:;
  7469.     case 100:;
  7470.     case 101:;
  7471.     case 102:;
  7472.     case 103:;
  7473.     case 104:;
  7474.     case 105:;
  7475.     default:
  7476.       if (xxIsRepairMode) {
  7477.         xxUnion.xxLocalRecoverySet = 10; yyCompound (& Compound1, & xxUnion); /*  'end' */
  7478. /* line 782 "eiffel_ise.ell" */
  7479.  Debug0->Tree = mDebug(mnolist(), ReverseTree(Compound1.Tree));        
  7480.         goto xx31;
  7481.       }
  7482.       xxExpected (175, 175, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'end' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'end' 'from' 'if' 'inspect' Result retry Id */
  7483.     }
  7484.   }
  7485.   xx31:;
  7486.   if (xxToken != 51 /* 'end' */)
  7487.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  7488.   else {
  7489.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7490.   }
  7491. }
  7492.  
  7493. static void yyKeys_or_qual_call
  7494. # if defined __STDC__ | defined __cplusplus
  7495. (ParserISE_tParsAttribute * Keys_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet)
  7496. # else
  7497. (Keys_or_qual_call0, xxGlobalRecoverySet)
  7498. ParserISE_tParsAttribute    * Keys_or_qual_call0;
  7499. xxtUnionPtr    xxGlobalRecoverySet;
  7500. # endif
  7501. {
  7502.   ParserISE_tParsAttribute Compound1, Compound2, Compound3;
  7503.   ParserISE_tParsAttribute Call_chain1, Call_chain2, Call_chain3;
  7504.   ParserISE_tParsAttribute Expression1;
  7505.   ParserISE_tParsAttribute Expr_tail1;
  7506.   ParserISE_tParsAttribute String1;
  7507.   ParserISE_tParsAttribute String_list1;
  7508.   ParserISE_tParsAttribute One_compound1, One_compound2, One_compound3;
  7509.   xxtUnion xxUnion;
  7510.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7511.   if (xxToken != 17 /* '(' */)
  7512.     xxRecoveryLiteral (17, 176, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  7513.   else {
  7514.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7515.   }
  7516.   for (;;) {
  7517.     switch (xxToken) {
  7518.     case 5 /* Manifest_string */ :; 
  7519.       xxUnion.xxLocalRecoverySet = 177; yyString (& String1, & xxUnion); /*  Free_op ',' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  7520.       for (;;) {
  7521.         switch (xxToken) {
  7522.         case 8 /* ',' */ :; 
  7523.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7524.           xxUnion.xxLocalRecoverySet = 179; yyString_list (& String_list1, & xxUnion); /*  ';' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7525.           if (xxToken != 18 /* ')' */)
  7526.             xxRecoveryLiteral (18, 179, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7527.           else {
  7528.             xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7529.           }
  7530.           xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  7531. /* line 789 "eiffel_ise.ell" */
  7532.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, String_list1.Tree), 
  7533.                                         ReverseTree(Compound1.Tree));    
  7534.           goto xx33;
  7535.         case 18 /* ')' */ :; 
  7536.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7537.           for (;;) {
  7538.             switch (xxToken) {
  7539.             case 10 /* '.' */ :; 
  7540.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7541.               xxUnion.xxLocalRecoverySet = 103; yyCall_chain (& Call_chain1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7542.               xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound1, & xxUnion); /*  */
  7543. /* line 793 "eiffel_ise.ell" */
  7544.  Keys_or_qual_call0->Tree = mDebug(mnolist(), mCompound1(mCall(String1.Tree, 
  7545.                             Call_chain1.Tree), ReverseTree(One_compound1.Tree)) );  
  7546.               goto xx34;
  7547.             case 7 /* ';' */ :; 
  7548.             case 11 /* '!' */ :; 
  7549.             case 12 /* '!!' */ :; 
  7550.             case 17 /* '(' */ :; 
  7551.             case 41 /* 'check' */ :; 
  7552.             case 44 /* Current */ :; 
  7553.             case 45 /* 'debug' */ :; 
  7554.             case 51 /* 'end' */ :; 
  7555.             case 58 /* 'from' */ :; 
  7556.             case 60 /* 'if' */ :; 
  7557.             case 65 /* 'inspect' */ :; 
  7558.             case 83 /* Result */ :; 
  7559.             case 84 /* retry */ :; 
  7560.             case 106 /* Id */ :; 
  7561.               xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /*  */
  7562. /* line 797 "eiffel_ise.ell" */
  7563.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); 
  7564.               goto xx34;
  7565.             case 8:;
  7566.             case 9:;
  7567.             case 13:;
  7568.             case 14:;
  7569.             case 15:;
  7570.             case 16:;
  7571.             case 18:;
  7572.             case 19:;
  7573.             case 20:;
  7574.             case 21:;
  7575.             case 22:;
  7576.             case 23:;
  7577.             case 24:;
  7578.             case 25:;
  7579.             case 26:;
  7580.             case 27:;
  7581.             case 28:;
  7582.             case 29:;
  7583.             case 30:;
  7584.             case 31:;
  7585.             case 32:;
  7586.             case 33:;
  7587.             case 34:;
  7588.             case 35:;
  7589.             case 36:;
  7590.             case 37:;
  7591.             case 38:;
  7592.             case 39:;
  7593.             case 40:;
  7594.             case 42:;
  7595.             case 43:;
  7596.             case 46:;
  7597.             case 47:;
  7598.             case 48:;
  7599.             case 49:;
  7600.             case 50:;
  7601.             case 52:;
  7602.             case 53:;
  7603.             case 54:;
  7604.             case 55:;
  7605.             case 56:;
  7606.             case 57:;
  7607.             case 59:;
  7608.             case 61:;
  7609.             case 62:;
  7610.             case 63:;
  7611.             case 64:;
  7612.             case 66:;
  7613.             case 67:;
  7614.             case 68:;
  7615.             case 69:;
  7616.             case 70:;
  7617.             case 71:;
  7618.             case 72:;
  7619.             case 73:;
  7620.             case 74:;
  7621.             case 75:;
  7622.             case 76:;
  7623.             case 77:;
  7624.             case 78:;
  7625.             case 79:;
  7626.             case 80:;
  7627.             case 81:;
  7628.             case 82:;
  7629.             case 85:;
  7630.             case 86:;
  7631.             case 87:;
  7632.             case 88:;
  7633.             case 89:;
  7634.             case 90:;
  7635.             case 91:;
  7636.             case 92:;
  7637.             case 93:;
  7638.             case 94:;
  7639.             case 95:;
  7640.             case 96:;
  7641.             case 97:;
  7642.             case 98:;
  7643.             case 99:;
  7644.             case 100:;
  7645.             case 101:;
  7646.             case 102:;
  7647.             case 103:;
  7648.             case 104:;
  7649.             case 105:;
  7650.             default:
  7651.               if (xxIsRepairMode) {
  7652.                 xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /*  */
  7653. /* line 797 "eiffel_ise.ell" */
  7654.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); 
  7655.                 goto xx34;
  7656.               }
  7657. xxUnexpected (181, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7658.             }
  7659.           }
  7660.           xx34:;
  7661.           goto xx33;
  7662.         case 6 /* Free_op */ :; 
  7663.         case 13 /* Eq */ :; 
  7664.         case 14 /* Not_eq */ :; 
  7665.         case 29 /* plus */ :; 
  7666.         case 30 /* minus */ :; 
  7667.         case 33 /* div */ :; 
  7668.         case 36 /* and */ :; 
  7669.         case 61 /* implies */ :; 
  7670.         case 76 /* or */ :; 
  7671.         case 96 /* xor */ :; 
  7672.         case 97 /* times */ :; 
  7673.         case 98 /* smaller */ :; 
  7674.         case 99 /* greater */ :; 
  7675.         case 100 /* sm_eq */ :; 
  7676.         case 101 /* gr_eq */ :; 
  7677.         case 102 /* idiv */ :; 
  7678.         case 103 /* imod */ :; 
  7679.         case 104 /* power */ :; 
  7680.           xxUnion.xxLocalRecoverySet = 180; yyExpr_tail (& Expr_tail1, & xxUnion); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7681.           if (xxToken != 18 /* ')' */)
  7682.             xxRecoveryLiteral (18, 180, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7683.           else {
  7684.             xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7685.           }
  7686.           if (xxToken != 10 /* '.' */)
  7687.             xxRecoveryLiteral (10, 181, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7688.           else {
  7689.             xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7690.           }
  7691.           xxUnion.xxLocalRecoverySet = 103; yyCall_chain (& Call_chain2, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7692.           xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound2, & xxUnion); /*  */
  7693. /* line 802 "eiffel_ise.ell" */
  7694.  Keys_or_qual_call0->Tree = mDebug(mnolist(),mCompound1(mCall(mBin_expr(String1.Tree, 
  7695.                     Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop), Call_chain2.Tree), 
  7696.                                     ReverseTree(One_compound2.Tree)));     
  7697.           goto xx33;
  7698.         case 7:;
  7699.         case 9:;
  7700.         case 10:;
  7701.         case 11:;
  7702.         case 12:;
  7703.         case 15:;
  7704.         case 16:;
  7705.         case 17:;
  7706.         case 19:;
  7707.         case 20:;
  7708.         case 21:;
  7709.         case 22:;
  7710.         case 23:;
  7711.         case 24:;
  7712.         case 25:;
  7713.         case 26:;
  7714.         case 27:;
  7715.         case 28:;
  7716.         case 31:;
  7717.         case 32:;
  7718.         case 34:;
  7719.         case 35:;
  7720.         case 37:;
  7721.         case 38:;
  7722.         case 39:;
  7723.         case 40:;
  7724.         case 41:;
  7725.         case 42:;
  7726.         case 43:;
  7727.         case 44:;
  7728.         case 45:;
  7729.         case 46:;
  7730.         case 47:;
  7731.         case 48:;
  7732.         case 49:;
  7733.         case 50:;
  7734.         case 51:;
  7735.         case 52:;
  7736.         case 53:;
  7737.         case 54:;
  7738.         case 55:;
  7739.         case 56:;
  7740.         case 57:;
  7741.         case 58:;
  7742.         case 59:;
  7743.         case 60:;
  7744.         case 62:;
  7745.         case 63:;
  7746.         case 64:;
  7747.         case 65:;
  7748.         case 66:;
  7749.         case 67:;
  7750.         case 68:;
  7751.         case 69:;
  7752.         case 70:;
  7753.         case 71:;
  7754.         case 72:;
  7755.         case 73:;
  7756.         case 74:;
  7757.         case 75:;
  7758.         case 77:;
  7759.         case 78:;
  7760.         case 79:;
  7761.         case 80:;
  7762.         case 81:;
  7763.         case 82:;
  7764.         case 83:;
  7765.         case 84:;
  7766.         case 85:;
  7767.         case 86:;
  7768.         case 87:;
  7769.         case 88:;
  7770.         case 89:;
  7771.         case 90:;
  7772.         case 91:;
  7773.         case 92:;
  7774.         case 93:;
  7775.         case 94:;
  7776.         case 95:;
  7777.         default:
  7778.           if (xxIsRepairMode) {
  7779.             if (xxToken != 18 /* ')' */)
  7780.               xxRecoveryLiteral (18, 180, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7781.             else {
  7782.               xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7783.             }
  7784.             for (;;) {
  7785.               switch (xxToken) {
  7786.               case 10 /* '.' */ :; 
  7787.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7788.                 xxUnion.xxLocalRecoverySet = 103; yyCall_chain (& Call_chain1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7789.                 xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound1, & xxUnion); /*  */
  7790. /* line 793 "eiffel_ise.ell" */
  7791.  Keys_or_qual_call0->Tree = mDebug(mnolist(), mCompound1(mCall(String1.Tree, 
  7792.                             Call_chain1.Tree), ReverseTree(One_compound1.Tree)) );  
  7793.                 goto xx35;
  7794.               case 7 /* ';' */ :; 
  7795.               case 11 /* '!' */ :; 
  7796.               case 12 /* '!!' */ :; 
  7797.               case 17 /* '(' */ :; 
  7798.               case 41 /* 'check' */ :; 
  7799.               case 44 /* Current */ :; 
  7800.               case 45 /* 'debug' */ :; 
  7801.               case 51 /* 'end' */ :; 
  7802.               case 58 /* 'from' */ :; 
  7803.               case 60 /* 'if' */ :; 
  7804.               case 65 /* 'inspect' */ :; 
  7805.               case 83 /* Result */ :; 
  7806.               case 84 /* retry */ :; 
  7807.               case 106 /* Id */ :; 
  7808.                 xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /*  */
  7809. /* line 797 "eiffel_ise.ell" */
  7810.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); 
  7811.                 goto xx35;
  7812.               case 8:;
  7813.               case 9:;
  7814.               case 13:;
  7815.               case 14:;
  7816.               case 15:;
  7817.               case 16:;
  7818.               case 18:;
  7819.               case 19:;
  7820.               case 20:;
  7821.               case 21:;
  7822.               case 22:;
  7823.               case 23:;
  7824.               case 24:;
  7825.               case 25:;
  7826.               case 26:;
  7827.               case 27:;
  7828.               case 28:;
  7829.               case 29:;
  7830.               case 30:;
  7831.               case 31:;
  7832.               case 32:;
  7833.               case 33:;
  7834.               case 34:;
  7835.               case 35:;
  7836.               case 36:;
  7837.               case 37:;
  7838.               case 38:;
  7839.               case 39:;
  7840.               case 40:;
  7841.               case 42:;
  7842.               case 43:;
  7843.               case 46:;
  7844.               case 47:;
  7845.               case 48:;
  7846.               case 49:;
  7847.               case 50:;
  7848.               case 52:;
  7849.               case 53:;
  7850.               case 54:;
  7851.               case 55:;
  7852.               case 56:;
  7853.               case 57:;
  7854.               case 59:;
  7855.               case 61:;
  7856.               case 62:;
  7857.               case 63:;
  7858.               case 64:;
  7859.               case 66:;
  7860.               case 67:;
  7861.               case 68:;
  7862.               case 69:;
  7863.               case 70:;
  7864.               case 71:;
  7865.               case 72:;
  7866.               case 73:;
  7867.               case 74:;
  7868.               case 75:;
  7869.               case 76:;
  7870.               case 77:;
  7871.               case 78:;
  7872.               case 79:;
  7873.               case 80:;
  7874.               case 81:;
  7875.               case 82:;
  7876.               case 85:;
  7877.               case 86:;
  7878.               case 87:;
  7879.               case 88:;
  7880.               case 89:;
  7881.               case 90:;
  7882.               case 91:;
  7883.               case 92:;
  7884.               case 93:;
  7885.               case 94:;
  7886.               case 95:;
  7887.               case 96:;
  7888.               case 97:;
  7889.               case 98:;
  7890.               case 99:;
  7891.               case 100:;
  7892.               case 101:;
  7893.               case 102:;
  7894.               case 103:;
  7895.               case 104:;
  7896.               case 105:;
  7897.               default:
  7898.                 if (xxIsRepairMode) {
  7899.                   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /*  */
  7900. /* line 797 "eiffel_ise.ell" */
  7901.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); 
  7902.                   goto xx35;
  7903.                 }
  7904. xxUnexpected (181, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7905.               }
  7906.             }
  7907.             xx35:;
  7908.             goto xx33;
  7909.           }
  7910.           xxExpected (177, 177, xxGlobalRecoverySet); /*  Free_op ',' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op ',' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  7911.         }
  7912.       }
  7913.       xx33:;
  7914.       goto xx32;
  7915.     case 1 /* Character_constant */ :; 
  7916.     case 2 /* Bit_sequence */ :; 
  7917.     case 3 /* Integer */ :; 
  7918.     case 4 /* Real */ :; 
  7919.     case 6 /* Free_op */ :; 
  7920.     case 17 /* '(' */ :; 
  7921.     case 23 /* '<<' */ :; 
  7922.     case 29 /* plus */ :; 
  7923.     case 30 /* minus */ :; 
  7924.     case 44 /* Current */ :; 
  7925.     case 56 /* false */ :; 
  7926.     case 74 /* 'old' */ :; 
  7927.     case 83 /* Result */ :; 
  7928.     case 88 /* 'strip' */ :; 
  7929.     case 90 /* true */ :; 
  7930.     case 105 /* not */ :; 
  7931.     case 106 /* Id */ :; 
  7932.       xxUnion.xxLocalRecoverySet = 180; yyExpression (& Expression1, & xxUnion); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7933.       if (xxToken != 18 /* ')' */)
  7934.         xxRecoveryLiteral (18, 180, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7935.       else {
  7936.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7937.       }
  7938.       if (xxToken != 10 /* '.' */)
  7939.         xxRecoveryLiteral (10, 181, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7940.       else {
  7941.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7942.       }
  7943.       xxUnion.xxLocalRecoverySet = 103; yyCall_chain (& Call_chain3, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7944.       xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound3, & xxUnion); /*  */
  7945. /* line 809 "eiffel_ise.ell" */
  7946.  Keys_or_qual_call0->Tree = mDebug(mnolist(),mCompound1(mCall( Expression1.Tree
  7947.                             , Call_chain3.Tree), ReverseTree(One_compound3.Tree))); 
  7948.       goto xx32;
  7949.     case 18 /* ')' */ :; 
  7950.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7951.       xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound3, & xxUnion); /*  */
  7952. /* line 813 "eiffel_ise.ell" */
  7953.  Keys_or_qual_call0->Tree = mDebug(mnolist(), ReverseTree(Compound3.Tree));        
  7954.       goto xx32;
  7955.     case 7:;
  7956.     case 8:;
  7957.     case 9:;
  7958.     case 10:;
  7959.     case 11:;
  7960.     case 12:;
  7961.     case 13:;
  7962.     case 14:;
  7963.     case 15:;
  7964.     case 16:;
  7965.     case 19:;
  7966.     case 20:;
  7967.     case 21:;
  7968.     case 22:;
  7969.     case 24:;
  7970.     case 25:;
  7971.     case 26:;
  7972.     case 27:;
  7973.     case 28:;
  7974.     case 31:;
  7975.     case 32:;
  7976.     case 33:;
  7977.     case 34:;
  7978.     case 35:;
  7979.     case 36:;
  7980.     case 37:;
  7981.     case 38:;
  7982.     case 39:;
  7983.     case 40:;
  7984.     case 41:;
  7985.     case 42:;
  7986.     case 43:;
  7987.     case 45:;
  7988.     case 46:;
  7989.     case 47:;
  7990.     case 48:;
  7991.     case 49:;
  7992.     case 50:;
  7993.     case 51:;
  7994.     case 52:;
  7995.     case 53:;
  7996.     case 54:;
  7997.     case 55:;
  7998.     case 57:;
  7999.     case 58:;
  8000.     case 59:;
  8001.     case 60:;
  8002.     case 61:;
  8003.     case 62:;
  8004.     case 63:;
  8005.     case 64:;
  8006.     case 65:;
  8007.     case 66:;
  8008.     case 67:;
  8009.     case 68:;
  8010.     case 69:;
  8011.     case 70:;
  8012.     case 71:;
  8013.     case 72:;
  8014.     case 73:;
  8015.     case 75:;
  8016.     case 76:;
  8017.     case 77:;
  8018.     case 78:;
  8019.     case 79:;
  8020.     case 80:;
  8021.     case 81:;
  8022.     case 82:;
  8023.     case 84:;
  8024.     case 85:;
  8025.     case 86:;
  8026.     case 87:;
  8027.     case 89:;
  8028.     case 91:;
  8029.     case 92:;
  8030.     case 93:;
  8031.     case 94:;
  8032.     case 95:;
  8033.     case 96:;
  8034.     case 97:;
  8035.     case 98:;
  8036.     case 99:;
  8037.     case 100:;
  8038.     case 101:;
  8039.     case 102:;
  8040.     case 103:;
  8041.     case 104:;
  8042.     default:
  8043.       if (xxIsRepairMode) {
  8044.         if (xxToken != 18 /* ')' */)
  8045.           xxRecoveryLiteral (18, 179, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  8046.         else {
  8047.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8048.         }
  8049.         xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound3, & xxUnion); /*  */
  8050. /* line 813 "eiffel_ise.ell" */
  8051.  Keys_or_qual_call0->Tree = mDebug(mnolist(), ReverseTree(Compound3.Tree));        
  8052.         goto xx32;
  8053.       }
  8054.       xxExpected (176, 176, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  8055.     }
  8056.   }
  8057.   xx32:;
  8058. }
  8059.  
  8060. static void yyString
  8061. # if defined __STDC__ | defined __cplusplus
  8062. (ParserISE_tParsAttribute * String0, xxtUnionPtr xxGlobalRecoverySet)
  8063. # else
  8064. (String0, xxGlobalRecoverySet)
  8065. ParserISE_tParsAttribute    * String0;
  8066. xxtUnionPtr    xxGlobalRecoverySet;
  8067. # endif
  8068. {
  8069.     EiffelScan_tScanAttribute Manifest_string1;
  8070.   if (xxToken != 5 /* Manifest_string */)
  8071.     xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string */
  8072.   else {
  8073.     Manifest_string1 =   EiffelScan_Attribute;
  8074.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8075.   }
  8076. /* line 819 "eiffel_ise.ell" */
  8077.  String0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position);     
  8078. }
  8079.  
  8080. static void yyString_list
  8081. # if defined __STDC__ | defined __cplusplus
  8082. (ParserISE_tParsAttribute * String_list0, xxtUnionPtr xxGlobalRecoverySet)
  8083. # else
  8084. (String_list0, xxGlobalRecoverySet)
  8085. ParserISE_tParsAttribute    * String_list0;
  8086. xxtUnionPtr    xxGlobalRecoverySet;
  8087. # endif
  8088. {
  8089.     EiffelScan_tScanAttribute Manifest_string1;
  8090. /* line 822 "eiffel_ise.ell" */
  8091.  String_list0->Tree = mnolist();                            
  8092.   for (;;) {
  8093.     if (xxToken != 5 /* Manifest_string */)
  8094.       xxRecoveryTerminal (5, 182, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string ',' */
  8095.     else {
  8096.       Manifest_string1 =     EiffelScan_Attribute;
  8097.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8098.     }
  8099. /* line 823 "eiffel_ise.ell" */
  8100.  String_list0->Tree = mlist(mString(Manifest_string1.StringRef, Manifest_string1.Position),
  8101.                                             String_list0->Tree);    
  8102.     if (! ((xxToken == 8 /* ',' */))) {
  8103.       if ((xxToken == 18 /* ')' */)) break;
  8104.       xxExpected (16, 182, xxGlobalRecoverySet); /*  ',' /  Manifest_string ',' */
  8105.       if (! ((xxToken == 8 /* ',' */) || (xxToken == 5 /* Manifest_string */))) break;
  8106.     }
  8107.     if (xxToken != 8 /* ',' */)
  8108.       xxRecoveryLiteral (8, 182, xxGlobalRecoverySet); /*  Manifest_string ',' */
  8109.     else {
  8110.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8111.     }
  8112.   }
  8113. /* line 825 "eiffel_ise.ell" */
  8114.  String_list0->Tree = ReverseTree(String_list0->Tree);                    
  8115. }
  8116.  
  8117. static void yyOne_compound
  8118. # if defined __STDC__ | defined __cplusplus
  8119. (ParserISE_tParsAttribute * One_compound0, xxtUnionPtr xxGlobalRecoverySet)
  8120. # else
  8121. (One_compound0, xxGlobalRecoverySet)
  8122. ParserISE_tParsAttribute    * One_compound0;
  8123. xxtUnionPtr    xxGlobalRecoverySet;
  8124. # endif
  8125. {
  8126.   ParserISE_tParsAttribute Instruction1;
  8127.   xxtUnion xxUnion;
  8128.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8129. /* line 829 "eiffel_ise.ell" */
  8130.  One_compound0->Tree = mCompound0();                                                   
  8131.   for (;;) {
  8132.     if ((xxVerticalSet [xxToken + 648] & 1 << 4 /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */)) {
  8133.       for (;;) {
  8134.         if ((xxToken == 7 /* ';' */)) {
  8135.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8136.           break;
  8137.         } else if ((xxVerticalSet [xxToken + 648] & 1 << 4 /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */) || xxIsRepairMode) break;
  8138.         xxExpected (103, 103, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  8139.       }
  8140.       xxUnion.xxLocalRecoverySet = 0; yyInstruction (& Instruction1, & xxUnion); /*  */
  8141. /* line 830 "eiffel_ise.ell" */
  8142.  One_compound0->Tree = mCompound1(Instruction1.Tree, One_compound0->Tree);         
  8143.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  8144.     else
  8145.       xxExpected (103, 103, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  8146.   }
  8147. }
  8148.  
  8149. static void yyRescue
  8150. # if defined __STDC__ | defined __cplusplus
  8151. (ParserISE_tParsAttribute * Rescue0, xxtUnionPtr xxGlobalRecoverySet)
  8152. # else
  8153. (Rescue0, xxGlobalRecoverySet)
  8154. ParserISE_tParsAttribute    * Rescue0;
  8155. xxtUnionPtr    xxGlobalRecoverySet;
  8156. # endif
  8157. {
  8158.   ParserISE_tParsAttribute Compound1;
  8159.   xxtUnion xxUnion;
  8160.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8161.   if (xxToken != 82 /* 'rescue' */)
  8162.     xxRecoveryLiteral (82, 183, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' 'rescue' Result retry Id */
  8163.   else {
  8164.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8165.   }
  8166.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  8167. /* line 835 "eiffel_ise.ell" */
  8168.  Rescue0->Tree = ReverseTree(Compound1.Tree);                        
  8169. }
  8170.  
  8171. static void yyRetry
  8172. # if defined __STDC__ | defined __cplusplus
  8173. (ParserISE_tParsAttribute * Retry0, xxtUnionPtr xxGlobalRecoverySet)
  8174. # else
  8175. (Retry0, xxGlobalRecoverySet)
  8176. ParserISE_tParsAttribute    * Retry0;
  8177. xxtUnionPtr    xxGlobalRecoverySet;
  8178. # endif
  8179. {
  8180.     EiffelScan_tScanAttribute retry1;
  8181.   if (xxToken != 84 /* retry */)
  8182.     xxRecoveryTerminal (84, 184, xxGlobalRecoverySet, & retry1); /*  retry */
  8183.   else {
  8184.     retry1 =   EiffelScan_Attribute;
  8185.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8186.   }
  8187. /* line 838 "eiffel_ise.ell" */
  8188.  Retry0->Tree = mRetry(retry1.Position);                        
  8189. }
  8190.  
  8191. static void yyUnique
  8192. # if defined __STDC__ | defined __cplusplus
  8193. (ParserISE_tParsAttribute * Unique0, xxtUnionPtr xxGlobalRecoverySet)
  8194. # else
  8195. (Unique0, xxGlobalRecoverySet)
  8196. ParserISE_tParsAttribute    * Unique0;
  8197. xxtUnionPtr    xxGlobalRecoverySet;
  8198. # endif
  8199. {
  8200.     EiffelScan_tScanAttribute unique1;
  8201.   if (xxToken != 92 /* unique */)
  8202.     xxRecoveryTerminal (92, 185, xxGlobalRecoverySet, & unique1); /*  unique */
  8203.   else {
  8204.     unique1 =   EiffelScan_Attribute;
  8205.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8206.   }
  8207. /* line 843 "eiffel_ise.ell" */
  8208.  Unique0->Tree = mUnique(unique1.Position);                        
  8209. }
  8210.  
  8211. static void yyEntity
  8212. # if defined __STDC__ | defined __cplusplus
  8213. (ParserISE_tParsAttribute * Entity0, xxtUnionPtr xxGlobalRecoverySet)
  8214. # else
  8215. (Entity0, xxGlobalRecoverySet)
  8216. ParserISE_tParsAttribute    * Entity0;
  8217. xxtUnionPtr    xxGlobalRecoverySet;
  8218. # endif
  8219. {
  8220.     EiffelScan_tScanAttribute Current1;
  8221.   ParserISE_tParsAttribute Writable1;
  8222.   xxtUnion xxUnion;
  8223.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8224.   for (;;) {
  8225.     switch (xxToken) {
  8226.     case 83 /* Result */ :; 
  8227.     case 106 /* Id */ :; 
  8228.       xxUnion.xxLocalRecoverySet = 0; yyWritable (& Writable1, & xxUnion); /*  */
  8229. /* line 848 "eiffel_ise.ell" */
  8230.  Entity0->Tree = Writable1.Tree;                            
  8231.       goto xx36;
  8232.     case 44 /* Current */ :; 
  8233.       Current1 =       EiffelScan_Attribute;
  8234.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8235. /* line 849 "eiffel_ise.ell" */
  8236.  Entity0->Tree = mCurrent(Current1.Position);                        
  8237.       goto xx36;
  8238.     case 45:;
  8239.     case 46:;
  8240.     case 47:;
  8241.     case 48:;
  8242.     case 49:;
  8243.     case 50:;
  8244.     case 51:;
  8245.     case 52:;
  8246.     case 53:;
  8247.     case 54:;
  8248.     case 55:;
  8249.     case 56:;
  8250.     case 57:;
  8251.     case 58:;
  8252.     case 59:;
  8253.     case 60:;
  8254.     case 61:;
  8255.     case 62:;
  8256.     case 63:;
  8257.     case 64:;
  8258.     case 65:;
  8259.     case 66:;
  8260.     case 67:;
  8261.     case 68:;
  8262.     case 69:;
  8263.     case 70:;
  8264.     case 71:;
  8265.     case 72:;
  8266.     case 73:;
  8267.     case 74:;
  8268.     case 75:;
  8269.     case 76:;
  8270.     case 77:;
  8271.     case 78:;
  8272.     case 79:;
  8273.     case 80:;
  8274.     case 81:;
  8275.     case 82:;
  8276.     case 84:;
  8277.     case 85:;
  8278.     case 86:;
  8279.     case 87:;
  8280.     case 88:;
  8281.     case 89:;
  8282.     case 90:;
  8283.     case 91:;
  8284.     case 92:;
  8285.     case 93:;
  8286.     case 94:;
  8287.     case 95:;
  8288.     case 96:;
  8289.     case 97:;
  8290.     case 98:;
  8291.     case 99:;
  8292.     case 100:;
  8293.     case 101:;
  8294.     case 102:;
  8295.     case 103:;
  8296.     case 104:;
  8297.     case 105:;
  8298.     default:
  8299.       if (xxIsRepairMode) {
  8300.         xxUnion.xxLocalRecoverySet = 0; yyWritable (& Writable1, & xxUnion); /*  */
  8301. /* line 848 "eiffel_ise.ell" */
  8302.  Entity0->Tree = Writable1.Tree;                            
  8303.         goto xx36;
  8304.       }
  8305.       xxExpected (186, 186, xxGlobalRecoverySet); /*  Current Result Id /  Current Result Id */
  8306.     }
  8307.   }
  8308.   xx36:;
  8309. }
  8310.  
  8311. static void yyWritable
  8312. # if defined __STDC__ | defined __cplusplus
  8313. (ParserISE_tParsAttribute * Writable0, xxtUnionPtr xxGlobalRecoverySet)
  8314. # else
  8315. (Writable0, xxGlobalRecoverySet)
  8316. ParserISE_tParsAttribute    * Writable0;
  8317. xxtUnionPtr    xxGlobalRecoverySet;
  8318. # endif
  8319. {
  8320.   ParserISE_tParsAttribute Attribute1;
  8321.   ParserISE_tParsAttribute Local1;
  8322.   xxtUnion xxUnion;
  8323.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8324.   for (;;) {
  8325.     switch (xxToken) {
  8326.     case 106 /* Id */ :; 
  8327.       xxUnion.xxLocalRecoverySet = 0; yyAttribute (& Attribute1, & xxUnion); /*  */
  8328. /* line 853 "eiffel_ise.ell" */
  8329.  Writable0->Tree = Attribute1.Tree;                            
  8330.       goto xx37;
  8331.     case 83 /* Result */ :; 
  8332.       xxUnion.xxLocalRecoverySet = 0; yyLocal (& Local1, & xxUnion); /*  */
  8333. /* line 854 "eiffel_ise.ell" */
  8334.  Writable0->Tree = Local1.Tree;                            
  8335.       goto xx37;
  8336.     case 84:;
  8337.     case 85:;
  8338.     case 86:;
  8339.     case 87:;
  8340.     case 88:;
  8341.     case 89:;
  8342.     case 90:;
  8343.     case 91:;
  8344.     case 92:;
  8345.     case 93:;
  8346.     case 94:;
  8347.     case 95:;
  8348.     case 96:;
  8349.     case 97:;
  8350.     case 98:;
  8351.     case 99:;
  8352.     case 100:;
  8353.     case 101:;
  8354.     case 102:;
  8355.     case 103:;
  8356.     case 104:;
  8357.     case 105:;
  8358.     default:
  8359.       if (xxIsRepairMode) {
  8360.         xxUnion.xxLocalRecoverySet = 0; yyAttribute (& Attribute1, & xxUnion); /*  */
  8361. /* line 853 "eiffel_ise.ell" */
  8362.  Writable0->Tree = Attribute1.Tree;                            
  8363.         goto xx37;
  8364.       }
  8365.       xxExpected (187, 187, xxGlobalRecoverySet); /*  Result Id /  Result Id */
  8366.     }
  8367.   }
  8368.   xx37:;
  8369. }
  8370.  
  8371. static void yyAttribute
  8372. # if defined __STDC__ | defined __cplusplus
  8373. (ParserISE_tParsAttribute * Attribute0, xxtUnionPtr xxGlobalRecoverySet)
  8374. # else
  8375. (Attribute0, xxGlobalRecoverySet)
  8376. ParserISE_tParsAttribute    * Attribute0;
  8377. xxtUnionPtr    xxGlobalRecoverySet;
  8378. # endif
  8379. {
  8380.   ParserISE_tParsAttribute Identifier1;
  8381.   xxtUnion xxUnion;
  8382.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8383.   xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  8384. /* line 857 "eiffel_ise.ell" */
  8385.  Attribute0->Tree = Identifier1.Tree;                            
  8386. }
  8387.  
  8388. static void yyLocal
  8389. # if defined __STDC__ | defined __cplusplus
  8390. (ParserISE_tParsAttribute * Local0, xxtUnionPtr xxGlobalRecoverySet)
  8391. # else
  8392. (Local0, xxGlobalRecoverySet)
  8393. ParserISE_tParsAttribute    * Local0;
  8394. xxtUnionPtr    xxGlobalRecoverySet;
  8395. # endif
  8396. {
  8397.     EiffelScan_tScanAttribute Result1;
  8398.   ParserISE_tParsAttribute Identifier1;
  8399.   xxtUnion xxUnion;
  8400.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8401.   for (;;) {
  8402.     switch (xxToken) {
  8403.     case 106 /* Id */ :; 
  8404.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  8405. /* line 860 "eiffel_ise.ell" */
  8406.  Local0->Tree = Identifier1.Tree;                            
  8407.       goto xx38;
  8408.     case 83 /* Result */ :; 
  8409.       Result1 =       EiffelScan_Attribute;
  8410.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8411. /* line 861 "eiffel_ise.ell" */
  8412.  Local0->Tree = mResult(Result1.Position);                        
  8413.       goto xx38;
  8414.     case 84:;
  8415.     case 85:;
  8416.     case 86:;
  8417.     case 87:;
  8418.     case 88:;
  8419.     case 89:;
  8420.     case 90:;
  8421.     case 91:;
  8422.     case 92:;
  8423.     case 93:;
  8424.     case 94:;
  8425.     case 95:;
  8426.     case 96:;
  8427.     case 97:;
  8428.     case 98:;
  8429.     case 99:;
  8430.     case 100:;
  8431.     case 101:;
  8432.     case 102:;
  8433.     case 103:;
  8434.     case 104:;
  8435.     case 105:;
  8436.     default:
  8437.       if (xxIsRepairMode) {
  8438.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  8439. /* line 860 "eiffel_ise.ell" */
  8440.  Local0->Tree = Identifier1.Tree;                            
  8441.         goto xx38;
  8442.       }
  8443.       xxExpected (187, 187, xxGlobalRecoverySet); /*  Result Id /  Result Id */
  8444.     }
  8445.   }
  8446.   xx38:;
  8447. }
  8448.  
  8449. static void yyCreators
  8450. # if defined __STDC__ | defined __cplusplus
  8451. (ParserISE_tParsAttribute * Creators0, xxtUnionPtr xxGlobalRecoverySet)
  8452. # else
  8453. (Creators0, xxGlobalRecoverySet)
  8454. ParserISE_tParsAttribute    * Creators0;
  8455. xxtUnionPtr    xxGlobalRecoverySet;
  8456. # endif
  8457. {
  8458.   ParserISE_tParsAttribute Creation_clause1;
  8459.   xxtUnion xxUnion;
  8460.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8461. /* line 871 "eiffel_ise.ell" */
  8462.  Creators0->Tree = mCreators0();                            
  8463.   if (xxToken != 43 /* 'creation' */)
  8464.     xxRecoveryLiteral (43, 189, xxGlobalRecoverySet); /*  '{' 'creation' infix prefix Id */
  8465.   else {
  8466.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8467.   }
  8468.   for (;;) {
  8469.     xxUnion.xxLocalRecoverySet = 190; yyCreation_clause (& Creation_clause1, & xxUnion); /*  'creation' */
  8470. /* line 873 "eiffel_ise.ell" */
  8471.  Creators0->Tree = mCreators1(Creation_clause1.Tree, Creators0->Tree);            
  8472.     if (! ((xxToken == 43 /* 'creation' */))) {
  8473.       if ((xxVerticalSet [xxToken] & 1 << 5 /*  'end' 'feature' 'invariant' */)) break;
  8474.       xxExpected (190, 189, xxGlobalRecoverySet); /*  'creation' /  '{' 'creation' infix prefix Id */
  8475.       if (! ((xxToken == 43 /* 'creation' */) || (xxVerticalSet [xxToken + 756] & 1 << 4 /*  '{' 'creation' infix prefix Id */))) break;
  8476.     }
  8477.     if (xxToken != 43 /* 'creation' */)
  8478.       xxRecoveryLiteral (43, 189, xxGlobalRecoverySet); /*  '{' 'creation' infix prefix Id */
  8479.     else {
  8480.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8481.     }
  8482.   }
  8483. }
  8484.  
  8485. static void yyCreation_clause
  8486. # if defined __STDC__ | defined __cplusplus
  8487. (ParserISE_tParsAttribute * Creation_clause0, xxtUnionPtr xxGlobalRecoverySet)
  8488. # else
  8489. (Creation_clause0, xxGlobalRecoverySet)
  8490. ParserISE_tParsAttribute    * Creation_clause0;
  8491. xxtUnionPtr    xxGlobalRecoverySet;
  8492. # endif
  8493. {
  8494.   ParserISE_tParsAttribute Clients1;
  8495.   ParserISE_tParsAttribute Feature_list1;
  8496.   xxtUnion xxUnion;
  8497.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8498. /* line 877 "eiffel_ise.ell" */
  8499.  Creation_clause0->Tree = mCreation_clause(mClients0(), no_comment, mFeature_list0());    
  8500.   for (;;) {
  8501.     if ((xxToken == 21 /* '{' */)) {
  8502.       xxUnion.xxLocalRecoverySet = 35; yyClients (& Clients1, & xxUnion); /*  infix prefix Id */
  8503. /* line 878 "eiffel_ise.ell" */
  8504.  Creation_clause0->Tree->Creation_clause.Clients = Clients1.Tree;            
  8505.       break;
  8506.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 5 /*  'creation' 'end' 'feature' infix 'invariant' prefix Id */) || xxIsRepairMode) break;
  8507.     xxExpected (191, 191, xxGlobalRecoverySet); /*  '{' infix prefix Id /  '{' infix prefix Id */
  8508.   }
  8509. /* line 879 "eiffel_ise.ell" */
  8510.  Creation_clause0->Tree->Creation_clause.comment = comment_ref;             
  8511.   xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  8512. /* line 880 "eiffel_ise.ell" */
  8513.  Creation_clause0->Tree->Creation_clause.Feature_list = ReverseTree(Feature_list1.Tree);
  8514. }
  8515.  
  8516. static void yyCreation
  8517. # if defined __STDC__ | defined __cplusplus
  8518. (ParserISE_tParsAttribute * Creation0, xxtUnionPtr xxGlobalRecoverySet)
  8519. # else
  8520. (Creation0, xxGlobalRecoverySet)
  8521. ParserISE_tParsAttribute    * Creation0;
  8522. xxtUnionPtr    xxGlobalRecoverySet;
  8523. # endif
  8524. {
  8525.   ParserISE_tParsAttribute Type1;
  8526.   ParserISE_tParsAttribute Writable1;
  8527.   ParserISE_tParsAttribute Creation_call1;
  8528.   xxtUnion xxUnion;
  8529.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8530. /* line 884 "eiffel_ise.ell" */
  8531.  Creation0->Tree = mCreation(mType0(), mEntity0(NoPosition), mUnqual_call0());        
  8532.   for (;;) {
  8533.     switch (xxToken) {
  8534.     case 11 /* '!' */ :; 
  8535.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8536.       for (;;) {
  8537.         if ((xxVerticalSet [xxToken + 648] & 1 << 2 /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */)) {
  8538.           xxUnion.xxLocalRecoverySet = 194; yyType (& Type1, & xxUnion); /*  '.' '!' Result Id */
  8539. /* line 885 "eiffel_ise.ell" */
  8540.  Creation0->Tree->Creation.Type = Type1.Tree;                        
  8541.           break;
  8542.         } else if ((xxToken == 11 /* '!' */) || xxIsRepairMode) break;
  8543.         xxExpected (193, 192, xxGlobalRecoverySet); /*  '!' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id /  '.' '!' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL Result STRING Id */
  8544.       }
  8545.       if (xxToken != 11 /* '!' */)
  8546.         xxRecoveryLiteral (11, 194, xxGlobalRecoverySet); /*  '.' '!' Result Id */
  8547.       else {
  8548.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8549.       }
  8550.       goto xx39;
  8551.     case 12 /* '!!' */ :; 
  8552.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8553.       goto xx39;
  8554.     default:
  8555.       if (xxIsRepairMode) {
  8556.         if (xxToken != 12 /* '!!' */)
  8557.           xxRecoveryLiteral (12, 195, xxGlobalRecoverySet); /*  '.' '!!' Result Id */
  8558.         else {
  8559.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8560.         }
  8561.         goto xx39;
  8562.       }
  8563.       xxExpected (196, 197, xxGlobalRecoverySet); /*  '!' '!!' Result Id /  '.' '!' '!!' Result Id */
  8564.     }
  8565.   }
  8566.   xx39:;
  8567.   xxUnion.xxLocalRecoverySet = 106; yyWritable (& Writable1, & xxUnion); /*  '.' */
  8568. /* line 886 "eiffel_ise.ell" */
  8569.  Creation0->Tree->Creation.Entity = Writable1.Tree;                
  8570.   for (;;) {
  8571.     if ((xxToken == 10 /* '.' */)) {
  8572.       xxUnion.xxLocalRecoverySet = 0; yyCreation_call (& Creation_call1, & xxUnion); /*  */
  8573. /* line 887 "eiffel_ise.ell" */
  8574.  Creation0->Tree->Creation.Unqual_call = Creation_call1.Tree;                
  8575.       break;
  8576.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  8577.     xxExpected (106, 106, xxGlobalRecoverySet); /*  '.' /  '.' */
  8578.   }
  8579. }
  8580.  
  8581. static void yyCreation_call
  8582. # if defined __STDC__ | defined __cplusplus
  8583. (ParserISE_tParsAttribute * Creation_call0, xxtUnionPtr xxGlobalRecoverySet)
  8584. # else
  8585. (Creation_call0, xxGlobalRecoverySet)
  8586. ParserISE_tParsAttribute    * Creation_call0;
  8587. xxtUnionPtr    xxGlobalRecoverySet;
  8588. # endif
  8589. {
  8590.   ParserISE_tParsAttribute Unqualified_call1;
  8591.   xxtUnion xxUnion;
  8592.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8593.   if (xxToken != 10 /* '.' */)
  8594.     xxRecoveryLiteral (10, 107, xxGlobalRecoverySet); /*  '.' Current Result Id */
  8595.   else {
  8596.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8597.   }
  8598.   xxUnion.xxLocalRecoverySet = 0; yyUnqualified_call (& Unqualified_call1, & xxUnion); /*  */
  8599. /* line 891 "eiffel_ise.ell" */
  8600.  Creation_call0->Tree = Unqualified_call1.Tree;                    
  8601. }
  8602.  
  8603. static void yyQualified_call
  8604. # if defined __STDC__ | defined __cplusplus
  8605. (ParserISE_tParsAttribute * Qualified_call0, xxtUnionPtr xxGlobalRecoverySet)
  8606. # else
  8607. (Qualified_call0, xxGlobalRecoverySet)
  8608. ParserISE_tParsAttribute    * Qualified_call0;
  8609. xxtUnionPtr    xxGlobalRecoverySet;
  8610. # endif
  8611. {
  8612.   ParserISE_tParsAttribute Call_chain1;
  8613.   ParserISE_tParsAttribute Parenthesized_qualifier1;
  8614.   xxtUnion xxUnion;
  8615.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8616.   xxUnion.xxLocalRecoverySet = 186; yyParenthesized_qualifier (& Parenthesized_qualifier1, & xxUnion); /*  Current Result Id */
  8617.   xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  8618. /* line 896 "eiffel_ise.ell" */
  8619.  Qualified_call0->Tree = mCall_instruct(mCall( Parenthesized_qualifier1.Tree,
  8620.                                              Call_chain1.Tree));    
  8621. }
  8622.  
  8623. static void yyParenthesized_qualifier
  8624. # if defined __STDC__ | defined __cplusplus
  8625. (ParserISE_tParsAttribute * Parenthesized_qualifier0, xxtUnionPtr xxGlobalRecoverySet)
  8626. # else
  8627. (Parenthesized_qualifier0, xxGlobalRecoverySet)
  8628. ParserISE_tParsAttribute    * Parenthesized_qualifier0;
  8629. xxtUnionPtr    xxGlobalRecoverySet;
  8630. # endif
  8631. {
  8632.   ParserISE_tParsAttribute Expression1;
  8633.   xxtUnion xxUnion;
  8634.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8635.   if (xxToken != 17 /* '(' */)
  8636.     xxRecoveryLiteral (17, 198, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '.' '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  8637.   else {
  8638.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8639.   }
  8640.   xxUnion.xxLocalRecoverySet = 199; yyExpression (& Expression1, & xxUnion); /*  '.' ')' */
  8641.   if (xxToken != 18 /* ')' */)
  8642.     xxRecoveryLiteral (18, 199, xxGlobalRecoverySet); /*  '.' ')' */
  8643.   else {
  8644.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8645.   }
  8646.   if (xxToken != 10 /* '.' */)
  8647.     xxRecoveryLiteral (10, 106, xxGlobalRecoverySet); /*  '.' */
  8648.   else {
  8649.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8650.   }
  8651. /* line 901 "eiffel_ise.ell" */
  8652.  Parenthesized_qualifier0->Tree = Expression1.Tree;                    
  8653. }
  8654.  
  8655. static void yyCall_chain
  8656. # if defined __STDC__ | defined __cplusplus
  8657. (ParserISE_tParsAttribute * Call_chain0, xxtUnionPtr xxGlobalRecoverySet)
  8658. # else
  8659. (Call_chain0, xxGlobalRecoverySet)
  8660. ParserISE_tParsAttribute    * Call_chain0;
  8661. xxtUnionPtr    xxGlobalRecoverySet;
  8662. # endif
  8663. {
  8664.   ParserISE_tParsAttribute Unqualified_call1;
  8665.   xxtUnion xxUnion;
  8666.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8667. /* line 904 "eiffel_ise.ell" */
  8668.  Call_chain0->Tree = mCall_chain0();                            
  8669.   for (;;) {
  8670.     xxUnion.xxLocalRecoverySet = 106; yyUnqualified_call (& Unqualified_call1, & xxUnion); /*  '.' */
  8671. /* line 905 "eiffel_ise.ell" */
  8672.  Call_chain0->Tree = mCall_chain1(Unqualified_call1.Tree, Call_chain0->Tree);        
  8673.     if (! ((xxToken == 10 /* '.' */))) {
  8674.       if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */)) break;
  8675.       xxExpected (107, 107, xxGlobalRecoverySet); /*  '.' Current Result Id /  '.' Current Result Id */
  8676.       if (! ((xxToken == 10 /* '.' */) || (xxVerticalSet [xxToken + 756] & 1 << 6 /*  Current Result Id */))) break;
  8677.     }
  8678.     if (xxToken != 10 /* '.' */)
  8679.       xxRecoveryLiteral (10, 107, xxGlobalRecoverySet); /*  '.' Current Result Id */
  8680.     else {
  8681.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8682.     }
  8683.   }
  8684. /* line 906 "eiffel_ise.ell" */
  8685.  Call_chain0->Tree = ReverseTree(Call_chain0->Tree);                    
  8686. }
  8687.  
  8688. static void yyUnqualified_call
  8689. # if defined __STDC__ | defined __cplusplus
  8690. (ParserISE_tParsAttribute * Unqualified_call0, xxtUnionPtr xxGlobalRecoverySet)
  8691. # else
  8692. (Unqualified_call0, xxGlobalRecoverySet)
  8693. ParserISE_tParsAttribute    * Unqualified_call0;
  8694. xxtUnionPtr    xxGlobalRecoverySet;
  8695. # endif
  8696. {
  8697.   ParserISE_tParsAttribute Actuals1;
  8698.   ParserISE_tParsAttribute Entity1;
  8699.   xxtUnion xxUnion;
  8700.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8701.   xxUnion.xxLocalRecoverySet = 200; yyEntity (& Entity1, & xxUnion); /*  '(' */
  8702. /* line 910 "eiffel_ise.ell" */
  8703.  Unqualified_call0->Tree = mUnqual_call1(Entity1.Tree, mActuals0());            
  8704.   for (;;) {
  8705.     if ((xxToken == 17 /* '(' */)) {
  8706.       xxUnion.xxLocalRecoverySet = 0; yyActuals (& Actuals1, & xxUnion); /*  */
  8707. /* line 911 "eiffel_ise.ell" */
  8708.  Unqualified_call0->Tree->Unqual_call1.Actuals =  Actuals1.Tree;            
  8709.       break;
  8710.     } else if ((xxVerticalSet [xxToken + 864] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '.' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  8711.     xxExpected (200, 200, xxGlobalRecoverySet); /*  '(' /  '(' */
  8712.   }
  8713. }
  8714.  
  8715. static void yyActuals
  8716. # if defined __STDC__ | defined __cplusplus
  8717. (ParserISE_tParsAttribute * Actuals0, xxtUnionPtr xxGlobalRecoverySet)
  8718. # else
  8719. (Actuals0, xxGlobalRecoverySet)
  8720. ParserISE_tParsAttribute    * Actuals0;
  8721. xxtUnionPtr    xxGlobalRecoverySet;
  8722. # endif
  8723. {
  8724.   ParserISE_tParsAttribute Actual_list1;
  8725.   xxtUnion xxUnion;
  8726.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8727.   if (xxToken != 17 /* '(' */)
  8728.     xxRecoveryLiteral (17, 201, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8729.   else {
  8730.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8731.   }
  8732.   xxUnion.xxLocalRecoverySet = 82; yyActual_list (& Actual_list1, & xxUnion); /*  ')' */
  8733.   if (xxToken != 18 /* ')' */)
  8734.     xxRecoveryLiteral (18, 82, xxGlobalRecoverySet); /*  ')' */
  8735.   else {
  8736.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8737.   }
  8738. /* line 916 "eiffel_ise.ell" */
  8739.  Actuals0->Tree = mActuals1(ReverseTree(Actual_list1.Tree));                
  8740. }
  8741.  
  8742. static void yyActual_list
  8743. # if defined __STDC__ | defined __cplusplus
  8744. (ParserISE_tParsAttribute * Actual_list0, xxtUnionPtr xxGlobalRecoverySet)
  8745. # else
  8746. (Actual_list0, xxGlobalRecoverySet)
  8747. ParserISE_tParsAttribute    * Actual_list0;
  8748. xxtUnionPtr    xxGlobalRecoverySet;
  8749. # endif
  8750. {
  8751.   ParserISE_tParsAttribute Actual1;
  8752.   xxtUnion xxUnion;
  8753.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8754. /* line 918 "eiffel_ise.ell" */
  8755.  Actual_list0->Tree = mActual_list0();                            
  8756.   for (;;) {
  8757.     if ((xxVerticalSet [xxToken + 864] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */)) {
  8758.       for (;;) {
  8759.         xxUnion.xxLocalRecoverySet = 16; yyActual (& Actual1, & xxUnion); /*  ',' */
  8760. /* line 919 "eiffel_ise.ell" */
  8761.  Actual_list0->Tree = mActual_list1(Actual1.Tree, Actual_list0->Tree);            
  8762.         if (! ((xxToken == 8 /* ',' */))) {
  8763.           if ((xxToken == 18 /* ')' */)) break;
  8764.           xxExpected (16, 203, xxGlobalRecoverySet); /*  ',' /  Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8765.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 864] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */))) break;
  8766.         }
  8767.         if (xxToken != 8 /* ',' */)
  8768.           xxRecoveryLiteral (8, 203, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8769.         else {
  8770.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8771.         }
  8772.       }
  8773.       break;
  8774.     } else if ((xxToken == 18 /* ')' */) || xxIsRepairMode) break;
  8775.     xxExpected (202, 202, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8776.   }
  8777. }
  8778.  
  8779. static void yyActual
  8780. # if defined __STDC__ | defined __cplusplus
  8781. (ParserISE_tParsAttribute * Actual0, xxtUnionPtr xxGlobalRecoverySet)
  8782. # else
  8783. (Actual0, xxGlobalRecoverySet)
  8784. ParserISE_tParsAttribute    * Actual0;
  8785. xxtUnionPtr    xxGlobalRecoverySet;
  8786. # endif
  8787. {
  8788.   ParserISE_tParsAttribute Expression1;
  8789.   ParserISE_tParsAttribute Address1;
  8790.   xxtUnion xxUnion;
  8791.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8792.   for (;;) {
  8793.     switch (xxToken) {
  8794.     case 1 /* Character_constant */ :; 
  8795.     case 2 /* Bit_sequence */ :; 
  8796.     case 3 /* Integer */ :; 
  8797.     case 4 /* Real */ :; 
  8798.     case 5 /* Manifest_string */ :; 
  8799.     case 6 /* Free_op */ :; 
  8800.     case 17 /* '(' */ :; 
  8801.     case 23 /* '<<' */ :; 
  8802.     case 29 /* plus */ :; 
  8803.     case 30 /* minus */ :; 
  8804.     case 44 /* Current */ :; 
  8805.     case 56 /* false */ :; 
  8806.     case 74 /* 'old' */ :; 
  8807.     case 83 /* Result */ :; 
  8808.     case 88 /* 'strip' */ :; 
  8809.     case 90 /* true */ :; 
  8810.     case 105 /* not */ :; 
  8811.     case 106 /* Id */ :; 
  8812.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  8813. /* line 923 "eiffel_ise.ell" */
  8814.  Actual0->Tree = Expression1.Tree;                            
  8815.       goto xx40;
  8816.     case 31 /* '$' */ :; 
  8817.       xxUnion.xxLocalRecoverySet = 0; yyAddress (& Address1, & xxUnion); /*  */
  8818. /* line 924 "eiffel_ise.ell" */
  8819.  Actual0->Tree = mAddr(Address1.Tree);                            
  8820.       goto xx40;
  8821.     case 7:;
  8822.     case 8:;
  8823.     case 9:;
  8824.     case 10:;
  8825.     case 11:;
  8826.     case 12:;
  8827.     case 13:;
  8828.     case 14:;
  8829.     case 15:;
  8830.     case 16:;
  8831.     case 18:;
  8832.     case 19:;
  8833.     case 20:;
  8834.     case 21:;
  8835.     case 22:;
  8836.     case 24:;
  8837.     case 25:;
  8838.     case 26:;
  8839.     case 27:;
  8840.     case 28:;
  8841.     case 32:;
  8842.     case 33:;
  8843.     case 34:;
  8844.     case 35:;
  8845.     case 36:;
  8846.     case 37:;
  8847.     case 38:;
  8848.     case 39:;
  8849.     case 40:;
  8850.     case 41:;
  8851.     case 42:;
  8852.     case 43:;
  8853.     case 45:;
  8854.     case 46:;
  8855.     case 47:;
  8856.     case 48:;
  8857.     case 49:;
  8858.     case 50:;
  8859.     case 51:;
  8860.     case 52:;
  8861.     case 53:;
  8862.     case 54:;
  8863.     case 55:;
  8864.     case 57:;
  8865.     case 58:;
  8866.     case 59:;
  8867.     case 60:;
  8868.     case 61:;
  8869.     case 62:;
  8870.     case 63:;
  8871.     case 64:;
  8872.     case 65:;
  8873.     case 66:;
  8874.     case 67:;
  8875.     case 68:;
  8876.     case 69:;
  8877.     case 70:;
  8878.     case 71:;
  8879.     case 72:;
  8880.     case 73:;
  8881.     case 75:;
  8882.     case 76:;
  8883.     case 77:;
  8884.     case 78:;
  8885.     case 79:;
  8886.     case 80:;
  8887.     case 81:;
  8888.     case 82:;
  8889.     case 84:;
  8890.     case 85:;
  8891.     case 86:;
  8892.     case 87:;
  8893.     case 89:;
  8894.     case 91:;
  8895.     case 92:;
  8896.     case 93:;
  8897.     case 94:;
  8898.     case 95:;
  8899.     case 96:;
  8900.     case 97:;
  8901.     case 98:;
  8902.     case 99:;
  8903.     case 100:;
  8904.     case 101:;
  8905.     case 102:;
  8906.     case 103:;
  8907.     case 104:;
  8908.     default:
  8909.       if (xxIsRepairMode) {
  8910.         xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  8911. /* line 923 "eiffel_ise.ell" */
  8912.  Actual0->Tree = Expression1.Tree;                            
  8913.         goto xx40;
  8914.       }
  8915.       xxExpected (202, 202, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8916.     }
  8917.   }
  8918.   xx40:;
  8919. }
  8920.  
  8921. static void yyAddress
  8922. # if defined __STDC__ | defined __cplusplus
  8923. (ParserISE_tParsAttribute * Address0, xxtUnionPtr xxGlobalRecoverySet)
  8924. # else
  8925. (Address0, xxGlobalRecoverySet)
  8926. ParserISE_tParsAttribute    * Address0;
  8927. xxtUnionPtr    xxGlobalRecoverySet;
  8928. # endif
  8929. {
  8930.   ParserISE_tParsAttribute Address_mark1;
  8931.   xxtUnion xxUnion;
  8932.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8933.   if (xxToken != 31 /* '$' */)
  8934.     xxRecoveryLiteral (31, 204, xxGlobalRecoverySet); /*  '$' Current Result Id */
  8935.   else {
  8936.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8937.   }
  8938.   xxUnion.xxLocalRecoverySet = 0; yyAddress_mark (& Address_mark1, & xxUnion); /*  */
  8939. /* line 927 "eiffel_ise.ell" */
  8940.  Address0->Tree = Address_mark1.Tree;                            
  8941. }
  8942.  
  8943. static void yyAddress_mark
  8944. # if defined __STDC__ | defined __cplusplus
  8945. (ParserISE_tParsAttribute * Address_mark0, xxtUnionPtr xxGlobalRecoverySet)
  8946. # else
  8947. (Address_mark0, xxGlobalRecoverySet)
  8948. ParserISE_tParsAttribute    * Address_mark0;
  8949. xxtUnionPtr    xxGlobalRecoverySet;
  8950. # endif
  8951. {
  8952.     EiffelScan_tScanAttribute Current1;
  8953.     EiffelScan_tScanAttribute Result1;
  8954.   ParserISE_tParsAttribute Identifier1;
  8955.   xxtUnion xxUnion;
  8956.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8957.   for (;;) {
  8958.     switch (xxToken) {
  8959.     case 106 /* Id */ :; 
  8960.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  8961. /* line 931 "eiffel_ise.ell" */
  8962.  Address_mark0->Tree = Identifier1.Tree;                        
  8963.       goto xx41;
  8964.     case 44 /* Current */ :; 
  8965.       Current1 =       EiffelScan_Attribute;
  8966.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8967. /* line 932 "eiffel_ise.ell" */
  8968.  Address_mark0->Tree = mCurrent(Current1.Position);                    
  8969.       goto xx41;
  8970.     case 83 /* Result */ :; 
  8971.       Result1 =       EiffelScan_Attribute;
  8972.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8973. /* line 933 "eiffel_ise.ell" */
  8974.  Address_mark0->Tree = mResult(Result1.Position);                    
  8975.       goto xx41;
  8976.     case 45:;
  8977.     case 46:;
  8978.     case 47:;
  8979.     case 48:;
  8980.     case 49:;
  8981.     case 50:;
  8982.     case 51:;
  8983.     case 52:;
  8984.     case 53:;
  8985.     case 54:;
  8986.     case 55:;
  8987.     case 56:;
  8988.     case 57:;
  8989.     case 58:;
  8990.     case 59:;
  8991.     case 60:;
  8992.     case 61:;
  8993.     case 62:;
  8994.     case 63:;
  8995.     case 64:;
  8996.     case 65:;
  8997.     case 66:;
  8998.     case 67:;
  8999.     case 68:;
  9000.     case 69:;
  9001.     case 70:;
  9002.     case 71:;
  9003.     case 72:;
  9004.     case 73:;
  9005.     case 74:;
  9006.     case 75:;
  9007.     case 76:;
  9008.     case 77:;
  9009.     case 78:;
  9010.     case 79:;
  9011.     case 80:;
  9012.     case 81:;
  9013.     case 82:;
  9014.     case 84:;
  9015.     case 85:;
  9016.     case 86:;
  9017.     case 87:;
  9018.     case 88:;
  9019.     case 89:;
  9020.     case 90:;
  9021.     case 91:;
  9022.     case 92:;
  9023.     case 93:;
  9024.     case 94:;
  9025.     case 95:;
  9026.     case 96:;
  9027.     case 97:;
  9028.     case 98:;
  9029.     case 99:;
  9030.     case 100:;
  9031.     case 101:;
  9032.     case 102:;
  9033.     case 103:;
  9034.     case 104:;
  9035.     case 105:;
  9036.     default:
  9037.       if (xxIsRepairMode) {
  9038.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  9039. /* line 931 "eiffel_ise.ell" */
  9040.  Address_mark0->Tree = Identifier1.Tree;                        
  9041.         goto xx41;
  9042.       }
  9043.       xxExpected (186, 186, xxGlobalRecoverySet); /*  Current Result Id /  Current Result Id */
  9044.     }
  9045.   }
  9046.   xx41:;
  9047. }
  9048.  
  9049. static void yyExpression
  9050. # if defined __STDC__ | defined __cplusplus
  9051. (ParserISE_tParsAttribute * Expression0, xxtUnionPtr xxGlobalRecoverySet)
  9052. # else
  9053. (Expression0, xxGlobalRecoverySet)
  9054. ParserISE_tParsAttribute    * Expression0;
  9055. xxtUnionPtr    xxGlobalRecoverySet;
  9056. # endif
  9057. {
  9058.   ParserISE_tParsAttribute Prefix_operator1;
  9059.   ParserISE_tParsAttribute Expression1;
  9060.   ParserISE_tParsAttribute Expr_tail1;
  9061.   ParserISE_tParsAttribute Old1;
  9062.   ParserISE_tParsAttribute Ident_call1;
  9063.   ParserISE_tParsAttribute Result_call1;
  9064.   ParserISE_tParsAttribute Current_call1;
  9065.   ParserISE_tParsAttribute Manifest_array1;
  9066.   ParserISE_tParsAttribute No_sign_constant1;
  9067.   ParserISE_tParsAttribute Strip1;
  9068.   ParserISE_tParsAttribute Parenth_expr_or_qual_call1;
  9069.   xxtUnion xxUnion;
  9070.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9071.   for (;;) {
  9072.     switch (xxToken) {
  9073.     case 106 /* Id */ :; 
  9074.       xxUnion.xxLocalRecoverySet = 0; yyIdent_call (& Ident_call1, & xxUnion); /*  */
  9075. /* line 938 "eiffel_ise.ell" */
  9076.  Expression0->Tree = Ident_call1.Tree;                            
  9077.       goto xx42;
  9078.     case 83 /* Result */ :; 
  9079.       xxUnion.xxLocalRecoverySet = 0; yyResult_call (& Result_call1, & xxUnion); /*  */
  9080. /* line 939 "eiffel_ise.ell" */
  9081.  Expression0->Tree = Result_call1.Tree;                        
  9082.       goto xx42;
  9083.     case 44 /* Current */ :; 
  9084.       xxUnion.xxLocalRecoverySet = 0; yyCurrent_call (& Current_call1, & xxUnion); /*  */
  9085. /* line 940 "eiffel_ise.ell" */
  9086.  Expression0->Tree = Current_call1.Tree;                        
  9087.       goto xx42;
  9088.     case 23 /* '<<' */ :; 
  9089.       xxUnion.xxLocalRecoverySet = 123; yyManifest_array (& Manifest_array1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9090. /* line 941 "eiffel_ise.ell" */
  9091.  Expression0->Tree = Manifest_array1.Tree;                        
  9092.       for (;;) {
  9093.         if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9094.           xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9095. /* line 942 "eiffel_ise.ell" */
  9096.  Expression0->Tree = mBin_expr(Manifest_array1.Tree, Expr_tail1.Tree->Bin_expr.Op,
  9097.                             Expr_tail1.Tree->Bin_expr.Rop);                
  9098.           break;
  9099.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9100.         xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9101.       }
  9102.       goto xx42;
  9103.     case 1 /* Character_constant */ :; 
  9104.     case 2 /* Bit_sequence */ :; 
  9105.     case 3 /* Integer */ :; 
  9106.     case 4 /* Real */ :; 
  9107.     case 5 /* Manifest_string */ :; 
  9108.     case 56 /* false */ :; 
  9109.     case 90 /* true */ :; 
  9110.       xxUnion.xxLocalRecoverySet = 123; yyNo_sign_constant (& No_sign_constant1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9111. /* line 944 "eiffel_ise.ell" */
  9112.  Expression0->Tree = mSimple_expr(No_sign_constant1.Tree);                
  9113.       for (;;) {
  9114.         if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9115.           xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9116. /* line 945 "eiffel_ise.ell" */
  9117.  Expression0->Tree = mBin_expr(mSimple_expr(No_sign_constant1.Tree), 
  9118.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop);    
  9119.           break;
  9120.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9121.         xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9122.       }
  9123.       goto xx42;
  9124.     case 74 /* 'old' */ :; 
  9125.       xxUnion.xxLocalRecoverySet = 123; yyOld (& Old1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9126. /* line 947 "eiffel_ise.ell" */
  9127.  Expression0->Tree = Old1.Tree;                            
  9128.       for (;;) {
  9129.         if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9130.           xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9131. /* line 948 "eiffel_ise.ell" */
  9132.  Expression0->Tree = mBin_expr(Old1.Tree, Expr_tail1.Tree->Bin_expr.Op,
  9133.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  9134.           break;
  9135.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9136.         xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9137.       }
  9138.       goto xx42;
  9139.     case 88 /* 'strip' */ :; 
  9140.       xxUnion.xxLocalRecoverySet = 123; yyStrip (& Strip1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9141. /* line 950 "eiffel_ise.ell" */
  9142.  Expression0->Tree = Strip1.Tree;                            
  9143.       for (;;) {
  9144.         if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9145.           xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9146. /* line 951 "eiffel_ise.ell" */
  9147.  Expression0->Tree = mBin_expr(Strip1.Tree, Expr_tail1.Tree->Bin_expr.Op,
  9148.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  9149.           break;
  9150.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9151.         xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9152.       }
  9153.       goto xx42;
  9154.     case 17 /* '(' */ :; 
  9155.       xxUnion.xxLocalRecoverySet = 0; yyParenth_expr_or_qual_call (& Parenth_expr_or_qual_call1, & xxUnion); /*  */
  9156. /* line 953 "eiffel_ise.ell" */
  9157.  Expression0->Tree = Parenth_expr_or_qual_call1.Tree;                
  9158.       goto xx42;
  9159.     case 6 /* Free_op */ :; 
  9160.     case 29 /* plus */ :; 
  9161.     case 30 /* minus */ :; 
  9162.     case 105 /* not */ :; 
  9163.       xxUnion.xxLocalRecoverySet = 125; yyPrefix_operator (& Prefix_operator1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9164.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  9165. /* line 954 "eiffel_ise.ell" */
  9166.  Expression0->Tree = mUn_expr(Prefix_operator1.Tree, Expression1.Tree);     
  9167.       goto xx42;
  9168.     case 7:;
  9169.     case 8:;
  9170.     case 9:;
  9171.     case 10:;
  9172.     case 11:;
  9173.     case 12:;
  9174.     case 13:;
  9175.     case 14:;
  9176.     case 15:;
  9177.     case 16:;
  9178.     case 18:;
  9179.     case 19:;
  9180.     case 20:;
  9181.     case 21:;
  9182.     case 22:;
  9183.     case 24:;
  9184.     case 25:;
  9185.     case 26:;
  9186.     case 27:;
  9187.     case 28:;
  9188.     case 31:;
  9189.     case 32:;
  9190.     case 33:;
  9191.     case 34:;
  9192.     case 35:;
  9193.     case 36:;
  9194.     case 37:;
  9195.     case 38:;
  9196.     case 39:;
  9197.     case 40:;
  9198.     case 41:;
  9199.     case 42:;
  9200.     case 43:;
  9201.     case 45:;
  9202.     case 46:;
  9203.     case 47:;
  9204.     case 48:;
  9205.     case 49:;
  9206.     case 50:;
  9207.     case 51:;
  9208.     case 52:;
  9209.     case 53:;
  9210.     case 54:;
  9211.     case 55:;
  9212.     case 57:;
  9213.     case 58:;
  9214.     case 59:;
  9215.     case 60:;
  9216.     case 61:;
  9217.     case 62:;
  9218.     case 63:;
  9219.     case 64:;
  9220.     case 65:;
  9221.     case 66:;
  9222.     case 67:;
  9223.     case 68:;
  9224.     case 69:;
  9225.     case 70:;
  9226.     case 71:;
  9227.     case 72:;
  9228.     case 73:;
  9229.     case 75:;
  9230.     case 76:;
  9231.     case 77:;
  9232.     case 78:;
  9233.     case 79:;
  9234.     case 80:;
  9235.     case 81:;
  9236.     case 82:;
  9237.     case 84:;
  9238.     case 85:;
  9239.     case 86:;
  9240.     case 87:;
  9241.     case 89:;
  9242.     case 91:;
  9243.     case 92:;
  9244.     case 93:;
  9245.     case 94:;
  9246.     case 95:;
  9247.     case 96:;
  9248.     case 97:;
  9249.     case 98:;
  9250.     case 99:;
  9251.     case 100:;
  9252.     case 101:;
  9253.     case 102:;
  9254.     case 103:;
  9255.     case 104:;
  9256.     default:
  9257.       if (xxIsRepairMode) {
  9258.         xxUnion.xxLocalRecoverySet = 0; yyIdent_call (& Ident_call1, & xxUnion); /*  */
  9259. /* line 938 "eiffel_ise.ell" */
  9260.  Expression0->Tree = Ident_call1.Tree;                            
  9261.         goto xx42;
  9262.       }
  9263.       xxExpected (125, 125, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9264.     }
  9265.   }
  9266.   xx42:;
  9267. }
  9268.  
  9269. static void yyExpr_tail
  9270. # if defined __STDC__ | defined __cplusplus
  9271. (ParserISE_tParsAttribute * Expr_tail0, xxtUnionPtr xxGlobalRecoverySet)
  9272. # else
  9273. (Expr_tail0, xxGlobalRecoverySet)
  9274. ParserISE_tParsAttribute    * Expr_tail0;
  9275. xxtUnionPtr    xxGlobalRecoverySet;
  9276. # endif
  9277. {
  9278.   ParserISE_tParsAttribute Infix_operator1;
  9279.   ParserISE_tParsAttribute Expression1;
  9280.   ParserISE_tParsAttribute Comparison1;
  9281.   xxtUnion xxUnion;
  9282.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9283.   for (;;) {
  9284.     switch (xxToken) {
  9285.     case 6 /* Free_op */ :; 
  9286.     case 29 /* plus */ :; 
  9287.     case 30 /* minus */ :; 
  9288.     case 33 /* div */ :; 
  9289.     case 36 /* and */ :; 
  9290.     case 61 /* implies */ :; 
  9291.     case 76 /* or */ :; 
  9292.     case 96 /* xor */ :; 
  9293.     case 97 /* times */ :; 
  9294.     case 98 /* smaller */ :; 
  9295.     case 99 /* greater */ :; 
  9296.     case 100 /* sm_eq */ :; 
  9297.     case 101 /* gr_eq */ :; 
  9298.     case 102 /* idiv */ :; 
  9299.     case 103 /* imod */ :; 
  9300.     case 104 /* power */ :; 
  9301.       xxUnion.xxLocalRecoverySet = 125; yyInfix_operator (& Infix_operator1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9302. /* line 958 "eiffel_ise.ell" */
  9303.  Expr_tail0->Tree = mBin_expr(mExpression0(), Infix_operator1.Tree, mExpression0());    
  9304.       goto xx43;
  9305.     case 13 /* Eq */ :; 
  9306.     case 14 /* Not_eq */ :; 
  9307.       xxUnion.xxLocalRecoverySet = 125; yyComparison (& Comparison1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9308. /* line 959 "eiffel_ise.ell" */
  9309.  Expr_tail0->Tree = mBin_expr(mExpression0(), Comparison1.Tree, mExpression0());    
  9310.       goto xx43;
  9311.     case 7:;
  9312.     case 8:;
  9313.     case 9:;
  9314.     case 10:;
  9315.     case 11:;
  9316.     case 12:;
  9317.     case 15:;
  9318.     case 16:;
  9319.     case 17:;
  9320.     case 18:;
  9321.     case 19:;
  9322.     case 20:;
  9323.     case 21:;
  9324.     case 22:;
  9325.     case 23:;
  9326.     case 24:;
  9327.     case 25:;
  9328.     case 26:;
  9329.     case 27:;
  9330.     case 28:;
  9331.     case 31:;
  9332.     case 32:;
  9333.     case 34:;
  9334.     case 35:;
  9335.     case 37:;
  9336.     case 38:;
  9337.     case 39:;
  9338.     case 40:;
  9339.     case 41:;
  9340.     case 42:;
  9341.     case 43:;
  9342.     case 44:;
  9343.     case 45:;
  9344.     case 46:;
  9345.     case 47:;
  9346.     case 48:;
  9347.     case 49:;
  9348.     case 50:;
  9349.     case 51:;
  9350.     case 52:;
  9351.     case 53:;
  9352.     case 54:;
  9353.     case 55:;
  9354.     case 56:;
  9355.     case 57:;
  9356.     case 58:;
  9357.     case 59:;
  9358.     case 60:;
  9359.     case 62:;
  9360.     case 63:;
  9361.     case 64:;
  9362.     case 65:;
  9363.     case 66:;
  9364.     case 67:;
  9365.     case 68:;
  9366.     case 69:;
  9367.     case 70:;
  9368.     case 71:;
  9369.     case 72:;
  9370.     case 73:;
  9371.     case 74:;
  9372.     case 75:;
  9373.     case 77:;
  9374.     case 78:;
  9375.     case 79:;
  9376.     case 80:;
  9377.     case 81:;
  9378.     case 82:;
  9379.     case 83:;
  9380.     case 84:;
  9381.     case 85:;
  9382.     case 86:;
  9383.     case 87:;
  9384.     case 88:;
  9385.     case 89:;
  9386.     case 90:;
  9387.     case 91:;
  9388.     case 92:;
  9389.     case 93:;
  9390.     case 94:;
  9391.     case 95:;
  9392.     default:
  9393.       if (xxIsRepairMode) {
  9394.         xxUnion.xxLocalRecoverySet = 125; yyInfix_operator (& Infix_operator1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9395. /* line 958 "eiffel_ise.ell" */
  9396.  Expr_tail0->Tree = mBin_expr(mExpression0(), Infix_operator1.Tree, mExpression0());    
  9397.         goto xx43;
  9398.       }
  9399.       xxExpected (205, 205, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op Eq Not_eq '(' '<<' plus minus div and Current false implies 'old' or Result 'strip' true xor times smaller greater sm_eq gr_eq idiv imod power not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op Eq Not_eq '(' '<<' plus minus div and Current false implies 'old' or Result 'strip' true xor times smaller greater sm_eq gr_eq idiv imod power not Id */
  9400.     }
  9401.   }
  9402.   xx43:;
  9403.   xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  9404. /* line 960 "eiffel_ise.ell" */
  9405.  Expr_tail0->Tree->Bin_expr.Rop = Expression1.Tree;                    
  9406. }
  9407.  
  9408. static void yyIdent_call
  9409. # if defined __STDC__ | defined __cplusplus
  9410. (ParserISE_tParsAttribute * Ident_call0, xxtUnionPtr xxGlobalRecoverySet)
  9411. # else
  9412. (Ident_call0, xxGlobalRecoverySet)
  9413. ParserISE_tParsAttribute    * Ident_call0;
  9414. xxtUnionPtr    xxGlobalRecoverySet;
  9415. # endif
  9416. {
  9417.   ParserISE_tParsAttribute Identifier1;
  9418.   ParserISE_tParsAttribute Actuals1;
  9419.   ParserISE_tParsAttribute Call_chain1;
  9420.   ParserISE_tParsAttribute Expr_tail1;
  9421.   xxtUnion xxUnion;
  9422.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9423.   xxUnion.xxLocalRecoverySet = 120; yyIdentifier (& Identifier1, & xxUnion); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9424. /* line 964 "eiffel_ise.ell" */
  9425.  Ident_call0->Tree = mCall_chain1(mUnqual_call1(Identifier1.Tree, mActuals0()) ,mCall_chain0()); 
  9426.   for (;;) {
  9427.     if ((xxToken == 17 /* '(' */)) {
  9428.       xxUnion.xxLocalRecoverySet = 121; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9429. /* line 965 "eiffel_ise.ell" */
  9430.  Ident_call0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;    
  9431.       break;
  9432.     } else if ((xxVerticalSet [xxToken + 864] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '.' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9433.     xxExpected (120, 120, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9434.   }
  9435.   for (;;) {
  9436.     if ((xxToken == 10 /* '.' */)) {
  9437.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9438.       xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9439. /* line 966 "eiffel_ise.ell" */
  9440.  Ident_call0->Tree->Call_chain1.Call_chain = Call_chain1.Tree ;            
  9441.       break;
  9442.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9443.     xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9444.   }
  9445. /* line 967 "eiffel_ise.ell" */
  9446.  Ident_call0->Tree = mCall(mExpression0(), Ident_call0->Tree);                
  9447.   for (;;) {
  9448.     if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9449.       xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9450. /* line 968 "eiffel_ise.ell" */
  9451.  Ident_call0->Tree = mBin_expr(Ident_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  9452.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  9453.       break;
  9454.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9455.     xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9456.   }
  9457. }
  9458.  
  9459. static void yyResult_call
  9460. # if defined __STDC__ | defined __cplusplus
  9461. (ParserISE_tParsAttribute * Result_call0, xxtUnionPtr xxGlobalRecoverySet)
  9462. # else
  9463. (Result_call0, xxGlobalRecoverySet)
  9464. ParserISE_tParsAttribute    * Result_call0;
  9465. xxtUnionPtr    xxGlobalRecoverySet;
  9466. # endif
  9467. {
  9468.     EiffelScan_tScanAttribute Result1;
  9469.   ParserISE_tParsAttribute Actuals1;
  9470.   ParserISE_tParsAttribute Call_chain1;
  9471.   ParserISE_tParsAttribute Expr_tail1;
  9472.   xxtUnion xxUnion;
  9473.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9474.   if (xxToken != 83 /* Result */)
  9475.     xxRecoveryTerminal (83, 206, xxGlobalRecoverySet, & Result1); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or Result xor times smaller greater sm_eq gr_eq idiv imod power */
  9476.   else {
  9477.     Result1 =   EiffelScan_Attribute;
  9478.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9479.   }
  9480. /* line 973 "eiffel_ise.ell" */
  9481.  Result_call0->Tree = mCall_chain1(mUnqual_call1( mResult(Result1.Position),
  9482.                                         mActuals0()), mCall_chain0());    
  9483.   for (;;) {
  9484.     if ((xxToken == 17 /* '(' */)) {
  9485.       xxUnion.xxLocalRecoverySet = 121; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9486. /* line 975 "eiffel_ise.ell" */
  9487.  Result_call0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;     
  9488.       break;
  9489.     } else if ((xxVerticalSet [xxToken + 864] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '.' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9490.     xxExpected (120, 120, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9491.   }
  9492.   for (;;) {
  9493.     if ((xxToken == 10 /* '.' */)) {
  9494.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9495.       xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9496. /* line 976 "eiffel_ise.ell" */
  9497.  Result_call0->Tree->Call_chain1.Call_chain = Call_chain1.Tree ;            
  9498.       break;
  9499.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9500.     xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9501.   }
  9502. /* line 977 "eiffel_ise.ell" */
  9503.  Result_call0->Tree = mCall(mExpression0(), Result_call0->Tree);            
  9504.   for (;;) {
  9505.     if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9506.       xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9507. /* line 978 "eiffel_ise.ell" */
  9508.  Result_call0->Tree = mBin_expr(Result_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  9509.                                         Expr_tail1.Tree->Bin_expr.Rop); 
  9510.       break;
  9511.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9512.     xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9513.   }
  9514. }
  9515.  
  9516. static void yyCurrent_call
  9517. # if defined __STDC__ | defined __cplusplus
  9518. (ParserISE_tParsAttribute * Current_call0, xxtUnionPtr xxGlobalRecoverySet)
  9519. # else
  9520. (Current_call0, xxGlobalRecoverySet)
  9521. ParserISE_tParsAttribute    * Current_call0;
  9522. xxtUnionPtr    xxGlobalRecoverySet;
  9523. # endif
  9524. {
  9525.     EiffelScan_tScanAttribute Current1;
  9526.   ParserISE_tParsAttribute Actuals1;
  9527.   ParserISE_tParsAttribute Call_chain1;
  9528.   ParserISE_tParsAttribute Expr_tail1;
  9529.   xxtUnion xxUnion;
  9530.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9531.   if (xxToken != 44 /* Current */)
  9532.     xxRecoveryTerminal (44, 207, xxGlobalRecoverySet, & Current1); /*  Free_op '.' Eq Not_eq '(' plus minus div and Current implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9533.   else {
  9534.     Current1 =   EiffelScan_Attribute;
  9535.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9536.   }
  9537. /* line 984 "eiffel_ise.ell" */
  9538.  Current_call0->Tree = mCall_chain1(mUnqual_call1( mCurrent(Current1.Position), mActuals0()),
  9539.                                                  mCall_chain0());
  9540.   for (;;) {
  9541.     if ((xxToken == 17 /* '(' */)) {
  9542.       xxUnion.xxLocalRecoverySet = 121; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9543. /* line 986 "eiffel_ise.ell" */
  9544.  Current_call0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;     
  9545.       break;
  9546.     } else if ((xxVerticalSet [xxToken + 864] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '.' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9547.     xxExpected (120, 120, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9548.   }
  9549.   for (;;) {
  9550.     if ((xxToken == 10 /* '.' */)) {
  9551.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9552.       xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9553. /* line 987 "eiffel_ise.ell" */
  9554.  Current_call0->Tree->Call_chain1.Call_chain = Call_chain1.Tree ;            
  9555.       break;
  9556.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9557.     xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9558.   }
  9559. /* line 988 "eiffel_ise.ell" */
  9560.  Current_call0->Tree = mCall(mExpression0(), Current_call0->Tree);            
  9561.   for (;;) {
  9562.     if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9563.       xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9564. /* line 989 "eiffel_ise.ell" */
  9565.  Current_call0->Tree = mBin_expr(Current_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  9566.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  9567.       break;
  9568.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9569.     xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9570.   }
  9571. }
  9572.  
  9573. static void yyParenth_expr_or_qual_call
  9574. # if defined __STDC__ | defined __cplusplus
  9575. (ParserISE_tParsAttribute * Parenth_expr_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet)
  9576. # else
  9577. (Parenth_expr_or_qual_call0, xxGlobalRecoverySet)
  9578. ParserISE_tParsAttribute    * Parenth_expr_or_qual_call0;
  9579. xxtUnionPtr    xxGlobalRecoverySet;
  9580. # endif
  9581. {
  9582.   ParserISE_tParsAttribute Call_chain1;
  9583.   ParserISE_tParsAttribute Expression1;
  9584.   ParserISE_tParsAttribute Expr_tail1;
  9585.   xxtUnion xxUnion;
  9586.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9587.   if (xxToken != 17 /* '(' */)
  9588.     xxRecoveryLiteral (17, 208, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '.' Eq Not_eq '(' ')' '<<' plus minus div and Current false implies 'old' or Result 'strip' true xor times smaller greater sm_eq gr_eq idiv imod power not Id */
  9589.   else {
  9590.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9591.   }
  9592.   xxUnion.xxLocalRecoverySet = 209; yyExpression (& Expression1, & xxUnion); /*  Free_op '.' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9593.   if (xxToken != 18 /* ')' */)
  9594.     xxRecoveryLiteral (18, 209, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9595.   else {
  9596.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9597.   }
  9598. /* line 996 "eiffel_ise.ell" */
  9599.  Parenth_expr_or_qual_call0->Tree = mParenth(Expression1.Tree);            
  9600.   for (;;) {
  9601.     if ((xxToken == 10 /* '.' */)) {
  9602.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9603.       xxUnion.xxLocalRecoverySet = 123; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9604. /* line 997 "eiffel_ise.ell" */
  9605.  Parenth_expr_or_qual_call0->Tree = mCall(Expression1.Tree,Call_chain1.Tree);         
  9606.       break;
  9607.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9608.     xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9609.   }
  9610.   for (;;) {
  9611.     if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9612.       xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9613. /* line 998 "eiffel_ise.ell" */
  9614.  Parenth_expr_or_qual_call0->Tree = mBin_expr(Parenth_expr_or_qual_call0->Tree, 
  9615.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop);    
  9616.       break;
  9617.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9618.     xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9619.   }
  9620. }
  9621.  
  9622. static void yyNo_sign_constant
  9623. # if defined __STDC__ | defined __cplusplus
  9624. (ParserISE_tParsAttribute * No_sign_constant0, xxtUnionPtr xxGlobalRecoverySet)
  9625. # else
  9626. (No_sign_constant0, xxGlobalRecoverySet)
  9627. ParserISE_tParsAttribute    * No_sign_constant0;
  9628. xxtUnionPtr    xxGlobalRecoverySet;
  9629. # endif
  9630. {
  9631.     EiffelScan_tScanAttribute Character_constant1;
  9632.     EiffelScan_tScanAttribute Bit_sequence1;
  9633.     EiffelScan_tScanAttribute Integer1;
  9634.     EiffelScan_tScanAttribute Real1;
  9635.     EiffelScan_tScanAttribute Manifest_string1;
  9636.   ParserISE_tParsAttribute Boolean_constant1;
  9637.   xxtUnion xxUnion;
  9638.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9639.   for (;;) {
  9640.     switch (xxToken) {
  9641.     case 56 /* false */ :; 
  9642.     case 90 /* true */ :; 
  9643.       xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  9644. /* line 1002 "eiffel_ise.ell" */
  9645.  No_sign_constant0->Tree = Boolean_constant1.Tree;                     
  9646.       goto xx44;
  9647.     case 1 /* Character_constant */ :; 
  9648.       Character_constant1 =       EiffelScan_Attribute;
  9649.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9650. /* line 1003 "eiffel_ise.ell" */
  9651.  No_sign_constant0->Tree = mCh(Character_constant1.Char, Character_constant1.Position);
  9652.       goto xx44;
  9653.     case 3 /* Integer */ :; 
  9654.       Integer1 =       EiffelScan_Attribute;
  9655.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9656. /* line 1004 "eiffel_ise.ell" */
  9657.  No_sign_constant0->Tree = mInt(mOper(NoPosition, VOID), Integer1.Int, Integer1.Position);
  9658.       goto xx44;
  9659.     case 4 /* Real */ :; 
  9660.       Real1 =       EiffelScan_Attribute;
  9661.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9662. /* line 1005 "eiffel_ise.ell" */
  9663.  No_sign_constant0->Tree = mReal(mOper(NoPosition, VOID), Real1.Real, Real1.Position);    
  9664.       goto xx44;
  9665.     case 5 /* Manifest_string */ :; 
  9666.       Manifest_string1 =       EiffelScan_Attribute;
  9667.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9668. /* line 1006 "eiffel_ise.ell" */
  9669.  No_sign_constant0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position); 
  9670.       goto xx44;
  9671.     case 2 /* Bit_sequence */ :; 
  9672.       Bit_sequence1 =       EiffelScan_Attribute;
  9673.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9674. /* line 1007 "eiffel_ise.ell" */
  9675.  No_sign_constant0->Tree = mBitseq(Bit_sequence1.StringRef, Bit_sequence1.Position);     
  9676.       goto xx44;
  9677.     case 6:;
  9678.     case 7:;
  9679.     case 8:;
  9680.     case 9:;
  9681.     case 10:;
  9682.     case 11:;
  9683.     case 12:;
  9684.     case 13:;
  9685.     case 14:;
  9686.     case 15:;
  9687.     case 16:;
  9688.     case 17:;
  9689.     case 18:;
  9690.     case 19:;
  9691.     case 20:;
  9692.     case 21:;
  9693.     case 22:;
  9694.     case 23:;
  9695.     case 24:;
  9696.     case 25:;
  9697.     case 26:;
  9698.     case 27:;
  9699.     case 28:;
  9700.     case 29:;
  9701.     case 30:;
  9702.     case 31:;
  9703.     case 32:;
  9704.     case 33:;
  9705.     case 34:;
  9706.     case 35:;
  9707.     case 36:;
  9708.     case 37:;
  9709.     case 38:;
  9710.     case 39:;
  9711.     case 40:;
  9712.     case 41:;
  9713.     case 42:;
  9714.     case 43:;
  9715.     case 44:;
  9716.     case 45:;
  9717.     case 46:;
  9718.     case 47:;
  9719.     case 48:;
  9720.     case 49:;
  9721.     case 50:;
  9722.     case 51:;
  9723.     case 52:;
  9724.     case 53:;
  9725.     case 54:;
  9726.     case 55:;
  9727.     case 57:;
  9728.     case 58:;
  9729.     case 59:;
  9730.     case 60:;
  9731.     case 61:;
  9732.     case 62:;
  9733.     case 63:;
  9734.     case 64:;
  9735.     case 65:;
  9736.     case 66:;
  9737.     case 67:;
  9738.     case 68:;
  9739.     case 69:;
  9740.     case 70:;
  9741.     case 71:;
  9742.     case 72:;
  9743.     case 73:;
  9744.     case 74:;
  9745.     case 75:;
  9746.     case 76:;
  9747.     case 77:;
  9748.     case 78:;
  9749.     case 79:;
  9750.     case 80:;
  9751.     case 81:;
  9752.     case 82:;
  9753.     case 83:;
  9754.     case 84:;
  9755.     case 85:;
  9756.     case 86:;
  9757.     case 87:;
  9758.     case 88:;
  9759.     case 89:;
  9760.     default:
  9761.       if (xxIsRepairMode) {
  9762.         xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  9763. /* line 1002 "eiffel_ise.ell" */
  9764.  No_sign_constant0->Tree = Boolean_constant1.Tree;                     
  9765.         goto xx44;
  9766.       }
  9767.       xxExpected (213, 213, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string false true /  Character_constant Bit_sequence Integer Real Manifest_string false true */
  9768.     }
  9769.   }
  9770.   xx44:;
  9771. }
  9772.  
  9773. static void yyBoolean_expression
  9774. # if defined __STDC__ | defined __cplusplus
  9775. (ParserISE_tParsAttribute * Boolean_expression0, xxtUnionPtr xxGlobalRecoverySet)
  9776. # else
  9777. (Boolean_expression0, xxGlobalRecoverySet)
  9778. ParserISE_tParsAttribute    * Boolean_expression0;
  9779. xxtUnionPtr    xxGlobalRecoverySet;
  9780. # endif
  9781. {
  9782.   ParserISE_tParsAttribute Expression1;
  9783.   xxtUnion xxUnion;
  9784.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9785.   xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  9786. /* line 1011 "eiffel_ise.ell" */
  9787.  Boolean_expression0->Tree = Expression1.Tree;                        
  9788. }
  9789.  
  9790. static void yyComparison
  9791. # if defined __STDC__ | defined __cplusplus
  9792. (ParserISE_tParsAttribute * Comparison0, xxtUnionPtr xxGlobalRecoverySet)
  9793. # else
  9794. (Comparison0, xxGlobalRecoverySet)
  9795. ParserISE_tParsAttribute    * Comparison0;
  9796. xxtUnionPtr    xxGlobalRecoverySet;
  9797. # endif
  9798. {
  9799.     EiffelScan_tScanAttribute Eq1;
  9800.     EiffelScan_tScanAttribute Not_eq1;
  9801.   for (;;) {
  9802.     switch (xxToken) {
  9803.     case 13 /* Eq */ :; 
  9804.       Eq1 =       EiffelScan_Attribute;
  9805.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9806. /* line 1015 "eiffel_ise.ell" */
  9807.  Comparison0->Tree = mInfix(mOper(Eq1.Position, EQ));                    
  9808.       goto xx45;
  9809.     case 14 /* Not_eq */ :; 
  9810.       Not_eq1 =       EiffelScan_Attribute;
  9811.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9812. /* line 1016 "eiffel_ise.ell" */
  9813.  Comparison0->Tree = mInfix(mOper(Not_eq1.Position, NOT_EQ));                
  9814.       goto xx45;
  9815.     default:
  9816.       if (xxIsRepairMode) {
  9817.         if (xxToken != 13 /* Eq */)
  9818.           xxRecoveryTerminal (13, 214, xxGlobalRecoverySet, & Eq1); /*  Eq */
  9819.         else {
  9820.           Eq1 =         EiffelScan_Attribute;
  9821.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9822.         }
  9823. /* line 1015 "eiffel_ise.ell" */
  9824.  Comparison0->Tree = mInfix(mOper(Eq1.Position, EQ));                    
  9825.         goto xx45;
  9826.       }
  9827.       xxExpected (216, 216, xxGlobalRecoverySet); /*  Eq Not_eq /  Eq Not_eq */
  9828.     }
  9829.   }
  9830.   xx45:;
  9831. }
  9832.  
  9833. static void yyConstant
  9834. # if defined __STDC__ | defined __cplusplus
  9835. (ParserISE_tParsAttribute * Constant0, xxtUnionPtr xxGlobalRecoverySet)
  9836. # else
  9837. (Constant0, xxGlobalRecoverySet)
  9838. ParserISE_tParsAttribute    * Constant0;
  9839. xxtUnionPtr    xxGlobalRecoverySet;
  9840. # endif
  9841. {
  9842.   ParserISE_tParsAttribute Manifest_constant1;
  9843.   ParserISE_tParsAttribute Constant_attribute1;
  9844.   xxtUnion xxUnion;
  9845.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9846.   for (;;) {
  9847.     switch (xxToken) {
  9848.     case 1 /* Character_constant */ :; 
  9849.     case 2 /* Bit_sequence */ :; 
  9850.     case 3 /* Integer */ :; 
  9851.     case 4 /* Real */ :; 
  9852.     case 5 /* Manifest_string */ :; 
  9853.     case 7 /* ';' */ :; 
  9854.     case 8 /* ',' */ :; 
  9855.     case 11 /* '!' */ :; 
  9856.     case 18 /* ')' */ :; 
  9857.     case 20 /* ']' */ :; 
  9858.     case 29 /* plus */ :; 
  9859.     case 30 /* minus */ :; 
  9860.     case 46 /* deferred */ :; 
  9861.     case 47 /* do */ :; 
  9862.     case 51 /* 'end' */ :; 
  9863.     case 55 /* 'external' */ :; 
  9864.     case 56 /* false */ :; 
  9865.     case 57 /* 'feature' */ :; 
  9866.     case 59 /* 'frozen' */ :; 
  9867.     case 63 /* infix */ :; 
  9868.     case 67 /* 'invariant' */ :; 
  9869.     case 68 /* 'is' */ :; 
  9870.     case 75 /* once */ :; 
  9871.     case 77 /* prefix */ :; 
  9872.     case 90 /* true */ :; 
  9873.     case 106 /* Id */ :; 
  9874.       xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  9875. /* line 1022 "eiffel_ise.ell" */
  9876.  Constant0->Tree = Manifest_constant1.Tree;                        
  9877.       goto xx46;
  9878.     case 44 /* Current */ :; 
  9879.     case 83 /* Result */ :; 
  9880.       xxUnion.xxLocalRecoverySet = 0; yyConstant_attribute (& Constant_attribute1, & xxUnion); /*  */
  9881. /* line 1023 "eiffel_ise.ell" */
  9882.  Constant0->Tree = Constant_attribute1.Tree;                        
  9883.       goto xx46;
  9884.     case 6:;
  9885.     case 9:;
  9886.     case 10:;
  9887.     case 12:;
  9888.     case 13:;
  9889.     case 14:;
  9890.     case 15:;
  9891.     case 16:;
  9892.     case 17:;
  9893.     case 19:;
  9894.     case 21:;
  9895.     case 22:;
  9896.     case 23:;
  9897.     case 24:;
  9898.     case 25:;
  9899.     case 26:;
  9900.     case 27:;
  9901.     case 28:;
  9902.     case 31:;
  9903.     case 32:;
  9904.     case 33:;
  9905.     case 34:;
  9906.     case 35:;
  9907.     case 36:;
  9908.     case 37:;
  9909.     case 38:;
  9910.     case 39:;
  9911.     case 40:;
  9912.     case 41:;
  9913.     case 42:;
  9914.     case 43:;
  9915.     case 45:;
  9916.     case 48:;
  9917.     case 49:;
  9918.     case 50:;
  9919.     case 52:;
  9920.     case 53:;
  9921.     case 54:;
  9922.     case 58:;
  9923.     case 60:;
  9924.     case 61:;
  9925.     case 62:;
  9926.     case 64:;
  9927.     case 65:;
  9928.     case 66:;
  9929.     case 69:;
  9930.     case 70:;
  9931.     case 71:;
  9932.     case 72:;
  9933.     case 73:;
  9934.     case 74:;
  9935.     case 76:;
  9936.     case 78:;
  9937.     case 79:;
  9938.     case 80:;
  9939.     case 81:;
  9940.     case 82:;
  9941.     case 84:;
  9942.     case 85:;
  9943.     case 86:;
  9944.     case 87:;
  9945.     case 88:;
  9946.     case 89:;
  9947.     case 91:;
  9948.     case 92:;
  9949.     case 93:;
  9950.     case 94:;
  9951.     case 95:;
  9952.     case 96:;
  9953.     case 97:;
  9954.     case 98:;
  9955.     case 99:;
  9956.     case 100:;
  9957.     case 101:;
  9958.     case 102:;
  9959.     case 103:;
  9960.     case 104:;
  9961.     case 105:;
  9962.     default:
  9963.       if (xxIsRepairMode) {
  9964.         xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  9965. /* line 1022 "eiffel_ise.ell" */
  9966.  Constant0->Tree = Manifest_constant1.Tree;                        
  9967.         goto xx46;
  9968.       }
  9969.       xxExpected (217, 217, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus Current false Result true Id /  Character_constant Bit_sequence Integer Real Manifest_string plus minus Current false Result true Id */
  9970.     }
  9971.   }
  9972.   xx46:;
  9973. }
  9974.  
  9975. static void yyConstant_attribute
  9976. # if defined __STDC__ | defined __cplusplus
  9977. (ParserISE_tParsAttribute * Constant_attribute0, xxtUnionPtr xxGlobalRecoverySet)
  9978. # else
  9979. (Constant_attribute0, xxGlobalRecoverySet)
  9980. ParserISE_tParsAttribute    * Constant_attribute0;
  9981. xxtUnionPtr    xxGlobalRecoverySet;
  9982. # endif
  9983. {
  9984.   ParserISE_tParsAttribute Entity1;
  9985.   xxtUnion xxUnion;
  9986.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9987.   xxUnion.xxLocalRecoverySet = 0; yyEntity (& Entity1, & xxUnion); /*  */
  9988. /* line 1027 "eiffel_ise.ell" */
  9989.  Constant_attribute0->Tree = Entity1.Tree;                        
  9990. }
  9991.  
  9992. static void yyManifest_constant
  9993. # if defined __STDC__ | defined __cplusplus
  9994. (ParserISE_tParsAttribute * Manifest_constant0, xxtUnionPtr xxGlobalRecoverySet)
  9995. # else
  9996. (Manifest_constant0, xxGlobalRecoverySet)
  9997. ParserISE_tParsAttribute    * Manifest_constant0;
  9998. xxtUnionPtr    xxGlobalRecoverySet;
  9999. # endif
  10000. {
  10001.     EiffelScan_tScanAttribute Character_constant1;
  10002.     EiffelScan_tScanAttribute Bit_sequence1;
  10003.     EiffelScan_tScanAttribute Manifest_string1;
  10004.   ParserISE_tParsAttribute Number_constant1;
  10005.   ParserISE_tParsAttribute Boolean_constant1;
  10006.   xxtUnion xxUnion;
  10007.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10008.   for (;;) {
  10009.     switch (xxToken) {
  10010.     case 56 /* false */ :; 
  10011.     case 90 /* true */ :; 
  10012.       xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  10013. /* line 1033 "eiffel_ise.ell" */
  10014.  Manifest_constant0->Tree = Boolean_constant1.Tree;                     
  10015.       goto xx47;
  10016.     case 1 /* Character_constant */ :; 
  10017.       Character_constant1 =       EiffelScan_Attribute;
  10018.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10019. /* line 1034 "eiffel_ise.ell" */
  10020.  Manifest_constant0->Tree = mCh(Character_constant1.Char, Character_constant1.Position);
  10021.       goto xx47;
  10022.     case 3 /* Integer */ :; 
  10023.     case 4 /* Real */ :; 
  10024.     case 7 /* ';' */ :; 
  10025.     case 8 /* ',' */ :; 
  10026.     case 11 /* '!' */ :; 
  10027.     case 18 /* ')' */ :; 
  10028.     case 20 /* ']' */ :; 
  10029.     case 29 /* plus */ :; 
  10030.     case 30 /* minus */ :; 
  10031.     case 42 /* 'class' */ :; 
  10032.     case 46 /* deferred */ :; 
  10033.     case 47 /* do */ :; 
  10034.     case 51 /* 'end' */ :; 
  10035.     case 53 /* expanded */ :; 
  10036.     case 55 /* 'external' */ :; 
  10037.     case 57 /* 'feature' */ :; 
  10038.     case 59 /* 'frozen' */ :; 
  10039.     case 63 /* infix */ :; 
  10040.     case 67 /* 'invariant' */ :; 
  10041.     case 68 /* 'is' */ :; 
  10042.     case 75 /* once */ :; 
  10043.     case 77 /* prefix */ :; 
  10044.     case 106 /* Id */ :; 
  10045.       xxUnion.xxLocalRecoverySet = 0; yyNumber_constant (& Number_constant1, & xxUnion); /*  */
  10046. /* line 1035 "eiffel_ise.ell" */
  10047.  Manifest_constant0->Tree = Number_constant1.Tree;                     
  10048.       goto xx47;
  10049.     case 5 /* Manifest_string */ :; 
  10050.       Manifest_string1 =       EiffelScan_Attribute;
  10051.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10052. /* line 1036 "eiffel_ise.ell" */
  10053.  Manifest_constant0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position);
  10054.       goto xx47;
  10055.     case 2 /* Bit_sequence */ :; 
  10056.       Bit_sequence1 =       EiffelScan_Attribute;
  10057.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10058. /* line 1037 "eiffel_ise.ell" */
  10059.  Manifest_constant0->Tree = mBitseq(Bit_sequence1.StringRef, Bit_sequence1.Position);    
  10060.       goto xx47;
  10061.     case 6:;
  10062.     case 9:;
  10063.     case 10:;
  10064.     case 12:;
  10065.     case 13:;
  10066.     case 14:;
  10067.     case 15:;
  10068.     case 16:;
  10069.     case 17:;
  10070.     case 19:;
  10071.     case 21:;
  10072.     case 22:;
  10073.     case 23:;
  10074.     case 24:;
  10075.     case 25:;
  10076.     case 26:;
  10077.     case 27:;
  10078.     case 28:;
  10079.     case 31:;
  10080.     case 32:;
  10081.     case 33:;
  10082.     case 34:;
  10083.     case 35:;
  10084.     case 36:;
  10085.     case 37:;
  10086.     case 38:;
  10087.     case 39:;
  10088.     case 40:;
  10089.     case 41:;
  10090.     case 43:;
  10091.     case 44:;
  10092.     case 45:;
  10093.     case 48:;
  10094.     case 49:;
  10095.     case 50:;
  10096.     case 52:;
  10097.     case 54:;
  10098.     case 58:;
  10099.     case 60:;
  10100.     case 61:;
  10101.     case 62:;
  10102.     case 64:;
  10103.     case 65:;
  10104.     case 66:;
  10105.     case 69:;
  10106.     case 70:;
  10107.     case 71:;
  10108.     case 72:;
  10109.     case 73:;
  10110.     case 74:;
  10111.     case 76:;
  10112.     case 78:;
  10113.     case 79:;
  10114.     case 80:;
  10115.     case 81:;
  10116.     case 82:;
  10117.     case 83:;
  10118.     case 84:;
  10119.     case 85:;
  10120.     case 86:;
  10121.     case 87:;
  10122.     case 88:;
  10123.     case 89:;
  10124.     case 91:;
  10125.     case 92:;
  10126.     case 93:;
  10127.     case 94:;
  10128.     case 95:;
  10129.     case 96:;
  10130.     case 97:;
  10131.     case 98:;
  10132.     case 99:;
  10133.     case 100:;
  10134.     case 101:;
  10135.     case 102:;
  10136.     case 103:;
  10137.     case 104:;
  10138.     case 105:;
  10139.     default:
  10140.       if (xxIsRepairMode) {
  10141.         xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  10142. /* line 1033 "eiffel_ise.ell" */
  10143.  Manifest_constant0->Tree = Boolean_constant1.Tree;                     
  10144.         goto xx47;
  10145.       }
  10146. xxUnexpected (218, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false true */
  10147.     }
  10148.   }
  10149.   xx47:;
  10150. }
  10151.  
  10152. static void yyNumber_constant
  10153. # if defined __STDC__ | defined __cplusplus
  10154. (ParserISE_tParsAttribute * Number_constant0, xxtUnionPtr xxGlobalRecoverySet)
  10155. # else
  10156. (Number_constant0, xxGlobalRecoverySet)
  10157. ParserISE_tParsAttribute    * Number_constant0;
  10158. xxtUnionPtr    xxGlobalRecoverySet;
  10159. # endif
  10160. {
  10161.     EiffelScan_tScanAttribute Integer1;
  10162.     EiffelScan_tScanAttribute Real1;
  10163.   ParserISE_tParsAttribute Sign1;
  10164.   xxtUnion xxUnion;
  10165.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10166.   xxUnion.xxLocalRecoverySet = 219; yySign (& Sign1, & xxUnion); /*  Integer Real */
  10167.   for (;;) {
  10168.     switch (xxToken) {
  10169.     case 3 /* Integer */ :; 
  10170.       Integer1 =       EiffelScan_Attribute;
  10171.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10172. /* line 1043 "eiffel_ise.ell" */
  10173.  Number_constant0->Tree = mInt(Sign1.Tree, Integer1.Int, Integer1.Position);           
  10174.       goto xx48;
  10175.     case 4 /* Real */ :; 
  10176.       Real1 =       EiffelScan_Attribute;
  10177.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10178. /* line 1044 "eiffel_ise.ell" */
  10179.  Number_constant0->Tree = mReal(Sign1.Tree, Real1.Real, Real1.Position);               
  10180.       goto xx48;
  10181.     default:
  10182.       if (xxIsRepairMode) {
  10183.         if (xxToken != 3 /* Integer */)
  10184.           xxRecoveryTerminal (3, 210, xxGlobalRecoverySet, & Integer1); /*  Integer */
  10185.         else {
  10186.           Integer1 =         EiffelScan_Attribute;
  10187.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10188.         }
  10189. /* line 1043 "eiffel_ise.ell" */
  10190.  Number_constant0->Tree = mInt(Sign1.Tree, Integer1.Int, Integer1.Position);           
  10191.         goto xx48;
  10192.       }
  10193.       xxExpected (219, 219, xxGlobalRecoverySet); /*  Integer Real /  Integer Real */
  10194.     }
  10195.   }
  10196.   xx48:;
  10197. }
  10198.  
  10199. static void yySign
  10200. # if defined __STDC__ | defined __cplusplus
  10201. (ParserISE_tParsAttribute * Sign0, xxtUnionPtr xxGlobalRecoverySet)
  10202. # else
  10203. (Sign0, xxGlobalRecoverySet)
  10204. ParserISE_tParsAttribute    * Sign0;
  10205. xxtUnionPtr    xxGlobalRecoverySet;
  10206. # endif
  10207. {
  10208.     EiffelScan_tScanAttribute plus1;
  10209.     EiffelScan_tScanAttribute minus1;
  10210. /* line 1047 "eiffel_ise.ell" */
  10211.  Sign0->Tree = mOper(NoPosition, VOID);                                                  
  10212.   for (;;) {
  10213.     if ((xxVerticalSet [xxToken + 864] & 1 << 2 /*  plus minus */)) {
  10214.       if ((xxToken == 29 /* plus */)) {
  10215.         plus1 =         EiffelScan_Attribute;
  10216.         xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10217. /* line 1048 "eiffel_ise.ell" */
  10218.  Sign0->Tree = mOper(plus1.Position, PLUS);                                            
  10219.       } else {
  10220.         minus1 =         EiffelScan_Attribute;
  10221.         xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10222. /* line 1049 "eiffel_ise.ell" */
  10223.  Sign0->Tree = mOper(minus1.Position, MINUS);                                          
  10224.       }
  10225.       break;
  10226.     } else if ((xxVerticalSet [xxToken + 864] & 1 << 3 /*  Integer Real */) || xxIsRepairMode) break;
  10227.     xxExpected (220, 220, xxGlobalRecoverySet); /*  plus minus /  plus minus */
  10228.   }
  10229. }
  10230.  
  10231. static void yyBoolean_constant
  10232. # if defined __STDC__ | defined __cplusplus
  10233. (ParserISE_tParsAttribute * Boolean_constant0, xxtUnionPtr xxGlobalRecoverySet)
  10234. # else
  10235. (Boolean_constant0, xxGlobalRecoverySet)
  10236. ParserISE_tParsAttribute    * Boolean_constant0;
  10237. xxtUnionPtr    xxGlobalRecoverySet;
  10238. # endif
  10239. {
  10240.     EiffelScan_tScanAttribute false1;
  10241.     EiffelScan_tScanAttribute true1;
  10242.   for (;;) {
  10243.     switch (xxToken) {
  10244.     case 90 /* true */ :; 
  10245.       true1 =       EiffelScan_Attribute;
  10246.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10247. /* line 1057 "eiffel_ise.ell" */
  10248.  Boolean_constant0->Tree = mTrue(true1.Position);                     
  10249.       goto xx49;
  10250.     case 56 /* false */ :; 
  10251.       false1 =       EiffelScan_Attribute;
  10252.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10253. /* line 1058 "eiffel_ise.ell" */
  10254.  Boolean_constant0->Tree = mFalse(false1.Position);                     
  10255.       goto xx49;
  10256.     case 57:;
  10257.     case 58:;
  10258.     case 59:;
  10259.     case 60:;
  10260.     case 61:;
  10261.     case 62:;
  10262.     case 63:;
  10263.     case 64:;
  10264.     case 65:;
  10265.     case 66:;
  10266.     case 67:;
  10267.     case 68:;
  10268.     case 69:;
  10269.     case 70:;
  10270.     case 71:;
  10271.     case 72:;
  10272.     case 73:;
  10273.     case 74:;
  10274.     case 75:;
  10275.     case 76:;
  10276.     case 77:;
  10277.     case 78:;
  10278.     case 79:;
  10279.     case 80:;
  10280.     case 81:;
  10281.     case 82:;
  10282.     case 83:;
  10283.     case 84:;
  10284.     case 85:;
  10285.     case 86:;
  10286.     case 87:;
  10287.     case 88:;
  10288.     case 89:;
  10289.     default:
  10290.       if (xxIsRepairMode) {
  10291.         if (xxToken != 90 /* true */)
  10292.           xxRecoveryTerminal (90, 221, xxGlobalRecoverySet, & true1); /*  true */
  10293.         else {
  10294.           true1 =         EiffelScan_Attribute;
  10295.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10296.         }
  10297. /* line 1057 "eiffel_ise.ell" */
  10298.  Boolean_constant0->Tree = mTrue(true1.Position);                     
  10299.         goto xx49;
  10300.       }
  10301.       xxExpected (223, 223, xxGlobalRecoverySet); /*  false true /  false true */
  10302.     }
  10303.   }
  10304.   xx49:;
  10305. }
  10306.  
  10307. static void yyBit_constant
  10308. # if defined __STDC__ | defined __cplusplus
  10309. (ParserISE_tParsAttribute * Bit_constant0, xxtUnionPtr xxGlobalRecoverySet)
  10310. # else
  10311. (Bit_constant0, xxGlobalRecoverySet)
  10312. ParserISE_tParsAttribute    * Bit_constant0;
  10313. xxtUnionPtr    xxGlobalRecoverySet;
  10314. # endif
  10315. {
  10316.     EiffelScan_tScanAttribute Bit_sequence1;
  10317.   if (xxToken != 2 /* Bit_sequence */)
  10318.     xxRecoveryTerminal (2, 212, xxGlobalRecoverySet, & Bit_sequence1); /*  Bit_sequence */
  10319.   else {
  10320.     Bit_sequence1 =   EiffelScan_Attribute;
  10321.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10322.   }
  10323. /* line 1065 "eiffel_ise.ell" */
  10324.  Bit_constant0->Tree = mBitseq(Bit_sequence1.StringRef, Bit_sequence1.Position);    
  10325. }
  10326.  
  10327. static void yyManifest_array
  10328. # if defined __STDC__ | defined __cplusplus
  10329. (ParserISE_tParsAttribute * Manifest_array0, xxtUnionPtr xxGlobalRecoverySet)
  10330. # else
  10331. (Manifest_array0, xxGlobalRecoverySet)
  10332. ParserISE_tParsAttribute    * Manifest_array0;
  10333. xxtUnionPtr    xxGlobalRecoverySet;
  10334. # endif
  10335. {
  10336.   ParserISE_tParsAttribute Expression_list1;
  10337.   xxtUnion xxUnion;
  10338.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10339.   if (xxToken != 23 /* '<<' */)
  10340.     xxRecoveryLiteral (23, 224, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' '>>' plus minus Current false 'old' Result 'strip' true not Id */
  10341.   else {
  10342.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10343.   }
  10344.   xxUnion.xxLocalRecoverySet = 225; yyExpression_list (& Expression_list1, & xxUnion); /*  '>>' */
  10345.   if (xxToken != 24 /* '>>' */)
  10346.     xxRecoveryLiteral (24, 225, xxGlobalRecoverySet); /*  '>>' */
  10347.   else {
  10348.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10349.   }
  10350. /* line 1070 "eiffel_ise.ell" */
  10351.  Manifest_array0->Tree = ReverseTree(Expression_list1.Tree);            
  10352. }
  10353.  
  10354. static void yyExpression_list
  10355. # if defined __STDC__ | defined __cplusplus
  10356. (ParserISE_tParsAttribute * Expression_list0, xxtUnionPtr xxGlobalRecoverySet)
  10357. # else
  10358. (Expression_list0, xxGlobalRecoverySet)
  10359. ParserISE_tParsAttribute    * Expression_list0;
  10360. xxtUnionPtr    xxGlobalRecoverySet;
  10361. # endif
  10362. {
  10363.   ParserISE_tParsAttribute Expression1;
  10364.   xxtUnion xxUnion;
  10365.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10366. /* line 1072 "eiffel_ise.ell" */
  10367.  Expression_list0->Tree = mManifest_array0();                        
  10368.   for (;;) {
  10369.     if ((xxVerticalSet [xxToken + 648] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */)) {
  10370.       for (;;) {
  10371.         xxUnion.xxLocalRecoverySet = 16; yyExpression (& Expression1, & xxUnion); /*  ',' */
  10372. /* line 1073 "eiffel_ise.ell" */
  10373.  Expression_list0->Tree = mManifest_array1(Expression1.Tree, Expression_list0->Tree);     
  10374.         if (! ((xxToken == 8 /* ',' */))) {
  10375.           if ((xxToken == 24 /* '>>' */)) break;
  10376.           xxExpected (16, 226, xxGlobalRecoverySet); /*  ',' /  Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  10377.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 648] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */))) break;
  10378.         }
  10379.         if (xxToken != 8 /* ',' */)
  10380.           xxRecoveryLiteral (8, 226, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  10381.         else {
  10382.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10383.         }
  10384.       }
  10385.       break;
  10386.     } else if ((xxToken == 24 /* '>>' */) || xxIsRepairMode) break;
  10387.     xxExpected (125, 125, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  10388.   }
  10389. }
  10390.  
  10391. static void yyStrip
  10392. # if defined __STDC__ | defined __cplusplus
  10393. (ParserISE_tParsAttribute * Strip0, xxtUnionPtr xxGlobalRecoverySet)
  10394. # else
  10395. (Strip0, xxGlobalRecoverySet)
  10396. ParserISE_tParsAttribute    * Strip0;
  10397. xxtUnionPtr    xxGlobalRecoverySet;
  10398. # endif
  10399. {
  10400.   ParserISE_tParsAttribute Attribute_list1;
  10401.   xxtUnion xxUnion;
  10402.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10403.   if (xxToken != 88 /* 'strip' */)
  10404.     xxRecoveryLiteral (88, 227, xxGlobalRecoverySet); /*  '(' ')' 'strip' Id */
  10405.   else {
  10406.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10407.   }
  10408.   if (xxToken != 17 /* '(' */)
  10409.     xxRecoveryLiteral (17, 81, xxGlobalRecoverySet); /*  '(' ')' Id */
  10410.   else {
  10411.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10412.   }
  10413.   xxUnion.xxLocalRecoverySet = 82; yyAttribute_list (& Attribute_list1, & xxUnion); /*  ')' */
  10414.   if (xxToken != 18 /* ')' */)
  10415.     xxRecoveryLiteral (18, 82, xxGlobalRecoverySet); /*  ')' */
  10416.   else {
  10417.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10418.   }
  10419. /* line 1080 "eiffel_ise.ell" */
  10420.  Strip0->Tree = mStrip(Attribute_list1.Tree);                    
  10421. }
  10422.  
  10423. static void yyAttribute_list
  10424. # if defined __STDC__ | defined __cplusplus
  10425. (ParserISE_tParsAttribute * Attribute_list0, xxtUnionPtr xxGlobalRecoverySet)
  10426. # else
  10427. (Attribute_list0, xxGlobalRecoverySet)
  10428. ParserISE_tParsAttribute    * Attribute_list0;
  10429. xxtUnionPtr    xxGlobalRecoverySet;
  10430. # endif
  10431. {
  10432.   ParserISE_tParsAttribute Identifier1;
  10433.   xxtUnion xxUnion;
  10434.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10435. /* line 1082 "eiffel_ise.ell" */
  10436.  Attribute_list0->Tree = mnolist();                            
  10437.   for (;;) {
  10438.     if ((xxToken == 106 /* Id */)) {
  10439.       for (;;) {
  10440.         xxUnion.xxLocalRecoverySet = 16; yyIdentifier (& Identifier1, & xxUnion); /*  ',' */
  10441. /* line 1083 "eiffel_ise.ell" */
  10442.  Attribute_list0->Tree = mlist(Identifier1.Tree, Attribute_list0->Tree);         
  10443.         if (! ((xxToken == 8 /* ',' */))) {
  10444.           if ((xxToken == 18 /* ')' */)) break;
  10445.           xxExpected (16, 85, xxGlobalRecoverySet); /*  ',' /  ',' Id */
  10446.           if (! ((xxToken == 8 /* ',' */) || (xxToken == 106 /* Id */))) break;
  10447.         }
  10448.         if (xxToken != 8 /* ',' */)
  10449.           xxRecoveryLiteral (8, 85, xxGlobalRecoverySet); /*  ',' Id */
  10450.         else {
  10451.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10452.         }
  10453.       }
  10454.       break;
  10455.     } else if ((xxToken == 18 /* ')' */) || xxIsRepairMode) break;
  10456.     xxExpected (83, 83, xxGlobalRecoverySet); /*  Id /  Id */
  10457.   }
  10458. }
  10459.  
  10460. static void yyExternal
  10461. # if defined __STDC__ | defined __cplusplus
  10462. (ParserISE_tParsAttribute * External0, xxtUnionPtr xxGlobalRecoverySet)
  10463. # else
  10464. (External0, xxGlobalRecoverySet)
  10465. ParserISE_tParsAttribute    * External0;
  10466. xxtUnionPtr    xxGlobalRecoverySet;
  10467. # endif
  10468. {
  10469.   ParserISE_tParsAttribute Language_name1;
  10470.   ParserISE_tParsAttribute External_name1;
  10471.   xxtUnion xxUnion;
  10472.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10473.   if (xxToken != 55 /* 'external' */)
  10474.     xxRecoveryLiteral (55, 228, xxGlobalRecoverySet); /*  Manifest_string 'alias' 'external' */
  10475.   else {
  10476.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10477.   }
  10478.   xxUnion.xxLocalRecoverySet = 229; yyLanguage_name (& Language_name1, & xxUnion); /*  'alias' */
  10479. /* line 1090 "eiffel_ise.ell" */
  10480.  External0->Tree = mExternal( Language_name1.Tree, mString0());            
  10481.   for (;;) {
  10482.     if ((xxToken == 34 /* 'alias' */)) {
  10483.       xxUnion.xxLocalRecoverySet = 0; yyExternal_name (& External_name1, & xxUnion); /*  */
  10484. /* line 1091 "eiffel_ise.ell" */
  10485.  External0->Tree->External.Lang2 = External_name1.Tree;                
  10486.       break;
  10487.     } else if ((xxVerticalSet [xxToken + 864] & 1 << 4 /*  'end' 'ensure' 'rescue' */) || xxIsRepairMode) break;
  10488.     xxExpected (229, 229, xxGlobalRecoverySet); /*  'alias' /  'alias' */
  10489.   }
  10490. }
  10491.  
  10492. static void yyLanguage_name
  10493. # if defined __STDC__ | defined __cplusplus
  10494. (ParserISE_tParsAttribute * Language_name0, xxtUnionPtr xxGlobalRecoverySet)
  10495. # else
  10496. (Language_name0, xxGlobalRecoverySet)
  10497. ParserISE_tParsAttribute    * Language_name0;
  10498. xxtUnionPtr    xxGlobalRecoverySet;
  10499. # endif
  10500. {
  10501.     EiffelScan_tScanAttribute Manifest_string1;
  10502.   if (xxToken != 5 /* Manifest_string */)
  10503.     xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string */
  10504.   else {
  10505.     Manifest_string1 =   EiffelScan_Attribute;
  10506.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10507.   }
  10508. /* line 1094 "eiffel_ise.ell" */
  10509.  Language_name0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position);
  10510. }
  10511.  
  10512. static void yyExternal_name
  10513. # if defined __STDC__ | defined __cplusplus
  10514. (ParserISE_tParsAttribute * External_name0, xxtUnionPtr xxGlobalRecoverySet)
  10515. # else
  10516. (External_name0, xxGlobalRecoverySet)
  10517. ParserISE_tParsAttribute    * External_name0;
  10518. xxtUnionPtr    xxGlobalRecoverySet;
  10519. # endif
  10520. {
  10521.     EiffelScan_tScanAttribute Manifest_string1;
  10522.   if (xxToken != 34 /* 'alias' */)
  10523.     xxRecoveryLiteral (34, 230, xxGlobalRecoverySet); /*  Manifest_string 'alias' */
  10524.   else {
  10525.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10526.   }
  10527.   if (xxToken != 5 /* Manifest_string */)
  10528.     xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string */
  10529.   else {
  10530.     Manifest_string1 =   EiffelScan_Attribute;
  10531.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10532.   }
  10533. /* line 1097 "eiffel_ise.ell" */
  10534.  External_name0->Tree =  mString(Manifest_string1.StringRef, Manifest_string1.Position); 
  10535. }
  10536.  
  10537. static void yyIdentifier
  10538. # if defined __STDC__ | defined __cplusplus
  10539. (ParserISE_tParsAttribute * Identifier0, xxtUnionPtr xxGlobalRecoverySet)
  10540. # else
  10541. (Identifier0, xxGlobalRecoverySet)
  10542. ParserISE_tParsAttribute    * Identifier0;
  10543. xxtUnionPtr    xxGlobalRecoverySet;
  10544. # endif
  10545. {
  10546.     EiffelScan_tScanAttribute Id1;
  10547.   if (xxToken != 106 /* Id */)
  10548.     xxRecoveryTerminal (106, 83, xxGlobalRecoverySet, & Id1); /*  Id */
  10549.   else {
  10550.     Id1 =   EiffelScan_Attribute;
  10551.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10552.   }
  10553. /* line 1101 "eiffel_ise.ell" */
  10554.  Identifier0->Tree= mId(Id1.Ident, Id1.Position);                     
  10555. }
  10556.  
  10557.