home *** CD-ROM | disk | FTP | other *** search
Wrap
# include "ParserSIG.h" # include "Errors.h" # define xxbool char # define xxtrue 1 # define xxfalse 0 # define xxEof 0 typedef struct xxsUnion { struct xxsUnion * xxGlobalRecoverySet; unsigned short xxLocalRecoverySet; } xxtUnion, * xxtUnionPtr; typedef long xxtSet [4]; ParserSIG_tParsAttribute ParserSIG_ParsAttribute; static short xxToken; static int xxErrorCount; static xxbool xxIsInitialized = xxfalse, xxIsRepairMode = xxfalse; static long xxHorizontalSet [] [4] = { { 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00220402L, 0x00000000L, 0x00000000L, }, { 0x00001000L, 0x00321442L, 0x90400000L, 0x00000000L, }, { 0x00001000L, 0x00321440L, 0x90400000L, 0x00000000L, }, { 0x00001000L, 0x00101040L, 0x90400000L, 0x00000000L, }, { 0x00000000L, 0x00101040L, 0x90400000L, 0x00000000L, }, { 0x00000000L, 0x00101040L, 0x90000000L, 0x00000000L, }, { 0x00000000L, 0x00101040L, 0x10000000L, 0x00000000L, }, { 0x00000000L, 0x00001040L, 0x10000000L, 0x00000000L, }, { 0x00000000L, 0x00001000L, 0x10000000L, 0x00000000L, }, { 0x00000000L, 0x00001000L, 0x00000000L, 0x00000000L, }, { 0x7C000006L, 0x00000082L, 0x00000020L, 0x00200000L, }, { 0x7D000006L, 0x00000080L, 0x00000020L, 0x00200000L, }, { 0x01000000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00C00000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x7C400006L, 0x00000080L, 0x00000020L, 0x00200000L, }, { 0x00800000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x7C800006L, 0x00000080L, 0x00000020L, 0x00200000L, }, { 0x7C000006L, 0x00000080L, 0x00000020L, 0x00200000L, }, { 0x00000000L, 0x01A28000L, 0x20820100L, 0x00200000L, }, { 0x00000000L, 0x01A08000L, 0x20820100L, 0x00200000L, }, { 0x00000000L, 0x01A08400L, 0x20820100L, 0x00200000L, }, { 0x00000000L, 0x00220400L, 0x00000000L, 0x00000000L, }, { 0x04000000L, 0x00000000L, 0x00400000L, 0x00000000L, }, { 0x04000000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00000400L, 0x00000051L, 0x00040000L, 0x00200000L, }, { 0x00000000L, 0x00000040L, 0x00000000L, 0x00000000L, }, { 0x00000400L, 0x00000011L, 0x00040000L, 0x00200000L, }, { 0x00000000L, 0x00000011L, 0x00040000L, 0x00200000L, }, { 0x01000000L, 0x00000011L, 0x00040000L, 0x00200000L, }, { 0x00404000L, 0x00000000L, 0x08000000L, 0x00000000L, }, { 0x00400000L, 0x00000000L, 0x08000000L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x08000000L, 0x00000000L, }, { 0x7C000006L, 0x00030180L, 0x0A504028L, 0x00000000L, }, { 0x7C000006L, 0x00030180L, 0x02504028L, 0x00000000L, }, { 0x00800000L, 0x00000011L, 0x00040000L, 0x00200000L, }, { 0x00000000L, 0x00000001L, 0x00040000L, 0x00200000L, }, { 0x02000006L, 0x00000000L, 0x00040000L, 0x00400000L, }, { 0x02000006L, 0x48000005L, 0x00080000L, 0xFF800000L, }, { 0x02000000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x02000006L, 0x00000000L, 0x00000000L, 0x00400000L, }, { 0x02000006L, 0x48000004L, 0x00080000L, 0xFF800000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x00400000L, }, { 0x00000004L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00000002L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00000006L, 0x00000000L, 0x00000000L, 0x00400000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x01000000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x02000000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x00800000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x20000000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x10000000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x08000000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x04000000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x40000000L, }, { 0x00000000L, 0x40000000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x08000000L, 0x00000040L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x00000040L, 0x00000000L, }, { 0x00000000L, 0x00004000L, 0x00080000L, 0x00000000L, }, { 0x00000000L, 0x00004000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x80000000L, }, { 0x00000000L, 0x00000004L, 0x00000000L, 0x00000000L, }, { 0x00000006L, 0x48000004L, 0x00080000L, 0xFF800000L, }, { 0x00000000L, 0x00000400L, 0x80000000L, 0x00200000L, }, { 0x00000000L, 0x00000400L, 0x00000000L, 0x00200000L, }, { 0x01000000L, 0x00000400L, 0x00000000L, 0x00200000L, }, { 0x00000000L, 0x00001200L, 0x00018410L, 0x00000000L, }, { 0x00000000L, 0x00001200L, 0x00010410L, 0x00000000L, }, { 0x00000000L, 0x00001000L, 0x00010410L, 0x00000000L, }, { 0x00000000L, 0x00001000L, 0x00010400L, 0x00000000L, }, { 0x00000000L, 0x00001000L, 0x00000400L, 0x00000000L, }, { 0x00000000L, 0x00000001L, 0x00048000L, 0x00200000L, }, { 0x00800000L, 0x00000001L, 0x00040000L, 0x00200000L, }, { 0x00000000L, 0x04000001L, 0x00040000L, 0x00200000L, }, { 0x00000600L, 0x01808000L, 0x20820100L, 0x00200000L, }, { 0x00000200L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x01808000L, 0x20820100L, 0x00200000L, }, { 0x00800000L, 0x01808000L, 0x20820100L, 0x00200000L, }, { 0x00000400L, 0x00000200L, 0x00000000L, 0x00000000L, }, { 0x00000400L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x01000400L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x10000001L, 0x00040000L, 0x00200000L, }, { 0x00000000L, 0x10000000L, 0x00000000L, 0x00000000L, }, { 0x00006000L, 0x00000000L, 0x00000000L, 0x00200000L, }, { 0x00002000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x00200000L, }, { 0x01800000L, 0x00000000L, 0x00000000L, 0x00200000L, }, { 0x01000000L, 0x00000000L, 0x00000000L, 0x00200000L, }, { 0x00800000L, 0x00000000L, 0x00000000L, 0x00200000L, }, { 0x00400000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00400000L, 0x03808400L, 0x24820100L, 0x00200000L, }, { 0x00000000L, 0x00030100L, 0x02504000L, 0x00000000L, }, { 0x00000000L, 0x00031900L, 0x02506000L, 0x00000000L, }, { 0x00000000L, 0x00031900L, 0x02106000L, 0x00000000L, }, { 0x00000000L, 0x00030100L, 0x02104000L, 0x00000000L, }, { 0x00000000L, 0x00031900L, 0x02102000L, 0x00000000L, }, { 0x00000000L, 0x00030100L, 0x02100000L, 0x00000000L, }, { 0x00000000L, 0x00031900L, 0x00102000L, 0x00000000L, }, { 0x00000000L, 0x00001800L, 0x00002000L, 0x00000000L, }, { 0x00000000L, 0x00001000L, 0x00002000L, 0x00000000L, }, { 0x00000000L, 0x00030100L, 0x00100000L, 0x00000000L, }, { 0x00000000L, 0x00010100L, 0x00100000L, 0x00000000L, }, { 0x45184000L, 0x004D0028L, 0x40001800L, 0x00200000L, }, { 0x45184000L, 0x004C0028L, 0x40101800L, 0x00200000L, }, { 0x00000000L, 0x00010000L, 0x00100000L, 0x00000000L, }, { 0x00000000L, 0x00020000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x02000000L, 0x00200000L, }, { 0x45184000L, 0x004C0028L, 0x40001800L, 0x00200000L, }, { 0x00204000L, 0x00080000L, 0x00000000L, 0x00000000L, }, { 0x00204000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00200000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00200000L, 0x00080000L, 0x00001000L, 0x00200000L, }, { 0x00204060L, 0x00000000L, 0x00001000L, 0x00000000L, }, { 0x7E004146L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x7E004126L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x00204060L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x7E004106L, 0x00084080L, 0x002050A0L, 0x00700000L, }, { 0x7E004106L, 0x00084080L, 0x002010A0L, 0x00700000L, }, { 0x7E004106L, 0x00080880L, 0x002010E0L, 0x00700000L, }, { 0x7E004106L, 0x00080080L, 0x002010E0L, 0x00700000L, }, { 0x7E004106L, 0x00080080L, 0x102010A0L, 0x00700000L, }, { 0x7E004106L, 0x00080080L, 0x002010A0L, 0x00700000L, }, { 0x7F004106L, 0x00080080L, 0x002010A0L, 0x00700000L, }, { 0x02664006L, 0x48000004L, 0x00080000L, 0xFF800000L, }, { 0x7E404106L, 0x00080080L, 0x002010A0L, 0x00700000L, }, { 0x02264006L, 0x48000004L, 0x00080000L, 0xFF800000L, }, { 0x02260006L, 0x48000004L, 0x00080000L, 0xFF800000L, }, { 0x02260006L, 0x48080004L, 0x00081000L, 0xFFA00000L, }, { 0x02060006L, 0x48000004L, 0x00080000L, 0xFF800000L, }, { 0x00000000L, 0x00000000L, 0x00000000L, 0x00100000L, }, { 0x7E004106L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x7E004106L, 0x00481080L, 0x002010A0L, 0x00700000L, }, { 0x02664006L, 0x48000004L, 0x00080002L, 0xFFA00000L, }, { 0x7E404106L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x7E004106L, 0x00080080L, 0x002010A2L, 0x00600000L, }, { 0x00000000L, 0x00000001L, 0x00050000L, 0x00200000L, }, { 0x00000000L, 0x00000001L, 0x00040010L, 0x00200000L, }, { 0x00000000L, 0x00000001L, 0x00040400L, 0x00200000L, }, { 0x00000000L, 0x01000000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00800000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00008000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x20000000L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x00800000L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x00020000L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x00000100L, 0x00000000L, }, { 0x00000000L, 0x03808400L, 0x24820100L, 0x00200000L, }, { 0x00001000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00001000L, 0x00000400L, 0x00000000L, 0x00200000L, }, { 0x00001800L, 0x03808400L, 0x24820100L, 0x00200000L, }, { 0x00000800L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00800000L, 0x03808400L, 0x24820100L, 0x00200000L, }, { 0x7C000006L, 0x02080080L, 0x00001020L, 0x00200000L, }, { 0x00000000L, 0x00080000L, 0x04000000L, 0x00200000L, }, { 0x00000000L, 0x00080000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00080000L, 0x00000000L, 0x00200000L, }, { 0x00001800L, 0x01808000L, 0x20820100L, 0x00200000L, }, { 0x00010000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00010000L, 0x00000400L, 0x00000000L, 0x00200000L, }, { 0x7E004106L, 0x00085088L, 0x002010A0L, 0x00600000L, }, { 0x00000000L, 0x00005000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00002000L, 0x00000000L, 0x00000000L, }, { 0x7E004106L, 0x00082080L, 0x002010A0L, 0x00600000L, }, { 0x45184000L, 0x004C0028L, 0x40001840L, 0x00200000L, }, { 0x45184000L, 0x004C4028L, 0x40001800L, 0x00200000L, }, { 0x7E004106L, 0x00085080L, 0x402010A1L, 0x00600000L, }, { 0x00000000L, 0x00005000L, 0x00000001L, 0x00000000L, }, { 0x7C000006L, 0x00000080L, 0x00000061L, 0x00200000L, }, { 0x00000000L, 0x00000000L, 0x00000001L, 0x00000000L, }, { 0x40008000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00008000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x40000000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x18008006L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x7C008006L, 0x00000080L, 0x00000020L, 0x00200000L, }, { 0x7E004106L, 0x00081080L, 0x102010A6L, 0x00600000L, }, { 0x7E004106L, 0x00080080L, 0x102010A6L, 0x00600000L, }, { 0x7E004106L, 0x00081080L, 0x002010A6L, 0x00600000L, }, { 0x7E004106L, 0x00080080L, 0x002010A6L, 0x00600000L, }, { 0x00000000L, 0x00001000L, 0x00000004L, 0x00000000L, }, { 0x45184000L, 0x004C0028L, 0x41001800L, 0x00200000L, }, { 0x7E004106L, 0x00080080L, 0x002010A4L, 0x00600000L, }, { 0x45184000L, 0x004C1028L, 0x40001800L, 0x00200000L, }, { 0x7E006106L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x02862006L, 0x48000004L, 0x00080000L, 0xFF800000L, }, { 0x45986000L, 0x004C0028L, 0x40001800L, 0x00200000L, }, { 0x45186000L, 0x004C0028L, 0x40001800L, 0x00200000L, }, { 0x45386000L, 0x004C0028L, 0x40001800L, 0x00200000L, }, { 0x45384000L, 0x004C0028L, 0x40001800L, 0x00200000L, }, { 0x04800000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x45184000L, 0x004C0028L, 0x40003800L, 0x00200000L, }, { 0x00000000L, 0x00000000L, 0x00000800L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x00000008L, 0x00000000L, }, { 0x00000000L, 0x00080000L, 0x00001000L, 0x00200000L, }, { 0x00000000L, 0x00000000L, 0x00001000L, 0x00200000L, }, { 0x00000000L, 0x00000000L, 0x00001000L, 0x00000000L, }, { 0x00000400L, 0x00100001L, 0x00040000L, 0x00200000L, }, { 0x00000000L, 0x00100000L, 0x00000000L, 0x00000000L, }, { 0x00000400L, 0x00000001L, 0x00040000L, 0x00200000L, }, { 0x00300000L, 0x03808400L, 0x24821100L, 0x00200000L, }, { 0x00100000L, 0x03808400L, 0x24820100L, 0x00200000L, }, { 0x00300000L, 0x00000000L, 0x00001000L, 0x00200000L, }, { 0x00280000L, 0x00000000L, 0x00001000L, 0x00200000L, }, { 0x00180000L, 0x00000000L, 0x00001000L, 0x00200000L, }, { 0x00380000L, 0x00000000L, 0x00001000L, 0x00200000L, }, { 0x40200000L, 0x00080000L, 0x00001000L, 0x00200000L, }, { 0x04200000L, 0x00080000L, 0x00001000L, 0x00200000L, }, { 0x44004000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x7E206106L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x00202000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00004000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x7E006107L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x7E004107L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x7E804107L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x00000001L, 0x00080000L, 0x00001000L, 0x00200000L, }, { 0x7E064106L, 0x48080084L, 0x002810A0L, 0xFFE00000L, }, { 0x02264006L, 0x48000004L, 0x00081000L, 0xFF800000L, }, { 0x02264006L, 0x48080004L, 0x00080000L, 0xFF800000L, }, { 0x7E266106L, 0x48080084L, 0x002810A0L, 0xFFE00000L, }, { 0x02262006L, 0x48000004L, 0x00080000L, 0xFF800000L, }, { 0x40200000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x10000000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x08000000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x04200000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x20000000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x7C000000L, 0x00000080L, 0x00000020L, 0x00000000L, }, { 0x00040000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00020000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00060000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x7C000006L, 0x00080080L, 0x00001020L, 0x00200000L, }, { 0x7C000006L, 0x00000080L, 0x00000020L, 0x00000000L, }, { 0x18000000L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00000006L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00000000L, 0x00000020L, 0x00000000L, }, { 0x00000000L, 0x00000080L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x00000080L, 0x00000020L, 0x00000000L, }, { 0x7E004186L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x00000080L, 0x00000000L, 0x00000000L, 0x00000000L, }, { 0x7E804106L, 0x00080080L, 0x002010A0L, 0x00600000L, }, { 0x00006000L, 0x00000000L, 0x00000080L, 0x00200000L, }, { 0x04000000L, 0x20000100L, 0x00000000L, 0x00000000L, }, { 0x00000000L, 0x20000000L, 0x00000000L, 0x00000000L, }, { 0x04000000L, 0x20000000L, 0x00000000L, 0x00000000L, }, }; static unsigned char xxVerticalSet [] = { 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x03, 0x00, 0x00, 0x80, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0xE1, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x01, 0x00, 0x00, 0x02, 0xCC, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xC8, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x57, 0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x00, 0x58, 0xA4, 0x00, 0x04, 0x47, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x47, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x00, 0xA4, 0x20, 0x00, 0x00, 0x04, 0x00, 0xA4, 0x00, 0x00, 0x04, 0x00, 0x04, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x40, 0x10, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x40, 0x00, 0x08, 0x10, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x61, 0x01, 0x00, 0x20, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xE0, 0x60, 0x8E, 0x8E, 0x00, 0x60, 0x60, 0x70, 0x60, 0x00, 0x00, 0x8E, 0xE0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0xE0, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x70, 0xE0, 0x60, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x00, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x80, 0x00, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xFF, 0xB8, 0x00, 0x00, 0x10, 0x00, 0x00, 0x70, 0x70, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0xB4, 0xB4, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0xB4, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xBF, 0xB4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xBF, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0x00, 0xB4, 0xB4, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xBF, 0xBF, 0xBB, 0x00, 0xE0, 0xC0, 0xC0, 0xC0, 0xE0, 0xC3, 0x24, 0x14, 0x00, 0x01, 0x24, 0x20, 0x03, 0x03, 0x00, 0x00, 0xE0, 0x04, 0x00, 0x14, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x08, 0x08, 0x08, 0x20, 0x00, 0x04, 0xE0, 0x20, 0x04, 0x04, 0x08, 0x40, 0x40, 0x44, 0x40, 0x0C, 0x04, 0x04, 0xC0, 0x04, 0x20, 0x04, 0x20, 0x03, 0x00, 0x04, 0x00, 0x20, 0x08, 0x44, 0x04, 0x08, 0x00, 0x00, 0x08, 0x00, 0xC0, 0x04, 0x03, 0x04, 0x08, 0x04, 0x04, 0x00, 0x40, 0xE0, 0x20, 0x04, 0x00, 0x08, 0xC0, 0x00, 0xC0, 0x04, 0x00, 0x43, 0x40, 0x40, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xC0, 0xEC, 0x00, 0x00, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x18, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x98, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x18, 0x06, 0x1A, 0x00, 0x00, 0x08, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xFA, 0x00, 0x00, 0x07, 0x07, 0x17, 0x17, 0x07, 0x07, 0x03, 0x03, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x04, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x23, 0x23, 0x00, 0x00, 0x03, 0x07, 0x00, 0x03, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0x03, 0x07, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x03, }; char * ParserSIG_TokenName [] = { "_EndOfFile", "Character_constant", "Bit_sequence", "Integer", "Real", "Manifest_string", "Free_op", ";", ",", ":", ".", "!", "!!", "Eq", "Not_eq", "->", "..", "(", ")", "[", "]", "{", "}", "<<", ">>", ":=", "?=", "\\'", "\"", "plus", "minus", "$", "%", "div", "alias", "all", "and", "as", "BIT", "BOOLEAN", "CHARACTER", "check", "class", "creation", "Current", "debug", "deferred", "do", "DOUBLE", "else", "elseif", "end", "ensure", "expanded", "export", "external", "false", "feature", "from", "frozen", "if", "implies", "indexing", "infix", "inherit", "inspect", "INTEGER", "invariant", "is", "like", "local", "loop", "_NONE", "obsolete", "old", "once", "or", "prefix", "REAL", "redefine", "rename", "require", "rescue", "Result", "retry", "select", "separate", "STRING", "strip", "then", "true", "undefine", "unique", "until", "variant", "when", "xor", "times", "smaller", "greater", "sm_eq", "gr_eq", "idiv", "imod", "power", "not", "Id", "Comment", }; static void yyEiffel ARGS((ParserSIG_tParsAttribute * Eiffel0, xxtUnionPtr xxGlobalRecoverySet)); static void yyClass_declaration ARGS((ParserSIG_tParsAttribute * Class_declaration0, xxtUnionPtr xxGlobalRecoverySet)); static void yyIndexing ARGS((ParserSIG_tParsAttribute * Indexing0, xxtUnionPtr xxGlobalRecoverySet)); static void yyIndex_list ARGS((ParserSIG_tParsAttribute * Index_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyIndex_clause ARGS((ParserSIG_tParsAttribute * Index_clause0, xxtUnionPtr xxGlobalRecoverySet)); static void yyIndex_terms ARGS((ParserSIG_tParsAttribute * Index_terms0, xxtUnionPtr xxGlobalRecoverySet)); static void yyIndex_value ARGS((ParserSIG_tParsAttribute * Index_value0, xxtUnionPtr xxGlobalRecoverySet)); static void yyClass_header ARGS((ParserSIG_tParsAttribute * Class_header0, xxtUnionPtr xxGlobalRecoverySet)); static void yyClass_name ARGS((ParserSIG_tParsAttribute * Class_name0, xxtUnionPtr xxGlobalRecoverySet)); static void yyObsolete ARGS((ParserSIG_tParsAttribute * Obsolete0, xxtUnionPtr xxGlobalRecoverySet)); static void yyMessage ARGS((ParserSIG_tParsAttribute * Message0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFeatures ARGS((ParserSIG_tParsAttribute * Features0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFeature_clause ARGS((ParserSIG_tParsAttribute * Feature_clause0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFeature_declaration_list ARGS((ParserSIG_tParsAttribute * Feature_declaration_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFeature_declaration ARGS((ParserSIG_tParsAttribute * Feature_declaration0, xxtUnionPtr xxGlobalRecoverySet)); static void yyDeclaration_body ARGS((ParserSIG_tParsAttribute * Declaration_body0, xxtUnionPtr xxGlobalRecoverySet)); static void yyConstant_or_routine ARGS((ParserSIG_tParsAttribute * Constant_or_routine0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFeature_value ARGS((ParserSIG_tParsAttribute * Feature_value0, xxtUnionPtr xxGlobalRecoverySet)); static void yyNew_feature_list ARGS((ParserSIG_tParsAttribute * New_feature_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyNew_feature ARGS((ParserSIG_tParsAttribute * New_feature0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFeature_name ARGS((ParserSIG_tParsAttribute * Feature_name0, xxtUnionPtr xxGlobalRecoverySet)); static void yyPrefix ARGS((ParserSIG_tParsAttribute * Prefix0, xxtUnionPtr xxGlobalRecoverySet)); static void yyInfix ARGS((ParserSIG_tParsAttribute * Infix0, xxtUnionPtr xxGlobalRecoverySet)); static void yyPrefix_operator ARGS((ParserSIG_tParsAttribute * Prefix_operator0, xxtUnionPtr xxGlobalRecoverySet)); static void yyInfix_operator ARGS((ParserSIG_tParsAttribute * Infix_operator0, xxtUnionPtr xxGlobalRecoverySet)); static void yyUnary ARGS((ParserSIG_tParsAttribute * Unary0, xxtUnionPtr xxGlobalRecoverySet)); static void yyBinary ARGS((ParserSIG_tParsAttribute * Binary0, xxtUnionPtr xxGlobalRecoverySet)); static void yyInheritance ARGS((ParserSIG_tParsAttribute * Inheritance0, xxtUnionPtr xxGlobalRecoverySet)); static void yyParent_list ARGS((ParserSIG_tParsAttribute * Parent_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyParent ARGS((ParserSIG_tParsAttribute * Parent0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFeature_adaptation ARGS((ParserSIG_tParsAttribute * Feature_adaptation0, xxtUnionPtr xxGlobalRecoverySet)); static void yyRename ARGS((ParserSIG_tParsAttribute * Rename0, xxtUnionPtr xxGlobalRecoverySet)); static void yyRename_list ARGS((ParserSIG_tParsAttribute * Rename_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyRename_pair ARGS((ParserSIG_tParsAttribute * Rename_pair0, xxtUnionPtr xxGlobalRecoverySet)); static void yyClients ARGS((ParserSIG_tParsAttribute * Clients0, xxtUnionPtr xxGlobalRecoverySet)); static void yyClass_list ARGS((ParserSIG_tParsAttribute * Class_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyNew_exports ARGS((ParserSIG_tParsAttribute * New_exports0, xxtUnionPtr xxGlobalRecoverySet)); static void yyNew_export_list ARGS((ParserSIG_tParsAttribute * New_export_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyNew_export_item ARGS((ParserSIG_tParsAttribute * New_export_item0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFeature_set ARGS((ParserSIG_tParsAttribute * Feature_set0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFeature_list ARGS((ParserSIG_tParsAttribute * Feature_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFormal_arguments ARGS((ParserSIG_tParsAttribute * Formal_arguments0, xxtUnionPtr xxGlobalRecoverySet)); static void yyEntity_declaration_list ARGS((ParserSIG_tParsAttribute * Entity_declaration_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyEntity_declaration_group ARGS((ParserSIG_tParsAttribute * Entity_declaration_group0, xxtUnionPtr xxGlobalRecoverySet)); static void yyIdentifier_list ARGS((ParserSIG_tParsAttribute * Identifier_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyType_mark ARGS((ParserSIG_tParsAttribute * Type_mark0, xxtUnionPtr xxGlobalRecoverySet)); static void yyRoutine ARGS((ParserSIG_tParsAttribute * Routine0, xxtUnionPtr xxGlobalRecoverySet)); static void yyRoutine_body ARGS((ParserSIG_tParsAttribute * Routine_body0, xxtUnionPtr xxGlobalRecoverySet)); static void yyEffective ARGS((ParserSIG_tParsAttribute * Effective0, xxtUnionPtr xxGlobalRecoverySet)); static void yyInternal ARGS((ParserSIG_tParsAttribute * Internal0, xxtUnionPtr xxGlobalRecoverySet)); static void yyDeferred ARGS((ParserSIG_tParsAttribute * Deferred0, xxtUnionPtr xxGlobalRecoverySet)); static void yyLocal_declarations ARGS((ParserSIG_tParsAttribute * Local_declarations0, xxtUnionPtr xxGlobalRecoverySet)); static void yyInstruction ARGS((ParserSIG_tParsAttribute * Instruction0, xxtUnionPtr xxGlobalRecoverySet)); static void yyCurrent_instruct ARGS((ParserSIG_tParsAttribute * Current_instruct0, xxtUnionPtr xxGlobalRecoverySet)); static void yyResult_instruct ARGS((ParserSIG_tParsAttribute * Result_instruct0, xxtUnionPtr xxGlobalRecoverySet)); static void yyIdent_instruct ARGS((ParserSIG_tParsAttribute * Ident_instruct0, xxtUnionPtr xxGlobalRecoverySet)); static void yyPrecondition ARGS((ParserSIG_tParsAttribute * Precondition0, xxtUnionPtr xxGlobalRecoverySet)); static void yyPostcondition ARGS((ParserSIG_tParsAttribute * Postcondition0, xxtUnionPtr xxGlobalRecoverySet)); static void yyInvariant ARGS((ParserSIG_tParsAttribute * Invariant0, xxtUnionPtr xxGlobalRecoverySet)); static void yyAssertion ARGS((ParserSIG_tParsAttribute * Assertion0, xxtUnionPtr xxGlobalRecoverySet)); static void yyAssertion_clause ARGS((ParserSIG_tParsAttribute * Assertion_clause0, xxtUnionPtr xxGlobalRecoverySet)); static void yyUnlabeled_assertion_clause ARGS((ParserSIG_tParsAttribute * Unlabeled_assertion_clause0, xxtUnionPtr xxGlobalRecoverySet)); static void yyTag ARGS((ParserSIG_tParsAttribute * Tag0, xxtUnionPtr xxGlobalRecoverySet)); static void yyOld ARGS((ParserSIG_tParsAttribute * Old0, xxtUnionPtr xxGlobalRecoverySet)); static void yyCheck ARGS((ParserSIG_tParsAttribute * Check0, xxtUnionPtr xxGlobalRecoverySet)); static void yyVariant ARGS((ParserSIG_tParsAttribute * Variant0, xxtUnionPtr xxGlobalRecoverySet)); static void yyRedefine ARGS((ParserSIG_tParsAttribute * Redefine0, xxtUnionPtr xxGlobalRecoverySet)); static void yyUndefine ARGS((ParserSIG_tParsAttribute * Undefine0, xxtUnionPtr xxGlobalRecoverySet)); static void yySelect ARGS((ParserSIG_tParsAttribute * Select0, xxtUnionPtr xxGlobalRecoverySet)); static void yyType ARGS((ParserSIG_tParsAttribute * Type0, xxtUnionPtr xxGlobalRecoverySet)); static void yyClass_type ARGS((ParserSIG_tParsAttribute * Class_type0, xxtUnionPtr xxGlobalRecoverySet)); static void yyActual_generics ARGS((ParserSIG_tParsAttribute * Actual_generics0, xxtUnionPtr xxGlobalRecoverySet)); static void yyType_list ARGS((ParserSIG_tParsAttribute * Type_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyBit_type ARGS((ParserSIG_tParsAttribute * Bit_type0, xxtUnionPtr xxGlobalRecoverySet)); static void yyAnchored ARGS((ParserSIG_tParsAttribute * Anchored0, xxtUnionPtr xxGlobalRecoverySet)); static void yyAnchor ARGS((ParserSIG_tParsAttribute * Anchor0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFormal_generics ARGS((ParserSIG_tParsAttribute * Formal_generics0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFormal_generic_list ARGS((ParserSIG_tParsAttribute * Formal_generic_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFormal_generic ARGS((ParserSIG_tParsAttribute * Formal_generic0, xxtUnionPtr xxGlobalRecoverySet)); static void yyFormal_generic_name ARGS((ParserSIG_tParsAttribute * Formal_generic_name0, xxtUnionPtr xxGlobalRecoverySet)); static void yyConstraint ARGS((ParserSIG_tParsAttribute * Constraint0, xxtUnionPtr xxGlobalRecoverySet)); static void yyCompound ARGS((ParserSIG_tParsAttribute * Compound0, xxtUnionPtr xxGlobalRecoverySet)); static void yyConditional ARGS((ParserSIG_tParsAttribute * Conditional0, xxtUnionPtr xxGlobalRecoverySet)); static void yyThen_part_list ARGS((ParserSIG_tParsAttribute * Then_part_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyThen_part ARGS((ParserSIG_tParsAttribute * Then_part0, xxtUnionPtr xxGlobalRecoverySet)); static void yyElse_part ARGS((ParserSIG_tParsAttribute * Else_part0, xxtUnionPtr xxGlobalRecoverySet)); static void yyMulti_branch ARGS((ParserSIG_tParsAttribute * Multi_branch0, xxtUnionPtr xxGlobalRecoverySet)); static void yyWhen_part_list ARGS((ParserSIG_tParsAttribute * When_part_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyWhen_part ARGS((ParserSIG_tParsAttribute * When_part0, xxtUnionPtr xxGlobalRecoverySet)); static void yyChoices ARGS((ParserSIG_tParsAttribute * Choices0, xxtUnionPtr xxGlobalRecoverySet)); static void yyChoice ARGS((ParserSIG_tParsAttribute * Choice0, xxtUnionPtr xxGlobalRecoverySet)); static void yyLoop ARGS((ParserSIG_tParsAttribute * Loop0, xxtUnionPtr xxGlobalRecoverySet)); static void yyInitialization ARGS((ParserSIG_tParsAttribute * Initialization0, xxtUnionPtr xxGlobalRecoverySet)); static void yyLoop_body ARGS((ParserSIG_tParsAttribute * Loop_body0, xxtUnionPtr xxGlobalRecoverySet)); static void yyExit ARGS((ParserSIG_tParsAttribute * Exit0, xxtUnionPtr xxGlobalRecoverySet)); static void yyDebug ARGS((ParserSIG_tParsAttribute * Debug0, xxtUnionPtr xxGlobalRecoverySet)); static void yyKeys_or_qual_call ARGS((ParserSIG_tParsAttribute * Keys_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet)); static void yyString ARGS((ParserSIG_tParsAttribute * String0, xxtUnionPtr xxGlobalRecoverySet)); static void yyString_list ARGS((ParserSIG_tParsAttribute * String_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyOne_compound ARGS((ParserSIG_tParsAttribute * One_compound0, xxtUnionPtr xxGlobalRecoverySet)); static void yyRescue ARGS((ParserSIG_tParsAttribute * Rescue0, xxtUnionPtr xxGlobalRecoverySet)); static void yyRetry ARGS((ParserSIG_tParsAttribute * Retry0, xxtUnionPtr xxGlobalRecoverySet)); static void yyUnique ARGS((ParserSIG_tParsAttribute * Unique0, xxtUnionPtr xxGlobalRecoverySet)); static void yyEntity ARGS((ParserSIG_tParsAttribute * Entity0, xxtUnionPtr xxGlobalRecoverySet)); static void yyWritable ARGS((ParserSIG_tParsAttribute * Writable0, xxtUnionPtr xxGlobalRecoverySet)); static void yyAttribute ARGS((ParserSIG_tParsAttribute * Attribute0, xxtUnionPtr xxGlobalRecoverySet)); static void yyLocal ARGS((ParserSIG_tParsAttribute * Local0, xxtUnionPtr xxGlobalRecoverySet)); static void yyCreators ARGS((ParserSIG_tParsAttribute * Creators0, xxtUnionPtr xxGlobalRecoverySet)); static void yyCreation_clause ARGS((ParserSIG_tParsAttribute * Creation_clause0, xxtUnionPtr xxGlobalRecoverySet)); static void yyCreation ARGS((ParserSIG_tParsAttribute * Creation0, xxtUnionPtr xxGlobalRecoverySet)); static void yyCreation_call ARGS((ParserSIG_tParsAttribute * Creation_call0, xxtUnionPtr xxGlobalRecoverySet)); static void yyQualified_call ARGS((ParserSIG_tParsAttribute * Qualified_call0, xxtUnionPtr xxGlobalRecoverySet)); static void yyParenthesized_qualifier ARGS((ParserSIG_tParsAttribute * Parenthesized_qualifier0, xxtUnionPtr xxGlobalRecoverySet)); static void yyCall_chain ARGS((ParserSIG_tParsAttribute * Call_chain0, xxtUnionPtr xxGlobalRecoverySet)); static void yyUnqualified_call ARGS((ParserSIG_tParsAttribute * Unqualified_call0, xxtUnionPtr xxGlobalRecoverySet)); static void yyActuals ARGS((ParserSIG_tParsAttribute * Actuals0, xxtUnionPtr xxGlobalRecoverySet)); static void yyActual_list ARGS((ParserSIG_tParsAttribute * Actual_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyActual ARGS((ParserSIG_tParsAttribute * Actual0, xxtUnionPtr xxGlobalRecoverySet)); static void yyAddress ARGS((ParserSIG_tParsAttribute * Address0, xxtUnionPtr xxGlobalRecoverySet)); static void yyAddress_mark ARGS((ParserSIG_tParsAttribute * Address_mark0, xxtUnionPtr xxGlobalRecoverySet)); static void yyExpression ARGS((ParserSIG_tParsAttribute * Expression0, xxtUnionPtr xxGlobalRecoverySet)); static void yyExpr_tail ARGS((ParserSIG_tParsAttribute * Expr_tail0, xxtUnionPtr xxGlobalRecoverySet)); static void yyIdent_call ARGS((ParserSIG_tParsAttribute * Ident_call0, xxtUnionPtr xxGlobalRecoverySet)); static void yyResult_call ARGS((ParserSIG_tParsAttribute * Result_call0, xxtUnionPtr xxGlobalRecoverySet)); static void yyCurrent_call ARGS((ParserSIG_tParsAttribute * Current_call0, xxtUnionPtr xxGlobalRecoverySet)); static void yyParenth_expr_or_qual_call ARGS((ParserSIG_tParsAttribute * Parenth_expr_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet)); static void yyNo_sign_constant ARGS((ParserSIG_tParsAttribute * No_sign_constant0, xxtUnionPtr xxGlobalRecoverySet)); static void yyBoolean_expression ARGS((ParserSIG_tParsAttribute * Boolean_expression0, xxtUnionPtr xxGlobalRecoverySet)); static void yyComparison ARGS((ParserSIG_tParsAttribute * Comparison0, xxtUnionPtr xxGlobalRecoverySet)); static void yyConstant ARGS((ParserSIG_tParsAttribute * Constant0, xxtUnionPtr xxGlobalRecoverySet)); static void yyConstant_attribute ARGS((ParserSIG_tParsAttribute * Constant_attribute0, xxtUnionPtr xxGlobalRecoverySet)); static void yyManifest_constant ARGS((ParserSIG_tParsAttribute * Manifest_constant0, xxtUnionPtr xxGlobalRecoverySet)); static void yyNumber_constant ARGS((ParserSIG_tParsAttribute * Number_constant0, xxtUnionPtr xxGlobalRecoverySet)); static void yySign ARGS((ParserSIG_tParsAttribute * Sign0, xxtUnionPtr xxGlobalRecoverySet)); static void yyBoolean_constant ARGS((ParserSIG_tParsAttribute * Boolean_constant0, xxtUnionPtr xxGlobalRecoverySet)); static void yyBit_constant ARGS((ParserSIG_tParsAttribute * Bit_constant0, xxtUnionPtr xxGlobalRecoverySet)); static void yyManifest_array ARGS((ParserSIG_tParsAttribute * Manifest_array0, xxtUnionPtr xxGlobalRecoverySet)); static void yyExpression_list ARGS((ParserSIG_tParsAttribute * Expression_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyStrip ARGS((ParserSIG_tParsAttribute * Strip0, xxtUnionPtr xxGlobalRecoverySet)); static void yyAttribute_list ARGS((ParserSIG_tParsAttribute * Attribute_list0, xxtUnionPtr xxGlobalRecoverySet)); static void yyExternal ARGS((ParserSIG_tParsAttribute * External0, xxtUnionPtr xxGlobalRecoverySet)); static void yyLanguage_name ARGS((ParserSIG_tParsAttribute * Language_name0, xxtUnionPtr xxGlobalRecoverySet)); static void yyExternal_name ARGS((ParserSIG_tParsAttribute * External_name0, xxtUnionPtr xxGlobalRecoverySet)); static void yyIdentifier ARGS((ParserSIG_tParsAttribute * Identifier0, xxtUnionPtr xxGlobalRecoverySet)); static void BeginParserSIG () { if (xxIsInitialized) return; /* line 17 "eiffel_sig.ell" */ EiffelScan_BeginScanner(); } void CloseParserSIG () { /* line 22 "eiffel_sig.ell" */ EiffelScan_CloseScanner(); } static xxbool xxIsElement # if defined __STDC__ | defined __cplusplus (xxtSet xySet, short xxElement) # else (xySet, xxElement) xxtSet xySet; short xxElement; # endif { return xySet [xxElement / 32] << xxElement % 32 < 0; } static void xxSkipTokens # if defined __STDC__ | defined __cplusplus (unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet) # else (xxLocalRecoverySet, xxGlobalRecoverySet) unsigned short xxLocalRecoverySet; xxtUnionPtr xxGlobalRecoverySet; # endif { xxbool xxTokensSkipped = xxfalse; xxtSet xxRecoverySet; xxRecoverySet [0] = xxHorizontalSet [xxLocalRecoverySet] [0]; xxRecoverySet [1] = xxHorizontalSet [xxLocalRecoverySet] [1]; xxRecoverySet [2] = xxHorizontalSet [xxLocalRecoverySet] [2]; xxRecoverySet [3] = xxHorizontalSet [xxLocalRecoverySet] [3]; xxRecoverySet [0] |= (unsigned long) 0x80000000L; /* INCL (xxRecoverySet [0], xxEof); */ while (xxGlobalRecoverySet != (xxtUnionPtr) 0L) { xxRecoverySet [0] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [0]; xxRecoverySet [1] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [1]; xxRecoverySet [2] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [2]; xxRecoverySet [3] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [3]; xxGlobalRecoverySet = xxGlobalRecoverySet->xxGlobalRecoverySet; } while (! xxIsElement (xxRecoverySet, xxToken)) { xxToken = EiffelScan_GetToken (); xxTokensSkipped = xxtrue; } if (xxTokensSkipped) ErrorMessage (xxRestartPoint, xxInformation, EiffelScan_Attribute.Position); xxIsRepairMode = xxtrue; } static void xxUnexpected # if defined __STDC__ | defined __cplusplus (unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet) # else (xxLocalRecoverySet, xxGlobalRecoverySet) unsigned short xxLocalRecoverySet; xxtUnionPtr xxGlobalRecoverySet; # endif { if (! xxIsRepairMode) { xxErrorCount ++; ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position); xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet); } } static void xxExpected # if defined __STDC__ | defined __cplusplus (unsigned short xxExpectedSet, unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet) # else (xxExpectedSet, xxLocalRecoverySet, xxGlobalRecoverySet) unsigned short xxExpectedSet, xxLocalRecoverySet; xxtUnionPtr xxGlobalRecoverySet; # endif { if (! xxIsRepairMode) { short yxToken; int xxLength = 0; char xxContinueString [256]; xxErrorCount ++; ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position); xxContinueString [0] = '\0'; for (yxToken = 0; yxToken <= 107; yxToken ++) if (xxIsElement (xxHorizontalSet [xxExpectedSet], yxToken)) { char * xxTokenString = ParserSIG_TokenName [yxToken]; if ((xxLength += strlen (xxTokenString) + 1) >= 256) break; (void) strcat (xxContinueString, xxTokenString); (void) strcat (xxContinueString, " "); } ErrorMessageI (xxExpectedTokens, xxInformation, EiffelScan_Attribute.Position, xxString, xxContinueString); xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet); } } static void xxRecoveryLiteral # if defined __STDC__ | defined __cplusplus (unsigned short xxExpected, unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet) # else (xxExpected, xxLocalRecoverySet, xxGlobalRecoverySet) unsigned short xxExpected, xxLocalRecoverySet; xxtUnionPtr xxGlobalRecoverySet; # endif { if (! xxIsRepairMode) { xxErrorCount ++; ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position); ErrorMessageI (xxExpectedTokens, xxInformation, EiffelScan_Attribute.Position, xxString, ParserSIG_TokenName [xxExpected]); xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet); } if (xxToken != xxExpected) { ErrorMessageI (xxTokenInserted, xxRepair, EiffelScan_Attribute.Position, xxString, ParserSIG_TokenName [xxExpected]); } else { if (xxToken != xxEof) xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } static void xxRecoveryTerminal # if defined __STDC__ | defined __cplusplus (unsigned short xxExpected, unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet, EiffelScan_tScanAttribute * xxRepairAttribute) # else (xxExpected, xxLocalRecoverySet, xxGlobalRecoverySet, xxRepairAttribute) unsigned short xxExpected, xxLocalRecoverySet; xxtUnionPtr xxGlobalRecoverySet; EiffelScan_tScanAttribute * xxRepairAttribute; # endif { if (! xxIsRepairMode) { xxErrorCount ++; ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position); ErrorMessageI (xxExpectedTokens, xxInformation, EiffelScan_Attribute.Position, xxString, ParserSIG_TokenName [xxExpected]); xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet); } if (xxToken != xxExpected) { ErrorMessageI (xxTokenInserted, xxRepair, EiffelScan_Attribute.Position, xxString, ParserSIG_TokenName [xxExpected]); EiffelScan_ErrorAttribute ((int) xxExpected, xxRepairAttribute); } else { * xxRepairAttribute = EiffelScan_Attribute; if (xxToken != xxEof) xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } int ParserSIG () { xxErrorCount = 0; BeginParserSIG (); xxToken = EiffelScan_GetToken (); yyEiffel (& ParserSIG_ParsAttribute, (xxtUnionPtr) 0L); if (xxToken != xxEof) xxRecoveryLiteral (xxEof, 0, (xxtUnionPtr) 0L); return xxErrorCount; } static void yyEiffel # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Eiffel0, xxtUnionPtr xxGlobalRecoverySet) # else (Eiffel0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Eiffel0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Class_declaration1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 147 "eiffel_sig.ell" */ TreeRoot = mClasses0(); for (;;) { xxUnion.xxLocalRecoverySet = 0; yyClass_declaration (& Class_declaration1, & xxUnion); /* */ /* line 148 "eiffel_sig.ell" */ TreeRoot = mClasses1(Class_declaration1.Tree, TreeRoot); if (! ((xxVerticalSet [xxToken] & 1 << 0 /* 'class' deferred expanded 'indexing' */))) { if ((xxToken == 0 /* _EndOfFile */)) break; xxExpected (1, 1, xxGlobalRecoverySet); /* 'class' deferred expanded 'indexing' / 'class' deferred expanded 'indexing' */ if (! ((xxVerticalSet [xxToken] & 1 << 0 /* 'class' deferred expanded 'indexing' */))) break; } } /* line 149 "eiffel_sig.ell" */ TreeRoot = mEiffel(ReverseTree(TreeRoot)); } static void yyClass_declaration # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Class_declaration0, xxtUnionPtr xxGlobalRecoverySet) # else (Class_declaration0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Class_declaration0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Indexing1; ParserSIG_tParsAttribute Class_header1; ParserSIG_tParsAttribute Formal_generics1; ParserSIG_tParsAttribute Obsolete1; ParserSIG_tParsAttribute Inheritance1; ParserSIG_tParsAttribute Creators1; ParserSIG_tParsAttribute Features1; ParserSIG_tParsAttribute Invariant1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 154 "eiffel_sig.ell" */ Class_declaration0->Tree = mClass_declaration(mIndex_list0(), mClass_header0(), mFormal_generics0(), mString0(), mParent_list0(), mCreators0(), mFeatures0(), mCondition0(), no_comment); for (;;) { if ((xxToken == 62 /* 'indexing' */)) { xxUnion.xxLocalRecoverySet = 3; yyIndexing (& Indexing1, & xxUnion); /* '[' 'class' 'creation' deferred 'end' expanded 'feature' 'inherit' 'invariant' 'obsolete' */ /* line 163 "eiffel_sig.ell" */ Class_declaration0->Tree->Class_declaration.Indexing = Indexing1.Tree; break; } else if ((xxVerticalSet [xxToken] & 1 << 1 /* 'class' deferred expanded */) || xxIsRepairMode) break; xxExpected (1, 2, xxGlobalRecoverySet); /* 'class' deferred expanded 'indexing' / '[' 'class' 'creation' deferred 'end' expanded 'feature' 'indexing' 'inherit' 'invariant' 'obsolete' */ } xxUnion.xxLocalRecoverySet = 4; yyClass_header (& Class_header1, & xxUnion); /* '[' 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */ /* line 164 "eiffel_sig.ell" */ Class_declaration0->Tree->Class_declaration.Class_header = Class_header1.Tree; for (;;) { if ((xxToken == 19 /* '[' */)) { xxUnion.xxLocalRecoverySet = 5; yyFormal_generics (& Formal_generics1, & xxUnion); /* 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */ /* line 165 "eiffel_sig.ell" */ Class_declaration0->Tree->Class_declaration.Formal_generics = Formal_generics1.Tree; break; } else if ((xxVerticalSet [xxToken] & 1 << 2 /* 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */) || xxIsRepairMode) break; xxExpected (4, 4, xxGlobalRecoverySet); /* '[' 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' / '[' 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */ } for (;;) { if ((xxToken == 73 /* 'obsolete' */)) { xxUnion.xxLocalRecoverySet = 6; yyObsolete (& Obsolete1, & xxUnion); /* 'creation' 'end' 'feature' 'inherit' 'invariant' */ /* line 166 "eiffel_sig.ell" */ Class_declaration0->Tree->Class_declaration.Obsolete = Obsolete1.Tree; break; } else if ((xxVerticalSet [xxToken] & 1 << 3 /* 'creation' 'end' 'feature' 'inherit' 'invariant' */) || xxIsRepairMode) break; xxExpected (5, 5, xxGlobalRecoverySet); /* 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' / 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */ } for (;;) { if ((xxToken == 64 /* 'inherit' */)) { xxUnion.xxLocalRecoverySet = 7; yyInheritance (& Inheritance1, & xxUnion); /* 'creation' 'end' 'feature' 'invariant' */ /* line 167 "eiffel_sig.ell" */ Class_declaration0->Tree->Class_declaration.Inheritance = Inheritance1.Tree; break; } else if ((xxVerticalSet [xxToken] & 1 << 4 /* 'creation' 'end' 'feature' 'invariant' */) || xxIsRepairMode) break; xxExpected (6, 6, xxGlobalRecoverySet); /* 'creation' 'end' 'feature' 'inherit' 'invariant' / 'creation' 'end' 'feature' 'inherit' 'invariant' */ } for (;;) { if ((xxToken == 43 /* 'creation' */)) { xxUnion.xxLocalRecoverySet = 8; yyCreators (& Creators1, & xxUnion); /* 'end' 'feature' 'invariant' */ /* line 168 "eiffel_sig.ell" */ Class_declaration0->Tree->Class_declaration.Creators = ReverseTree(Creators1.Tree); break; } else if ((xxVerticalSet [xxToken] & 1 << 5 /* 'end' 'feature' 'invariant' */) || xxIsRepairMode) break; xxExpected (7, 7, xxGlobalRecoverySet); /* 'creation' 'end' 'feature' 'invariant' / 'creation' 'end' 'feature' 'invariant' */ } for (;;) { if ((xxToken == 57 /* 'feature' */)) { xxUnion.xxLocalRecoverySet = 9; yyFeatures (& Features1, & xxUnion); /* 'end' 'invariant' */ /* line 169 "eiffel_sig.ell" */ Class_declaration0->Tree->Class_declaration.Features = ReverseTree(Features1.Tree); break; } else if ((xxVerticalSet [xxToken] & 1 << 6 /* 'end' 'invariant' */) || xxIsRepairMode) break; xxExpected (8, 8, xxGlobalRecoverySet); /* 'end' 'feature' 'invariant' / 'end' 'feature' 'invariant' */ } for (;;) { if ((xxToken == 67 /* 'invariant' */)) { xxUnion.xxLocalRecoverySet = 10; yyInvariant (& Invariant1, & xxUnion); /* 'end' */ /* line 170 "eiffel_sig.ell" */ Class_declaration0->Tree->Class_declaration.Invariant = Invariant1.Tree; break; } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break; xxExpected (9, 9, xxGlobalRecoverySet); /* 'end' 'invariant' / 'end' 'invariant' */ } /* line 171 "eiffel_sig.ell" */ comment_ref = no_comment; if (xxToken != 51 /* 'end' */) xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /* 'end' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 173 "eiffel_sig.ell" */ Class_declaration0->Tree->Class_declaration.comment = comment_ref; } static void yyIndexing # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Indexing0, xxtUnionPtr xxGlobalRecoverySet) # else (Indexing0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Indexing0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Index_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 62 /* 'indexing' */) xxRecoveryLiteral (62, 11, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string plus minus false 'indexing' true Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyIndex_list (& Index_list1, & xxUnion); /* */ /* line 180 "eiffel_sig.ell" */ Indexing0->Tree = ReverseTree(Index_list1.Tree); } static void yyIndex_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Index_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Index_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Index_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Index_clause1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 183 "eiffel_sig.ell" */ Index_list0->Tree = mIndex_list0(); for (;;) { if ((xxVerticalSet [xxToken] & 1 << 7 /* Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 13; yyIndex_clause (& Index_clause1, & xxUnion); /* ';' */ /* line 184 "eiffel_sig.ell" */ Index_list0->Tree = mIndex_list1(Index_clause1.Tree, Index_list0->Tree); if (! ((xxToken == 7 /* ';' */))) { if ((xxVerticalSet [xxToken] & 1 << 1 /* 'class' deferred expanded */)) break; xxExpected (13, 12, xxGlobalRecoverySet); /* ';' / Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */ if (! ((xxToken == 7 /* ';' */) || (xxVerticalSet [xxToken] & 1 << 7 /* Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */))) break; } if (xxToken != 7 /* ';' */) xxRecoveryLiteral (7, 12, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxVerticalSet [xxToken] & 1 << 1 /* 'class' deferred expanded */) || xxIsRepairMode) break; 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 */ } } static void yyIndex_clause # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Index_clause0, xxtUnionPtr xxGlobalRecoverySet) # else (Index_clause0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Index_clause0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Identifier1; ParserSIG_tParsAttribute Index_terms1, Index_terms2; ParserSIG_tParsAttribute Manifest_constant1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 14; yyIdentifier (& Identifier1, & xxUnion); /* ',' ':' */ for (;;) { switch (xxToken) { case 9 /* ':' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms1, & xxUnion); /* */ /* line 190 "eiffel_sig.ell" */ Index_clause0->Tree = mIndex_clause(Identifier1.Tree, Index_terms1.Tree); goto xx2; case 7 /* ';' */ :; case 8 /* ',' */ :; case 42 /* 'class' */ :; case 46 /* deferred */ :; case 53 /* expanded */ :; for (;;) { if ((xxToken == 8 /* ',' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /* */ /* line 191 "eiffel_sig.ell" */ Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition), mlist(Identifier1.Tree, Index_terms2.Tree) ); break; } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /* ';' 'class' deferred expanded */) || xxIsRepairMode) break; xxExpected (16, 16, xxGlobalRecoverySet); /* ',' / ',' */ } goto xx2; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 29:; case 30:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 43:; case 44:; case 45:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; default: if (xxIsRepairMode) { for (;;) { if ((xxToken == 8 /* ',' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /* */ /* line 191 "eiffel_sig.ell" */ Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition), mlist(Identifier1.Tree, Index_terms2.Tree) ); break; } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /* ';' 'class' deferred expanded */) || xxIsRepairMode) break; xxExpected (16, 16, xxGlobalRecoverySet); /* ',' / ',' */ } goto xx2; } xxUnexpected (14, xxGlobalRecoverySet); /* ',' ':' */ } } xx2:; goto xx1; case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 7 /* ';' */ :; case 8 /* ',' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 42 /* 'class' */ :; case 46 /* deferred */ :; case 53 /* expanded */ :; case 56 /* false */ :; case 90 /* true */ :; xxUnion.xxLocalRecoverySet = 16; yyManifest_constant (& Manifest_constant1, & xxUnion); /* ',' */ /* line 193 "eiffel_sig.ell" */ Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition), mlist(Manifest_constant1.Tree, mnolist())); for (;;) { if ((xxToken == 8 /* ',' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms1, & xxUnion); /* */ /* line 195 "eiffel_sig.ell" */ Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition), mlist(Manifest_constant1.Tree, Index_terms1.Tree)); break; } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /* ';' 'class' deferred expanded */) || xxIsRepairMode) break; xxExpected (16, 16, xxGlobalRecoverySet); /* ',' / ',' */ } goto xx1; case 6:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 43:; case 44:; case 45:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 14; yyIdentifier (& Identifier1, & xxUnion); /* ',' ':' */ for (;;) { switch (xxToken) { case 9 /* ':' */ :; if (xxToken != 9 /* ':' */) xxRecoveryLiteral (9, 15, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string ':' plus minus false true Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms1, & xxUnion); /* */ /* line 190 "eiffel_sig.ell" */ Index_clause0->Tree = mIndex_clause(Identifier1.Tree, Index_terms1.Tree); goto xx3; case 7 /* ';' */ :; case 8 /* ',' */ :; case 42 /* 'class' */ :; case 46 /* deferred */ :; case 53 /* expanded */ :; for (;;) { if ((xxToken == 8 /* ',' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /* */ /* line 191 "eiffel_sig.ell" */ Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition), mlist(Identifier1.Tree, Index_terms2.Tree) ); break; } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /* ';' 'class' deferred expanded */) || xxIsRepairMode) break; xxExpected (16, 16, xxGlobalRecoverySet); /* ',' / ',' */ } goto xx3; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 29:; case 30:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 43:; case 44:; case 45:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; default: if (xxIsRepairMode) { for (;;) { if ((xxToken == 8 /* ',' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /* */ /* line 191 "eiffel_sig.ell" */ Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition), mlist(Identifier1.Tree, Index_terms2.Tree) ); break; } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /* ';' 'class' deferred expanded */) || xxIsRepairMode) break; xxExpected (16, 16, xxGlobalRecoverySet); /* ',' / ',' */ } goto xx3; } xxUnexpected (14, xxGlobalRecoverySet); /* ',' ':' */ } } xx3:; goto xx1; } xxUnexpected (17, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */ } } xx1:; } static void yyIndex_terms # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Index_terms0, xxtUnionPtr xxGlobalRecoverySet) # else (Index_terms0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Index_terms0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Index_value1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 200 "eiffel_sig.ell" */ Index_terms0->Tree = mnolist(); for (;;) { xxUnion.xxLocalRecoverySet = 16; yyIndex_value (& Index_value1, & xxUnion); /* ',' */ /* line 201 "eiffel_sig.ell" */ Index_terms0->Tree = mlist(Index_value1.Tree, Index_terms0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxVerticalSet [xxToken + 108] & 1 << 0 /* ';' 'class' deferred expanded */)) break; xxExpected (16, 17, xxGlobalRecoverySet); /* ',' / Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 108] & 1 << 1 /* Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 17, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } /* line 202 "eiffel_sig.ell" */ Index_terms0->Tree = ReverseTree(Index_terms0->Tree); } static void yyIndex_value # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Index_value0, xxtUnionPtr xxGlobalRecoverySet) # else (Index_value0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Index_value0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Identifier1; ParserSIG_tParsAttribute Manifest_constant1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 206 "eiffel_sig.ell" */ Index_value0->Tree = Identifier1.Tree; goto xx4; case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 7 /* ';' */ :; case 8 /* ',' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 42 /* 'class' */ :; case 46 /* deferred */ :; case 53 /* expanded */ :; case 56 /* false */ :; case 90 /* true */ :; xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /* */ /* line 207 "eiffel_sig.ell" */ Index_value0->Tree = Manifest_constant1.Tree; goto xx4; case 6:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 43:; case 44:; case 45:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 206 "eiffel_sig.ell" */ Index_value0->Tree = Identifier1.Tree; goto xx4; } xxUnexpected (18, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string plus minus false true Id */ } } xx4:; } static void yyClass_header # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Class_header0, xxtUnionPtr xxGlobalRecoverySet) # else (Class_header0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Class_header0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute deferred1; EiffelScan_tScanAttribute expanded1; ParserSIG_tParsAttribute Class_name1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 46 /* deferred */ :; deferred1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; if (xxToken != 42 /* 'class' */) xxRecoveryLiteral (42, 20, xxGlobalRecoverySet); /* BOOLEAN CHARACTER 'class' DOUBLE INTEGER _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /* */ /* line 213 "eiffel_sig.ell" */ Class_header0->Tree = mDeferred_class(Class_name1.Tree); goto xx5; case 53 /* expanded */ :; expanded1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; if (xxToken != 42 /* 'class' */) xxRecoveryLiteral (42, 20, xxGlobalRecoverySet); /* BOOLEAN CHARACTER 'class' DOUBLE INTEGER _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /* */ /* line 214 "eiffel_sig.ell" */ Class_header0->Tree = mExpanded_class(Class_name1.Tree); goto xx5; case 42 /* 'class' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /* */ /* line 215 "eiffel_sig.ell" */ Class_header0->Tree = mClass(Class_name1.Tree); goto xx5; case 43:; case 44:; case 45:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; default: if (xxIsRepairMode) { if (xxToken != 42 /* 'class' */) xxRecoveryLiteral (42, 20, xxGlobalRecoverySet); /* BOOLEAN CHARACTER 'class' DOUBLE INTEGER _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /* */ /* line 215 "eiffel_sig.ell" */ Class_header0->Tree = mClass(Class_name1.Tree); goto xx5; } xxExpected (22, 22, xxGlobalRecoverySet); /* 'class' deferred expanded / 'class' deferred expanded */ } } xx5:; } static void yyClass_name # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Class_name0, xxtUnionPtr xxGlobalRecoverySet) # else (Class_name0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Class_name0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Formal_generic_name1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 0; yyFormal_generic_name (& Formal_generic_name1, & xxUnion); /* */ /* line 219 "eiffel_sig.ell" */ Class_name0->Tree = Formal_generic_name1.Tree; } static void yyObsolete # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Obsolete0, xxtUnionPtr xxGlobalRecoverySet) # else (Obsolete0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Obsolete0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Message1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 73 /* 'obsolete' */) xxRecoveryLiteral (73, 23, xxGlobalRecoverySet); /* Manifest_string 'obsolete' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 224 "eiffel_sig.ell" */ comment_ref = no_comment; xxUnion.xxLocalRecoverySet = 0; yyMessage (& Message1, & xxUnion); /* */ /* line 225 "eiffel_sig.ell" */ Obsolete0->Tree = Message1.Tree; } static void yyMessage # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Message0, xxtUnionPtr xxGlobalRecoverySet) # else (Message0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Message0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Manifest_string1; if (xxToken != 5 /* Manifest_string */) xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /* Manifest_string */ else { Manifest_string1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 230 "eiffel_sig.ell" */ Message0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position); } static void yyFeatures # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Features0, xxtUnionPtr xxGlobalRecoverySet) # else (Features0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Features0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_clause1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 234 "eiffel_sig.ell" */ Features0->Tree = mFeatures0(); if (xxToken != 57 /* 'feature' */) xxRecoveryLiteral (57, 25, xxGlobalRecoverySet); /* '{' 'feature' 'frozen' infix prefix Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } for (;;) { xxUnion.xxLocalRecoverySet = 26; yyFeature_clause (& Feature_clause1, & xxUnion); /* 'feature' */ /* line 236 "eiffel_sig.ell" */ Features0->Tree = mFeatures1(Feature_clause1.Tree, Features0->Tree); if (! ((xxToken == 57 /* 'feature' */))) { if ((xxVerticalSet [xxToken] & 1 << 6 /* 'end' 'invariant' */)) break; xxExpected (26, 25, xxGlobalRecoverySet); /* 'feature' / '{' 'feature' 'frozen' infix prefix Id */ if (! ((xxToken == 57 /* 'feature' */) || (xxVerticalSet [xxToken + 108] & 1 << 2 /* '{' 'feature' 'frozen' infix prefix Id */))) break; } if (xxToken != 57 /* 'feature' */) xxRecoveryLiteral (57, 25, xxGlobalRecoverySet); /* '{' 'feature' 'frozen' infix prefix Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } } static void yyFeature_clause # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Feature_clause0, xxtUnionPtr xxGlobalRecoverySet) # else (Feature_clause0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Feature_clause0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Clients1; ParserSIG_tParsAttribute Feature_declaration_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 240 "eiffel_sig.ell" */ Feature_clause0->Tree = mFeature_clause(mClients0(), no_comment, mFeature_decls0()); for (;;) { if ((xxToken == 21 /* '{' */)) { xxUnion.xxLocalRecoverySet = 28; yyClients (& Clients1, & xxUnion); /* 'frozen' infix prefix Id */ /* line 241 "eiffel_sig.ell" */ Feature_clause0->Tree->Feature_clause.Clients = Clients1.Tree; break; } else if ((xxVerticalSet [xxToken + 108] & 1 << 3 /* 'end' 'feature' 'frozen' infix 'invariant' prefix Id */) || xxIsRepairMode) break; xxExpected (27, 27, xxGlobalRecoverySet); /* '{' 'frozen' infix prefix Id / '{' 'frozen' infix prefix Id */ } /* line 242 "eiffel_sig.ell" */ Feature_clause0->Tree->Feature_clause.comment = comment_ref; xxUnion.xxLocalRecoverySet = 0; yyFeature_declaration_list (& Feature_declaration_list1, & xxUnion); /* */ /* line 243 "eiffel_sig.ell" */ Feature_clause0->Tree->Feature_clause.Feature_decls = ReverseTree(Feature_declaration_list1.Tree); } static void yyFeature_declaration_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Feature_declaration_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Feature_declaration_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Feature_declaration_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_declaration1, Feature_declaration2; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 247 "eiffel_sig.ell" */ Feature_declaration_list0->Tree = mFeature_decls0(); for (;;) { if ((xxVerticalSet [xxToken + 108] & 1 << 4 /* 'frozen' infix prefix Id */)) { xxUnion.xxLocalRecoverySet = 29; yyFeature_declaration (& Feature_declaration1, & xxUnion); /* ';' 'frozen' infix prefix Id */ /* line 248 "eiffel_sig.ell" */ Feature_declaration_list0->Tree = mFeature_decls1(Feature_declaration1.Tree, Feature_declaration_list0->Tree); for (;;) { if ((xxVerticalSet [xxToken + 108] & 1 << 5 /* ';' 'frozen' infix prefix Id */)) { for (;;) { if ((xxToken == 7 /* ';' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; break; } else if ((xxVerticalSet [xxToken + 108] & 1 << 4 /* 'frozen' infix prefix Id */) || xxIsRepairMode) break; xxExpected (29, 29, xxGlobalRecoverySet); /* ';' 'frozen' infix prefix Id / ';' 'frozen' infix prefix Id */ } xxUnion.xxLocalRecoverySet = 0; yyFeature_declaration (& Feature_declaration2, & xxUnion); /* */ /* line 250 "eiffel_sig.ell" */ Feature_declaration_list0->Tree = mFeature_decls1(Feature_declaration2.Tree, Feature_declaration_list0->Tree); } else if ((xxVerticalSet [xxToken] & 1 << 5 /* 'end' 'feature' 'invariant' */) || xxIsRepairMode) break; else xxExpected (29, 29, xxGlobalRecoverySet); /* ';' 'frozen' infix prefix Id / ';' 'frozen' infix prefix Id */ } break; } else if ((xxVerticalSet [xxToken] & 1 << 5 /* 'end' 'feature' 'invariant' */) || xxIsRepairMode) break; xxExpected (28, 28, xxGlobalRecoverySet); /* 'frozen' infix prefix Id / 'frozen' infix prefix Id */ } } static void yyFeature_declaration # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Feature_declaration0, xxtUnionPtr xxGlobalRecoverySet) # else (Feature_declaration0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Feature_declaration0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute New_feature_list1; ParserSIG_tParsAttribute Declaration_body1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 30; yyNew_feature_list (& New_feature_list1, & xxUnion); /* ':' '(' 'is' */ xxUnion.xxLocalRecoverySet = 0; yyDeclaration_body (& Declaration_body1, & xxUnion); /* */ /* line 256 "eiffel_sig.ell" */ Feature_declaration0->Tree = mFeature_decl(ReverseTree(New_feature_list1.Tree), Declaration_body1.Tree); } static void yyDeclaration_body # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Declaration_body0, xxtUnionPtr xxGlobalRecoverySet) # else (Declaration_body0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Declaration_body0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Formal_arguments1; ParserSIG_tParsAttribute Type_mark1; ParserSIG_tParsAttribute Constant_or_routine1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 260 "eiffel_sig.ell" */ Declaration_body0->Tree = mDeclaration_body(mFormal_args0(), mType0(), mConst_or_routine0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 31; yyFormal_arguments (& Formal_arguments1, & xxUnion); /* ':' 'is' */ /* line 261 "eiffel_sig.ell" */ Declaration_body0->Tree->Declaration_body.Formal_args = Formal_arguments1.Tree; break; } else if ((xxVerticalSet [xxToken + 108] & 1 << 6 /* ';' ':' 'end' 'feature' 'frozen' infix 'invariant' 'is' prefix Id */) || xxIsRepairMode) break; xxExpected (30, 30, xxGlobalRecoverySet); /* ':' '(' 'is' / ':' '(' 'is' */ } for (;;) { if ((xxToken == 9 /* ':' */)) { xxUnion.xxLocalRecoverySet = 32; yyType_mark (& Type_mark1, & xxUnion); /* 'is' */ /* line 262 "eiffel_sig.ell" */ Declaration_body0->Tree->Declaration_body.Type_mark = Type_mark1.Tree; break; } else if ((xxVerticalSet [xxToken + 108] & 1 << 7 /* ';' 'end' 'feature' 'frozen' infix 'invariant' 'is' prefix Id */) || xxIsRepairMode) break; xxExpected (31, 31, xxGlobalRecoverySet); /* ':' 'is' / ':' 'is' */ } for (;;) { if ((xxToken == 68 /* 'is' */)) { xxUnion.xxLocalRecoverySet = 0; yyConstant_or_routine (& Constant_or_routine1, & xxUnion); /* */ /* line 263 "eiffel_sig.ell" */ Declaration_body0->Tree->Declaration_body.Const_or_routine = Constant_or_routine1.Tree; break; } else if ((xxVerticalSet [xxToken + 216] & 1 << 0 /* ';' 'end' 'feature' 'frozen' infix 'invariant' prefix Id */) || xxIsRepairMode) break; xxExpected (32, 32, xxGlobalRecoverySet); /* 'is' / 'is' */ } } static void yyConstant_or_routine # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Constant_or_routine0, xxtUnionPtr xxGlobalRecoverySet) # else (Constant_or_routine0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Constant_or_routine0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_value1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 266 "eiffel_sig.ell" */ comment_ref = no_comment; if (xxToken != 68 /* 'is' */) xxRecoveryLiteral (68, 33, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string plus minus deferred do 'external' false 'is' 'local' 'obsolete' once 'require' true unique */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyFeature_value (& Feature_value1, & xxUnion); /* */ /* line 267 "eiffel_sig.ell" */ Constant_or_routine0->Tree = Feature_value1.Tree; } static void yyFeature_value # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Feature_value0, xxtUnionPtr xxGlobalRecoverySet) # else (Feature_value0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Feature_value0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Manifest_constant1; ParserSIG_tParsAttribute Unique1; ParserSIG_tParsAttribute Routine1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 7 /* ';' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 51 /* 'end' */ :; case 56 /* false */ :; case 57 /* 'feature' */ :; case 59 /* 'frozen' */ :; case 63 /* infix */ :; case 67 /* 'invariant' */ :; case 77 /* prefix */ :; case 90 /* true */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /* */ /* line 271 "eiffel_sig.ell" */ Feature_value0->Tree = mM_const(Manifest_constant1.Tree); goto xx6; case 92 /* unique */ :; xxUnion.xxLocalRecoverySet = 0; yyUnique (& Unique1, & xxUnion); /* */ /* line 272 "eiffel_sig.ell" */ Feature_value0->Tree = Unique1.Tree; goto xx6; case 46 /* deferred */ :; case 47 /* do */ :; case 55 /* 'external' */ :; case 70 /* 'local' */ :; case 73 /* 'obsolete' */ :; case 75 /* once */ :; case 81 /* 'require' */ :; xxUnion.xxLocalRecoverySet = 0; yyRoutine (& Routine1, & xxUnion); /* */ /* line 273 "eiffel_sig.ell" */ Feature_value0->Tree = Routine1.Tree; goto xx6; case 6:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 48:; case 49:; case 50:; case 52:; case 53:; case 54:; case 58:; case 60:; case 61:; case 62:; case 64:; case 65:; case 66:; case 68:; case 69:; case 71:; case 72:; case 74:; case 76:; case 78:; case 79:; case 80:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 91:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /* */ /* line 271 "eiffel_sig.ell" */ Feature_value0->Tree = mM_const(Manifest_constant1.Tree); goto xx6; } xxUnexpected (34, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string plus minus deferred do 'external' false 'local' 'obsolete' once 'require' true unique */ } } xx6:; } static void yyNew_feature_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * New_feature_list0, xxtUnionPtr xxGlobalRecoverySet) # else (New_feature_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * New_feature_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute New_feature1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 278 "eiffel_sig.ell" */ New_feature_list0->Tree = mNew_feature_list0(); for (;;) { xxUnion.xxLocalRecoverySet = 16; yyNew_feature (& New_feature1, & xxUnion); /* ',' */ /* line 279 "eiffel_sig.ell" */ New_feature_list0->Tree = mNew_feature_list1(New_feature1.Tree, New_feature_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxVerticalSet [xxToken + 216] & 1 << 1 /* ';' ':' '(' 'end' 'feature' 'frozen' infix 'invariant' 'is' prefix Id */)) break; xxExpected (35, 35, xxGlobalRecoverySet); /* ',' 'frozen' infix prefix Id / ',' 'frozen' infix prefix Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 108] & 1 << 4 /* 'frozen' infix prefix Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 35, xxGlobalRecoverySet); /* ',' 'frozen' infix prefix Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } } static void yyNew_feature # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * New_feature0, xxtUnionPtr xxGlobalRecoverySet) # else (New_feature0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * New_feature0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_name1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 59 /* 'frozen' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name1, & xxUnion); /* */ /* line 284 "eiffel_sig.ell" */ New_feature0->Tree = mFrozen(Feature_name1.Tree); goto xx7; case 63 /* infix */ :; case 77 /* prefix */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name1, & xxUnion); /* */ /* line 285 "eiffel_sig.ell" */ New_feature0->Tree = Feature_name1.Tree; goto xx7; case 60:; case 61:; case 62:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name1, & xxUnion); /* */ /* line 285 "eiffel_sig.ell" */ New_feature0->Tree = Feature_name1.Tree; goto xx7; } xxExpected (28, 28, xxGlobalRecoverySet); /* 'frozen' infix prefix Id / 'frozen' infix prefix Id */ } } xx7:; } static void yyFeature_name # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Feature_name0, xxtUnionPtr xxGlobalRecoverySet) # else (Feature_name0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Feature_name0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Identifier1; ParserSIG_tParsAttribute Prefix1; ParserSIG_tParsAttribute Infix1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 290 "eiffel_sig.ell" */ Feature_name0->Tree = mIdent_name(Identifier1.Tree); goto xx8; case 77 /* prefix */ :; xxUnion.xxLocalRecoverySet = 0; yyPrefix (& Prefix1, & xxUnion); /* */ /* line 291 "eiffel_sig.ell" */ Feature_name0->Tree = Prefix1.Tree; goto xx8; case 63 /* infix */ :; xxUnion.xxLocalRecoverySet = 0; yyInfix (& Infix1, & xxUnion); /* */ /* line 292 "eiffel_sig.ell" */ Feature_name0->Tree = Infix1.Tree; goto xx8; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 290 "eiffel_sig.ell" */ Feature_name0->Tree = mIdent_name(Identifier1.Tree); goto xx8; } xxExpected (36, 36, xxGlobalRecoverySet); /* infix prefix Id / infix prefix Id */ } } xx8:; } static void yyPrefix # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Prefix0, xxtUnionPtr xxGlobalRecoverySet) # else (Prefix0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Prefix0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute prefix1; ParserSIG_tParsAttribute Prefix_operator1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 77 /* prefix */) xxRecoveryTerminal (77, 37, xxGlobalRecoverySet, & prefix1); /* Free_op plus minus prefix not */ else { prefix1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyPrefix_operator (& Prefix_operator1, & xxUnion); /* */ /* line 296 "eiffel_sig.ell" */ Prefix0->Tree = Prefix_operator1.Tree; } static void yyInfix # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Infix0, xxtUnionPtr xxGlobalRecoverySet) # else (Infix0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Infix0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute infix1; ParserSIG_tParsAttribute Infix_operator1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 63 /* infix */) xxRecoveryTerminal (63, 38, xxGlobalRecoverySet, & infix1); /* Free_op plus minus div and implies infix or xor times smaller greater sm_eq gr_eq idiv imod power */ else { infix1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyInfix_operator (& Infix_operator1, & xxUnion); /* */ /* line 300 "eiffel_sig.ell" */ Infix0->Tree = Infix_operator1.Tree; } static void yyPrefix_operator # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Prefix_operator0, xxtUnionPtr xxGlobalRecoverySet) # else (Prefix_operator0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Prefix_operator0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Free_op1; ParserSIG_tParsAttribute Unary1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 29 /* plus */ :; case 30 /* minus */ :; case 105 /* not */ :; xxUnion.xxLocalRecoverySet = 0; yyUnary (& Unary1, & xxUnion); /* */ /* line 304 "eiffel_sig.ell" */ Prefix_operator0->Tree = mPrefix(Unary1.Tree); goto xx9; case 6 /* Free_op */ :; Free_op1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 305 "eiffel_sig.ell" */ Prefix_operator0->Tree = mPrefix(mFree_op(Free_op1.Position, Free_op1.Ident)); goto xx9; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyUnary (& Unary1, & xxUnion); /* */ /* line 304 "eiffel_sig.ell" */ Prefix_operator0->Tree = mPrefix(Unary1.Tree); goto xx9; } xxExpected (40, 40, xxGlobalRecoverySet); /* Free_op plus minus not / Free_op plus minus not */ } } xx9:; } static void yyInfix_operator # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Infix_operator0, xxtUnionPtr xxGlobalRecoverySet) # else (Infix_operator0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Infix_operator0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Free_op1; ParserSIG_tParsAttribute Binary1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 29 /* plus */ :; case 30 /* minus */ :; case 33 /* div */ :; case 36 /* and */ :; case 61 /* implies */ :; case 76 /* or */ :; case 96 /* xor */ :; case 97 /* times */ :; case 98 /* smaller */ :; case 99 /* greater */ :; case 100 /* sm_eq */ :; case 101 /* gr_eq */ :; case 102 /* idiv */ :; case 103 /* imod */ :; case 104 /* power */ :; xxUnion.xxLocalRecoverySet = 0; yyBinary (& Binary1, & xxUnion); /* */ /* line 310 "eiffel_sig.ell" */ Infix_operator0->Tree = mInfix(Binary1.Tree); goto xx10; case 6 /* Free_op */ :; Free_op1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 311 "eiffel_sig.ell" */ Infix_operator0->Tree = mInfix(mFree_op(Free_op1.Position, Free_op1.Ident)); goto xx10; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 34:; case 35:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyBinary (& Binary1, & xxUnion); /* */ /* line 310 "eiffel_sig.ell" */ Infix_operator0->Tree = mInfix(Binary1.Tree); goto xx10; } xxExpected (41, 41, 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 */ } } xx10:; } static void yyUnary # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Unary0, xxtUnionPtr xxGlobalRecoverySet) # else (Unary0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Unary0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute plus1; EiffelScan_tScanAttribute minus1; EiffelScan_tScanAttribute not1; for (;;) { switch (xxToken) { case 105 /* not */ :; not1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 316 "eiffel_sig.ell" */ Unary0->Tree = mOper(not1.Position, NOT); goto xx11; case 29 /* plus */ :; plus1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 317 "eiffel_sig.ell" */ Unary0->Tree = mOper(plus1.Position, PLUS); goto xx11; case 30 /* minus */ :; minus1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 318 "eiffel_sig.ell" */ Unary0->Tree = mOper(minus1.Position, MINUS); goto xx11; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { if (xxToken != 105 /* not */) xxRecoveryTerminal (105, 42, xxGlobalRecoverySet, & not1); /* not */ else { not1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 316 "eiffel_sig.ell" */ Unary0->Tree = mOper(not1.Position, NOT); goto xx11; } xxExpected (45, 45, xxGlobalRecoverySet); /* plus minus not / plus minus not */ } } xx11:; } static void yyBinary # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Binary0, xxtUnionPtr xxGlobalRecoverySet) # else (Binary0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Binary0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute plus1; EiffelScan_tScanAttribute minus1; EiffelScan_tScanAttribute div1; EiffelScan_tScanAttribute and1; EiffelScan_tScanAttribute else1; EiffelScan_tScanAttribute implies1; EiffelScan_tScanAttribute or1; EiffelScan_tScanAttribute then1; EiffelScan_tScanAttribute xor1; EiffelScan_tScanAttribute times1; EiffelScan_tScanAttribute smaller1; EiffelScan_tScanAttribute greater1; EiffelScan_tScanAttribute sm_eq1; EiffelScan_tScanAttribute gr_eq1; EiffelScan_tScanAttribute idiv1; EiffelScan_tScanAttribute imod1; EiffelScan_tScanAttribute power1; for (;;) { switch (xxToken) { case 103 /* imod */ :; imod1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 322 "eiffel_sig.ell" */ Binary0->Tree = mOper(imod1.Position, IMOD); goto xx12; case 102 /* idiv */ :; idiv1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 323 "eiffel_sig.ell" */ Binary0->Tree = mOper(idiv1.Position, IDIV); goto xx12; case 104 /* power */ :; power1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 324 "eiffel_sig.ell" */ Binary0->Tree = mOper(power1.Position, POWER); goto xx12; case 98 /* smaller */ :; smaller1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 325 "eiffel_sig.ell" */ Binary0->Tree = mOper(smaller1.Position, SMALLER); goto xx12; case 99 /* greater */ :; greater1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 326 "eiffel_sig.ell" */ Binary0->Tree = mOper(greater1.Position, GREATER); goto xx12; case 100 /* sm_eq */ :; sm_eq1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 327 "eiffel_sig.ell" */ Binary0->Tree = mOper(sm_eq1.Position, SM_EQ); goto xx12; case 101 /* gr_eq */ :; gr_eq1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 328 "eiffel_sig.ell" */ Binary0->Tree = mOper(gr_eq1.Position, GR_EQ); goto xx12; case 29 /* plus */ :; plus1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 329 "eiffel_sig.ell" */ Binary0->Tree = mOper(plus1.Position, PLUS); goto xx12; case 30 /* minus */ :; minus1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 330 "eiffel_sig.ell" */ Binary0->Tree = mOper(minus1.Position, MINUS); goto xx12; case 97 /* times */ :; times1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 331 "eiffel_sig.ell" */ Binary0->Tree = mOper(times1.Position, TIMES); goto xx12; case 33 /* div */ :; div1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 332 "eiffel_sig.ell" */ Binary0->Tree = mOper(div1.Position, DIV); goto xx12; case 36 /* and */ :; and1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 333 "eiffel_sig.ell" */ Binary0->Tree = mOper(and1.Position, AND); for (;;) { if ((xxToken == 89 /* then */)) { then1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 334 "eiffel_sig.ell" */ Binary0->Tree->Oper.op = AND_THEN; break; } else if ((xxVerticalSet [xxToken + 216] & 1 << 2 /* 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; xxExpected (56, 56, xxGlobalRecoverySet); /* then / then */ } goto xx12; case 76 /* or */ :; or1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 335 "eiffel_sig.ell" */ Binary0->Tree = mOper(or1.Position, OR); for (;;) { if ((xxToken == 49 /* else */)) { else1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 336 "eiffel_sig.ell" */ Binary0->Tree->Oper.op = OR_ELSE; break; } else if ((xxVerticalSet [xxToken + 216] & 1 << 2 /* 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; xxExpected (58, 58, xxGlobalRecoverySet); /* else / else */ } goto xx12; case 96 /* xor */ :; xor1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 337 "eiffel_sig.ell" */ Binary0->Tree = mOper(xor1.Position, XOR); goto xx12; case 61 /* implies */ :; implies1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 338 "eiffel_sig.ell" */ Binary0->Tree = mOper(implies1.Position, IMPLIES); goto xx12; case 31:; case 32:; case 34:; case 35:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; default: if (xxIsRepairMode) { if (xxToken != 103 /* imod */) xxRecoveryTerminal (103, 46, xxGlobalRecoverySet, & imod1); /* imod */ else { imod1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 322 "eiffel_sig.ell" */ Binary0->Tree = mOper(imod1.Position, IMOD); goto xx12; } xxExpected (61, 61, 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 */ } } xx12:; } static void yyInheritance # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Inheritance0, xxtUnionPtr xxGlobalRecoverySet) # else (Inheritance0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Inheritance0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Parent_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 64 /* 'inherit' */) xxRecoveryLiteral (64, 62, xxGlobalRecoverySet); /* expanded 'inherit' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyParent_list (& Parent_list1, & xxUnion); /* */ /* line 343 "eiffel_sig.ell" */ Inheritance0->Tree = ReverseTree(Parent_list1.Tree); } static void yyParent_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Parent_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Parent_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Parent_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Parent1, Parent2; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 346 "eiffel_sig.ell" */ Parent_list0->Tree = mParent_list0(); for (;;) { if ((xxVerticalSet [xxToken + 216] & 1 << 3 /* expanded Id */)) { xxUnion.xxLocalRecoverySet = 64; yyParent (& Parent1, & xxUnion); /* ';' expanded Id */ /* line 347 "eiffel_sig.ell" */ Parent_list0->Tree = mParent_list1(Parent1.Tree, Parent_list0->Tree); for (;;) { if ((xxVerticalSet [xxToken + 216] & 1 << 4 /* ';' expanded Id */)) { for (;;) { if ((xxToken == 7 /* ';' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; break; } else if ((xxVerticalSet [xxToken + 216] & 1 << 3 /* expanded Id */) || xxIsRepairMode) break; xxExpected (64, 64, xxGlobalRecoverySet); /* ';' expanded Id / ';' expanded Id */ } xxUnion.xxLocalRecoverySet = 0; yyParent (& Parent2, & xxUnion); /* */ /* line 348 "eiffel_sig.ell" */ Parent_list0->Tree = mParent_list1(Parent2.Tree, Parent_list0->Tree); } else if ((xxVerticalSet [xxToken] & 1 << 4 /* 'creation' 'end' 'feature' 'invariant' */) || xxIsRepairMode) break; else xxExpected (64, 64, xxGlobalRecoverySet); /* ';' expanded Id / ';' expanded Id */ } break; } else if ((xxVerticalSet [xxToken] & 1 << 4 /* 'creation' 'end' 'feature' 'invariant' */) || xxIsRepairMode) break; xxExpected (63, 63, xxGlobalRecoverySet); /* expanded Id / expanded Id */ } } static void yyParent # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Parent0, xxtUnionPtr xxGlobalRecoverySet) # else (Parent0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Parent0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Class_type1; ParserSIG_tParsAttribute Feature_adaptation1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 65; yyClass_type (& Class_type1, & xxUnion); /* 'end' 'export' 'redefine' 'rename' 'select' 'undefine' */ /* line 352 "eiffel_sig.ell" */ Parent0->Tree = mParent(Class_type1.Tree, mFeature_adaptation0()); for (;;) { if ((xxVerticalSet [xxToken + 216] & 1 << 5 /* 'end' 'export' 'redefine' 'rename' 'select' 'undefine' */)) { xxUnion.xxLocalRecoverySet = 0; yyFeature_adaptation (& Feature_adaptation1, & xxUnion); /* */ /* line 353 "eiffel_sig.ell" */ Parent0->Tree->Parent.Feature_adaptation = Feature_adaptation1.Tree; break; } else if ((xxVerticalSet [xxToken + 216] & 1 << 6 /* ';' 'creation' 'end' expanded 'feature' 'invariant' Id */) || xxIsRepairMode) break; xxExpected (65, 65, xxGlobalRecoverySet); /* 'end' 'export' 'redefine' 'rename' 'select' 'undefine' / 'end' 'export' 'redefine' 'rename' 'select' 'undefine' */ } } static void yyFeature_adaptation # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Feature_adaptation0, xxtUnionPtr xxGlobalRecoverySet) # else (Feature_adaptation0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Feature_adaptation0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Rename1; ParserSIG_tParsAttribute New_exports1; ParserSIG_tParsAttribute Undefine1; ParserSIG_tParsAttribute Redefine1; ParserSIG_tParsAttribute Select1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 356 "eiffel_sig.ell" */ Feature_adaptation0->Tree = mFeature_adaptation1(mRename_list0(), mNew_export_list0(), mFeature_list0(), mFeature_list0(), mFeature_list0()); for (;;) { if ((xxToken == 80 /* 'rename' */)) { xxUnion.xxLocalRecoverySet = 66; yyRename (& Rename1, & xxUnion); /* 'end' 'export' 'redefine' 'select' 'undefine' */ /* line 358 "eiffel_sig.ell" */ Feature_adaptation0->Tree->Feature_adaptation1.Rename = Rename1.Tree; break; } else if ((xxVerticalSet [xxToken + 216] & 1 << 7 /* 'end' 'export' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break; xxExpected (65, 65, xxGlobalRecoverySet); /* 'end' 'export' 'redefine' 'rename' 'select' 'undefine' / 'end' 'export' 'redefine' 'rename' 'select' 'undefine' */ } for (;;) { if ((xxToken == 54 /* 'export' */)) { xxUnion.xxLocalRecoverySet = 67; yyNew_exports (& New_exports1, & xxUnion); /* 'end' 'redefine' 'select' 'undefine' */ /* line 359 "eiffel_sig.ell" */ Feature_adaptation0->Tree->Feature_adaptation1.New_export = New_exports1.Tree; break; } else if ((xxVerticalSet [xxToken + 324] & 1 << 0 /* 'end' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break; xxExpected (66, 66, xxGlobalRecoverySet); /* 'end' 'export' 'redefine' 'select' 'undefine' / 'end' 'export' 'redefine' 'select' 'undefine' */ } for (;;) { if ((xxToken == 91 /* 'undefine' */)) { xxUnion.xxLocalRecoverySet = 68; yyUndefine (& Undefine1, & xxUnion); /* 'end' 'redefine' 'select' */ /* line 360 "eiffel_sig.ell" */ Feature_adaptation0->Tree->Feature_adaptation1.Undefine = Undefine1.Tree; break; } else if ((xxVerticalSet [xxToken + 324] & 1 << 1 /* 'end' 'redefine' 'select' */) || xxIsRepairMode) break; xxExpected (67, 67, xxGlobalRecoverySet); /* 'end' 'redefine' 'select' 'undefine' / 'end' 'redefine' 'select' 'undefine' */ } for (;;) { if ((xxToken == 79 /* 'redefine' */)) { xxUnion.xxLocalRecoverySet = 69; yyRedefine (& Redefine1, & xxUnion); /* 'end' 'select' */ /* line 361 "eiffel_sig.ell" */ Feature_adaptation0->Tree->Feature_adaptation1.Redefine = Redefine1.Tree; break; } else if ((xxVerticalSet [xxToken + 324] & 1 << 2 /* 'end' 'select' */) || xxIsRepairMode) break; xxExpected (68, 68, xxGlobalRecoverySet); /* 'end' 'redefine' 'select' / 'end' 'redefine' 'select' */ } for (;;) { if ((xxToken == 85 /* 'select' */)) { xxUnion.xxLocalRecoverySet = 10; yySelect (& Select1, & xxUnion); /* 'end' */ /* line 362 "eiffel_sig.ell" */ Feature_adaptation0->Tree->Feature_adaptation1.Select = Select1.Tree; break; } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break; xxExpected (69, 69, xxGlobalRecoverySet); /* 'end' 'select' / 'end' 'select' */ } if (xxToken != 51 /* 'end' */) xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /* 'end' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } static void yyRename # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Rename0, xxtUnionPtr xxGlobalRecoverySet) # else (Rename0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Rename0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Rename_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 80 /* 'rename' */) xxRecoveryLiteral (80, 70, xxGlobalRecoverySet); /* infix prefix 'rename' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyRename_list (& Rename_list1, & xxUnion); /* */ /* line 368 "eiffel_sig.ell" */ Rename0->Tree = ReverseTree(Rename_list1.Tree); } static void yyRename_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Rename_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Rename_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Rename_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Rename_pair1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 371 "eiffel_sig.ell" */ Rename_list0->Tree = mRename_list0(); for (;;) { if ((xxVerticalSet [xxToken + 324] & 1 << 3 /* infix prefix Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 16; yyRename_pair (& Rename_pair1, & xxUnion); /* ',' */ /* line 372 "eiffel_sig.ell" */ Rename_list0->Tree = mRename_list1(Rename_pair1.Tree, Rename_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxVerticalSet [xxToken + 216] & 1 << 7 /* 'end' 'export' 'redefine' 'select' 'undefine' */)) break; xxExpected (16, 71, xxGlobalRecoverySet); /* ',' / ',' infix prefix Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 3 /* infix prefix Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 71, xxGlobalRecoverySet); /* ',' infix prefix Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxVerticalSet [xxToken + 216] & 1 << 7 /* 'end' 'export' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break; xxExpected (36, 36, xxGlobalRecoverySet); /* infix prefix Id / infix prefix Id */ } } static void yyRename_pair # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Rename_pair0, xxtUnionPtr xxGlobalRecoverySet) # else (Rename_pair0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Rename_pair0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_name1, Feature_name2; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 72; yyFeature_name (& Feature_name1, & xxUnion); /* 'as' infix prefix Id */ if (xxToken != 37 /* 'as' */) xxRecoveryLiteral (37, 72, xxGlobalRecoverySet); /* 'as' infix prefix Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name2, & xxUnion); /* */ /* line 377 "eiffel_sig.ell" */ Rename_pair0->Tree = mRename_pair(Feature_name1.Tree, Feature_name2.Tree); } static void yyClients # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Clients0, xxtUnionPtr xxGlobalRecoverySet) # else (Clients0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Clients0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Class_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 21 /* '{' */) xxRecoveryLiteral (21, 73, xxGlobalRecoverySet); /* '{' '}' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 74; yyClass_list (& Class_list1, & xxUnion); /* '}' */ /* line 381 "eiffel_sig.ell" */ comment_ref = no_comment; if (xxToken != 22 /* '}' */) xxRecoveryLiteral (22, 74, xxGlobalRecoverySet); /* '}' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 381 "eiffel_sig.ell" */ Clients0->Tree = mClients1(Class_list1.Tree); } static void yyClass_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Class_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Class_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Class_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Formal_generic_name1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 384 "eiffel_sig.ell" */ Class_list0->Tree = mnolist(); for (;;) { if ((xxVerticalSet [xxToken + 324] & 1 << 4 /* BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 16; yyFormal_generic_name (& Formal_generic_name1, & xxUnion); /* ',' */ /* line 385 "eiffel_sig.ell" */ Class_list0->Tree = mlist(Formal_generic_name1.Tree, Class_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxToken == 22 /* '}' */)) break; xxExpected (16, 76, xxGlobalRecoverySet); /* ',' / ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 4 /* BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 76, xxGlobalRecoverySet); /* ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxToken == 22 /* '}' */) || xxIsRepairMode) break; xxExpected (75, 75, xxGlobalRecoverySet); /* BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id / BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */ } } static void yyNew_exports # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * New_exports0, xxtUnionPtr xxGlobalRecoverySet) # else (New_exports0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * New_exports0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute New_export_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 54 /* 'export' */) xxRecoveryLiteral (54, 77, xxGlobalRecoverySet); /* '{' 'export' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyNew_export_list (& New_export_list1, & xxUnion); /* */ /* line 392 "eiffel_sig.ell" */ New_exports0->Tree = ReverseTree(New_export_list1.Tree); } static void yyNew_export_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * New_export_list0, xxtUnionPtr xxGlobalRecoverySet) # else (New_export_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * New_export_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute New_export_item1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 395 "eiffel_sig.ell" */ New_export_list0->Tree = mNew_export_list0(); for (;;) { if ((xxToken == 21 /* '{' */)) { for (;;) { xxUnion.xxLocalRecoverySet = 13; yyNew_export_item (& New_export_item1, & xxUnion); /* ';' */ /* line 396 "eiffel_sig.ell" */ New_export_list0->Tree = mNew_export_list1(New_export_item1.Tree, New_export_list0->Tree); if (! ((xxToken == 7 /* ';' */))) { if ((xxVerticalSet [xxToken + 324] & 1 << 0 /* 'end' 'redefine' 'select' 'undefine' */)) break; xxExpected (13, 79, xxGlobalRecoverySet); /* ';' / ';' '{' */ if (! ((xxToken == 7 /* ';' */) || (xxToken == 21 /* '{' */))) break; } if (xxToken != 7 /* ';' */) xxRecoveryLiteral (7, 79, xxGlobalRecoverySet); /* ';' '{' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxVerticalSet [xxToken + 324] & 1 << 0 /* 'end' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break; xxExpected (78, 78, xxGlobalRecoverySet); /* '{' / '{' */ } } static void yyNew_export_item # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * New_export_item0, xxtUnionPtr xxGlobalRecoverySet) # else (New_export_item0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * New_export_item0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Clients1; ParserSIG_tParsAttribute Feature_set1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 80; yyClients (& Clients1, & xxUnion); /* 'all' infix prefix Id */ xxUnion.xxLocalRecoverySet = 0; yyFeature_set (& Feature_set1, & xxUnion); /* */ /* line 401 "eiffel_sig.ell" */ New_export_item0->Tree = mNew_export_item(Clients1.Tree, Feature_set1.Tree); } static void yyFeature_set # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Feature_set0, xxtUnionPtr xxGlobalRecoverySet) # else (Feature_set0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Feature_set0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 7 /* ';' */ :; case 51 /* 'end' */ :; case 63 /* infix */ :; case 77 /* prefix */ :; case 79 /* 'redefine' */ :; case 85 /* 'select' */ :; case 91 /* 'undefine' */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /* */ /* line 405 "eiffel_sig.ell" */ Feature_set0->Tree = ReverseTree(Feature_list1.Tree); goto xx13; case 35 /* 'all' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 406 "eiffel_sig.ell" */ Feature_set0->Tree = mAll(); goto xx13; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 29:; case 30:; case 31:; case 32:; case 33:; case 34:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 78:; case 80:; case 81:; case 82:; case 83:; case 84:; case 86:; case 87:; case 88:; case 89:; case 90:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /* */ /* line 405 "eiffel_sig.ell" */ Feature_set0->Tree = ReverseTree(Feature_list1.Tree); goto xx13; } xxUnexpected (80, xxGlobalRecoverySet); /* 'all' infix prefix Id */ } } xx13:; } static void yyFeature_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Feature_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Feature_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Feature_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_name1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 409 "eiffel_sig.ell" */ Feature_list0->Tree = mFeature_list0(); for (;;) { if ((xxVerticalSet [xxToken + 324] & 1 << 3 /* infix prefix Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 16; yyFeature_name (& Feature_name1, & xxUnion); /* ',' */ /* line 410 "eiffel_sig.ell" */ Feature_list0->Tree = mFeature_list1(Feature_name1.Tree, Feature_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxVerticalSet [xxToken + 324] & 1 << 5 /* ';' 'creation' 'end' 'feature' 'invariant' 'redefine' 'select' 'undefine' */)) break; xxExpected (16, 71, xxGlobalRecoverySet); /* ',' / ',' infix prefix Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 3 /* infix prefix Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 71, xxGlobalRecoverySet); /* ',' infix prefix Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxVerticalSet [xxToken + 324] & 1 << 5 /* ';' 'creation' 'end' 'feature' 'invariant' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break; xxExpected (36, 36, xxGlobalRecoverySet); /* infix prefix Id / infix prefix Id */ } } static void yyFormal_arguments # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Formal_arguments0, xxtUnionPtr xxGlobalRecoverySet) # else (Formal_arguments0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Formal_arguments0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Entity_declaration_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 17 /* '(' */) xxRecoveryLiteral (17, 82, xxGlobalRecoverySet); /* '(' ')' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 83; yyEntity_declaration_list (& Entity_declaration_list1, & xxUnion); /* ')' */ if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 83, xxGlobalRecoverySet); /* ')' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 416 "eiffel_sig.ell" */ Formal_arguments0->Tree = ReverseTree(Entity_declaration_list1.Tree); } static void yyEntity_declaration_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Entity_declaration_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Entity_declaration_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Entity_declaration_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Entity_declaration_group1, Entity_declaration_group2; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 419 "eiffel_sig.ell" */ Entity_declaration_list0->Tree = mFormal_args0(); for (;;) { if ((xxToken == 106 /* Id */)) { xxUnion.xxLocalRecoverySet = 85; yyEntity_declaration_group (& Entity_declaration_group1, & xxUnion); /* ';' ',' Id */ /* line 420 "eiffel_sig.ell" */ Entity_declaration_list0->Tree = mFormal_args1(Entity_declaration_group1.Tree, Entity_declaration_list0->Tree); for (;;) { if ((xxVerticalSet [xxToken + 324] & 1 << 7 /* ';' ',' Id */)) { for (;;) { if ((xxVerticalSet [xxToken + 432] & 1 << 0 /* ';' ',' */)) { if ((xxToken == 7 /* ';' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } break; } else if ((xxToken == 106 /* Id */) || xxIsRepairMode) break; xxExpected (85, 85, xxGlobalRecoverySet); /* ';' ',' Id / ';' ',' Id */ } xxUnion.xxLocalRecoverySet = 0; yyEntity_declaration_group (& Entity_declaration_group2, & xxUnion); /* */ /* line 423 "eiffel_sig.ell" */ Entity_declaration_list0->Tree = mFormal_args1(Entity_declaration_group2.Tree, Entity_declaration_list0->Tree); } else if ((xxVerticalSet [xxToken + 324] & 1 << 6 /* ')' deferred do 'external' once */) || xxIsRepairMode) break; else xxExpected (85, 85, xxGlobalRecoverySet); /* ';' ',' Id / ';' ',' Id */ } break; } else if ((xxVerticalSet [xxToken + 324] & 1 << 6 /* ')' deferred do 'external' once */) || xxIsRepairMode) break; xxExpected (84, 84, xxGlobalRecoverySet); /* Id / Id */ } } static void yyEntity_declaration_group # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Entity_declaration_group0, xxtUnionPtr xxGlobalRecoverySet) # else (Entity_declaration_group0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Entity_declaration_group0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Type_mark1; ParserSIG_tParsAttribute Identifier_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 88; yyIdentifier_list (& Identifier_list1, & xxUnion); /* ':' */ xxUnion.xxLocalRecoverySet = 0; yyType_mark (& Type_mark1, & xxUnion); /* */ /* line 428 "eiffel_sig.ell" */ Entity_declaration_group0->Tree = mEntity_decl_group(Identifier_list1.Tree, Type_mark1.Tree); } static void yyIdentifier_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Identifier_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Identifier_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Identifier_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Identifier1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 432 "eiffel_sig.ell" */ Identifier_list0->Tree = mnolist(); for (;;) { xxUnion.xxLocalRecoverySet = 16; yyIdentifier (& Identifier1, & xxUnion); /* ',' */ /* line 433 "eiffel_sig.ell" */ Identifier_list0->Tree = mlist(Identifier1.Tree, Identifier_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxToken == 9 /* ':' */)) break; xxExpected (16, 87, xxGlobalRecoverySet); /* ',' / ',' Id */ if (! ((xxToken == 8 /* ',' */) || (xxToken == 106 /* Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 87, xxGlobalRecoverySet); /* ',' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } /* line 434 "eiffel_sig.ell" */ Identifier_list0->Tree = ReverseTree(Identifier_list0->Tree); } static void yyType_mark # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Type_mark0, xxtUnionPtr xxGlobalRecoverySet) # else (Type_mark0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Type_mark0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Type1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 9 /* ':' */) xxRecoveryLiteral (9, 89, xxGlobalRecoverySet); /* ':' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyType (& Type1, & xxUnion); /* */ /* line 438 "eiffel_sig.ell" */ Type_mark0->Tree = Type1.Tree; } static void yyRoutine # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Routine0, xxtUnionPtr xxGlobalRecoverySet) # else (Routine0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Routine0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Obsolete1; ParserSIG_tParsAttribute Precondition1; ParserSIG_tParsAttribute Local_declarations1; ParserSIG_tParsAttribute Routine_body1; ParserSIG_tParsAttribute Postcondition1; ParserSIG_tParsAttribute Rescue1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 442 "eiffel_sig.ell" */ Routine0->Tree = mRoutine(mString0(), no_comment, mCondition0(), mFormal_args0(), mRoutine_body0(), mCondition0(), mCompound0(), no_comment); for (;;) { if ((xxToken == 73 /* 'obsolete' */)) { xxUnion.xxLocalRecoverySet = 92; yyObsolete (& Obsolete1, & xxUnion); /* deferred do 'end' 'ensure' 'external' 'local' once 'require' 'rescue' */ /* line 450 "eiffel_sig.ell" */ Routine0->Tree->Routine.Obsolete = Obsolete1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 1 /* deferred do 'external' 'local' once 'require' */) || xxIsRepairMode) break; xxExpected (90, 91, xxGlobalRecoverySet); /* deferred do 'external' 'local' 'obsolete' once 'require' / deferred do 'end' 'ensure' 'external' 'local' 'obsolete' once 'require' 'rescue' */ } /* line 451 "eiffel_sig.ell" */ Routine0->Tree->Routine.comment = comment_ref; for (;;) { if ((xxToken == 81 /* 'require' */)) { xxUnion.xxLocalRecoverySet = 94; yyPrecondition (& Precondition1, & xxUnion); /* deferred do 'end' 'ensure' 'external' 'local' once 'rescue' */ /* line 452 "eiffel_sig.ell" */ Routine0->Tree->Routine.Precondition = Precondition1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 2 /* deferred do 'external' 'local' once */) || xxIsRepairMode) break; xxExpected (93, 92, xxGlobalRecoverySet); /* deferred do 'external' 'local' once 'require' / deferred do 'end' 'ensure' 'external' 'local' once 'require' 'rescue' */ } for (;;) { if ((xxToken == 70 /* 'local' */)) { xxUnion.xxLocalRecoverySet = 96; yyLocal_declarations (& Local_declarations1, & xxUnion); /* deferred do 'end' 'ensure' 'external' once 'rescue' */ /* line 453 "eiffel_sig.ell" */ Routine0->Tree->Routine.Local_decls = Local_declarations1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 3 /* deferred do 'external' once */) || xxIsRepairMode) break; xxExpected (95, 94, xxGlobalRecoverySet); /* deferred do 'external' 'local' once / deferred do 'end' 'ensure' 'external' 'local' once 'rescue' */ } xxUnion.xxLocalRecoverySet = 97; yyRoutine_body (& Routine_body1, & xxUnion); /* 'end' 'ensure' 'rescue' */ /* line 454 "eiffel_sig.ell" */ Routine0->Tree->Routine.Routine_body = Routine_body1.Tree; for (;;) { if ((xxToken == 52 /* 'ensure' */)) { xxUnion.xxLocalRecoverySet = 98; yyPostcondition (& Postcondition1, & xxUnion); /* 'end' 'rescue' */ /* line 455 "eiffel_sig.ell" */ Routine0->Tree->Routine.Postcondition = Postcondition1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /* 'end' 'rescue' */) || xxIsRepairMode) break; xxExpected (97, 97, xxGlobalRecoverySet); /* 'end' 'ensure' 'rescue' / 'end' 'ensure' 'rescue' */ } for (;;) { if ((xxToken == 82 /* 'rescue' */)) { xxUnion.xxLocalRecoverySet = 10; yyRescue (& Rescue1, & xxUnion); /* 'end' */ /* line 456 "eiffel_sig.ell" */ Routine0->Tree->Routine.Rescue = Rescue1.Tree; break; } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break; xxExpected (98, 98, xxGlobalRecoverySet); /* 'end' 'rescue' / 'end' 'rescue' */ } /* line 457 "eiffel_sig.ell" */ comment_ref = no_comment; if (xxToken != 51 /* 'end' */) xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /* 'end' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 459 "eiffel_sig.ell" */ Routine0->Tree->Routine.end_comment = comment_ref; } static void yyRoutine_body # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Routine_body0, xxtUnionPtr xxGlobalRecoverySet) # else (Routine_body0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Routine_body0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Effective1; ParserSIG_tParsAttribute Deferred1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 47 /* do */ :; case 55 /* 'external' */ :; case 75 /* once */ :; xxUnion.xxLocalRecoverySet = 0; yyEffective (& Effective1, & xxUnion); /* */ /* line 463 "eiffel_sig.ell" */ Routine_body0->Tree = Effective1.Tree; goto xx14; case 46 /* deferred */ :; xxUnion.xxLocalRecoverySet = 0; yyDeferred (& Deferred1, & xxUnion); /* */ /* line 464 "eiffel_sig.ell" */ Routine_body0->Tree = Deferred1.Tree; goto xx14; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyEffective (& Effective1, & xxUnion); /* */ /* line 463 "eiffel_sig.ell" */ Routine_body0->Tree = Effective1.Tree; goto xx14; } xxExpected (99, 99, xxGlobalRecoverySet); /* deferred do 'external' once / deferred do 'external' once */ } } xx14:; } static void yyEffective # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Effective0, xxtUnionPtr xxGlobalRecoverySet) # else (Effective0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Effective0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Internal1; ParserSIG_tParsAttribute External1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 47 /* do */ :; case 75 /* once */ :; xxUnion.xxLocalRecoverySet = 0; yyInternal (& Internal1, & xxUnion); /* */ /* line 468 "eiffel_sig.ell" */ Effective0->Tree = Internal1.Tree; goto xx15; case 55 /* 'external' */ :; xxUnion.xxLocalRecoverySet = 0; yyExternal (& External1, & xxUnion); /* */ /* line 469 "eiffel_sig.ell" */ Effective0->Tree = External1.Tree; goto xx15; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyInternal (& Internal1, & xxUnion); /* */ /* line 468 "eiffel_sig.ell" */ Effective0->Tree = Internal1.Tree; goto xx15; } xxExpected (100, 100, xxGlobalRecoverySet); /* do 'external' once / do 'external' once */ } } xx15:; } static void yyInternal # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Internal0, xxtUnionPtr xxGlobalRecoverySet) # else (Internal0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Internal0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute do1; EiffelScan_tScanAttribute once1; ParserSIG_tParsAttribute Compound1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 47 /* do */ :; do1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 473 "eiffel_sig.ell" */ Internal0->Tree = mDo_body(ReverseTree(Compound1.Tree)); goto xx16; case 75 /* once */ :; once1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 474 "eiffel_sig.ell" */ Internal0->Tree = mOnce_body(ReverseTree(Compound1.Tree)); goto xx16; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; default: if (xxIsRepairMode) { if (xxToken != 47 /* do */) xxRecoveryTerminal (47, 101, xxGlobalRecoverySet, & do1); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' do 'from' 'if' 'inspect' Result retry Id */ else { do1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 473 "eiffel_sig.ell" */ Internal0->Tree = mDo_body(ReverseTree(Compound1.Tree)); goto xx16; } xxExpected (103, 103, xxGlobalRecoverySet); /* do once / do once */ } } xx16:; } static void yyDeferred # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Deferred0, xxtUnionPtr xxGlobalRecoverySet) # else (Deferred0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Deferred0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute deferred1; if (xxToken != 46 /* deferred */) xxRecoveryTerminal (46, 104, xxGlobalRecoverySet, & deferred1); /* deferred */ else { deferred1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 478 "eiffel_sig.ell" */ Deferred0->Tree = mDeferred(deferred1.Position); } static void yyLocal_declarations # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Local_declarations0, xxtUnionPtr xxGlobalRecoverySet) # else (Local_declarations0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Local_declarations0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Entity_declaration_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 70 /* 'local' */) xxRecoveryLiteral (70, 105, xxGlobalRecoverySet); /* 'local' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyEntity_declaration_list (& Entity_declaration_list1, & xxUnion); /* */ /* line 485 "eiffel_sig.ell" */ Local_declarations0->Tree = ReverseTree(Entity_declaration_list1.Tree); } static void yyInstruction # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Instruction0, xxtUnionPtr xxGlobalRecoverySet) # else (Instruction0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Instruction0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Creation1; ParserSIG_tParsAttribute Qualified_call1; ParserSIG_tParsAttribute Current_instruct1; ParserSIG_tParsAttribute Result_instruct1; ParserSIG_tParsAttribute Ident_instruct1; ParserSIG_tParsAttribute Conditional1; ParserSIG_tParsAttribute Multi_branch1; ParserSIG_tParsAttribute Loop1; ParserSIG_tParsAttribute Debug1; ParserSIG_tParsAttribute Check1; ParserSIG_tParsAttribute Retry1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 11 /* '!' */ :; case 12 /* '!!' */ :; xxUnion.xxLocalRecoverySet = 0; yyCreation (& Creation1, & xxUnion); /* */ /* line 492 "eiffel_sig.ell" */ Instruction0->Tree = Creation1.Tree; goto xx17; case 1 /* Character_constant */ :; case 5 /* Manifest_string */ :; case 17 /* '(' */ :; xxUnion.xxLocalRecoverySet = 0; yyQualified_call (& Qualified_call1, & xxUnion); /* */ /* line 493 "eiffel_sig.ell" */ Instruction0->Tree = Qualified_call1.Tree; goto xx17; case 44 /* Current */ :; xxUnion.xxLocalRecoverySet = 0; yyCurrent_instruct (& Current_instruct1, & xxUnion); /* */ /* line 494 "eiffel_sig.ell" */ Instruction0->Tree = Current_instruct1.Tree; goto xx17; case 83 /* Result */ :; xxUnion.xxLocalRecoverySet = 0; yyResult_instruct (& Result_instruct1, & xxUnion); /* */ /* line 495 "eiffel_sig.ell" */ Instruction0->Tree = Result_instruct1.Tree; goto xx17; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyIdent_instruct (& Ident_instruct1, & xxUnion); /* */ /* line 496 "eiffel_sig.ell" */ Instruction0->Tree = Ident_instruct1.Tree; goto xx17; case 60 /* 'if' */ :; xxUnion.xxLocalRecoverySet = 0; yyConditional (& Conditional1, & xxUnion); /* */ /* line 497 "eiffel_sig.ell" */ Instruction0->Tree = Conditional1.Tree; goto xx17; case 65 /* 'inspect' */ :; xxUnion.xxLocalRecoverySet = 0; yyMulti_branch (& Multi_branch1, & xxUnion); /* */ /* line 498 "eiffel_sig.ell" */ Instruction0->Tree = Multi_branch1.Tree; goto xx17; case 58 /* 'from' */ :; xxUnion.xxLocalRecoverySet = 0; yyLoop (& Loop1, & xxUnion); /* */ /* line 499 "eiffel_sig.ell" */ Instruction0->Tree = Loop1.Tree; goto xx17; case 45 /* 'debug' */ :; xxUnion.xxLocalRecoverySet = 0; yyDebug (& Debug1, & xxUnion); /* */ /* line 500 "eiffel_sig.ell" */ Instruction0->Tree = Debug1.Tree; goto xx17; case 41 /* 'check' */ :; xxUnion.xxLocalRecoverySet = 0; yyCheck (& Check1, & xxUnion); /* */ /* line 501 "eiffel_sig.ell" */ Instruction0->Tree = mCheck(Check1.Tree); goto xx17; case 84 /* retry */ :; xxUnion.xxLocalRecoverySet = 0; yyRetry (& Retry1, & xxUnion); /* */ /* line 502 "eiffel_sig.ell" */ Instruction0->Tree = Retry1.Tree; goto xx17; case 7 /* ';' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 503 "eiffel_sig.ell" */ Instruction0->Tree = NoTree; goto xx17; case 2:; case 3:; case 4:; case 6:; case 8:; case 9:; case 10:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 29:; case 30:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 42:; case 43:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 59:; case 61:; case 62:; case 63:; case 64:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyCurrent_instruct (& Current_instruct1, & xxUnion); /* */ /* line 494 "eiffel_sig.ell" */ Instruction0->Tree = Current_instruct1.Tree; goto xx17; } xxExpected (106, 106, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id / Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ } } xx17:; } static void yyCurrent_instruct # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Current_instruct0, xxtUnionPtr xxGlobalRecoverySet) # else (Current_instruct0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Current_instruct0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Current1; ParserSIG_tParsAttribute Actuals1; ParserSIG_tParsAttribute Call_chain1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 44 /* Current */) xxRecoveryTerminal (44, 107, xxGlobalRecoverySet, & Current1); /* '.' '(' Current */ else { Current1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 507 "eiffel_sig.ell" */ Current_instruct0->Tree = mCall_chain1(mUnqual_call1( mCurrent(Current1.Position), mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 109; yyActuals (& Actuals1, & xxUnion); /* '.' */ /* line 509 "eiffel_sig.ell" */ Current_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } 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; xxExpected (108, 108, xxGlobalRecoverySet); /* '.' '(' / '.' '(' */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 510 "eiffel_sig.ell" */ Current_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 6 /* 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; xxExpected (109, 109, xxGlobalRecoverySet); /* '.' / '.' */ } /* line 511 "eiffel_sig.ell" */ Current_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Current_instruct0->Tree)); } static void yyResult_instruct # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Result_instruct0, xxtUnionPtr xxGlobalRecoverySet) # else (Result_instruct0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Result_instruct0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Result1; ParserSIG_tParsAttribute Actuals1; ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Expression1, Expression2; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 83 /* Result */) xxRecoveryTerminal (83, 111, xxGlobalRecoverySet, & Result1); /* '.' '(' ':=' '?=' Result */ else { Result1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } for (;;) { switch (xxToken) { case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 6 /* Free_op */ :; case 7 /* ';' */ :; case 10 /* '.' */ :; case 11 /* '!' */ :; case 12 /* '!!' */ :; case 17 /* '(' */ :; case 23 /* '<<' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 41 /* 'check' */ :; case 44 /* Current */ :; case 45 /* 'debug' */ :; case 49 /* else */ :; case 50 /* 'elseif' */ :; case 51 /* 'end' */ :; case 52 /* 'ensure' */ :; case 56 /* false */ :; case 58 /* 'from' */ :; case 60 /* 'if' */ :; case 65 /* 'inspect' */ :; case 67 /* 'invariant' */ :; case 74 /* 'old' */ :; case 82 /* 'rescue' */ :; case 83 /* Result */ :; case 84 /* retry */ :; case 88 /* 'strip' */ :; case 90 /* true */ :; case 93 /* 'until' */ :; case 94 /* 'variant' */ :; case 95 /* 'when' */ :; case 105 /* not */ :; case 106 /* Id */ :; /* line 516 "eiffel_sig.ell" */ Result_instruct0->Tree = mCall_chain1(mUnqual_call1( mResult(Result1.Position), mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 109; yyActuals (& Actuals1, & xxUnion); /* '.' */ /* line 518 "eiffel_sig.ell" */ Result_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } 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; xxExpected (108, 108, xxGlobalRecoverySet); /* '.' '(' / '.' '(' */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 519 "eiffel_sig.ell" */ Result_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 6 /* 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; xxExpected (109, 109, xxGlobalRecoverySet); /* '.' / '.' */ } /* line 520 "eiffel_sig.ell" */ Result_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Result_instruct0->Tree)); goto xx18; case 25 /* ':=' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 521 "eiffel_sig.ell" */ Result_instruct0->Tree = mAssign(mResult(Result1.Position), Expression1.Tree); goto xx18; case 26 /* '?=' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression2, & xxUnion); /* */ /* line 522 "eiffel_sig.ell" */ Result_instruct0->Tree = mRev_assign(mResult(Result1.Position), Expression2.Tree); goto xx18; case 8:; case 9:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 24:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 42:; case 43:; case 46:; case 47:; case 48:; case 53:; case 54:; case 55:; case 57:; case 59:; case 61:; case 62:; case 63:; case 64:; case 66:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { /* line 516 "eiffel_sig.ell" */ Result_instruct0->Tree = mCall_chain1(mUnqual_call1( mResult(Result1.Position), mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 109; yyActuals (& Actuals1, & xxUnion); /* '.' */ /* line 518 "eiffel_sig.ell" */ Result_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } 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; xxExpected (108, 108, xxGlobalRecoverySet); /* '.' '(' / '.' '(' */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 519 "eiffel_sig.ell" */ Result_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 6 /* 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; xxExpected (109, 109, xxGlobalRecoverySet); /* '.' / '.' */ } /* line 520 "eiffel_sig.ell" */ Result_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Result_instruct0->Tree)); goto xx18; } xxExpected (114, 114, xxGlobalRecoverySet); /* '.' '(' ':=' '?=' / '.' '(' ':=' '?=' */ } } xx18:; } static void yyIdent_instruct # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Ident_instruct0, xxtUnionPtr xxGlobalRecoverySet) # else (Ident_instruct0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Ident_instruct0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Identifier1; ParserSIG_tParsAttribute Actuals1; ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Expression1, Expression2; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 114; yyIdentifier (& Identifier1, & xxUnion); /* '.' '(' ':=' '?=' */ for (;;) { switch (xxToken) { case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 6 /* Free_op */ :; case 7 /* ';' */ :; case 10 /* '.' */ :; case 11 /* '!' */ :; case 12 /* '!!' */ :; case 17 /* '(' */ :; case 23 /* '<<' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 41 /* 'check' */ :; case 44 /* Current */ :; case 45 /* 'debug' */ :; case 49 /* else */ :; case 50 /* 'elseif' */ :; case 51 /* 'end' */ :; case 52 /* 'ensure' */ :; case 56 /* false */ :; case 58 /* 'from' */ :; case 60 /* 'if' */ :; case 65 /* 'inspect' */ :; case 67 /* 'invariant' */ :; case 74 /* 'old' */ :; case 82 /* 'rescue' */ :; case 83 /* Result */ :; case 84 /* retry */ :; case 88 /* 'strip' */ :; case 90 /* true */ :; case 93 /* 'until' */ :; case 94 /* 'variant' */ :; case 95 /* 'when' */ :; case 105 /* not */ :; case 106 /* Id */ :; /* line 527 "eiffel_sig.ell" */ Ident_instruct0->Tree = mCall_chain1(mUnqual_call1(Identifier1.Tree, mActuals0()),mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 109; yyActuals (& Actuals1, & xxUnion); /* '.' */ /* line 529 "eiffel_sig.ell" */ Ident_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } 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; xxExpected (108, 108, xxGlobalRecoverySet); /* '.' '(' / '.' '(' */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 530 "eiffel_sig.ell" */ Ident_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 6 /* 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; xxExpected (109, 109, xxGlobalRecoverySet); /* '.' / '.' */ } /* line 531 "eiffel_sig.ell" */ Ident_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Ident_instruct0->Tree)); goto xx19; case 25 /* ':=' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 532 "eiffel_sig.ell" */ Ident_instruct0->Tree = mAssign(Identifier1.Tree, Expression1.Tree); goto xx19; case 26 /* '?=' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression2, & xxUnion); /* */ /* line 533 "eiffel_sig.ell" */ Ident_instruct0->Tree = mRev_assign(Identifier1.Tree, Expression2.Tree); goto xx19; case 8:; case 9:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 24:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 42:; case 43:; case 46:; case 47:; case 48:; case 53:; case 54:; case 55:; case 57:; case 59:; case 61:; case 62:; case 63:; case 64:; case 66:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { /* line 527 "eiffel_sig.ell" */ Ident_instruct0->Tree = mCall_chain1(mUnqual_call1(Identifier1.Tree, mActuals0()),mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 109; yyActuals (& Actuals1, & xxUnion); /* '.' */ /* line 529 "eiffel_sig.ell" */ Ident_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } 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; xxExpected (108, 108, xxGlobalRecoverySet); /* '.' '(' / '.' '(' */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 530 "eiffel_sig.ell" */ Ident_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 6 /* 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; xxExpected (109, 109, xxGlobalRecoverySet); /* '.' / '.' */ } /* line 531 "eiffel_sig.ell" */ Ident_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Ident_instruct0->Tree)); goto xx19; } xxExpected (114, 114, xxGlobalRecoverySet); /* '.' '(' ':=' '?=' / '.' '(' ':=' '?=' */ } } xx19:; } static void yyPrecondition # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Precondition0, xxtUnionPtr xxGlobalRecoverySet) # else (Precondition0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Precondition0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute else1; ParserSIG_tParsAttribute Assertion1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 537 "eiffel_sig.ell" */ Precondition0->Tree = mCondition1(VOID, mAssertion0()); if (xxToken != 81 /* 'require' */) xxRecoveryLiteral (81, 115, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else false 'old' 'require' Result 'strip' true not Id Comment */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } for (;;) { if ((xxToken == 49 /* else */)) { else1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 538 "eiffel_sig.ell" */ Precondition0->Tree->Condition1.extension = ELSE; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 7 /* 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; xxExpected (116, 116, 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 */ } xxUnion.xxLocalRecoverySet = 0; yyAssertion (& Assertion1, & xxUnion); /* */ /* line 539 "eiffel_sig.ell" */ Precondition0->Tree->Condition1.Assertion = ReverseTree(Assertion1.Tree); } static void yyPostcondition # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Postcondition0, xxtUnionPtr xxGlobalRecoverySet) # else (Postcondition0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Postcondition0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute then1; ParserSIG_tParsAttribute Assertion1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 542 "eiffel_sig.ell" */ Postcondition0->Tree = mCondition1(VOID, mAssertion0()); if (xxToken != 52 /* 'ensure' */) xxRecoveryLiteral (52, 117, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'ensure' false 'old' Result 'strip' then true not Id Comment */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } for (;;) { if ((xxToken == 89 /* then */)) { then1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 543 "eiffel_sig.ell" */ Postcondition0->Tree->Condition1.extension = THEN; break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 0 /* 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; xxExpected (118, 118, 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 */ } xxUnion.xxLocalRecoverySet = 0; yyAssertion (& Assertion1, & xxUnion); /* */ /* line 544 "eiffel_sig.ell" */ Postcondition0->Tree->Condition1.Assertion = ReverseTree(Assertion1.Tree); } static void yyInvariant # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Invariant0, xxtUnionPtr xxGlobalRecoverySet) # else (Invariant0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Invariant0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Assertion1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 67 /* 'invariant' */) xxRecoveryLiteral (67, 119, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'invariant' 'old' Result 'strip' true not Id Comment */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyAssertion (& Assertion1, & xxUnion); /* */ /* line 548 "eiffel_sig.ell" */ Invariant0->Tree = mCondition1(VOID, ReverseTree(Assertion1.Tree)); } static void yyAssertion # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Assertion0, xxtUnionPtr xxGlobalRecoverySet) # else (Assertion0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Assertion0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Assertion_clause1, Assertion_clause2; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 551 "eiffel_sig.ell" */ Assertion0->Tree = mAssertion0(); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 1 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */)) { xxUnion.xxLocalRecoverySet = 121; yyAssertion_clause (& Assertion_clause1, & xxUnion); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */ /* line 552 "eiffel_sig.ell" */ Assertion0->Tree = mAssertion1(Assertion_clause1.Tree, Assertion0->Tree); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 3 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */)) { for (;;) { if ((xxToken == 7 /* ';' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 1 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */) || xxIsRepairMode) break; xxExpected (121, 121, 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 */ } xxUnion.xxLocalRecoverySet = 0; yyAssertion_clause (& Assertion_clause2, & xxUnion); /* */ /* line 553 "eiffel_sig.ell" */ Assertion0->Tree = mAssertion1(Assertion_clause2.Tree, Assertion0->Tree); } 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 */) || xxIsRepairMode) break; else xxExpected (121, 121, 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 */ } break; } 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 */) || xxIsRepairMode) break; xxExpected (120, 120, 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 */ } } static void yyAssertion_clause # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Assertion_clause0, xxtUnionPtr xxGlobalRecoverySet) # else (Assertion_clause0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Assertion_clause0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Actuals1; ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Tag1; ParserSIG_tParsAttribute Unlabeled_assertion_clause1; ParserSIG_tParsAttribute Expr_tail1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 122; 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 */ for (;;) { switch (xxToken) { case 9 /* ':' */ :; /* line 557 "eiffel_sig.ell" */ comment_possible = ON; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyUnlabeled_assertion_clause (& Unlabeled_assertion_clause1, & xxUnion); /* */ /* line 558 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(Tag1.Tree, Unlabeled_assertion_clause1.Tree); goto xx21; case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 6 /* Free_op */ :; case 7 /* ';' */ :; case 10 /* '.' */ :; case 13 /* Eq */ :; case 14 /* Not_eq */ :; case 17 /* '(' */ :; case 23 /* '<<' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 33 /* div */ :; case 36 /* and */ :; case 44 /* Current */ :; case 46 /* deferred */ :; case 47 /* do */ :; case 51 /* 'end' */ :; case 55 /* 'external' */ :; case 56 /* false */ :; case 61 /* implies */ :; case 70 /* 'local' */ :; case 74 /* 'old' */ :; case 75 /* once */ :; case 76 /* or */ :; case 82 /* 'rescue' */ :; case 83 /* Result */ :; case 88 /* 'strip' */ :; case 90 /* true */ :; case 93 /* 'until' */ :; case 94 /* 'variant' */ :; case 96 /* xor */ :; case 97 /* times */ :; case 98 /* smaller */ :; case 99 /* greater */ :; case 100 /* sm_eq */ :; case 101 /* gr_eq */ :; case 102 /* idiv */ :; case 103 /* imod */ :; case 104 /* power */ :; case 105 /* not */ :; case 106 /* Id */ :; case 107 /* Comment */ :; /* line 560 "eiffel_sig.ell" */ Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 125; 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 */ /* line 562 "eiffel_sig.ell" */ Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), mCall_chain0()); break; } 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; xxExpected (124, 124, 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 */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 564 "eiffel_sig.ell" */ Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 5 /* 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; xxExpected (125, 125, 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 */ } /* line 565 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), mCall(mExpression0(), Assertion_clause0->Tree)); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 568 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop)); break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 7 /* 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; xxExpected (127, 127, 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 */ } goto xx21; case 8:; case 11:; case 12:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 34:; case 35:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 45:; case 48:; case 49:; case 50:; case 52:; case 53:; case 54:; case 57:; case 58:; case 59:; case 60:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 71:; case 72:; case 73:; case 77:; case 78:; case 79:; case 80:; case 81:; case 84:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 95:; default: if (xxIsRepairMode) { /* line 560 "eiffel_sig.ell" */ Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 125; 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 */ /* line 562 "eiffel_sig.ell" */ Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), mCall_chain0()); break; } 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; xxExpected (124, 124, 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 */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 564 "eiffel_sig.ell" */ Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 5 /* 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; xxExpected (125, 125, 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 */ } /* line 565 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), mCall(mExpression0(), Assertion_clause0->Tree)); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 568 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop)); break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 7 /* 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; xxExpected (127, 127, 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 */ } goto xx21; } xxExpected (122, 122, 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 */ } } xx21:; goto xx20; case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 6 /* Free_op */ :; case 17 /* '(' */ :; case 23 /* '<<' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 44 /* Current */ :; case 56 /* false */ :; case 74 /* 'old' */ :; case 83 /* Result */ :; case 88 /* 'strip' */ :; case 90 /* true */ :; case 105 /* not */ :; case 107 /* Comment */ :; xxUnion.xxLocalRecoverySet = 0; yyUnlabeled_assertion_clause (& Unlabeled_assertion_clause1, & xxUnion); /* */ /* line 571 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), Unlabeled_assertion_clause1.Tree); goto xx20; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 84:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 122; 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 */ for (;;) { switch (xxToken) { case 9 /* ':' */ :; /* line 557 "eiffel_sig.ell" */ comment_possible = ON; if (xxToken != 9 /* ':' */) xxRecoveryLiteral (9, 123, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op ':' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyUnlabeled_assertion_clause (& Unlabeled_assertion_clause1, & xxUnion); /* */ /* line 558 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(Tag1.Tree, Unlabeled_assertion_clause1.Tree); goto xx22; case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 6 /* Free_op */ :; case 7 /* ';' */ :; case 10 /* '.' */ :; case 13 /* Eq */ :; case 14 /* Not_eq */ :; case 17 /* '(' */ :; case 23 /* '<<' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 33 /* div */ :; case 36 /* and */ :; case 44 /* Current */ :; case 46 /* deferred */ :; case 47 /* do */ :; case 51 /* 'end' */ :; case 55 /* 'external' */ :; case 56 /* false */ :; case 61 /* implies */ :; case 70 /* 'local' */ :; case 74 /* 'old' */ :; case 75 /* once */ :; case 76 /* or */ :; case 82 /* 'rescue' */ :; case 83 /* Result */ :; case 88 /* 'strip' */ :; case 90 /* true */ :; case 93 /* 'until' */ :; case 94 /* 'variant' */ :; case 96 /* xor */ :; case 97 /* times */ :; case 98 /* smaller */ :; case 99 /* greater */ :; case 100 /* sm_eq */ :; case 101 /* gr_eq */ :; case 102 /* idiv */ :; case 103 /* imod */ :; case 104 /* power */ :; case 105 /* not */ :; case 106 /* Id */ :; case 107 /* Comment */ :; /* line 560 "eiffel_sig.ell" */ Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 125; 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 */ /* line 562 "eiffel_sig.ell" */ Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), mCall_chain0()); break; } 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; xxExpected (124, 124, 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 */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 564 "eiffel_sig.ell" */ Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 5 /* 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; xxExpected (125, 125, 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 */ } /* line 565 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), mCall(mExpression0(), Assertion_clause0->Tree)); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 568 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop)); break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 7 /* 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; xxExpected (127, 127, 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 */ } goto xx22; case 8:; case 11:; case 12:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 34:; case 35:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 45:; case 48:; case 49:; case 50:; case 52:; case 53:; case 54:; case 57:; case 58:; case 59:; case 60:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 71:; case 72:; case 73:; case 77:; case 78:; case 79:; case 80:; case 81:; case 84:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 95:; default: if (xxIsRepairMode) { /* line 560 "eiffel_sig.ell" */ Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 125; 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 */ /* line 562 "eiffel_sig.ell" */ Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), mCall_chain0()); break; } 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; xxExpected (124, 124, 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 */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 564 "eiffel_sig.ell" */ Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 5 /* 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; xxExpected (125, 125, 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 */ } /* line 565 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), mCall(mExpression0(), Assertion_clause0->Tree)); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 568 "eiffel_sig.ell" */ Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop)); break; } else if ((xxVerticalSet [xxToken + 540] & 1 << 7 /* 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; xxExpected (127, 127, 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 */ } goto xx22; } xxExpected (122, 122, 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 */ } } xx22:; goto xx20; } xxExpected (120, 120, 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 */ } } xx20:; } static void yyUnlabeled_assertion_clause # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Unlabeled_assertion_clause0, xxtUnionPtr xxGlobalRecoverySet) # else (Unlabeled_assertion_clause0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Unlabeled_assertion_clause0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Comment1; ParserSIG_tParsAttribute Boolean_expression1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 6 /* Free_op */ :; case 17 /* '(' */ :; case 23 /* '<<' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 44 /* Current */ :; case 56 /* false */ :; case 74 /* 'old' */ :; case 83 /* Result */ :; case 88 /* 'strip' */ :; case 90 /* true */ :; case 105 /* not */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyBoolean_expression (& Boolean_expression1, & xxUnion); /* */ /* line 577 "eiffel_sig.ell" */ comment_possible = OFF; Unlabeled_assertion_clause0->Tree = Boolean_expression1.Tree; goto xx23; case 107 /* Comment */ :; Comment1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 578 "eiffel_sig.ell" */ Unlabeled_assertion_clause0->Tree = mComment(Comment1.StringRef); goto xx23; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 84:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyBoolean_expression (& Boolean_expression1, & xxUnion); /* */ /* line 577 "eiffel_sig.ell" */ comment_possible = OFF; Unlabeled_assertion_clause0->Tree = Boolean_expression1.Tree; goto xx23; } xxExpected (120, 120, 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 */ } } xx23:; } static void yyTag # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Tag0, xxtUnionPtr xxGlobalRecoverySet) # else (Tag0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Tag0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Identifier1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 584 "eiffel_sig.ell" */ Tag0->Tree = Identifier1.Tree; } static void yyOld # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Old0, xxtUnionPtr xxGlobalRecoverySet) # else (Old0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Old0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Expression1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 74 /* 'old' */) xxRecoveryLiteral (74, 129, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 589 "eiffel_sig.ell" */ Old0->Tree = mOld(Expression1.Tree); } static void yyCheck # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Check0, xxtUnionPtr xxGlobalRecoverySet) # else (Check0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Check0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Assertion1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 41 /* 'check' */) xxRecoveryLiteral (41, 130, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus 'check' Current 'end' false 'old' Result 'strip' true not Id Comment */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 10; yyAssertion (& Assertion1, & xxUnion); /* 'end' */ /* line 594 "eiffel_sig.ell" */ Check0->Tree = Assertion1.Tree; if (xxToken != 51 /* 'end' */) xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /* 'end' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } static void yyVariant # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Variant0, xxtUnionPtr xxGlobalRecoverySet) # else (Variant0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Variant0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Actuals1; ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Expression1; ParserSIG_tParsAttribute Tag1; ParserSIG_tParsAttribute Expr_tail1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 94 /* 'variant' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 122; 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 */ for (;;) { switch (xxToken) { case 9 /* ':' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 605 "eiffel_sig.ell" */ Variant0->Tree = mAssertion_clause1(Tag1.Tree, Expression1.Tree); goto xx25; case 6 /* Free_op */ :; case 10 /* '.' */ :; case 13 /* Eq */ :; case 14 /* Not_eq */ :; case 17 /* '(' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 33 /* div */ :; case 36 /* and */ :; case 61 /* implies */ :; case 76 /* or */ :; case 93 /* 'until' */ :; case 96 /* xor */ :; case 97 /* times */ :; case 98 /* smaller */ :; case 99 /* greater */ :; case 100 /* sm_eq */ :; case 101 /* gr_eq */ :; case 102 /* idiv */ :; case 103 /* imod */ :; case 104 /* power */ :; /* line 606 "eiffel_sig.ell" */ Variant0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 125; 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 */ /* line 607 "eiffel_sig.ell" */ Variant0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } 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; xxExpected (124, 124, 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 */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 608 "eiffel_sig.ell" */ Variant0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 648] & 1 << 1 /* 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; xxExpected (125, 125, 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 */ } /* line 609 "eiffel_sig.ell" */ Variant0->Tree = mCall(mExpression0(), Variant0->Tree); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 610 "eiffel_sig.ell" */ Variant0->Tree = mBin_expr(Variant0->Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } else if ((xxToken == 93 /* 'until' */) || xxIsRepairMode) break; xxExpected (127, 127, 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 */ } goto xx25; case 7:; case 8:; case 11:; case 12:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 34:; case 35:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 94:; case 95:; default: if (xxIsRepairMode) { /* line 606 "eiffel_sig.ell" */ Variant0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 125; 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 */ /* line 607 "eiffel_sig.ell" */ Variant0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } 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; xxExpected (124, 124, 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 */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 608 "eiffel_sig.ell" */ Variant0->Tree->Call_chain1.Call_chain = Call_chain1.Tree; break; } else if ((xxVerticalSet [xxToken + 648] & 1 << 1 /* 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; xxExpected (125, 125, 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 */ } /* line 609 "eiffel_sig.ell" */ Variant0->Tree = mCall(mExpression0(), Variant0->Tree); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 610 "eiffel_sig.ell" */ Variant0->Tree = mBin_expr(Variant0->Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } else if ((xxToken == 93 /* 'until' */) || xxIsRepairMode) break; xxExpected (127, 127, 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 */ } goto xx25; } xxUnexpected (122, xxGlobalRecoverySet); /* Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */ } } xx25:; /* line 612 "eiffel_sig.ell" */ Variant0->Tree = mAssertion_clause1(Tag1.Tree, Variant0->Tree); goto xx24; case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 6 /* Free_op */ :; case 17 /* '(' */ :; case 23 /* '<<' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 44 /* Current */ :; case 56 /* false */ :; case 74 /* 'old' */ :; case 83 /* Result */ :; case 88 /* 'strip' */ :; case 90 /* true */ :; case 105 /* not */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 613 "eiffel_sig.ell" */ Variant0->Tree = mAssertion_clause1(mManifest_constant0(), Expression1.Tree); goto xx24; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 84:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 93:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 613 "eiffel_sig.ell" */ Variant0->Tree = mAssertion_clause1(mManifest_constant0(), Expression1.Tree); goto xx24; } xxExpected (133, 133, 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 */ } } xx24:; } static void yyRedefine # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Redefine0, xxtUnionPtr xxGlobalRecoverySet) # else (Redefine0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Redefine0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 79 /* 'redefine' */) xxRecoveryLiteral (79, 134, xxGlobalRecoverySet); /* infix prefix 'redefine' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /* */ /* line 619 "eiffel_sig.ell" */ Redefine0->Tree = ReverseTree(Feature_list1.Tree); } static void yyUndefine # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Undefine0, xxtUnionPtr xxGlobalRecoverySet) # else (Undefine0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Undefine0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 91 /* 'undefine' */) xxRecoveryLiteral (91, 135, xxGlobalRecoverySet); /* infix prefix 'undefine' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /* */ /* line 623 "eiffel_sig.ell" */ Undefine0->Tree = ReverseTree(Feature_list1.Tree); } static void yySelect # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Select0, xxtUnionPtr xxGlobalRecoverySet) # else (Select0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Select0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Feature_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 85 /* 'select' */) xxRecoveryLiteral (85, 136, xxGlobalRecoverySet); /* infix prefix 'select' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /* */ /* line 627 "eiffel_sig.ell" */ Select0->Tree = ReverseTree(Feature_list1.Tree); } static void yyType # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Type0, xxtUnionPtr xxGlobalRecoverySet) # else (Type0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Type0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute BOOLEAN1; EiffelScan_tScanAttribute CHARACTER1; EiffelScan_tScanAttribute DOUBLE1; EiffelScan_tScanAttribute INTEGER1; EiffelScan_tScanAttribute _NONE1; EiffelScan_tScanAttribute REAL1; EiffelScan_tScanAttribute STRING1; ParserSIG_tParsAttribute Class_type1; ParserSIG_tParsAttribute Anchored1; ParserSIG_tParsAttribute Bit_type1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 53 /* expanded */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyClass_type (& Class_type1, & xxUnion); /* */ /* line 634 "eiffel_sig.ell" */ Type0->Tree = Class_type1.Tree; goto xx26; case 69 /* 'like' */ :; xxUnion.xxLocalRecoverySet = 0; yyAnchored (& Anchored1, & xxUnion); /* */ /* line 635 "eiffel_sig.ell" */ Type0->Tree = Anchored1.Tree; goto xx26; case 38 /* BIT */ :; xxUnion.xxLocalRecoverySet = 0; yyBit_type (& Bit_type1, & xxUnion); /* */ /* line 636 "eiffel_sig.ell" */ Type0->Tree = Bit_type1.Tree; goto xx26; case 39 /* BOOLEAN */ :; BOOLEAN1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 637 "eiffel_sig.ell" */ Type0->Tree = mSimple_type(m_BOOLEAN(BOOLEAN1.Position)); goto xx26; case 40 /* CHARACTER */ :; CHARACTER1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 638 "eiffel_sig.ell" */ Type0->Tree = mSimple_type(m_CHARACTER(CHARACTER1.Position)); goto xx26; case 48 /* DOUBLE */ :; DOUBLE1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 639 "eiffel_sig.ell" */ Type0->Tree = mSimple_type(m_DOUBLE(DOUBLE1.Position)); goto xx26; case 66 /* INTEGER */ :; INTEGER1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 640 "eiffel_sig.ell" */ Type0->Tree = mSimple_type(m_INTEGER(INTEGER1.Position)); goto xx26; case 72 /* _NONE */ :; _NONE1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 641 "eiffel_sig.ell" */ Type0->Tree = mSimple_type(m_NONE(_NONE1.Position)); goto xx26; case 78 /* REAL */ :; REAL1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 642 "eiffel_sig.ell" */ Type0->Tree = mSimple_type(m_REAL(REAL1.Position)); goto xx26; case 87 /* STRING */ :; STRING1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 643 "eiffel_sig.ell" */ Type0->Tree = mSimple_type(m_STRING(STRING1.Position)); goto xx26; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 49:; case 50:; case 51:; case 52:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 67:; case 68:; case 70:; case 71:; case 73:; case 74:; case 75:; case 76:; case 77:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyClass_type (& Class_type1, & xxUnion); /* */ /* line 634 "eiffel_sig.ell" */ Type0->Tree = Class_type1.Tree; goto xx26; } xxExpected (144, 144, xxGlobalRecoverySet); /* BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id / BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */ } } xx26:; } static void yyClass_type # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Class_type0, xxtUnionPtr xxGlobalRecoverySet) # else (Class_type0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Class_type0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute expanded1; ParserSIG_tParsAttribute Identifier1; ParserSIG_tParsAttribute Actual_generics1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 145; yyIdentifier (& Identifier1, & xxUnion); /* '[' */ /* line 647 "eiffel_sig.ell" */ Class_type0->Tree = mClass_type(Identifier1.Tree, mActual_generics0()); for (;;) { if ((xxToken == 19 /* '[' */)) { xxUnion.xxLocalRecoverySet = 0; yyActual_generics (& Actual_generics1, & xxUnion); /* */ /* line 648 "eiffel_sig.ell" */ Class_type0->Tree->Class_type.Actual_generics = Actual_generics1.Tree; break; } else if ((xxVerticalSet [xxToken + 648] & 1 << 2 /* ';' ',' '!' ')' ']' 'creation' deferred do 'end' expanded 'export' 'external' 'feature' 'frozen' infix 'invariant' 'is' once prefix 'redefine' 'rename' 'select' 'undefine' Id */) || xxIsRepairMode) break; xxExpected (145, 145, xxGlobalRecoverySet); /* '[' / '[' */ } goto xx27; case 53 /* expanded */ :; expanded1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 145; yyIdentifier (& Identifier1, & xxUnion); /* '[' */ /* line 649 "eiffel_sig.ell" */ Class_type0->Tree = mClass_type_expanded(Identifier1.Tree, mActual_generics0()); for (;;) { if ((xxToken == 19 /* '[' */)) { xxUnion.xxLocalRecoverySet = 0; yyActual_generics (& Actual_generics1, & xxUnion); /* */ /* line 650 "eiffel_sig.ell" */ Class_type0->Tree->Class_type_expanded.Actual_generics = Actual_generics1.Tree; break; } else if ((xxVerticalSet [xxToken + 648] & 1 << 2 /* ';' ',' '!' ')' ']' 'creation' deferred do 'end' expanded 'export' 'external' 'feature' 'frozen' infix 'invariant' 'is' once prefix 'redefine' 'rename' 'select' 'undefine' Id */) || xxIsRepairMode) break; xxExpected (145, 145, xxGlobalRecoverySet); /* '[' / '[' */ } goto xx27; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 145; yyIdentifier (& Identifier1, & xxUnion); /* '[' */ /* line 647 "eiffel_sig.ell" */ Class_type0->Tree = mClass_type(Identifier1.Tree, mActual_generics0()); for (;;) { if ((xxToken == 19 /* '[' */)) { xxUnion.xxLocalRecoverySet = 0; yyActual_generics (& Actual_generics1, & xxUnion); /* */ /* line 648 "eiffel_sig.ell" */ Class_type0->Tree->Class_type.Actual_generics = Actual_generics1.Tree; break; } else if ((xxVerticalSet [xxToken + 648] & 1 << 2 /* ';' ',' '!' ')' ']' 'creation' deferred do 'end' expanded 'export' 'external' 'feature' 'frozen' infix 'invariant' 'is' once prefix 'redefine' 'rename' 'select' 'undefine' Id */) || xxIsRepairMode) break; xxExpected (145, 145, xxGlobalRecoverySet); /* '[' / '[' */ } goto xx27; } xxExpected (63, 63, xxGlobalRecoverySet); /* expanded Id / expanded Id */ } } xx27:; } static void yyActual_generics # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Actual_generics0, xxtUnionPtr xxGlobalRecoverySet) # else (Actual_generics0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Actual_generics0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Type_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 19 /* '[' */) xxRecoveryLiteral (19, 147, xxGlobalRecoverySet); /* '[' ']' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 148; yyType_list (& Type_list1, & xxUnion); /* ']' */ if (xxToken != 20 /* ']' */) xxRecoveryLiteral (20, 148, xxGlobalRecoverySet); /* ']' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 654 "eiffel_sig.ell" */ Actual_generics0->Tree = mActual_generics1(Type_list1.Tree); } static void yyType_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Type_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Type_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Type_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Type1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 657 "eiffel_sig.ell" */ Type_list0->Tree = mType_list0(); for (;;) { if ((xxVerticalSet [xxToken + 648] & 1 << 3 /* BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 16; yyType (& Type1, & xxUnion); /* ',' */ /* line 658 "eiffel_sig.ell" */ Type_list0->Tree = mType_list1(Type1.Tree, Type_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxToken == 20 /* ']' */)) break; xxExpected (16, 149, xxGlobalRecoverySet); /* ',' / ',' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 648] & 1 << 3 /* BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 149, xxGlobalRecoverySet); /* ',' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxToken == 20 /* ']' */) || xxIsRepairMode) break; xxExpected (144, 144, xxGlobalRecoverySet); /* BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id / BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */ } /* line 659 "eiffel_sig.ell" */ Type_list0->Tree = ReverseTree(Type_list0->Tree); } static void yyBit_type # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Bit_type0, xxtUnionPtr xxGlobalRecoverySet) # else (Bit_type0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Bit_type0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute BIT1; ParserSIG_tParsAttribute Constant1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 38 /* BIT */) xxRecoveryTerminal (38, 150, xxGlobalRecoverySet, & BIT1); /* Character_constant Bit_sequence Integer Real Manifest_string plus minus BIT Current false Result true Id */ else { BIT1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyConstant (& Constant1, & xxUnion); /* */ /* line 663 "eiffel_sig.ell" */ Bit_type0->Tree = mBit_type(Constant1.Tree); } static void yyAnchored # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Anchored0, xxtUnionPtr xxGlobalRecoverySet) # else (Anchored0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Anchored0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Anchor1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 69 /* 'like' */) xxRecoveryLiteral (69, 151, xxGlobalRecoverySet); /* Current 'like' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyAnchor (& Anchor1, & xxUnion); /* */ /* line 667 "eiffel_sig.ell" */ Anchored0->Tree = mAnchored(Anchor1.Tree); } static void yyAnchor # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Anchor0, xxtUnionPtr xxGlobalRecoverySet) # else (Anchor0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Anchor0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Current1; ParserSIG_tParsAttribute Identifier1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 671 "eiffel_sig.ell" */ Anchor0->Tree = Identifier1.Tree; goto xx28; case 44 /* Current */ :; Current1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 672 "eiffel_sig.ell" */ Anchor0->Tree = mCurrent(Current1.Position); goto xx28; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 671 "eiffel_sig.ell" */ Anchor0->Tree = Identifier1.Tree; goto xx28; } xxExpected (153, 153, xxGlobalRecoverySet); /* Current Id / Current Id */ } } xx28:; } static void yyFormal_generics # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Formal_generics0, xxtUnionPtr xxGlobalRecoverySet) # else (Formal_generics0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Formal_generics0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Formal_generic_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 19 /* '[' */) xxRecoveryLiteral (19, 154, xxGlobalRecoverySet); /* '[' ']' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 148; yyFormal_generic_list (& Formal_generic_list1, & xxUnion); /* ']' */ if (xxToken != 20 /* ']' */) xxRecoveryLiteral (20, 148, xxGlobalRecoverySet); /* ']' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 678 "eiffel_sig.ell" */ Formal_generics0->Tree = ReverseTree(Formal_generic_list1.Tree); } static void yyFormal_generic_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Formal_generic_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Formal_generic_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Formal_generic_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Formal_generic1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 680 "eiffel_sig.ell" */ Formal_generic_list0->Tree = mFormal_generics0(); for (;;) { if ((xxVerticalSet [xxToken + 324] & 1 << 4 /* BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 16; yyFormal_generic (& Formal_generic1, & xxUnion); /* ',' */ /* line 681 "eiffel_sig.ell" */ Formal_generic_list0->Tree = mFormal_generics1(Formal_generic1.Tree, Formal_generic_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxToken == 20 /* ']' */)) break; xxExpected (16, 76, xxGlobalRecoverySet); /* ',' / ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 4 /* BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 76, xxGlobalRecoverySet); /* ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxToken == 20 /* ']' */) || xxIsRepairMode) break; xxExpected (75, 75, xxGlobalRecoverySet); /* BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id / BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */ } } static void yyFormal_generic # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Formal_generic0, xxtUnionPtr xxGlobalRecoverySet) # else (Formal_generic0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Formal_generic0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Formal_generic_name1; ParserSIG_tParsAttribute Constraint1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 155; yyFormal_generic_name (& Formal_generic_name1, & xxUnion); /* '->' */ /* line 686 "eiffel_sig.ell" */ Formal_generic0->Tree = mFormal_generic(Formal_generic_name1.Tree, mConstraint0()); for (;;) { if ((xxToken == 15 /* '->' */)) { xxUnion.xxLocalRecoverySet = 0; yyConstraint (& Constraint1, & xxUnion); /* */ /* line 687 "eiffel_sig.ell" */ Formal_generic0->Tree->Formal_generic.Constraint = Constraint1.Tree; break; } else if ((xxVerticalSet [xxToken + 648] & 1 << 4 /* ',' ']' */) || xxIsRepairMode) break; xxExpected (155, 155, xxGlobalRecoverySet); /* '->' / '->' */ } } static void yyFormal_generic_name # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Formal_generic_name0, xxtUnionPtr xxGlobalRecoverySet) # else (Formal_generic_name0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Formal_generic_name0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute BOOLEAN1; EiffelScan_tScanAttribute CHARACTER1; EiffelScan_tScanAttribute DOUBLE1; EiffelScan_tScanAttribute INTEGER1; EiffelScan_tScanAttribute _NONE1; EiffelScan_tScanAttribute REAL1; EiffelScan_tScanAttribute STRING1; ParserSIG_tParsAttribute Identifier1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 690 "eiffel_sig.ell" */ Formal_generic_name0->Tree = Identifier1.Tree; goto xx29; case 39 /* BOOLEAN */ :; BOOLEAN1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 691 "eiffel_sig.ell" */ Formal_generic_name0->Tree = m_BOOLEAN(BOOLEAN1.Position); goto xx29; case 40 /* CHARACTER */ :; CHARACTER1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 692 "eiffel_sig.ell" */ Formal_generic_name0->Tree = m_CHARACTER(CHARACTER1.Position); goto xx29; case 48 /* DOUBLE */ :; DOUBLE1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 693 "eiffel_sig.ell" */ Formal_generic_name0->Tree = m_DOUBLE(DOUBLE1.Position); goto xx29; case 66 /* INTEGER */ :; INTEGER1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 694 "eiffel_sig.ell" */ Formal_generic_name0->Tree = m_INTEGER(INTEGER1.Position); goto xx29; case 72 /* _NONE */ :; _NONE1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 695 "eiffel_sig.ell" */ Formal_generic_name0->Tree = m_NONE(_NONE1.Position); goto xx29; case 78 /* REAL */ :; REAL1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 696 "eiffel_sig.ell" */ Formal_generic_name0->Tree = m_REAL(REAL1.Position); goto xx29; case 87 /* STRING */ :; STRING1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 697 "eiffel_sig.ell" */ Formal_generic_name0->Tree = m_STRING(STRING1.Position); goto xx29; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 67:; case 68:; case 69:; case 70:; case 71:; case 73:; case 74:; case 75:; case 76:; case 77:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 690 "eiffel_sig.ell" */ Formal_generic_name0->Tree = Identifier1.Tree; goto xx29; } xxExpected (75, 75, xxGlobalRecoverySet); /* BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id / BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */ } } xx29:; } static void yyConstraint # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Constraint0, xxtUnionPtr xxGlobalRecoverySet) # else (Constraint0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Constraint0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Class_type1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 15 /* '->' */) xxRecoveryLiteral (15, 156, xxGlobalRecoverySet); /* '->' expanded Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyClass_type (& Class_type1, & xxUnion); /* */ /* line 700 "eiffel_sig.ell" */ Constraint0->Tree = mConstraint1(Class_type1.Tree); } static void yyCompound # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Compound0, xxtUnionPtr xxGlobalRecoverySet) # else (Compound0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Compound0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Instruction1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 704 "eiffel_sig.ell" */ Compound0->Tree = mCompound0(); for (;;) { if ((xxVerticalSet [xxToken + 648] & 1 << 5 /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */)) { xxUnion.xxLocalRecoverySet = 0; yyInstruction (& Instruction1, & xxUnion); /* */ /* line 705 "eiffel_sig.ell" */ if (Instruction1.Tree != NoTree) Compound0->Tree = mCompound1(Instruction1.Tree, Compound0->Tree); } else if ((xxVerticalSet [xxToken + 648] & 1 << 6 /* 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; else xxExpected (106, 106, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id / Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ } } static void yyConditional # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Conditional0, xxtUnionPtr xxGlobalRecoverySet) # else (Conditional0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Conditional0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Then_part_list1; ParserSIG_tParsAttribute Else_part1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 60 /* 'if' */) xxRecoveryLiteral (60, 157, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else 'end' false 'if' 'old' Result 'strip' true not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 158; yyThen_part_list (& Then_part_list1, & xxUnion); /* else 'end' */ /* line 711 "eiffel_sig.ell" */ Conditional0->Tree = mConditional(ReverseTree(Then_part_list1.Tree), mCompound0()); for (;;) { if ((xxToken == 49 /* else */)) { xxUnion.xxLocalRecoverySet = 10; yyElse_part (& Else_part1, & xxUnion); /* 'end' */ /* line 712 "eiffel_sig.ell" */ Conditional0->Tree->Conditional.Else_part = Else_part1.Tree; break; } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break; xxExpected (158, 158, xxGlobalRecoverySet); /* else 'end' / else 'end' */ } if (xxToken != 51 /* 'end' */) xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /* 'end' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } static void yyThen_part_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Then_part_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Then_part_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Then_part_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Then_part1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 715 "eiffel_sig.ell" */ Then_part_list0->Tree = mThen_part_list0(); for (;;) { xxUnion.xxLocalRecoverySet = 159; yyThen_part (& Then_part1, & xxUnion); /* 'elseif' */ /* line 716 "eiffel_sig.ell" */ Then_part_list0->Tree = mThen_part_list1(Then_part1.Tree, Then_part_list0->Tree); if (! ((xxToken == 50 /* 'elseif' */))) { if ((xxVerticalSet [xxToken + 756] & 1 << 0 /* else 'end' */)) break; xxExpected (159, 160, xxGlobalRecoverySet); /* 'elseif' / Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'elseif' false 'old' Result 'strip' true not Id */ if (! ((xxToken == 50 /* 'elseif' */) || (xxVerticalSet [xxToken + 648] & 1 << 7 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */))) break; } if (xxToken != 50 /* 'elseif' */) xxRecoveryLiteral (50, 160, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'elseif' false 'old' Result 'strip' true not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } } static void yyThen_part # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Then_part0, xxtUnionPtr xxGlobalRecoverySet) # else (Then_part0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Then_part0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute then1; ParserSIG_tParsAttribute Compound1; ParserSIG_tParsAttribute Boolean_expression1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 161; yyBoolean_expression (& Boolean_expression1, & xxUnion); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */ if (xxToken != 89 /* then */) xxRecoveryTerminal (89, 161, xxGlobalRecoverySet, & then1); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */ else { then1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 721 "eiffel_sig.ell" */ Then_part0->Tree = mThen_part(Boolean_expression1.Tree, ReverseTree(Compound1.Tree)); } static void yyElse_part # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Else_part0, xxtUnionPtr xxGlobalRecoverySet) # else (Else_part0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Else_part0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute else1; ParserSIG_tParsAttribute Compound1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 49 /* else */) xxRecoveryTerminal (49, 162, xxGlobalRecoverySet, & else1); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' else 'from' 'if' 'inspect' Result retry Id */ else { else1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 724 "eiffel_sig.ell" */ Else_part0->Tree = ReverseTree(Compound1.Tree); } static void yyMulti_branch # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Multi_branch0, xxtUnionPtr xxGlobalRecoverySet) # else (Multi_branch0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Multi_branch0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Expression1; ParserSIG_tParsAttribute Else_part1; ParserSIG_tParsAttribute When_part_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 65 /* 'inspect' */) xxRecoveryLiteral (65, 163, 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 */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 164; yyExpression (& Expression1, & xxUnion); /* else 'end' 'when' */ /* line 729 "eiffel_sig.ell" */ Multi_branch0->Tree = mMulti_branch(Expression1.Tree, mWhen_part_list0(), mCompound0()); for (;;) { if ((xxToken == 95 /* 'when' */)) { xxUnion.xxLocalRecoverySet = 158; yyWhen_part_list (& When_part_list1, & xxUnion); /* else 'end' */ /* line 730 "eiffel_sig.ell" */ Multi_branch0->Tree->Multi_branch.When_part_list = ReverseTree(When_part_list1.Tree); break; } else if ((xxVerticalSet [xxToken + 756] & 1 << 0 /* else 'end' */) || xxIsRepairMode) break; xxExpected (164, 164, xxGlobalRecoverySet); /* else 'end' 'when' / else 'end' 'when' */ } for (;;) { if ((xxToken == 49 /* else */)) { xxUnion.xxLocalRecoverySet = 10; yyElse_part (& Else_part1, & xxUnion); /* 'end' */ /* line 731 "eiffel_sig.ell" */ Multi_branch0->Tree->Multi_branch.Else_part = Else_part1.Tree; break; } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break; xxExpected (158, 158, xxGlobalRecoverySet); /* else 'end' / else 'end' */ } if (xxToken != 51 /* 'end' */) xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /* 'end' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } static void yyWhen_part_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * When_part_list0, xxtUnionPtr xxGlobalRecoverySet) # else (When_part_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * When_part_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute When_part1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 734 "eiffel_sig.ell" */ When_part_list0->Tree = mWhen_part_list0(); if (xxToken != 95 /* 'when' */) xxRecoveryLiteral (95, 165, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } for (;;) { xxUnion.xxLocalRecoverySet = 166; yyWhen_part (& When_part1, & xxUnion); /* 'when' */ /* line 735 "eiffel_sig.ell" */ When_part_list0->Tree = mWhen_part_list1(When_part1.Tree, When_part_list0->Tree); if (! ((xxToken == 95 /* 'when' */))) { if ((xxVerticalSet [xxToken + 756] & 1 << 0 /* else 'end' */)) break; xxExpected (166, 165, xxGlobalRecoverySet); /* 'when' / Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */ if (! ((xxToken == 95 /* 'when' */) || (xxVerticalSet [xxToken + 756] & 1 << 1 /* Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */))) break; } if (xxToken != 95 /* 'when' */) xxRecoveryLiteral (95, 165, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } } static void yyWhen_part # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * When_part0, xxtUnionPtr xxGlobalRecoverySet) # else (When_part0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * When_part0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute then1; ParserSIG_tParsAttribute Compound1; ParserSIG_tParsAttribute Choices1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 161; yyChoices (& Choices1, & xxUnion); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */ if (xxToken != 89 /* then */) xxRecoveryTerminal (89, 161, xxGlobalRecoverySet, & then1); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */ else { then1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 739 "eiffel_sig.ell" */ When_part0->Tree = mWhen_part(ReverseTree(Choices1.Tree), ReverseTree(Compound1.Tree)); } static void yyChoices # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Choices0, xxtUnionPtr xxGlobalRecoverySet) # else (Choices0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Choices0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Choice1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 741 "eiffel_sig.ell" */ Choices0->Tree = mChoices0(); for (;;) { if ((xxVerticalSet [xxToken + 108] & 1 << 1 /* Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 16; yyChoice (& Choice1, & xxUnion); /* ',' */ /* line 742 "eiffel_sig.ell" */ Choices0->Tree = mChoices1(Choice1.Tree, Choices0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxToken == 89 /* then */)) break; xxExpected (16, 17, xxGlobalRecoverySet); /* ',' / Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 108] & 1 << 1 /* Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 17, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxToken == 89 /* then */) || xxIsRepairMode) break; 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 */ } } static void yyChoice # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Choice0, xxtUnionPtr xxGlobalRecoverySet) # else (Choice0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Choice0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Character_constant1, Character_constant2; EiffelScan_tScanAttribute Manifest_string1; ParserSIG_tParsAttribute Identifier1; ParserSIG_tParsAttribute Number_constant1, Number_constant2; ParserSIG_tParsAttribute Boolean_constant1; ParserSIG_tParsAttribute Bit_constant1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 1 /* Character_constant */ :; Character_constant1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 746 "eiffel_sig.ell" */ Choice0->Tree = mVal(mCh(Character_constant1.Char, Character_constant1.Position)); for (;;) { if ((xxToken == 16 /* '..' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; if (xxToken != 1 /* Character_constant */) xxRecoveryTerminal (1, 169, xxGlobalRecoverySet, & Character_constant2); /* Character_constant */ else { Character_constant2 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 747 "eiffel_sig.ell" */ Choice0->Tree = mInterval(Choice0->Tree, mCh(Character_constant2.Char, Character_constant2.Position)); break; } else if ((xxVerticalSet [xxToken + 756] & 1 << 2 /* ',' then */) || xxIsRepairMode) break; xxExpected (168, 168, xxGlobalRecoverySet); /* '..' / '..' */ } goto xx30; case 3 /* Integer */ :; case 4 /* Real */ :; case 8 /* ',' */ :; case 16 /* '..' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 89 /* then */ :; xxUnion.xxLocalRecoverySet = 168; yyNumber_constant (& Number_constant1, & xxUnion); /* '..' */ /* line 750 "eiffel_sig.ell" */ Choice0->Tree = mVal(Number_constant1.Tree); for (;;) { if ((xxToken == 16 /* '..' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyNumber_constant (& Number_constant2, & xxUnion); /* */ /* line 751 "eiffel_sig.ell" */ Choice0->Tree = mInterval(Number_constant1.Tree, Number_constant2.Tree); break; } else if ((xxVerticalSet [xxToken + 756] & 1 << 2 /* ',' then */) || xxIsRepairMode) break; xxExpected (168, 168, xxGlobalRecoverySet); /* '..' / '..' */ } goto xx30; case 56 /* false */ :; case 90 /* true */ :; xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /* */ /* line 752 "eiffel_sig.ell" */ Choice0->Tree = mVal(Boolean_constant1.Tree); goto xx30; case 5 /* Manifest_string */ :; Manifest_string1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 753 "eiffel_sig.ell" */ Choice0->Tree = mVal(mString(Manifest_string1.StringRef, Manifest_string1.Position)); goto xx30; case 2 /* Bit_sequence */ :; xxUnion.xxLocalRecoverySet = 0; yyBit_constant (& Bit_constant1, & xxUnion); /* */ /* line 754 "eiffel_sig.ell" */ Choice0->Tree = mVal(Bit_constant1.Tree); goto xx30; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 755 "eiffel_sig.ell" */ Choice0->Tree = mVal(Identifier1.Tree); goto xx30; case 6:; case 7:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { if (xxToken != 1 /* Character_constant */) xxRecoveryTerminal (1, 167, xxGlobalRecoverySet, & Character_constant1); /* Character_constant '..' */ else { Character_constant1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 746 "eiffel_sig.ell" */ Choice0->Tree = mVal(mCh(Character_constant1.Char, Character_constant1.Position)); for (;;) { if ((xxToken == 16 /* '..' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; if (xxToken != 1 /* Character_constant */) xxRecoveryTerminal (1, 169, xxGlobalRecoverySet, & Character_constant2); /* Character_constant */ else { Character_constant2 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 747 "eiffel_sig.ell" */ Choice0->Tree = mInterval(Choice0->Tree, mCh(Character_constant2.Char, Character_constant2.Position)); break; } else if ((xxVerticalSet [xxToken + 756] & 1 << 2 /* ',' then */) || xxIsRepairMode) break; xxExpected (168, 168, xxGlobalRecoverySet); /* '..' / '..' */ } goto xx30; } xxUnexpected (171, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string '..' plus minus false true Id */ } } xx30:; } static void yyLoop # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Loop0, xxtUnionPtr xxGlobalRecoverySet) # else (Loop0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Loop0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Invariant1; ParserSIG_tParsAttribute Variant1; ParserSIG_tParsAttribute Initialization1; ParserSIG_tParsAttribute Loop_body1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 172; 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 */ /* line 760 "eiffel_sig.ell" */ Loop0->Tree = mLoop(Initialization1.Tree, mCondition0(), mAssertion_clause0(), mLoop_body0()); for (;;) { if ((xxToken == 67 /* 'invariant' */)) { xxUnion.xxLocalRecoverySet = 174; 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 */ /* line 761 "eiffel_sig.ell" */ Loop0->Tree->Loop.Invariant = Invariant1.Tree; break; } else if ((xxVerticalSet [xxToken + 756] & 1 << 3 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'until' 'variant' not Id */) || xxIsRepairMode) break; xxExpected (173, 172, 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 */ } for (;;) { if ((xxVerticalSet [xxToken + 756] & 1 << 4 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'variant' not Id */)) { xxUnion.xxLocalRecoverySet = 176; yyVariant (& Variant1, & xxUnion); /* 'end' 'until' */ /* line 762 "eiffel_sig.ell" */ Loop0->Tree->Loop.Variant = Variant1.Tree; break; } else if ((xxToken == 93 /* 'until' */) || xxIsRepairMode) break; xxExpected (175, 174, 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 */ } xxUnion.xxLocalRecoverySet = 10; yyLoop_body (& Loop_body1, & xxUnion); /* 'end' */ /* line 763 "eiffel_sig.ell" */ Loop0->Tree->Loop.Loop_body = Loop_body1.Tree; if (xxToken != 51 /* 'end' */) xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /* 'end' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } static void yyInitialization # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Initialization0, xxtUnionPtr xxGlobalRecoverySet) # else (Initialization0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Initialization0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Compound1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 58 /* 'from' */) xxRecoveryLiteral (58, 106, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 770 "eiffel_sig.ell" */ Initialization0->Tree = ReverseTree(Compound1.Tree); } static void yyLoop_body # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Loop_body0, xxtUnionPtr xxGlobalRecoverySet) # else (Loop_body0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Loop_body0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Compound1; ParserSIG_tParsAttribute Exit1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 177; yyExit (& Exit1, & xxUnion); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' 'loop' Result retry Id */ if (xxToken != 71 /* 'loop' */) xxRecoveryLiteral (71, 177, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' 'loop' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 773 "eiffel_sig.ell" */ Loop_body0->Tree = mLoop_body1(Exit1.Tree, ReverseTree(Compound1.Tree)); } static void yyExit # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Exit0, xxtUnionPtr xxGlobalRecoverySet) # else (Exit0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Exit0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Boolean_expression1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 93 /* 'until' */) xxRecoveryLiteral (93, 178, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'until' not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyBoolean_expression (& Boolean_expression1, & xxUnion); /* */ /* line 776 "eiffel_sig.ell" */ Exit0->Tree = Boolean_expression1.Tree; } static void yyDebug # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Debug0, xxtUnionPtr xxGlobalRecoverySet) # else (Debug0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Debug0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Compound1; ParserSIG_tParsAttribute Keys_or_qual_call1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 45 /* 'debug' */) xxRecoveryLiteral (45, 179, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'end' 'from' 'if' 'inspect' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } for (;;) { switch (xxToken) { case 17 /* '(' */ :; xxUnion.xxLocalRecoverySet = 10; yyKeys_or_qual_call (& Keys_or_qual_call1, & xxUnion); /* 'end' */ /* line 781 "eiffel_sig.ell" */ Debug0->Tree = Keys_or_qual_call1.Tree; goto xx31; case 1 /* Character_constant */ :; case 5 /* Manifest_string */ :; case 7 /* ';' */ :; case 11 /* '!' */ :; case 12 /* '!!' */ :; case 41 /* 'check' */ :; case 44 /* Current */ :; case 45 /* 'debug' */ :; case 51 /* 'end' */ :; case 58 /* 'from' */ :; case 60 /* 'if' */ :; case 65 /* 'inspect' */ :; case 83 /* Result */ :; case 84 /* retry */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 10; yyCompound (& Compound1, & xxUnion); /* 'end' */ /* line 782 "eiffel_sig.ell" */ Debug0->Tree = mDebug(mnolist(), ReverseTree(Compound1.Tree)); goto xx31; case 2:; case 3:; case 4:; case 6:; case 8:; case 9:; case 10:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 29:; case 30:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 42:; case 43:; case 46:; case 47:; case 48:; case 49:; case 50:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 59:; case 61:; case 62:; case 63:; case 64:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 10; yyCompound (& Compound1, & xxUnion); /* 'end' */ /* line 782 "eiffel_sig.ell" */ Debug0->Tree = mDebug(mnolist(), ReverseTree(Compound1.Tree)); goto xx31; } xxExpected (179, 179, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'end' 'from' 'if' 'inspect' Result retry Id / Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'end' 'from' 'if' 'inspect' Result retry Id */ } } xx31:; if (xxToken != 51 /* 'end' */) xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /* 'end' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } static void yyKeys_or_qual_call # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Keys_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet) # else (Keys_or_qual_call0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Keys_or_qual_call0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Compound1, Compound2, Compound3; ParserSIG_tParsAttribute Call_chain1, Call_chain2, Call_chain3; ParserSIG_tParsAttribute Expression1; ParserSIG_tParsAttribute Expr_tail1; ParserSIG_tParsAttribute String1; ParserSIG_tParsAttribute String_list1; ParserSIG_tParsAttribute One_compound1, One_compound2, One_compound3; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 17 /* '(' */) xxRecoveryLiteral (17, 180, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } for (;;) { switch (xxToken) { case 5 /* Manifest_string */ :; xxUnion.xxLocalRecoverySet = 181; 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 */ for (;;) { switch (xxToken) { case 8 /* ',' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 183; yyString_list (& String_list1, & xxUnion); /* Character_constant Manifest_string ';' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 183, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 789 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, String_list1.Tree), ReverseTree(Compound1.Tree)); goto xx33; case 18 /* ')' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; for (;;) { switch (xxToken) { case 10 /* '.' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 106; yyCall_chain (& Call_chain1, & xxUnion); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound1, & xxUnion); /* */ /* line 793 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mnolist(), mCompound1(mCall(String1.Tree, Call_chain1.Tree), ReverseTree(One_compound1.Tree)) ); goto xx34; case 1 /* Character_constant */ :; case 5 /* Manifest_string */ :; case 7 /* ';' */ :; case 11 /* '!' */ :; case 12 /* '!!' */ :; case 17 /* '(' */ :; case 41 /* 'check' */ :; case 44 /* Current */ :; case 45 /* 'debug' */ :; case 51 /* 'end' */ :; case 58 /* 'from' */ :; case 60 /* 'if' */ :; case 65 /* 'inspect' */ :; case 83 /* Result */ :; case 84 /* retry */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /* */ /* line 797 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); goto xx34; case 2:; case 3:; case 4:; case 6:; case 8:; case 9:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 29:; case 30:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 42:; case 43:; case 46:; case 47:; case 48:; case 49:; case 50:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 59:; case 61:; case 62:; case 63:; case 64:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /* */ /* line 797 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); goto xx34; } xxUnexpected (185, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ } } xx34:; goto xx33; case 6 /* Free_op */ :; case 13 /* Eq */ :; case 14 /* Not_eq */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 33 /* div */ :; case 36 /* and */ :; case 61 /* implies */ :; case 76 /* or */ :; case 96 /* xor */ :; case 97 /* times */ :; case 98 /* smaller */ :; case 99 /* greater */ :; case 100 /* sm_eq */ :; case 101 /* gr_eq */ :; case 102 /* idiv */ :; case 103 /* imod */ :; case 104 /* power */ :; xxUnion.xxLocalRecoverySet = 184; yyExpr_tail (& Expr_tail1, & xxUnion); /* Character_constant Manifest_string ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 184, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } if (xxToken != 10 /* '.' */) xxRecoveryLiteral (10, 185, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 106; yyCall_chain (& Call_chain2, & xxUnion); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound2, & xxUnion); /* */ /* line 802 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mnolist(),mCompound1(mCall(mBin_expr(String1.Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop), Call_chain2.Tree), ReverseTree(One_compound2.Tree))); goto xx33; case 7:; case 9:; case 10:; case 11:; case 12:; case 15:; case 16:; case 17:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 34:; case 35:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; default: if (xxIsRepairMode) { if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 184, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } for (;;) { switch (xxToken) { case 10 /* '.' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 106; yyCall_chain (& Call_chain1, & xxUnion); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound1, & xxUnion); /* */ /* line 793 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mnolist(), mCompound1(mCall(String1.Tree, Call_chain1.Tree), ReverseTree(One_compound1.Tree)) ); goto xx35; case 1 /* Character_constant */ :; case 5 /* Manifest_string */ :; case 7 /* ';' */ :; case 11 /* '!' */ :; case 12 /* '!!' */ :; case 17 /* '(' */ :; case 41 /* 'check' */ :; case 44 /* Current */ :; case 45 /* 'debug' */ :; case 51 /* 'end' */ :; case 58 /* 'from' */ :; case 60 /* 'if' */ :; case 65 /* 'inspect' */ :; case 83 /* Result */ :; case 84 /* retry */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /* */ /* line 797 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); goto xx35; case 2:; case 3:; case 4:; case 6:; case 8:; case 9:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 29:; case 30:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 42:; case 43:; case 46:; case 47:; case 48:; case 49:; case 50:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 59:; case 61:; case 62:; case 63:; case 64:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /* */ /* line 797 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); goto xx35; } xxUnexpected (185, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ } } xx35:; goto xx33; } xxExpected (181, 181, 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 */ } } xx33:; goto xx32; case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 6 /* Free_op */ :; case 17 /* '(' */ :; case 23 /* '<<' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 44 /* Current */ :; case 56 /* false */ :; case 74 /* 'old' */ :; case 83 /* Result */ :; case 88 /* 'strip' */ :; case 90 /* true */ :; case 105 /* not */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 184; yyExpression (& Expression1, & xxUnion); /* Character_constant Manifest_string ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 184, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } if (xxToken != 10 /* '.' */) xxRecoveryLiteral (10, 185, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 106; yyCall_chain (& Call_chain3, & xxUnion); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound3, & xxUnion); /* */ /* line 809 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mnolist(),mCompound1(mCall( Expression1.Tree , Call_chain3.Tree), ReverseTree(One_compound3.Tree))); goto xx32; case 18 /* ')' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound3, & xxUnion); /* */ /* line 813 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mnolist(), ReverseTree(Compound3.Tree)); goto xx32; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 19:; case 20:; case 21:; case 22:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 84:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 183, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound3, & xxUnion); /* */ /* line 813 "eiffel_sig.ell" */ Keys_or_qual_call0->Tree = mDebug(mnolist(), ReverseTree(Compound3.Tree)); goto xx32; } xxExpected (180, 180, 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 */ } } xx32:; } static void yyString # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * String0, xxtUnionPtr xxGlobalRecoverySet) # else (String0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * String0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Manifest_string1; if (xxToken != 5 /* Manifest_string */) xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /* Manifest_string */ else { Manifest_string1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 819 "eiffel_sig.ell" */ String0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position); } static void yyString_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * String_list0, xxtUnionPtr xxGlobalRecoverySet) # else (String_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * String_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Manifest_string1; /* line 822 "eiffel_sig.ell" */ String_list0->Tree = mnolist(); for (;;) { if (xxToken != 5 /* Manifest_string */) xxRecoveryTerminal (5, 186, xxGlobalRecoverySet, & Manifest_string1); /* Manifest_string ',' */ else { Manifest_string1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 823 "eiffel_sig.ell" */ String_list0->Tree = mlist(mString(Manifest_string1.StringRef, Manifest_string1.Position), String_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxToken == 18 /* ')' */)) break; xxExpected (16, 186, xxGlobalRecoverySet); /* ',' / Manifest_string ',' */ if (! ((xxToken == 8 /* ',' */) || (xxToken == 5 /* Manifest_string */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 186, xxGlobalRecoverySet); /* Manifest_string ',' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } /* line 825 "eiffel_sig.ell" */ String_list0->Tree = ReverseTree(String_list0->Tree); } static void yyOne_compound # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * One_compound0, xxtUnionPtr xxGlobalRecoverySet) # else (One_compound0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * One_compound0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Instruction1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 829 "eiffel_sig.ell" */ One_compound0->Tree = mCompound0(); for (;;) { if ((xxVerticalSet [xxToken + 648] & 1 << 5 /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */)) { for (;;) { if ((xxToken == 7 /* ';' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; break; } else if ((xxVerticalSet [xxToken + 648] & 1 << 5 /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */) || xxIsRepairMode) break; xxExpected (106, 106, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id / Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ } xxUnion.xxLocalRecoverySet = 0; yyInstruction (& Instruction1, & xxUnion); /* */ /* line 830 "eiffel_sig.ell" */ One_compound0->Tree = mCompound1(Instruction1.Tree, One_compound0->Tree); } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break; else xxExpected (106, 106, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id / Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */ } } static void yyRescue # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Rescue0, xxtUnionPtr xxGlobalRecoverySet) # else (Rescue0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Rescue0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Compound1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 82 /* 'rescue' */) xxRecoveryLiteral (82, 187, xxGlobalRecoverySet); /* Character_constant Manifest_string ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' 'rescue' Result retry Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /* */ /* line 835 "eiffel_sig.ell" */ Rescue0->Tree = ReverseTree(Compound1.Tree); } static void yyRetry # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Retry0, xxtUnionPtr xxGlobalRecoverySet) # else (Retry0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Retry0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute retry1; if (xxToken != 84 /* retry */) xxRecoveryTerminal (84, 188, xxGlobalRecoverySet, & retry1); /* retry */ else { retry1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 838 "eiffel_sig.ell" */ Retry0->Tree = mRetry(retry1.Position); } static void yyUnique # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Unique0, xxtUnionPtr xxGlobalRecoverySet) # else (Unique0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Unique0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute unique1; if (xxToken != 92 /* unique */) xxRecoveryTerminal (92, 189, xxGlobalRecoverySet, & unique1); /* unique */ else { unique1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 843 "eiffel_sig.ell" */ Unique0->Tree = mUnique(unique1.Position); } static void yyEntity # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Entity0, xxtUnionPtr xxGlobalRecoverySet) # else (Entity0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Entity0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Current1; ParserSIG_tParsAttribute Writable1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 83 /* Result */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyWritable (& Writable1, & xxUnion); /* */ /* line 848 "eiffel_sig.ell" */ Entity0->Tree = Writable1.Tree; goto xx36; case 44 /* Current */ :; Current1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 849 "eiffel_sig.ell" */ Entity0->Tree = mCurrent(Current1.Position); goto xx36; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyWritable (& Writable1, & xxUnion); /* */ /* line 848 "eiffel_sig.ell" */ Entity0->Tree = Writable1.Tree; goto xx36; } xxExpected (190, 190, xxGlobalRecoverySet); /* Current Result Id / Current Result Id */ } } xx36:; } static void yyWritable # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Writable0, xxtUnionPtr xxGlobalRecoverySet) # else (Writable0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Writable0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Attribute1; ParserSIG_tParsAttribute Local1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyAttribute (& Attribute1, & xxUnion); /* */ /* line 853 "eiffel_sig.ell" */ Writable0->Tree = Attribute1.Tree; goto xx37; case 83 /* Result */ :; xxUnion.xxLocalRecoverySet = 0; yyLocal (& Local1, & xxUnion); /* */ /* line 854 "eiffel_sig.ell" */ Writable0->Tree = Local1.Tree; goto xx37; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyAttribute (& Attribute1, & xxUnion); /* */ /* line 853 "eiffel_sig.ell" */ Writable0->Tree = Attribute1.Tree; goto xx37; } xxExpected (191, 191, xxGlobalRecoverySet); /* Result Id / Result Id */ } } xx37:; } static void yyAttribute # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Attribute0, xxtUnionPtr xxGlobalRecoverySet) # else (Attribute0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Attribute0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Identifier1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 857 "eiffel_sig.ell" */ Attribute0->Tree = Identifier1.Tree; } static void yyLocal # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Local0, xxtUnionPtr xxGlobalRecoverySet) # else (Local0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Local0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Result1; ParserSIG_tParsAttribute Identifier1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 860 "eiffel_sig.ell" */ Local0->Tree = Identifier1.Tree; goto xx38; case 83 /* Result */ :; Result1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 861 "eiffel_sig.ell" */ Local0->Tree = mResult(Result1.Position); goto xx38; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 860 "eiffel_sig.ell" */ Local0->Tree = Identifier1.Tree; goto xx38; } xxExpected (191, 191, xxGlobalRecoverySet); /* Result Id / Result Id */ } } xx38:; } static void yyCreators # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Creators0, xxtUnionPtr xxGlobalRecoverySet) # else (Creators0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Creators0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Creation_clause1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 871 "eiffel_sig.ell" */ Creators0->Tree = mCreators0(); if (xxToken != 43 /* 'creation' */) xxRecoveryLiteral (43, 193, xxGlobalRecoverySet); /* '{' 'creation' infix prefix Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } for (;;) { xxUnion.xxLocalRecoverySet = 194; yyCreation_clause (& Creation_clause1, & xxUnion); /* 'creation' */ /* line 873 "eiffel_sig.ell" */ Creators0->Tree = mCreators1(Creation_clause1.Tree, Creators0->Tree); if (! ((xxToken == 43 /* 'creation' */))) { if ((xxVerticalSet [xxToken] & 1 << 5 /* 'end' 'feature' 'invariant' */)) break; xxExpected (194, 193, xxGlobalRecoverySet); /* 'creation' / '{' 'creation' infix prefix Id */ if (! ((xxToken == 43 /* 'creation' */) || (xxVerticalSet [xxToken + 756] & 1 << 5 /* '{' 'creation' infix prefix Id */))) break; } if (xxToken != 43 /* 'creation' */) xxRecoveryLiteral (43, 193, xxGlobalRecoverySet); /* '{' 'creation' infix prefix Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } } static void yyCreation_clause # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Creation_clause0, xxtUnionPtr xxGlobalRecoverySet) # else (Creation_clause0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Creation_clause0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Clients1; ParserSIG_tParsAttribute Feature_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 877 "eiffel_sig.ell" */ Creation_clause0->Tree = mCreation_clause(mClients0(), no_comment, mFeature_list0()); for (;;) { if ((xxToken == 21 /* '{' */)) { xxUnion.xxLocalRecoverySet = 36; yyClients (& Clients1, & xxUnion); /* infix prefix Id */ /* line 878 "eiffel_sig.ell" */ Creation_clause0->Tree->Creation_clause.Clients = Clients1.Tree; break; } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /* 'creation' 'end' 'feature' infix 'invariant' prefix Id */) || xxIsRepairMode) break; xxExpected (195, 195, xxGlobalRecoverySet); /* '{' infix prefix Id / '{' infix prefix Id */ } /* line 879 "eiffel_sig.ell" */ Creation_clause0->Tree->Creation_clause.comment = comment_ref; xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /* */ /* line 880 "eiffel_sig.ell" */ Creation_clause0->Tree->Creation_clause.Feature_list = ReverseTree(Feature_list1.Tree); } static void yyCreation # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Creation0, xxtUnionPtr xxGlobalRecoverySet) # else (Creation0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Creation0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Type1; ParserSIG_tParsAttribute Writable1; ParserSIG_tParsAttribute Creation_call1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 884 "eiffel_sig.ell" */ Creation0->Tree = mCreation(mType0(), mEntity0(NoPosition), mUnqual_call0()); for (;;) { switch (xxToken) { case 11 /* '!' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; for (;;) { if ((xxVerticalSet [xxToken + 648] & 1 << 3 /* BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */)) { xxUnion.xxLocalRecoverySet = 198; yyType (& Type1, & xxUnion); /* '.' '!' Result Id */ /* line 885 "eiffel_sig.ell" */ Creation0->Tree->Creation.Type = Type1.Tree; break; } else if ((xxToken == 11 /* '!' */) || xxIsRepairMode) break; xxExpected (197, 196, xxGlobalRecoverySet); /* '!' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id / '.' '!' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL Result STRING Id */ } if (xxToken != 11 /* '!' */) xxRecoveryLiteral (11, 198, xxGlobalRecoverySet); /* '.' '!' Result Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } goto xx39; case 12 /* '!!' */ :; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; goto xx39; default: if (xxIsRepairMode) { if (xxToken != 12 /* '!!' */) xxRecoveryLiteral (12, 199, xxGlobalRecoverySet); /* '.' '!!' Result Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } goto xx39; } xxExpected (200, 201, xxGlobalRecoverySet); /* '!' '!!' Result Id / '.' '!' '!!' Result Id */ } } xx39:; xxUnion.xxLocalRecoverySet = 109; yyWritable (& Writable1, & xxUnion); /* '.' */ /* line 886 "eiffel_sig.ell" */ Creation0->Tree->Creation.Entity = Writable1.Tree; for (;;) { if ((xxToken == 10 /* '.' */)) { xxUnion.xxLocalRecoverySet = 0; yyCreation_call (& Creation_call1, & xxUnion); /* */ /* line 887 "eiffel_sig.ell" */ Creation0->Tree->Creation.Unqual_call = Creation_call1.Tree; break; } else if ((xxVerticalSet [xxToken + 432] & 1 << 6 /* 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; xxExpected (109, 109, xxGlobalRecoverySet); /* '.' / '.' */ } } static void yyCreation_call # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Creation_call0, xxtUnionPtr xxGlobalRecoverySet) # else (Creation_call0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Creation_call0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Unqualified_call1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 10 /* '.' */) xxRecoveryLiteral (10, 110, xxGlobalRecoverySet); /* '.' Current Result Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyUnqualified_call (& Unqualified_call1, & xxUnion); /* */ /* line 891 "eiffel_sig.ell" */ Creation_call0->Tree = Unqualified_call1.Tree; } static void yyQualified_call # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Qualified_call0, xxtUnionPtr xxGlobalRecoverySet) # else (Qualified_call0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Qualified_call0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Character_constant1; EiffelScan_tScanAttribute Manifest_string1; ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Parenthesized_qualifier1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 17 /* '(' */ :; xxUnion.xxLocalRecoverySet = 190; yyParenthesized_qualifier (& Parenthesized_qualifier1, & xxUnion); /* Current Result Id */ xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 896 "eiffel_sig.ell" */ Qualified_call0->Tree = mCall_instruct(mCall( Parenthesized_qualifier1.Tree, Call_chain1.Tree)); goto xx40; case 1 /* Character_constant */ :; Character_constant1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; if (xxToken != 10 /* '.' */) xxRecoveryLiteral (10, 110, xxGlobalRecoverySet); /* '.' Current Result Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 899 "eiffel_sig.ell" */ Qualified_call0->Tree = mCall_instruct(mCall(mSimple_expr(mCh(Character_constant1.Char, Character_constant1.Position)), Call_chain1.Tree)); goto xx40; case 5 /* Manifest_string */ :; Manifest_string1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; if (xxToken != 10 /* '.' */) xxRecoveryLiteral (10, 110, xxGlobalRecoverySet); /* '.' Current Result Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 902 "eiffel_sig.ell" */ Qualified_call0->Tree = mCall_instruct(mCall(mSimple_expr(mString(Manifest_string1.StringRef, Manifest_string1.Position)), Call_chain1.Tree)); goto xx40; case 2:; case 3:; case 4:; case 6:; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; default: if (xxIsRepairMode) { if (xxToken != 1 /* Character_constant */) xxRecoveryTerminal (1, 202, xxGlobalRecoverySet, & Character_constant1); /* Character_constant '.' Current Result Id */ else { Character_constant1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } if (xxToken != 10 /* '.' */) xxRecoveryLiteral (10, 110, xxGlobalRecoverySet); /* '.' Current Result Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 899 "eiffel_sig.ell" */ Qualified_call0->Tree = mCall_instruct(mCall(mSimple_expr(mCh(Character_constant1.Char, Character_constant1.Position)), Call_chain1.Tree)); goto xx40; } xxExpected (204, 204, xxGlobalRecoverySet); /* Character_constant Manifest_string '(' / Character_constant Manifest_string '(' */ } } xx40:; } static void yyParenthesized_qualifier # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Parenthesized_qualifier0, xxtUnionPtr xxGlobalRecoverySet) # else (Parenthesized_qualifier0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Parenthesized_qualifier0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Expression1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 17 /* '(' */) xxRecoveryLiteral (17, 205, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '.' '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 206; yyExpression (& Expression1, & xxUnion); /* '.' ')' */ if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 206, xxGlobalRecoverySet); /* '.' ')' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } if (xxToken != 10 /* '.' */) xxRecoveryLiteral (10, 109, xxGlobalRecoverySet); /* '.' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 907 "eiffel_sig.ell" */ Parenthesized_qualifier0->Tree = Expression1.Tree; } static void yyCall_chain # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Call_chain0, xxtUnionPtr xxGlobalRecoverySet) # else (Call_chain0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Call_chain0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Unqualified_call1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 910 "eiffel_sig.ell" */ Call_chain0->Tree = mCall_chain0(); for (;;) { xxUnion.xxLocalRecoverySet = 109; yyUnqualified_call (& Unqualified_call1, & xxUnion); /* '.' */ /* line 911 "eiffel_sig.ell" */ Call_chain0->Tree = mCall_chain1(Unqualified_call1.Tree, Call_chain0->Tree); if (! ((xxToken == 10 /* '.' */))) { 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 */)) break; xxExpected (110, 110, xxGlobalRecoverySet); /* '.' Current Result Id / '.' Current Result Id */ if (! ((xxToken == 10 /* '.' */) || (xxVerticalSet [xxToken + 756] & 1 << 7 /* Current Result Id */))) break; } if (xxToken != 10 /* '.' */) xxRecoveryLiteral (10, 110, xxGlobalRecoverySet); /* '.' Current Result Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } /* line 912 "eiffel_sig.ell" */ Call_chain0->Tree = ReverseTree(Call_chain0->Tree); } static void yyUnqualified_call # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Unqualified_call0, xxtUnionPtr xxGlobalRecoverySet) # else (Unqualified_call0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Unqualified_call0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Actuals1; ParserSIG_tParsAttribute Entity1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 207; yyEntity (& Entity1, & xxUnion); /* '(' */ /* line 916 "eiffel_sig.ell" */ Unqualified_call0->Tree = mUnqual_call1(Entity1.Tree, mActuals0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 0; yyActuals (& Actuals1, & xxUnion); /* */ /* line 917 "eiffel_sig.ell" */ Unqualified_call0->Tree->Unqual_call1.Actuals = Actuals1.Tree; break; } else if ((xxVerticalSet [xxToken + 864] & 1 << 1 /* 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; xxExpected (207, 207, xxGlobalRecoverySet); /* '(' / '(' */ } } static void yyActuals # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Actuals0, xxtUnionPtr xxGlobalRecoverySet) # else (Actuals0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Actuals0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Actual_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 17 /* '(' */) xxRecoveryLiteral (17, 208, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 83; yyActual_list (& Actual_list1, & xxUnion); /* ')' */ if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 83, xxGlobalRecoverySet); /* ')' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 922 "eiffel_sig.ell" */ Actuals0->Tree = mActuals1(ReverseTree(Actual_list1.Tree)); } static void yyActual_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Actual_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Actual_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Actual_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Actual1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 924 "eiffel_sig.ell" */ Actual_list0->Tree = mActual_list0(); for (;;) { if ((xxVerticalSet [xxToken + 864] & 1 << 2 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 16; yyActual (& Actual1, & xxUnion); /* ',' */ /* line 925 "eiffel_sig.ell" */ Actual_list0->Tree = mActual_list1(Actual1.Tree, Actual_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxToken == 18 /* ')' */)) break; xxExpected (16, 210, xxGlobalRecoverySet); /* ',' / Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 864] & 1 << 2 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 210, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxToken == 18 /* ')' */) || xxIsRepairMode) break; xxExpected (209, 209, 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 */ } } static void yyActual # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Actual0, xxtUnionPtr xxGlobalRecoverySet) # else (Actual0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Actual0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Expression1; ParserSIG_tParsAttribute Address1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 6 /* Free_op */ :; case 17 /* '(' */ :; case 23 /* '<<' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 44 /* Current */ :; case 56 /* false */ :; case 74 /* 'old' */ :; case 83 /* Result */ :; case 88 /* 'strip' */ :; case 90 /* true */ :; case 105 /* not */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 929 "eiffel_sig.ell" */ Actual0->Tree = Expression1.Tree; goto xx41; case 31 /* '$' */ :; xxUnion.xxLocalRecoverySet = 0; yyAddress (& Address1, & xxUnion); /* */ /* line 930 "eiffel_sig.ell" */ Actual0->Tree = mAddr(Address1.Tree); goto xx41; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 24:; case 25:; case 26:; case 27:; case 28:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 84:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 929 "eiffel_sig.ell" */ Actual0->Tree = Expression1.Tree; goto xx41; } xxExpected (209, 209, 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 */ } } xx41:; } static void yyAddress # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Address0, xxtUnionPtr xxGlobalRecoverySet) # else (Address0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Address0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Address_mark1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 31 /* '$' */) xxRecoveryLiteral (31, 211, xxGlobalRecoverySet); /* '$' Current Result Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 0; yyAddress_mark (& Address_mark1, & xxUnion); /* */ /* line 933 "eiffel_sig.ell" */ Address0->Tree = Address_mark1.Tree; } static void yyAddress_mark # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Address_mark0, xxtUnionPtr xxGlobalRecoverySet) # else (Address_mark0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Address_mark0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Current1; EiffelScan_tScanAttribute Result1; ParserSIG_tParsAttribute Identifier1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 937 "eiffel_sig.ell" */ Address_mark0->Tree = Identifier1.Tree; goto xx42; case 44 /* Current */ :; Current1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 938 "eiffel_sig.ell" */ Address_mark0->Tree = mCurrent(Current1.Position); goto xx42; case 83 /* Result */ :; Result1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 939 "eiffel_sig.ell" */ Address_mark0->Tree = mResult(Result1.Position); goto xx42; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /* */ /* line 937 "eiffel_sig.ell" */ Address_mark0->Tree = Identifier1.Tree; goto xx42; } xxExpected (190, 190, xxGlobalRecoverySet); /* Current Result Id / Current Result Id */ } } xx42:; } static void yyExpression # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Expression0, xxtUnionPtr xxGlobalRecoverySet) # else (Expression0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Expression0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Prefix_operator1; ParserSIG_tParsAttribute Expression1; ParserSIG_tParsAttribute Expr_tail1; ParserSIG_tParsAttribute Old1; ParserSIG_tParsAttribute Ident_call1; ParserSIG_tParsAttribute Result_call1; ParserSIG_tParsAttribute Current_call1; ParserSIG_tParsAttribute Manifest_array1; ParserSIG_tParsAttribute No_sign_constant1; ParserSIG_tParsAttribute Strip1; ParserSIG_tParsAttribute Parenth_expr_or_qual_call1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyIdent_call (& Ident_call1, & xxUnion); /* */ /* line 944 "eiffel_sig.ell" */ Expression0->Tree = Ident_call1.Tree; goto xx43; case 83 /* Result */ :; xxUnion.xxLocalRecoverySet = 0; yyResult_call (& Result_call1, & xxUnion); /* */ /* line 945 "eiffel_sig.ell" */ Expression0->Tree = Result_call1.Tree; goto xx43; case 44 /* Current */ :; xxUnion.xxLocalRecoverySet = 0; yyCurrent_call (& Current_call1, & xxUnion); /* */ /* line 946 "eiffel_sig.ell" */ Expression0->Tree = Current_call1.Tree; goto xx43; case 23 /* '<<' */ :; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 947 "eiffel_sig.ell" */ Expression0->Tree = Manifest_array1.Tree; for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 948 "eiffel_sig.ell" */ Expression0->Tree = mBin_expr(Manifest_array1.Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } 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; xxExpected (127, 127, 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 */ } goto xx43; case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 56 /* false */ :; case 90 /* true */ :; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 950 "eiffel_sig.ell" */ Expression0->Tree = No_sign_constant1.Tree; for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 951 "eiffel_sig.ell" */ Expression0->Tree = mBin_expr(No_sign_constant1.Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } 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; xxExpected (127, 127, 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 */ } goto xx43; case 74 /* 'old' */ :; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 953 "eiffel_sig.ell" */ Expression0->Tree = Old1.Tree; for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 954 "eiffel_sig.ell" */ Expression0->Tree = mBin_expr(Old1.Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } 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; xxExpected (127, 127, 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 */ } goto xx43; case 88 /* 'strip' */ :; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 956 "eiffel_sig.ell" */ Expression0->Tree = Strip1.Tree; for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 957 "eiffel_sig.ell" */ Expression0->Tree = mBin_expr(Strip1.Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } 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; xxExpected (127, 127, 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 */ } goto xx43; case 17 /* '(' */ :; xxUnion.xxLocalRecoverySet = 0; yyParenth_expr_or_qual_call (& Parenth_expr_or_qual_call1, & xxUnion); /* */ /* line 959 "eiffel_sig.ell" */ Expression0->Tree = Parenth_expr_or_qual_call1.Tree; goto xx43; case 6 /* Free_op */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 105 /* not */ :; xxUnion.xxLocalRecoverySet = 129; 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 */ xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 960 "eiffel_sig.ell" */ Expression0->Tree = mUn_expr(Prefix_operator1.Tree, Expression1.Tree); goto xx43; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 18:; case 19:; case 20:; case 21:; case 22:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 84:; case 85:; case 86:; case 87:; case 89:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyIdent_call (& Ident_call1, & xxUnion); /* */ /* line 944 "eiffel_sig.ell" */ Expression0->Tree = Ident_call1.Tree; goto xx43; } xxExpected (129, 129, 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 */ } } xx43:; } static void yyExpr_tail # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Expr_tail0, xxtUnionPtr xxGlobalRecoverySet) # else (Expr_tail0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Expr_tail0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Infix_operator1; ParserSIG_tParsAttribute Expression1; ParserSIG_tParsAttribute Comparison1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 6 /* Free_op */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 33 /* div */ :; case 36 /* and */ :; case 61 /* implies */ :; case 76 /* or */ :; case 96 /* xor */ :; case 97 /* times */ :; case 98 /* smaller */ :; case 99 /* greater */ :; case 100 /* sm_eq */ :; case 101 /* gr_eq */ :; case 102 /* idiv */ :; case 103 /* imod */ :; case 104 /* power */ :; xxUnion.xxLocalRecoverySet = 129; 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 */ /* line 964 "eiffel_sig.ell" */ Expr_tail0->Tree = mBin_expr(mExpression0(), Infix_operator1.Tree, mExpression0()); goto xx44; case 13 /* Eq */ :; case 14 /* Not_eq */ :; xxUnion.xxLocalRecoverySet = 129; yyComparison (& Comparison1, & xxUnion); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */ /* line 965 "eiffel_sig.ell" */ Expr_tail0->Tree = mBin_expr(mExpression0(), Comparison1.Tree, mExpression0()); goto xx44; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 34:; case 35:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 56:; case 57:; case 58:; case 59:; case 60:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 90:; case 91:; case 92:; case 93:; case 94:; case 95:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 129; 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 */ /* line 964 "eiffel_sig.ell" */ Expr_tail0->Tree = mBin_expr(mExpression0(), Infix_operator1.Tree, mExpression0()); goto xx44; } xxExpected (212, 212, 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 */ } } xx44:; xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 966 "eiffel_sig.ell" */ Expr_tail0->Tree->Bin_expr.Rop = Expression1.Tree; } static void yyIdent_call # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Ident_call0, xxtUnionPtr xxGlobalRecoverySet) # else (Ident_call0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Ident_call0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Identifier1; ParserSIG_tParsAttribute Actuals1; ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Expr_tail1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 124; 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 */ /* line 970 "eiffel_sig.ell" */ Ident_call0->Tree = mCall_chain1(mUnqual_call1(Identifier1.Tree, mActuals0()) ,mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 125; 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 */ /* line 971 "eiffel_sig.ell" */ Ident_call0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } else if ((xxVerticalSet [xxToken + 864] & 1 << 1 /* 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; xxExpected (124, 124, 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 */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 972 "eiffel_sig.ell" */ Ident_call0->Tree->Call_chain1.Call_chain = Call_chain1.Tree ; break; } 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; xxExpected (125, 125, 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 */ } /* line 973 "eiffel_sig.ell" */ Ident_call0->Tree = mCall(mExpression0(), Ident_call0->Tree); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 974 "eiffel_sig.ell" */ Ident_call0->Tree = mBin_expr(Ident_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } 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; xxExpected (127, 127, 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 */ } } static void yyResult_call # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Result_call0, xxtUnionPtr xxGlobalRecoverySet) # else (Result_call0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Result_call0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Result1; ParserSIG_tParsAttribute Actuals1; ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Expr_tail1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 83 /* Result */) xxRecoveryTerminal (83, 213, 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 */ else { Result1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 979 "eiffel_sig.ell" */ Result_call0->Tree = mCall_chain1(mUnqual_call1( mResult(Result1.Position), mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 125; 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 */ /* line 981 "eiffel_sig.ell" */ Result_call0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } else if ((xxVerticalSet [xxToken + 864] & 1 << 1 /* 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; xxExpected (124, 124, 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 */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 982 "eiffel_sig.ell" */ Result_call0->Tree->Call_chain1.Call_chain = Call_chain1.Tree ; break; } 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; xxExpected (125, 125, 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 */ } /* line 983 "eiffel_sig.ell" */ Result_call0->Tree = mCall(mExpression0(), Result_call0->Tree); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 984 "eiffel_sig.ell" */ Result_call0->Tree = mBin_expr(Result_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } 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; xxExpected (127, 127, 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 */ } } static void yyCurrent_call # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Current_call0, xxtUnionPtr xxGlobalRecoverySet) # else (Current_call0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Current_call0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Current1; ParserSIG_tParsAttribute Actuals1; ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Expr_tail1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 44 /* Current */) xxRecoveryTerminal (44, 214, 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 */ else { Current1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 990 "eiffel_sig.ell" */ Current_call0->Tree = mCall_chain1(mUnqual_call1( mCurrent(Current1.Position), mActuals0()), mCall_chain0()); for (;;) { if ((xxToken == 17 /* '(' */)) { xxUnion.xxLocalRecoverySet = 125; 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 */ /* line 992 "eiffel_sig.ell" */ Current_call0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; break; } else if ((xxVerticalSet [xxToken + 864] & 1 << 1 /* 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; xxExpected (124, 124, 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 */ } for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 993 "eiffel_sig.ell" */ Current_call0->Tree->Call_chain1.Call_chain = Call_chain1.Tree ; break; } 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; xxExpected (125, 125, 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 */ } /* line 994 "eiffel_sig.ell" */ Current_call0->Tree = mCall(mExpression0(), Current_call0->Tree); for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 995 "eiffel_sig.ell" */ Current_call0->Tree = mBin_expr(Current_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } 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; xxExpected (127, 127, 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 */ } } static void yyParenth_expr_or_qual_call # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Parenth_expr_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet) # else (Parenth_expr_or_qual_call0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Parenth_expr_or_qual_call0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Expression1; ParserSIG_tParsAttribute Expr_tail1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 17 /* '(' */) xxRecoveryLiteral (17, 215, 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 */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 216; 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 */ if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 216, xxGlobalRecoverySet); /* Free_op '.' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1002 "eiffel_sig.ell" */ Parenth_expr_or_qual_call0->Tree = mParenth(Expression1.Tree); for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 127; 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 */ /* line 1003 "eiffel_sig.ell" */ Parenth_expr_or_qual_call0->Tree = mCall(Expression1.Tree,Call_chain1.Tree); break; } 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; xxExpected (125, 125, 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 */ } for (;;) { if ((xxVerticalSet [xxToken + 540] & 1 << 6 /* Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) { xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /* */ /* line 1004 "eiffel_sig.ell" */ Parenth_expr_or_qual_call0->Tree = mBin_expr(Parenth_expr_or_qual_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop); break; } 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; xxExpected (127, 127, 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 */ } } static void yyNo_sign_constant # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * No_sign_constant0, xxtUnionPtr xxGlobalRecoverySet) # else (No_sign_constant0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * No_sign_constant0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Character_constant1; EiffelScan_tScanAttribute Bit_sequence1; EiffelScan_tScanAttribute Integer1; EiffelScan_tScanAttribute Real1; EiffelScan_tScanAttribute Manifest_string1; ParserSIG_tParsAttribute Call_chain1; ParserSIG_tParsAttribute Boolean_constant1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 56 /* false */ :; case 90 /* true */ :; xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /* */ /* line 1008 "eiffel_sig.ell" */ No_sign_constant0->Tree = mSimple_expr(Boolean_constant1.Tree); goto xx45; case 1 /* Character_constant */ :; Character_constant1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1009 "eiffel_sig.ell" */ No_sign_constant0->Tree = mSimple_expr(mCh(Character_constant1.Char, Character_constant1.Position)); for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 1011 "eiffel_sig.ell" */ No_sign_constant0->Tree = mCall(No_sign_constant0->Tree, Call_chain1.Tree); break; } 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; xxExpected (109, 109, xxGlobalRecoverySet); /* '.' / '.' */ } goto xx45; case 3 /* Integer */ :; Integer1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1012 "eiffel_sig.ell" */ No_sign_constant0->Tree = mSimple_expr(mInt(mOper(NoPosition, VOID), Integer1.Int, Integer1.Position)); goto xx45; case 4 /* Real */ :; Real1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1014 "eiffel_sig.ell" */ No_sign_constant0->Tree = mSimple_expr(mReal(mOper(NoPosition, VOID), Real1.Real, Real1.Position)); goto xx45; case 5 /* Manifest_string */ :; Manifest_string1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1016 "eiffel_sig.ell" */ No_sign_constant0->Tree = mSimple_expr(mString(Manifest_string1.StringRef, Manifest_string1.Position)); for (;;) { if ((xxToken == 10 /* '.' */)) { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /* */ /* line 1018 "eiffel_sig.ell" */ No_sign_constant0->Tree = mCall(No_sign_constant0->Tree, Call_chain1.Tree); break; } 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; xxExpected (109, 109, xxGlobalRecoverySet); /* '.' / '.' */ } goto xx45; case 2 /* Bit_sequence */ :; Bit_sequence1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1019 "eiffel_sig.ell" */ No_sign_constant0->Tree = mSimple_expr(mBitseq(Bit_sequence1.StringRef, Bit_sequence1.Position)); goto xx45; case 6:; case 7:; case 8:; case 9:; case 10:; case 11:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 18:; case 19:; case 20:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 29:; case 30:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 44:; case 45:; case 46:; case 47:; case 48:; case 49:; case 50:; case 51:; case 52:; case 53:; case 54:; case 55:; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /* */ /* line 1008 "eiffel_sig.ell" */ No_sign_constant0->Tree = mSimple_expr(Boolean_constant1.Tree); goto xx45; } xxExpected (222, 222, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string false true / Character_constant Bit_sequence Integer Real Manifest_string false true */ } } xx45:; } static void yyBoolean_expression # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Boolean_expression0, xxtUnionPtr xxGlobalRecoverySet) # else (Boolean_expression0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Boolean_expression0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Expression1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /* */ /* line 1024 "eiffel_sig.ell" */ Boolean_expression0->Tree = Expression1.Tree; } static void yyComparison # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Comparison0, xxtUnionPtr xxGlobalRecoverySet) # else (Comparison0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Comparison0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Eq1; EiffelScan_tScanAttribute Not_eq1; for (;;) { switch (xxToken) { case 13 /* Eq */ :; Eq1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1028 "eiffel_sig.ell" */ Comparison0->Tree = mInfix(mOper(Eq1.Position, EQ)); goto xx46; case 14 /* Not_eq */ :; Not_eq1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1029 "eiffel_sig.ell" */ Comparison0->Tree = mInfix(mOper(Not_eq1.Position, NOT_EQ)); goto xx46; default: if (xxIsRepairMode) { if (xxToken != 13 /* Eq */) xxRecoveryTerminal (13, 223, xxGlobalRecoverySet, & Eq1); /* Eq */ else { Eq1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1028 "eiffel_sig.ell" */ Comparison0->Tree = mInfix(mOper(Eq1.Position, EQ)); goto xx46; } xxExpected (225, 225, xxGlobalRecoverySet); /* Eq Not_eq / Eq Not_eq */ } } xx46:; } static void yyConstant # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Constant0, xxtUnionPtr xxGlobalRecoverySet) # else (Constant0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Constant0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Manifest_constant1; ParserSIG_tParsAttribute Constant_attribute1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 1 /* Character_constant */ :; case 2 /* Bit_sequence */ :; case 3 /* Integer */ :; case 4 /* Real */ :; case 5 /* Manifest_string */ :; case 7 /* ';' */ :; case 8 /* ',' */ :; case 11 /* '!' */ :; case 18 /* ')' */ :; case 20 /* ']' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 46 /* deferred */ :; case 47 /* do */ :; case 51 /* 'end' */ :; case 55 /* 'external' */ :; case 56 /* false */ :; case 57 /* 'feature' */ :; case 59 /* 'frozen' */ :; case 63 /* infix */ :; case 67 /* 'invariant' */ :; case 68 /* 'is' */ :; case 75 /* once */ :; case 77 /* prefix */ :; case 90 /* true */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /* */ /* line 1035 "eiffel_sig.ell" */ Constant0->Tree = Manifest_constant1.Tree; goto xx47; case 44 /* Current */ :; case 83 /* Result */ :; xxUnion.xxLocalRecoverySet = 0; yyConstant_attribute (& Constant_attribute1, & xxUnion); /* */ /* line 1036 "eiffel_sig.ell" */ Constant0->Tree = Constant_attribute1.Tree; goto xx47; case 6:; case 9:; case 10:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 19:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 42:; case 43:; case 45:; case 48:; case 49:; case 50:; case 52:; case 53:; case 54:; case 58:; case 60:; case 61:; case 62:; case 64:; case 65:; case 66:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 76:; case 78:; case 79:; case 80:; case 81:; case 82:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /* */ /* line 1035 "eiffel_sig.ell" */ Constant0->Tree = Manifest_constant1.Tree; goto xx47; } xxExpected (226, 226, 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 */ } } xx47:; } static void yyConstant_attribute # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Constant_attribute0, xxtUnionPtr xxGlobalRecoverySet) # else (Constant_attribute0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Constant_attribute0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Entity1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 0; yyEntity (& Entity1, & xxUnion); /* */ /* line 1040 "eiffel_sig.ell" */ Constant_attribute0->Tree = Entity1.Tree; } static void yyManifest_constant # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Manifest_constant0, xxtUnionPtr xxGlobalRecoverySet) # else (Manifest_constant0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Manifest_constant0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Character_constant1; EiffelScan_tScanAttribute Bit_sequence1; EiffelScan_tScanAttribute Manifest_string1; ParserSIG_tParsAttribute Number_constant1; ParserSIG_tParsAttribute Boolean_constant1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; for (;;) { switch (xxToken) { case 56 /* false */ :; case 90 /* true */ :; xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /* */ /* line 1046 "eiffel_sig.ell" */ Manifest_constant0->Tree = Boolean_constant1.Tree; goto xx48; case 1 /* Character_constant */ :; Character_constant1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1047 "eiffel_sig.ell" */ Manifest_constant0->Tree = mCh(Character_constant1.Char, Character_constant1.Position); goto xx48; case 3 /* Integer */ :; case 4 /* Real */ :; case 7 /* ';' */ :; case 8 /* ',' */ :; case 11 /* '!' */ :; case 18 /* ')' */ :; case 20 /* ']' */ :; case 29 /* plus */ :; case 30 /* minus */ :; case 42 /* 'class' */ :; case 46 /* deferred */ :; case 47 /* do */ :; case 51 /* 'end' */ :; case 53 /* expanded */ :; case 55 /* 'external' */ :; case 57 /* 'feature' */ :; case 59 /* 'frozen' */ :; case 63 /* infix */ :; case 67 /* 'invariant' */ :; case 68 /* 'is' */ :; case 75 /* once */ :; case 77 /* prefix */ :; case 106 /* Id */ :; xxUnion.xxLocalRecoverySet = 0; yyNumber_constant (& Number_constant1, & xxUnion); /* */ /* line 1048 "eiffel_sig.ell" */ Manifest_constant0->Tree = Number_constant1.Tree; goto xx48; case 5 /* Manifest_string */ :; Manifest_string1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1049 "eiffel_sig.ell" */ Manifest_constant0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position); goto xx48; case 2 /* Bit_sequence */ :; Bit_sequence1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1050 "eiffel_sig.ell" */ Manifest_constant0->Tree = mBitseq(Bit_sequence1.StringRef, Bit_sequence1.Position); goto xx48; case 6:; case 9:; case 10:; case 12:; case 13:; case 14:; case 15:; case 16:; case 17:; case 19:; case 21:; case 22:; case 23:; case 24:; case 25:; case 26:; case 27:; case 28:; case 31:; case 32:; case 33:; case 34:; case 35:; case 36:; case 37:; case 38:; case 39:; case 40:; case 41:; case 43:; case 44:; case 45:; case 48:; case 49:; case 50:; case 52:; case 54:; case 58:; case 60:; case 61:; case 62:; case 64:; case 65:; case 66:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 76:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; case 91:; case 92:; case 93:; case 94:; case 95:; case 96:; case 97:; case 98:; case 99:; case 100:; case 101:; case 102:; case 103:; case 104:; case 105:; default: if (xxIsRepairMode) { xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /* */ /* line 1046 "eiffel_sig.ell" */ Manifest_constant0->Tree = Boolean_constant1.Tree; goto xx48; } xxUnexpected (227, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string plus minus false true */ } } xx48:; } static void yyNumber_constant # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Number_constant0, xxtUnionPtr xxGlobalRecoverySet) # else (Number_constant0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Number_constant0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Integer1; EiffelScan_tScanAttribute Real1; ParserSIG_tParsAttribute Sign1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; xxUnion.xxLocalRecoverySet = 228; yySign (& Sign1, & xxUnion); /* Integer Real */ for (;;) { switch (xxToken) { case 3 /* Integer */ :; Integer1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1056 "eiffel_sig.ell" */ Number_constant0->Tree = mInt(Sign1.Tree, Integer1.Int, Integer1.Position); goto xx49; case 4 /* Real */ :; Real1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1057 "eiffel_sig.ell" */ Number_constant0->Tree = mReal(Sign1.Tree, Real1.Real, Real1.Position); goto xx49; default: if (xxIsRepairMode) { if (xxToken != 3 /* Integer */) xxRecoveryTerminal (3, 218, xxGlobalRecoverySet, & Integer1); /* Integer */ else { Integer1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1056 "eiffel_sig.ell" */ Number_constant0->Tree = mInt(Sign1.Tree, Integer1.Int, Integer1.Position); goto xx49; } xxExpected (228, 228, xxGlobalRecoverySet); /* Integer Real / Integer Real */ } } xx49:; } static void yySign # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Sign0, xxtUnionPtr xxGlobalRecoverySet) # else (Sign0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Sign0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute plus1; EiffelScan_tScanAttribute minus1; /* line 1060 "eiffel_sig.ell" */ Sign0->Tree = mOper(NoPosition, VOID); for (;;) { if ((xxVerticalSet [xxToken + 864] & 1 << 3 /* plus minus */)) { if ((xxToken == 29 /* plus */)) { plus1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1061 "eiffel_sig.ell" */ Sign0->Tree = mOper(plus1.Position, PLUS); } else { minus1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1062 "eiffel_sig.ell" */ Sign0->Tree = mOper(minus1.Position, MINUS); } break; } else if ((xxVerticalSet [xxToken + 864] & 1 << 4 /* Integer Real */) || xxIsRepairMode) break; xxExpected (229, 229, xxGlobalRecoverySet); /* plus minus / plus minus */ } } static void yyBoolean_constant # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Boolean_constant0, xxtUnionPtr xxGlobalRecoverySet) # else (Boolean_constant0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Boolean_constant0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute false1; EiffelScan_tScanAttribute true1; for (;;) { switch (xxToken) { case 90 /* true */ :; true1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1070 "eiffel_sig.ell" */ Boolean_constant0->Tree = mTrue(true1.Position); goto xx50; case 56 /* false */ :; false1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; /* line 1071 "eiffel_sig.ell" */ Boolean_constant0->Tree = mFalse(false1.Position); goto xx50; case 57:; case 58:; case 59:; case 60:; case 61:; case 62:; case 63:; case 64:; case 65:; case 66:; case 67:; case 68:; case 69:; case 70:; case 71:; case 72:; case 73:; case 74:; case 75:; case 76:; case 77:; case 78:; case 79:; case 80:; case 81:; case 82:; case 83:; case 84:; case 85:; case 86:; case 87:; case 88:; case 89:; default: if (xxIsRepairMode) { if (xxToken != 90 /* true */) xxRecoveryTerminal (90, 230, xxGlobalRecoverySet, & true1); /* true */ else { true1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1070 "eiffel_sig.ell" */ Boolean_constant0->Tree = mTrue(true1.Position); goto xx50; } xxExpected (232, 232, xxGlobalRecoverySet); /* false true / false true */ } } xx50:; } static void yyBit_constant # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Bit_constant0, xxtUnionPtr xxGlobalRecoverySet) # else (Bit_constant0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Bit_constant0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Bit_sequence1; if (xxToken != 2 /* Bit_sequence */) xxRecoveryTerminal (2, 221, xxGlobalRecoverySet, & Bit_sequence1); /* Bit_sequence */ else { Bit_sequence1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1078 "eiffel_sig.ell" */ Bit_constant0->Tree = mBitseq(Bit_sequence1.StringRef, Bit_sequence1.Position); } static void yyManifest_array # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Manifest_array0, xxtUnionPtr xxGlobalRecoverySet) # else (Manifest_array0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Manifest_array0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Expression_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 23 /* '<<' */) xxRecoveryLiteral (23, 233, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' '>>' plus minus Current false 'old' Result 'strip' true not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 234; yyExpression_list (& Expression_list1, & xxUnion); /* '>>' */ if (xxToken != 24 /* '>>' */) xxRecoveryLiteral (24, 234, xxGlobalRecoverySet); /* '>>' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1083 "eiffel_sig.ell" */ Manifest_array0->Tree = ReverseTree(Expression_list1.Tree); } static void yyExpression_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Expression_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Expression_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Expression_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Expression1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 1085 "eiffel_sig.ell" */ Expression_list0->Tree = mManifest_array0(); for (;;) { if ((xxVerticalSet [xxToken + 648] & 1 << 7 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 16; yyExpression (& Expression1, & xxUnion); /* ',' */ /* line 1086 "eiffel_sig.ell" */ Expression_list0->Tree = mManifest_array1(Expression1.Tree, Expression_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxToken == 24 /* '>>' */)) break; xxExpected (16, 235, xxGlobalRecoverySet); /* ',' / Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */ if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 648] & 1 << 7 /* Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 235, xxGlobalRecoverySet); /* Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxToken == 24 /* '>>' */) || xxIsRepairMode) break; xxExpected (129, 129, 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 */ } } static void yyStrip # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Strip0, xxtUnionPtr xxGlobalRecoverySet) # else (Strip0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Strip0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Attribute_list1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 88 /* 'strip' */) xxRecoveryLiteral (88, 236, xxGlobalRecoverySet); /* '(' ')' 'strip' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } if (xxToken != 17 /* '(' */) xxRecoveryLiteral (17, 82, xxGlobalRecoverySet); /* '(' ')' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 83; yyAttribute_list (& Attribute_list1, & xxUnion); /* ')' */ if (xxToken != 18 /* ')' */) xxRecoveryLiteral (18, 83, xxGlobalRecoverySet); /* ')' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1093 "eiffel_sig.ell" */ Strip0->Tree = mStrip(Attribute_list1.Tree); } static void yyAttribute_list # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Attribute_list0, xxtUnionPtr xxGlobalRecoverySet) # else (Attribute_list0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Attribute_list0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Identifier1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; /* line 1095 "eiffel_sig.ell" */ Attribute_list0->Tree = mnolist(); for (;;) { if ((xxToken == 106 /* Id */)) { for (;;) { xxUnion.xxLocalRecoverySet = 16; yyIdentifier (& Identifier1, & xxUnion); /* ',' */ /* line 1096 "eiffel_sig.ell" */ Attribute_list0->Tree = mlist(Identifier1.Tree, Attribute_list0->Tree); if (! ((xxToken == 8 /* ',' */))) { if ((xxToken == 18 /* ')' */)) break; xxExpected (16, 87, xxGlobalRecoverySet); /* ',' / ',' Id */ if (! ((xxToken == 8 /* ',' */) || (xxToken == 106 /* Id */))) break; } if (xxToken != 8 /* ',' */) xxRecoveryLiteral (8, 87, xxGlobalRecoverySet); /* ',' Id */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } } break; } else if ((xxToken == 18 /* ')' */) || xxIsRepairMode) break; xxExpected (84, 84, xxGlobalRecoverySet); /* Id / Id */ } } static void yyExternal # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * External0, xxtUnionPtr xxGlobalRecoverySet) # else (External0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * External0; xxtUnionPtr xxGlobalRecoverySet; # endif { ParserSIG_tParsAttribute Language_name1; ParserSIG_tParsAttribute External_name1; xxtUnion xxUnion; xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet; if (xxToken != 55 /* 'external' */) xxRecoveryLiteral (55, 237, xxGlobalRecoverySet); /* Manifest_string 'alias' 'external' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } xxUnion.xxLocalRecoverySet = 238; yyLanguage_name (& Language_name1, & xxUnion); /* 'alias' */ /* line 1103 "eiffel_sig.ell" */ External0->Tree = mExternal( Language_name1.Tree, mString0()); for (;;) { if ((xxToken == 34 /* 'alias' */)) { xxUnion.xxLocalRecoverySet = 0; yyExternal_name (& External_name1, & xxUnion); /* */ /* line 1104 "eiffel_sig.ell" */ External0->Tree->External.Lang2 = External_name1.Tree; break; } else if ((xxVerticalSet [xxToken + 864] & 1 << 5 /* 'end' 'ensure' 'rescue' */) || xxIsRepairMode) break; xxExpected (238, 238, xxGlobalRecoverySet); /* 'alias' / 'alias' */ } } static void yyLanguage_name # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Language_name0, xxtUnionPtr xxGlobalRecoverySet) # else (Language_name0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Language_name0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Manifest_string1; if (xxToken != 5 /* Manifest_string */) xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /* Manifest_string */ else { Manifest_string1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1107 "eiffel_sig.ell" */ Language_name0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position); } static void yyExternal_name # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * External_name0, xxtUnionPtr xxGlobalRecoverySet) # else (External_name0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * External_name0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Manifest_string1; if (xxToken != 34 /* 'alias' */) xxRecoveryLiteral (34, 239, xxGlobalRecoverySet); /* Manifest_string 'alias' */ else { xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } if (xxToken != 5 /* Manifest_string */) xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /* Manifest_string */ else { Manifest_string1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1110 "eiffel_sig.ell" */ External_name0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position); } static void yyIdentifier # if defined __STDC__ | defined __cplusplus (ParserSIG_tParsAttribute * Identifier0, xxtUnionPtr xxGlobalRecoverySet) # else (Identifier0, xxGlobalRecoverySet) ParserSIG_tParsAttribute * Identifier0; xxtUnionPtr xxGlobalRecoverySet; # endif { EiffelScan_tScanAttribute Id1; if (xxToken != 106 /* Id */) xxRecoveryTerminal (106, 84, xxGlobalRecoverySet, & Id1); /* Id */ else { Id1 = EiffelScan_Attribute; xxToken = EiffelScan_GetToken (); xxIsRepairMode = xxfalse; } /* line 1114 "eiffel_sig.ell" */ Identifier0->Tree= mId(Id1.Ident, Id1.Position); }