Annotation of MiNT/src/asmtab.c, revision 1.1

1.1     ! root        1: 
        !             2: 
        !             3: /*  A Bison parser, made from asm.y  */
        !             4: 
        !             5: 
        !             6: 
        !             7: #define YYBISON 1  /* Identify Bison output.  */
        !             8: 
        !             9: 
        !            10: 
        !            11: #define        WORD    258
        !            12: 
        !            13: #define        WHITESP 259
        !            14: 
        !            15: #define        EOLN    260
        !            16: 
        !            17: #define        STRING  261
        !            18: 
        !            19: #define        DEFINECMD       262
        !            20: 
        !            21: #define        INCLUDECMD      263
        !            22: 
        !            23: #define        IFDEFCMD        264
        !            24: 
        !            25: #define        IFNDEFCMD       265
        !            26: 
        !            27: #define        ELSECMD 266
        !            28: 
        !            29: #define        ENDIFCMD        267
        !            30: 
        !            31: 
        !            32: 
        !            33: #line 3 "asm.y"
        !            34: 
        !            35: 
        !            36: 
        !            37: #define YYSTYPE char *
        !            38: 
        !            39: 
        !            40: 
        !            41: #include "asmtrans.h"
        !            42: 
        !            43: 
        !            44: 
        !            45: #ifndef YYLTYPE
        !            46: 
        !            47: typedef
        !            48: 
        !            49:   struct yyltype
        !            50: 
        !            51:     {
        !            52: 
        !            53:       int timestamp;
        !            54: 
        !            55:       int first_line;
        !            56: 
        !            57:       int first_column;
        !            58: 
        !            59:       int last_line;
        !            60: 
        !            61:       int last_column;
        !            62: 
        !            63:       char *text;
        !            64: 
        !            65:    }
        !            66: 
        !            67:   yyltype;
        !            68: 
        !            69: 
        !            70: 
        !            71: #define YYLTYPE yyltype
        !            72: 
        !            73: #endif
        !            74: 
        !            75: 
        !            76: 
        !            77: #ifndef YYSTYPE
        !            78: 
        !            79: #define YYSTYPE int
        !            80: 
        !            81: #endif
        !            82: 
        !            83: #include <stdio.h>
        !            84: 
        !            85: 
        !            86: 
        !            87: #ifndef __STDC__
        !            88: 
        !            89: #define const
        !            90: 
        !            91: #endif
        !            92: 
        !            93: 
        !            94: 
        !            95: 
        !            96: 
        !            97: 
        !            98: 
        !            99: #define        YYFINAL         87
        !           100: 
        !           101: #define        YYFLAG          -32768
        !           102: 
        !           103: #define        YYNTBASE        25
        !           104: 
        !           105: 
        !           106: 
        !           107: #define YYTRANSLATE(x) ((unsigned)(x) <= 267 ? yytranslate[x] : 35)
        !           108: 
        !           109: 
        !           110: 
        !           111: static const char yytranslate[] = {     0,
        !           112: 
        !           113:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           114: 
        !           115:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           116: 
        !           117:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           118: 
        !           119:      2,     2,     2,     2,    15,    22,     2,     2,     2,    16,
        !           120: 
        !           121:     17,    23,    18,    13,    19,     2,    24,     2,     2,     2,
        !           122: 
        !           123:      2,     2,     2,     2,     2,     2,     2,    14,     2,     2,
        !           124: 
        !           125:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           126: 
        !           127:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           128: 
        !           129:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           130: 
        !           131:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           132: 
        !           133:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           134: 
        !           135:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           136: 
        !           137:      2,     2,    20,     2,    21,     2,     2,     2,     2,     2,
        !           138: 
        !           139:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           140: 
        !           141:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           142: 
        !           143:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           144: 
        !           145:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           146: 
        !           147:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           148: 
        !           149:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           150: 
        !           151:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           152: 
        !           153:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           154: 
        !           155:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           156: 
        !           157:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           158: 
        !           159:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           160: 
        !           161:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           162: 
        !           163:      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
        !           164: 
        !           165:      6,     7,     8,     9,    10,    11,    12
        !           166: 
        !           167: };
        !           168: 
        !           169: 
        !           170: 
        !           171: #if YYDEBUG != 0
        !           172: 
        !           173: static const short yyprhs[] = {     0,
        !           174: 
        !           175:      0,     1,     4,     6,     9,    12,    16,    21,    26,    33,
        !           176: 
        !           177:     40,    45,    50,    53,    56,    59,    64,    68,    74,    76,
        !           178: 
        !           179:     80,    82,    85,    87,    90,    94,    99,   104,   109,   114,
        !           180: 
        !           181:    121,   128,   130,   134,   137,   139,   142,   144,   146,   148
        !           182: 
        !           183: };
        !           184: 
        !           185: 
        !           186: 
        !           187: #endif
        !           188: 
        !           189: 
        !           190: 
        !           191: static const short yyrhs[] = {    -1,
        !           192: 
        !           193:     25,    26,     0,     5,     0,    30,     5,     0,    27,     5,
        !           194: 
        !           195:      0,    30,    27,     5,     0,     8,     4,     6,     5,     0,
        !           196: 
        !           197:      8,     4,     3,     5,     0,     7,     4,     3,     4,     6,
        !           198: 
        !           199:      5,     0,     7,     4,     3,     4,    31,     5,     0,     9,
        !           200: 
        !           201:      4,     3,     5,     0,    10,     4,     3,     5,     0,    11,
        !           202: 
        !           203:      5,     0,    12,     5,     0,     4,    29,     0,     4,    29,
        !           204: 
        !           205:      4,    28,     0,     3,     4,    29,     0,     3,     4,    29,
        !           206: 
        !           207:      4,    28,     0,    31,     0,    31,    13,    28,     0,     3,
        !           208: 
        !           209:      0,     3,    14,     0,    32,     0,    15,    32,     0,    16,
        !           210: 
        !           211:     32,    17,     0,    16,    32,    17,    18,     0,    19,    16,
        !           212: 
        !           213:     32,    17,     0,    32,    16,    32,    17,     0,    16,    32,
        !           214: 
        !           215:     17,     3,     0,    32,    16,    32,    13,    32,    17,     0,
        !           216: 
        !           217:     32,    20,    32,    14,    32,    21,     0,    33,     0,    33,
        !           218: 
        !           219:     34,    32,     0,    19,    32,     0,     3,     0,    22,     3,
        !           220: 
        !           221:      0,    18,     0,    19,     0,    23,     0,    24,     0
        !           222: 
        !           223: };
        !           224: 
        !           225: 
        !           226: 
        !           227: #if YYDEBUG != 0
        !           228: 
        !           229: static const short yyrline[] = { 0,
        !           230: 
        !           231:     22,    23,    26,    29,    30,    31,    33,    34,    35,    37,
        !           232: 
        !           233:     39,    40,    41,    42,    45,    46,    49,    50,    55,    56,
        !           234: 
        !           235:     60,    63,    65,    66,    67,    68,    69,    70,    71,    72,
        !           236: 
        !           237:     74,    78,    79,    80,    82,    83,    86,    87,    88,    89
        !           238: 
        !           239: };
        !           240: 
        !           241: 
        !           242: 
        !           243: static const char * const yytname[] = {   "$","error","$illegal.","WORD","WHITESP",
        !           244: 
        !           245: "EOLN","STRING","DEFINECMD","INCLUDECMD","IFDEFCMD","IFNDEFCMD","ELSECMD","ENDIFCMD",
        !           246: 
        !           247: "','","':'","'#'","'('","')'","'+'","'-'","'{'","'}'","'$'","'*'","'/'","input",
        !           248: 
        !           249: "line","opline","ops","opcode","label","operand","basic","basexpr","op",""
        !           250: 
        !           251: };
        !           252: 
        !           253: #endif
        !           254: 
        !           255: 
        !           256: 
        !           257: static const short yyr1[] = {     0,
        !           258: 
        !           259:     25,    25,    26,    26,    26,    26,    26,    26,    26,    26,
        !           260: 
        !           261:     26,    26,    26,    26,    27,    27,    27,    27,    28,    28,
        !           262: 
        !           263:     29,    30,    31,    31,    31,    31,    31,    31,    31,    31,
        !           264: 
        !           265:     31,    32,    32,    32,    33,    33,    34,    34,    34,    34
        !           266: 
        !           267: };
        !           268: 
        !           269: 
        !           270: 
        !           271: static const short yyr2[] = {     0,
        !           272: 
        !           273:      0,     2,     1,     2,     2,     3,     4,     4,     6,     6,
        !           274: 
        !           275:      4,     4,     2,     2,     2,     4,     3,     5,     1,     3,
        !           276: 
        !           277:      1,     2,     1,     2,     3,     4,     4,     4,     4,     6,
        !           278: 
        !           279:      6,     1,     3,     2,     1,     2,     1,     1,     1,     1
        !           280: 
        !           281: };
        !           282: 
        !           283: 
        !           284: 
        !           285: static const short yydefact[] = {     1,
        !           286: 
        !           287:      0,     0,     0,     3,     0,     0,     0,     0,     0,     0,
        !           288: 
        !           289:      2,     0,     0,     0,    22,    21,    15,     0,     0,     0,
        !           290: 
        !           291:      0,    13,    14,     5,     0,     4,     0,    17,     0,     0,
        !           292: 
        !           293:      0,     0,     0,     0,     6,     0,    35,     0,     0,     0,
        !           294: 
        !           295:      0,    16,    19,    23,    32,     0,     8,     7,    11,    12,
        !           296: 
        !           297:     18,     0,    24,     0,     0,    34,    36,     0,     0,     0,
        !           298: 
        !           299:     37,    38,    39,    40,     0,     0,     0,    25,     0,    20,
        !           300: 
        !           301:      0,     0,    33,     9,    10,    29,    26,    27,     0,    28,
        !           302: 
        !           303:      0,     0,     0,    30,    31,     0,     0
        !           304: 
        !           305: };
        !           306: 
        !           307: 
        !           308: 
        !           309: static const short yydefgoto[] = {     1,
        !           310: 
        !           311:     11,    12,    42,    17,    13,    43,    44,    45,    65
        !           312: 
        !           313: };
        !           314: 
        !           315: 
        !           316: 
        !           317: static const short yypact[] = {-32768,
        !           318: 
        !           319:     47,     1,     3,-32768,    44,    49,    56,    57,    58,    59,
        !           320: 
        !           321: -32768,    60,     8,     3,-32768,-32768,    62,    64,    30,    65,
        !           322: 
        !           323:     66,-32768,-32768,-32768,    67,-32768,    68,    70,    13,    71,
        !           324: 
        !           325:     72,    73,    74,    75,-32768,    13,-32768,    27,    27,    15,
        !           326: 
        !           327:     69,-32768,    63,   -12,    21,     4,-32768,-32768,-32768,-32768,
        !           328: 
        !           329: -32768,    27,-32768,    45,    27,-32768,-32768,    13,    27,    27,
        !           330: 
        !           331: -32768,-32768,-32768,-32768,    27,    76,    77,     6,    53,-32768,
        !           332: 
        !           333:     25,    78,-32768,-32768,-32768,-32768,-32768,-32768,    27,-32768,
        !           334: 
        !           335:     27,    79,    80,-32768,-32768,    83,-32768
        !           336: 
        !           337: };
        !           338: 
        !           339: 
        !           340: 
        !           341: static const short yypgoto[] = {-32768,
        !           342: 
        !           343: -32768,    81,   -33,    84,-32768,    38,   -38,-32768,-32768
        !           344: 
        !           345: };
        !           346: 
        !           347: 
        !           348: 
        !           349: 
        !           350: 
        !           351: #define        YYLAST          101
        !           352: 
        !           353: 
        !           354: 
        !           355: 
        !           356: 
        !           357: static const short yytable[] = {    53,
        !           358: 
        !           359:     54,    56,    51,    59,    14,    16,    37,    60,    76,    66,
        !           360: 
        !           361:     25,     3,    26,    56,    15,    37,    69,    37,    38,    39,
        !           362: 
        !           363:     71,    72,    40,    77,    70,    41,    73,    38,    39,    37,
        !           364: 
        !           365:     55,    40,    31,    52,    41,    32,    41,    79,    61,    62,
        !           366: 
        !           367:     82,    80,    83,    63,    64,    52,    86,    18,    41,     2,
        !           368: 
        !           369:      3,     4,    19,     5,     6,     7,     8,     9,    10,    20,
        !           370: 
        !           371:     21,    68,    22,    23,    24,    29,    30,    33,    34,    78,
        !           372: 
        !           373:     14,    57,    35,    36,    46,    58,    47,    48,    49,    50,
        !           374: 
        !           375:     74,    75,    87,    67,     0,     0,     0,     0,     0,     0,
        !           376: 
        !           377:      0,    81,     0,    27,     0,    84,     0,    28,     0,     0,
        !           378: 
        !           379:     85
        !           380: 
        !           381: };
        !           382: 
        !           383: 
        !           384: 
        !           385: static const short yycheck[] = {    38,
        !           386: 
        !           387:     39,    40,    36,    16,     4,     3,     3,    20,     3,     6,
        !           388: 
        !           389:      3,     4,     5,    52,    14,     3,    55,     3,    15,    16,
        !           390: 
        !           391:     59,    60,    19,    18,    58,    22,    65,    15,    16,     3,
        !           392: 
        !           393:     16,    19,     3,    19,    22,     6,    22,    13,    18,    19,
        !           394: 
        !           395:     79,    17,    81,    23,    24,    19,     0,     4,    22,     3,
        !           396: 
        !           397:      4,     5,     4,     7,     8,     9,    10,    11,    12,     4,
        !           398: 
        !           399:      4,    17,     5,     5,     5,     4,     3,     3,     3,    17,
        !           400: 
        !           401:      4,     3,     5,     4,     4,    13,     5,     5,     5,     5,
        !           402: 
        !           403:      5,     5,     0,    46,    -1,    -1,    -1,    -1,    -1,    -1,
        !           404: 
        !           405:     -1,    14,    -1,    13,    -1,    17,    -1,    14,    -1,    -1,
        !           406: 
        !           407:     21
        !           408: 
        !           409: };
        !           410: 
        !           411: /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
        !           412: 
        !           413: #line 3 "bison.simple"
        !           414: 
        !           415: 
        !           416: 
        !           417: /* Skeleton output parser for bison,
        !           418: 
        !           419:    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
        !           420: 
        !           421: 
        !           422: 
        !           423:    This program is free software; you can redistribute it and/or modify
        !           424: 
        !           425:    it under the terms of the GNU General Public License as published by
        !           426: 
        !           427:    the Free Software Foundation; either version 1, or (at your option)
        !           428: 
        !           429:    any later version.
        !           430: 
        !           431: 
        !           432: 
        !           433:    This program is distributed in the hope that it will be useful,
        !           434: 
        !           435:    but WITHOUT ANY WARRANTY; without even the implied warranty of
        !           436: 
        !           437:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !           438: 
        !           439:    GNU General Public License for more details.
        !           440: 
        !           441: 
        !           442: 
        !           443:    You should have received a copy of the GNU General Public License
        !           444: 
        !           445:    along with this program; if not, write to the Free Software
        !           446: 
        !           447:    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
        !           448: 
        !           449: 
        !           450: 
        !           451: 
        !           452: 
        !           453: #ifndef alloca
        !           454: 
        !           455: #ifdef __GNUC__
        !           456: 
        !           457: #define alloca __builtin_alloca
        !           458: 
        !           459: #else /* not GNU C.  */
        !           460: 
        !           461: #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc)
        !           462: 
        !           463: #include <alloca.h>
        !           464: 
        !           465: #else /* not sparc */
        !           466: 
        !           467: #if defined (MSDOS) && !defined (__TURBOC__)
        !           468: 
        !           469: #include <malloc.h>
        !           470: 
        !           471: #else /* not MSDOS, or __TURBOC__ */
        !           472: 
        !           473: #if defined(_AIX)
        !           474: 
        !           475: #include <malloc.h>
        !           476: 
        !           477:  #pragma alloca
        !           478: 
        !           479: #endif /* not _AIX */
        !           480: 
        !           481: #endif /* not MSDOS, or __TURBOC__ */
        !           482: 
        !           483: #endif /* not sparc.  */
        !           484: 
        !           485: #endif /* not GNU C.  */
        !           486: 
        !           487: #endif /* alloca not defined.  */
        !           488: 
        !           489: 
        !           490: 
        !           491: /* This is the parser code that is written into each bison parser
        !           492: 
        !           493:   when the %semantic_parser declaration is not specified in the grammar.
        !           494: 
        !           495:   It was written by Richard Stallman by simplifying the hairy parser
        !           496: 
        !           497:   used when %semantic_parser is specified.  */
        !           498: 
        !           499: 
        !           500: 
        !           501: /* Note: there must be only one dollar sign in this file.
        !           502: 
        !           503:    It is replaced by the list of actions, each action
        !           504: 
        !           505:    as one case of the switch.  */
        !           506: 
        !           507: 
        !           508: 
        !           509: #define yyerrok                (yyerrstatus = 0)
        !           510: 
        !           511: #define yyclearin      (yychar = YYEMPTY)
        !           512: 
        !           513: #define YYEMPTY                -2
        !           514: 
        !           515: #define YYEOF          0
        !           516: 
        !           517: #define YYACCEPT       return(0)
        !           518: 
        !           519: #define YYABORT        return(1)
        !           520: 
        !           521: #define YYERROR                goto yyerrlab1
        !           522: 
        !           523: /* Like YYERROR except do call yyerror.
        !           524: 
        !           525:    This remains here temporarily to ease the
        !           526: 
        !           527:    transition to the new meaning of YYERROR, for GCC.
        !           528: 
        !           529:    Once GCC version 2 has supplanted version 1, this can go.  */
        !           530: 
        !           531: #define YYFAIL         goto yyerrlab
        !           532: 
        !           533: #define YYRECOVERING()  (!!yyerrstatus)
        !           534: 
        !           535: #define YYBACKUP(token, value) \
        !           536: 
        !           537: do                                                             \
        !           538: 
        !           539:   if (yychar == YYEMPTY && yylen == 1)                         \
        !           540: 
        !           541:     { yychar = (token), yylval = (value);                      \
        !           542: 
        !           543:       yychar1 = YYTRANSLATE (yychar);                          \
        !           544: 
        !           545:       YYPOPSTACK;                                              \
        !           546: 
        !           547:       goto yybackup;                                           \
        !           548: 
        !           549:     }                                                          \
        !           550: 
        !           551:   else                                                         \
        !           552: 
        !           553:     { yyerror ("syntax error: cannot back up"); YYERROR; }     \
        !           554: 
        !           555: while (0)
        !           556: 
        !           557: 
        !           558: 
        !           559: #define YYTERROR       1
        !           560: 
        !           561: #define YYERRCODE      256
        !           562: 
        !           563: 
        !           564: 
        !           565: #ifndef YYPURE
        !           566: 
        !           567: #define YYLEX          yylex()
        !           568: 
        !           569: #endif
        !           570: 
        !           571: 
        !           572: 
        !           573: #ifdef YYPURE
        !           574: 
        !           575: #ifdef YYLSP_NEEDED
        !           576: 
        !           577: #define YYLEX          yylex(&yylval, &yylloc)
        !           578: 
        !           579: #else
        !           580: 
        !           581: #define YYLEX          yylex(&yylval)
        !           582: 
        !           583: #endif
        !           584: 
        !           585: #endif
        !           586: 
        !           587: 
        !           588: 
        !           589: /* If nonreentrant, generate the variables here */
        !           590: 
        !           591: 
        !           592: 
        !           593: #ifndef YYPURE
        !           594: 
        !           595: 
        !           596: 
        !           597: int    yychar;                 /*  the lookahead symbol                */
        !           598: 
        !           599: YYSTYPE        yylval;                 /*  the semantic value of the           */
        !           600: 
        !           601:                                /*  lookahead symbol                    */
        !           602: 
        !           603: 
        !           604: 
        !           605: #ifdef YYLSP_NEEDED
        !           606: 
        !           607: YYLTYPE yylloc;                        /*  location data for the lookahead     */
        !           608: 
        !           609:                                /*  symbol                              */
        !           610: 
        !           611: #endif
        !           612: 
        !           613: 
        !           614: 
        !           615: int yynerrs;                   /*  number of parse errors so far       */
        !           616: 
        !           617: #endif  /* not YYPURE */
        !           618: 
        !           619: 
        !           620: 
        !           621: #if YYDEBUG != 0
        !           622: 
        !           623: int yydebug;                   /*  nonzero means print parse trace     */
        !           624: 
        !           625: /* Since this is uninitialized, it does not stop multiple parsers
        !           626: 
        !           627:    from coexisting.  */
        !           628: 
        !           629: #endif
        !           630: 
        !           631: 
        !           632: 
        !           633: /*  YYINITDEPTH indicates the initial size of the parser's stacks      */
        !           634: 
        !           635: 
        !           636: 
        !           637: #ifndef        YYINITDEPTH
        !           638: 
        !           639: #define YYINITDEPTH 200
        !           640: 
        !           641: #endif
        !           642: 
        !           643: 
        !           644: 
        !           645: /*  YYMAXDEPTH is the maximum size the stacks can grow to
        !           646: 
        !           647:     (effective only if the built-in stack extension method is used).  */
        !           648: 
        !           649: 
        !           650: 
        !           651: #if YYMAXDEPTH == 0
        !           652: 
        !           653: #undef YYMAXDEPTH
        !           654: 
        !           655: #endif
        !           656: 
        !           657: 
        !           658: 
        !           659: #ifndef YYMAXDEPTH
        !           660: 
        !           661: #define YYMAXDEPTH 10000
        !           662: 
        !           663: #endif
        !           664: 
        !           665: 
        !           666: 
        !           667: #if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
        !           668: 
        !           669: #define __yy_bcopy(FROM,TO,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
        !           670: 
        !           671: #else                          /* not GNU C or C++ */
        !           672: 
        !           673: #ifndef __cplusplus
        !           674: 
        !           675: 
        !           676: 
        !           677: /* This is the most reliable way to avoid incompatibilities
        !           678: 
        !           679:    in available built-in functions on various systems.  */
        !           680: 
        !           681: static void
        !           682: 
        !           683: __yy_bcopy (from, to, count)
        !           684: 
        !           685:      char *from;
        !           686: 
        !           687:      char *to;
        !           688: 
        !           689:      int count;
        !           690: 
        !           691: {
        !           692: 
        !           693:   register char *f = from;
        !           694: 
        !           695:   register char *t = to;
        !           696: 
        !           697:   register int i = count;
        !           698: 
        !           699: 
        !           700: 
        !           701:   while (i-- > 0)
        !           702: 
        !           703:     *t++ = *f++;
        !           704: 
        !           705: }
        !           706: 
        !           707: 
        !           708: 
        !           709: #else /* __cplusplus */
        !           710: 
        !           711: 
        !           712: 
        !           713: /* This is the most reliable way to avoid incompatibilities
        !           714: 
        !           715:    in available built-in functions on various systems.  */
        !           716: 
        !           717: static void
        !           718: 
        !           719: __yy_bcopy (char *from, char *to, int count)
        !           720: 
        !           721: {
        !           722: 
        !           723:   register char *f = from;
        !           724: 
        !           725:   register char *t = to;
        !           726: 
        !           727:   register int i = count;
        !           728: 
        !           729: 
        !           730: 
        !           731:   while (i-- > 0)
        !           732: 
        !           733:     *t++ = *f++;
        !           734: 
        !           735: }
        !           736: 
        !           737: 
        !           738: 
        !           739: #endif
        !           740: 
        !           741: #endif
        !           742: 
        !           743: 
        !           744: 
        !           745: #line 169 "bison.simple"
        !           746: 
        !           747: int
        !           748: 
        !           749: yyparse()
        !           750: 
        !           751: {
        !           752: 
        !           753:   register int yystate;
        !           754: 
        !           755:   register int yyn;
        !           756: 
        !           757:   register short *yyssp;
        !           758: 
        !           759:   register YYSTYPE *yyvsp;
        !           760: 
        !           761:   int yyerrstatus;     /*  number of tokens to shift before error messages enabled */
        !           762: 
        !           763:   int yychar1;         /*  lookahead token as an internal (translated) token number */
        !           764: 
        !           765: 
        !           766: 
        !           767:   short        yyssa[YYINITDEPTH];     /*  the state stack                     */
        !           768: 
        !           769:   YYSTYPE yyvsa[YYINITDEPTH];  /*  the semantic value stack            */
        !           770: 
        !           771: 
        !           772: 
        !           773:   short *yyss = yyssa;         /*  refer to the stacks thru separate pointers */
        !           774: 
        !           775:   YYSTYPE *yyvs = yyvsa;       /*  to allow yyoverflow to reallocate them elsewhere */
        !           776: 
        !           777: 
        !           778: 
        !           779: #ifdef YYLSP_NEEDED
        !           780: 
        !           781:   YYLTYPE yylsa[YYINITDEPTH];  /*  the location stack                  */
        !           782: 
        !           783:   YYLTYPE *yyls = yylsa;
        !           784: 
        !           785:   YYLTYPE *yylsp;
        !           786: 
        !           787: 
        !           788: 
        !           789: #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
        !           790: 
        !           791: #else
        !           792: 
        !           793: #define YYPOPSTACK   (yyvsp--, yyssp--)
        !           794: 
        !           795: #endif
        !           796: 
        !           797: 
        !           798: 
        !           799:   int yystacksize = YYINITDEPTH;
        !           800: 
        !           801: 
        !           802: 
        !           803: #ifdef YYPURE
        !           804: 
        !           805:   int yychar;
        !           806: 
        !           807:   YYSTYPE yylval;
        !           808: 
        !           809:   int yynerrs;
        !           810: 
        !           811: #ifdef YYLSP_NEEDED
        !           812: 
        !           813:   YYLTYPE yylloc;
        !           814: 
        !           815: #endif
        !           816: 
        !           817: #endif
        !           818: 
        !           819: 
        !           820: 
        !           821:   YYSTYPE yyval;               /*  the variable used to return         */
        !           822: 
        !           823:                                /*  semantic values from the action     */
        !           824: 
        !           825:                                /*  routines                            */
        !           826: 
        !           827: 
        !           828: 
        !           829:   int yylen;
        !           830: 
        !           831: 
        !           832: 
        !           833: #if YYDEBUG != 0
        !           834: 
        !           835:   if (yydebug)
        !           836: 
        !           837:     fprintf(stderr, "Starting parse\n");
        !           838: 
        !           839: #endif
        !           840: 
        !           841: 
        !           842: 
        !           843:   yystate = 0;
        !           844: 
        !           845:   yyerrstatus = 0;
        !           846: 
        !           847:   yynerrs = 0;
        !           848: 
        !           849:   yychar = YYEMPTY;            /* Cause a token to be read.  */
        !           850: 
        !           851: 
        !           852: 
        !           853:   /* Initialize stack pointers.
        !           854: 
        !           855:      Waste one element of value and location stack
        !           856: 
        !           857:      so that they stay on the same level as the state stack.
        !           858: 
        !           859:      The wasted elements are never initialized.  */
        !           860: 
        !           861: 
        !           862: 
        !           863:   yyssp = yyss - 1;
        !           864: 
        !           865:   yyvsp = yyvs;
        !           866: 
        !           867: #ifdef YYLSP_NEEDED
        !           868: 
        !           869:   yylsp = yyls;
        !           870: 
        !           871: #endif
        !           872: 
        !           873: 
        !           874: 
        !           875: /* Push a new state, which is found in  yystate  .  */
        !           876: 
        !           877: /* In all cases, when you get here, the value and location stacks
        !           878: 
        !           879:    have just been pushed. so pushing a state here evens the stacks.  */
        !           880: 
        !           881: yynewstate:
        !           882: 
        !           883: 
        !           884: 
        !           885:   *++yyssp = yystate;
        !           886: 
        !           887: 
        !           888: 
        !           889:   if (yyssp >= yyss + yystacksize - 1)
        !           890: 
        !           891:     {
        !           892: 
        !           893:       /* Give user a chance to reallocate the stack */
        !           894: 
        !           895:       /* Use copies of these so that the &'s don't force the real ones into memory. */
        !           896: 
        !           897:       YYSTYPE *yyvs1 = yyvs;
        !           898: 
        !           899:       short *yyss1 = yyss;
        !           900: 
        !           901: #ifdef YYLSP_NEEDED
        !           902: 
        !           903:       YYLTYPE *yyls1 = yyls;
        !           904: 
        !           905: #endif
        !           906: 
        !           907: 
        !           908: 
        !           909:       /* Get the current used size of the three stacks, in elements.  */
        !           910: 
        !           911:       int size = yyssp - yyss + 1;
        !           912: 
        !           913: 
        !           914: 
        !           915: #ifdef yyoverflow
        !           916: 
        !           917:       /* Each stack pointer address is followed by the size of
        !           918: 
        !           919:         the data in use in that stack, in bytes.  */
        !           920: 
        !           921:       yyoverflow("parser stack overflow",
        !           922: 
        !           923:                 &yyss1, size * sizeof (*yyssp),
        !           924: 
        !           925:                 &yyvs1, size * sizeof (*yyvsp),
        !           926: 
        !           927: #ifdef YYLSP_NEEDED
        !           928: 
        !           929:                 &yyls1, size * sizeof (*yylsp),
        !           930: 
        !           931: #endif
        !           932: 
        !           933:                 &yystacksize);
        !           934: 
        !           935: 
        !           936: 
        !           937:       yyss = yyss1; yyvs = yyvs1;
        !           938: 
        !           939: #ifdef YYLSP_NEEDED
        !           940: 
        !           941:       yyls = yyls1;
        !           942: 
        !           943: #endif
        !           944: 
        !           945: #else /* no yyoverflow */
        !           946: 
        !           947:       /* Extend the stack our own way.  */
        !           948: 
        !           949:       if (yystacksize >= YYMAXDEPTH)
        !           950: 
        !           951:        {
        !           952: 
        !           953:          yyerror("parser stack overflow");
        !           954: 
        !           955:          return 2;
        !           956: 
        !           957:        }
        !           958: 
        !           959:       yystacksize *= 2;
        !           960: 
        !           961:       if (yystacksize > YYMAXDEPTH)
        !           962: 
        !           963:        yystacksize = YYMAXDEPTH;
        !           964: 
        !           965:       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
        !           966: 
        !           967:       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
        !           968: 
        !           969:       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
        !           970: 
        !           971:       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
        !           972: 
        !           973: #ifdef YYLSP_NEEDED
        !           974: 
        !           975:       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
        !           976: 
        !           977:       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
        !           978: 
        !           979: #endif
        !           980: 
        !           981: #endif /* no yyoverflow */
        !           982: 
        !           983: 
        !           984: 
        !           985:       yyssp = yyss + size - 1;
        !           986: 
        !           987:       yyvsp = yyvs + size - 1;
        !           988: 
        !           989: #ifdef YYLSP_NEEDED
        !           990: 
        !           991:       yylsp = yyls + size - 1;
        !           992: 
        !           993: #endif
        !           994: 
        !           995: 
        !           996: 
        !           997: #if YYDEBUG != 0
        !           998: 
        !           999:       if (yydebug)
        !          1000: 
        !          1001:        fprintf(stderr, "Stack size increased to %d\n", yystacksize);
        !          1002: 
        !          1003: #endif
        !          1004: 
        !          1005: 
        !          1006: 
        !          1007:       if (yyssp >= yyss + yystacksize - 1)
        !          1008: 
        !          1009:        YYABORT;
        !          1010: 
        !          1011:     }
        !          1012: 
        !          1013: 
        !          1014: 
        !          1015: #if YYDEBUG != 0
        !          1016: 
        !          1017:   if (yydebug)
        !          1018: 
        !          1019:     fprintf(stderr, "Entering state %d\n", yystate);
        !          1020: 
        !          1021: #endif
        !          1022: 
        !          1023: 
        !          1024: 
        !          1025:   goto yybackup;
        !          1026: 
        !          1027:  yybackup:
        !          1028: 
        !          1029: 
        !          1030: 
        !          1031: /* Do appropriate processing given the current state.  */
        !          1032: 
        !          1033: /* Read a lookahead token if we need one and don't already have one.  */
        !          1034: 
        !          1035: /* yyresume: */
        !          1036: 
        !          1037: 
        !          1038: 
        !          1039:   /* First try to decide what to do without reference to lookahead token.  */
        !          1040: 
        !          1041: 
        !          1042: 
        !          1043:   yyn = yypact[yystate];
        !          1044: 
        !          1045:   if (yyn == YYFLAG)
        !          1046: 
        !          1047:     goto yydefault;
        !          1048: 
        !          1049: 
        !          1050: 
        !          1051:   /* Not known => get a lookahead token if don't already have one.  */
        !          1052: 
        !          1053: 
        !          1054: 
        !          1055:   /* yychar is either YYEMPTY or YYEOF
        !          1056: 
        !          1057:      or a valid token in external form.  */
        !          1058: 
        !          1059: 
        !          1060: 
        !          1061:   if (yychar == YYEMPTY)
        !          1062: 
        !          1063:     {
        !          1064: 
        !          1065: #if YYDEBUG != 0
        !          1066: 
        !          1067:       if (yydebug)
        !          1068: 
        !          1069:        fprintf(stderr, "Reading a token: ");
        !          1070: 
        !          1071: #endif
        !          1072: 
        !          1073:       yychar = YYLEX;
        !          1074: 
        !          1075:     }
        !          1076: 
        !          1077: 
        !          1078: 
        !          1079:   /* Convert token to internal form (in yychar1) for indexing tables with */
        !          1080: 
        !          1081: 
        !          1082: 
        !          1083:   if (yychar <= 0)             /* This means end of input. */
        !          1084: 
        !          1085:     {
        !          1086: 
        !          1087:       yychar1 = 0;
        !          1088: 
        !          1089:       yychar = YYEOF;          /* Don't call YYLEX any more */
        !          1090: 
        !          1091: 
        !          1092: 
        !          1093: #if YYDEBUG != 0
        !          1094: 
        !          1095:       if (yydebug)
        !          1096: 
        !          1097:        fprintf(stderr, "Now at end of input.\n");
        !          1098: 
        !          1099: #endif
        !          1100: 
        !          1101:     }
        !          1102: 
        !          1103:   else
        !          1104: 
        !          1105:     {
        !          1106: 
        !          1107:       yychar1 = YYTRANSLATE(yychar);
        !          1108: 
        !          1109: 
        !          1110: 
        !          1111: #if YYDEBUG != 0
        !          1112: 
        !          1113:       if (yydebug)
        !          1114: 
        !          1115:        {
        !          1116: 
        !          1117:          fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
        !          1118: 
        !          1119:          /* Give the individual parser a way to print the precise meaning
        !          1120: 
        !          1121:             of a token, for further debugging info.  */
        !          1122: 
        !          1123: #ifdef YYPRINT
        !          1124: 
        !          1125:          YYPRINT (stderr, yychar, yylval);
        !          1126: 
        !          1127: #endif
        !          1128: 
        !          1129:          fprintf (stderr, ")\n");
        !          1130: 
        !          1131:        }
        !          1132: 
        !          1133: #endif
        !          1134: 
        !          1135:     }
        !          1136: 
        !          1137: 
        !          1138: 
        !          1139:   yyn += yychar1;
        !          1140: 
        !          1141:   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
        !          1142: 
        !          1143:     goto yydefault;
        !          1144: 
        !          1145: 
        !          1146: 
        !          1147:   yyn = yytable[yyn];
        !          1148: 
        !          1149: 
        !          1150: 
        !          1151:   /* yyn is what to do for this token type in this state.
        !          1152: 
        !          1153:      Negative => reduce, -yyn is rule number.
        !          1154: 
        !          1155:      Positive => shift, yyn is new state.
        !          1156: 
        !          1157:        New state is final state => don't bother to shift,
        !          1158: 
        !          1159:        just return success.
        !          1160: 
        !          1161:      0, or most negative number => error.  */
        !          1162: 
        !          1163: 
        !          1164: 
        !          1165:   if (yyn < 0)
        !          1166: 
        !          1167:     {
        !          1168: 
        !          1169:       if (yyn == YYFLAG)
        !          1170: 
        !          1171:        goto yyerrlab;
        !          1172: 
        !          1173:       yyn = -yyn;
        !          1174: 
        !          1175:       goto yyreduce;
        !          1176: 
        !          1177:     }
        !          1178: 
        !          1179:   else if (yyn == 0)
        !          1180: 
        !          1181:     goto yyerrlab;
        !          1182: 
        !          1183: 
        !          1184: 
        !          1185:   if (yyn == YYFINAL)
        !          1186: 
        !          1187:     YYACCEPT;
        !          1188: 
        !          1189: 
        !          1190: 
        !          1191:   /* Shift the lookahead token.  */
        !          1192: 
        !          1193: 
        !          1194: 
        !          1195: #if YYDEBUG != 0
        !          1196: 
        !          1197:   if (yydebug)
        !          1198: 
        !          1199:     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
        !          1200: 
        !          1201: #endif
        !          1202: 
        !          1203: 
        !          1204: 
        !          1205:   /* Discard the token being shifted unless it is eof.  */
        !          1206: 
        !          1207:   if (yychar != YYEOF)
        !          1208: 
        !          1209:     yychar = YYEMPTY;
        !          1210: 
        !          1211: 
        !          1212: 
        !          1213:   *++yyvsp = yylval;
        !          1214: 
        !          1215: #ifdef YYLSP_NEEDED
        !          1216: 
        !          1217:   *++yylsp = yylloc;
        !          1218: 
        !          1219: #endif
        !          1220: 
        !          1221: 
        !          1222: 
        !          1223:   /* count tokens shifted since error; after three, turn off error status.  */
        !          1224: 
        !          1225:   if (yyerrstatus) yyerrstatus--;
        !          1226: 
        !          1227: 
        !          1228: 
        !          1229:   yystate = yyn;
        !          1230: 
        !          1231:   goto yynewstate;
        !          1232: 
        !          1233: 
        !          1234: 
        !          1235: /* Do the default action for the current state.  */
        !          1236: 
        !          1237: yydefault:
        !          1238: 
        !          1239: 
        !          1240: 
        !          1241:   yyn = yydefact[yystate];
        !          1242: 
        !          1243:   if (yyn == 0)
        !          1244: 
        !          1245:     goto yyerrlab;
        !          1246: 
        !          1247: 
        !          1248: 
        !          1249: /* Do a reduction.  yyn is the number of a rule to reduce with.  */
        !          1250: 
        !          1251: yyreduce:
        !          1252: 
        !          1253:   yylen = yyr2[yyn];
        !          1254: 
        !          1255:   yyval = yyvsp[1-yylen]; /* implement default value of the action */
        !          1256: 
        !          1257: 
        !          1258: 
        !          1259: #if YYDEBUG != 0
        !          1260: 
        !          1261:   if (yydebug)
        !          1262: 
        !          1263:     {
        !          1264: 
        !          1265:       int i;
        !          1266: 
        !          1267: 
        !          1268: 
        !          1269:       fprintf (stderr, "Reducing via rule %d (line %d), ",
        !          1270: 
        !          1271:               yyn, yyrline[yyn]);
        !          1272: 
        !          1273: 
        !          1274: 
        !          1275:       /* Print the symbols being reduced, and their result.  */
        !          1276: 
        !          1277:       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
        !          1278: 
        !          1279:        fprintf (stderr, "%s ", yytname[yyrhs[i]]);
        !          1280: 
        !          1281:       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
        !          1282: 
        !          1283:     }
        !          1284: 
        !          1285: #endif
        !          1286: 
        !          1287: 
        !          1288: 
        !          1289: 
        !          1290: 
        !          1291:   switch (yyn) {
        !          1292: 
        !          1293: 
        !          1294: 
        !          1295: case 3:
        !          1296: 
        !          1297: #line 26 "asm.y"
        !          1298: 
        !          1299: { emit(yyvsp[0]); ;
        !          1300: 
        !          1301:     break;}
        !          1302: 
        !          1303: case 4:
        !          1304: 
        !          1305: #line 29 "asm.y"
        !          1306: 
        !          1307: { emit(yyvsp[-1]); emit(yyvsp[0]); ;
        !          1308: 
        !          1309:     break;}
        !          1310: 
        !          1311: case 5:
        !          1312: 
        !          1313: #line 30 "asm.y"
        !          1314: 
        !          1315: { emit(yyvsp[-1]); emit(yyvsp[0]); ;
        !          1316: 
        !          1317:     break;}
        !          1318: 
        !          1319: case 6:
        !          1320: 
        !          1321: #line 31 "asm.y"
        !          1322: 
        !          1323: { emit(yyvsp[-2]); emit(yyvsp[-1]);
        !          1324: 
        !          1325:                        emit(yyvsp[0]); ;
        !          1326: 
        !          1327:     break;}
        !          1328: 
        !          1329: case 7:
        !          1330: 
        !          1331: #line 33 "asm.y"
        !          1332: 
        !          1333: { if (!hidecnt) do_include(yyvsp[-1]); free(yyvsp[-1]); ;
        !          1334: 
        !          1335:     break;}
        !          1336: 
        !          1337: case 8:
        !          1338: 
        !          1339: #line 34 "asm.y"
        !          1340: 
        !          1341: { if (!hidecnt) do_include(yyvsp[-1]); free(yyvsp[-1]); ;
        !          1342: 
        !          1343:     break;}
        !          1344: 
        !          1345: case 9:
        !          1346: 
        !          1347: #line 35 "asm.y"
        !          1348: 
        !          1349: {
        !          1350: 
        !          1351:                if (!hidecnt) do_define(yyvsp[-3], yyvsp[-1]); free(yyvsp[-3]); free(yyvsp[-1]); ;
        !          1352: 
        !          1353:     break;}
        !          1354: 
        !          1355: case 10:
        !          1356: 
        !          1357: #line 37 "asm.y"
        !          1358: 
        !          1359: {
        !          1360: 
        !          1361:                if (!hidecnt) do_define(yyvsp[-3], yyvsp[-1]); free(yyvsp[-3]); free(yyvsp[-1]); ;
        !          1362: 
        !          1363:     break;}
        !          1364: 
        !          1365: case 11:
        !          1366: 
        !          1367: #line 39 "asm.y"
        !          1368: 
        !          1369: { do_ifdef(yyvsp[-1]); free(yyvsp[-1]); ;
        !          1370: 
        !          1371:     break;}
        !          1372: 
        !          1373: case 12:
        !          1374: 
        !          1375: #line 40 "asm.y"
        !          1376: 
        !          1377: { do_ifndef(yyvsp[-1]); free(yyvsp[-1]); ;
        !          1378: 
        !          1379:     break;}
        !          1380: 
        !          1381: case 13:
        !          1382: 
        !          1383: #line 41 "asm.y"
        !          1384: 
        !          1385: { do_else(); ;
        !          1386: 
        !          1387:     break;}
        !          1388: 
        !          1389: case 14:
        !          1390: 
        !          1391: #line 42 "asm.y"
        !          1392: 
        !          1393: { do_endif(); ;
        !          1394: 
        !          1395:     break;}
        !          1396: 
        !          1397: case 15:
        !          1398: 
        !          1399: #line 45 "asm.y"
        !          1400: 
        !          1401: { yyval = do_ops("", yyvsp[0], "", ""); free(yyvsp[0]); ;
        !          1402: 
        !          1403:     break;}
        !          1404: 
        !          1405: case 16:
        !          1406: 
        !          1407: #line 47 "asm.y"
        !          1408: 
        !          1409: { yyval = do_ops("", yyvsp[-2], yyvsp[-1], yyvsp[0]);
        !          1410: 
        !          1411:                         free(yyvsp[-2]); free(yyvsp[-1]); free(yyvsp[0]); ;
        !          1412: 
        !          1413:     break;}
        !          1414: 
        !          1415: case 17:
        !          1416: 
        !          1417: #line 49 "asm.y"
        !          1418: 
        !          1419: { yyval = do_ops(yyvsp[-2], yyvsp[0], "", ""); free(yyvsp[-2]); free(yyvsp[0]); ;
        !          1420: 
        !          1421:     break;}
        !          1422: 
        !          1423: case 18:
        !          1424: 
        !          1425: #line 51 "asm.y"
        !          1426: 
        !          1427: { yyval = do_ops(yyvsp[-4], yyvsp[-2], yyvsp[-1], yyvsp[0]);
        !          1428: 
        !          1429:                         free(yyvsp[-4]); free(yyvsp[-2]); free(yyvsp[-1]); free(yyvsp[0]);;
        !          1430: 
        !          1431:     break;}
        !          1432: 
        !          1433: case 19:
        !          1434: 
        !          1435: #line 55 "asm.y"
        !          1436: 
        !          1437: { yyval = yyvsp[0]; ;
        !          1438: 
        !          1439:     break;}
        !          1440: 
        !          1441: case 20:
        !          1442: 
        !          1443: #line 56 "asm.y"
        !          1444: 
        !          1445: { yyval = concat3(yyvsp[-2], ",", yyvsp[0]);
        !          1446: 
        !          1447:                                free(yyvsp[-2]); free(yyvsp[0]); ;
        !          1448: 
        !          1449:     break;}
        !          1450: 
        !          1451: case 21:
        !          1452: 
        !          1453: #line 60 "asm.y"
        !          1454: 
        !          1455: { yyval = wordlookup(yyvsp[0]); free(yyvsp[0]); ;
        !          1456: 
        !          1457:     break;}
        !          1458: 
        !          1459: case 22:
        !          1460: 
        !          1461: #line 63 "asm.y"
        !          1462: 
        !          1463: { yyval = concat(yyvsp[-1], ":"); free(yyvsp[-1]); ;
        !          1464: 
        !          1465:     break;}
        !          1466: 
        !          1467: case 23:
        !          1468: 
        !          1469: #line 65 "asm.y"
        !          1470: 
        !          1471: {yyval = yyvsp[0]; ;
        !          1472: 
        !          1473:     break;}
        !          1474: 
        !          1475: case 24:
        !          1476: 
        !          1477: #line 66 "asm.y"
        !          1478: 
        !          1479: {yyval = immediate(yyvsp[0]); free(yyvsp[0]); ;
        !          1480: 
        !          1481:     break;}
        !          1482: 
        !          1483: case 25:
        !          1484: 
        !          1485: #line 67 "asm.y"
        !          1486: 
        !          1487: {yyval = indirect(yyvsp[-1]); free(yyvsp[-1]); ;
        !          1488: 
        !          1489:     break;}
        !          1490: 
        !          1491: case 26:
        !          1492: 
        !          1493: #line 68 "asm.y"
        !          1494: 
        !          1495: {yyval = postinc(yyvsp[-2]); free(yyvsp[-2]); ;
        !          1496: 
        !          1497:     break;}
        !          1498: 
        !          1499: case 27:
        !          1500: 
        !          1501: #line 69 "asm.y"
        !          1502: 
        !          1503: {yyval = predec(yyvsp[-1]); free(yyvsp[-1]); ;
        !          1504: 
        !          1505:     break;}
        !          1506: 
        !          1507: case 28:
        !          1508: 
        !          1509: #line 70 "asm.y"
        !          1510: 
        !          1511: {yyval = indexed(yyvsp[-3], yyvsp[-1]); free(yyvsp[-3]); free(yyvsp[-1]); ;
        !          1512: 
        !          1513:     break;}
        !          1514: 
        !          1515: case 29:
        !          1516: 
        !          1517: #line 71 "asm.y"
        !          1518: 
        !          1519: {yyval = sizedop(yyvsp[-2], yyvsp[0]); free(yyvsp[-2]); free(yyvsp[0]); ;
        !          1520: 
        !          1521:     break;}
        !          1522: 
        !          1523: case 30:
        !          1524: 
        !          1525: #line 72 "asm.y"
        !          1526: 
        !          1527: {yyval = twoindex(yyvsp[-5], yyvsp[-3], yyvsp[-1]);
        !          1528: 
        !          1529:                                free(yyvsp[-5]); free(yyvsp[-3]); free(yyvsp[-1]); ;
        !          1530: 
        !          1531:     break;}
        !          1532: 
        !          1533: case 31:
        !          1534: 
        !          1535: #line 74 "asm.y"
        !          1536: 
        !          1537: {yyval = bitfield(yyvsp[-5], yyvsp[-3], yyvsp[-1]);
        !          1538: 
        !          1539:                        free(yyvsp[-5]); free(yyvsp[-3]); free(yyvsp[-1]); ;
        !          1540: 
        !          1541:     break;}
        !          1542: 
        !          1543: case 32:
        !          1544: 
        !          1545: #line 78 "asm.y"
        !          1546: 
        !          1547: { yyval = yyvsp[0]; ;
        !          1548: 
        !          1549:     break;}
        !          1550: 
        !          1551: case 33:
        !          1552: 
        !          1553: #line 79 "asm.y"
        !          1554: 
        !          1555: { yyval = concat3(yyvsp[-2], yyvsp[-1], yyvsp[0]); free(yyvsp[-2]); free(yyvsp[-1]); free(yyvsp[0]); ;
        !          1556: 
        !          1557:     break;}
        !          1558: 
        !          1559: case 34:
        !          1560: 
        !          1561: #line 80 "asm.y"
        !          1562: 
        !          1563: { yyval = concat("-", yyvsp[0]); free(yyvsp[0]); ;
        !          1564: 
        !          1565:     break;}
        !          1566: 
        !          1567: case 35:
        !          1568: 
        !          1569: #line 82 "asm.y"
        !          1570: 
        !          1571: {yyval = wordlookup(yyvsp[0]); free(yyvsp[0]); ;
        !          1572: 
        !          1573:     break;}
        !          1574: 
        !          1575: case 36:
        !          1576: 
        !          1577: #line 83 "asm.y"
        !          1578: 
        !          1579: {yyval = hexop(yyvsp[0]); free(yyvsp[0]);;
        !          1580: 
        !          1581:     break;}
        !          1582: 
        !          1583: case 37:
        !          1584: 
        !          1585: #line 86 "asm.y"
        !          1586: 
        !          1587: { yyval = strdup("+"); ;
        !          1588: 
        !          1589:     break;}
        !          1590: 
        !          1591: case 38:
        !          1592: 
        !          1593: #line 87 "asm.y"
        !          1594: 
        !          1595: { yyval = strdup("-"); ;
        !          1596: 
        !          1597:     break;}
        !          1598: 
        !          1599: case 39:
        !          1600: 
        !          1601: #line 88 "asm.y"
        !          1602: 
        !          1603: { yyval = strdup("*"); ;
        !          1604: 
        !          1605:     break;}
        !          1606: 
        !          1607: case 40:
        !          1608: 
        !          1609: #line 89 "asm.y"
        !          1610: 
        !          1611: { yyval = strdup("/"); ;
        !          1612: 
        !          1613:     break;}
        !          1614: 
        !          1615: }
        !          1616: 
        !          1617:    /* the action file gets copied in in place of this dollarsign */
        !          1618: 
        !          1619: #line 442 "bison.simple"
        !          1620: 
        !          1621: 
        !          1622: 
        !          1623:   yyvsp -= yylen;
        !          1624: 
        !          1625:   yyssp -= yylen;
        !          1626: 
        !          1627: #ifdef YYLSP_NEEDED
        !          1628: 
        !          1629:   yylsp -= yylen;
        !          1630: 
        !          1631: #endif
        !          1632: 
        !          1633: 
        !          1634: 
        !          1635: #if YYDEBUG != 0
        !          1636: 
        !          1637:   if (yydebug)
        !          1638: 
        !          1639:     {
        !          1640: 
        !          1641:       short *ssp1 = yyss - 1;
        !          1642: 
        !          1643:       fprintf (stderr, "state stack now");
        !          1644: 
        !          1645:       while (ssp1 != yyssp)
        !          1646: 
        !          1647:        fprintf (stderr, " %d", *++ssp1);
        !          1648: 
        !          1649:       fprintf (stderr, "\n");
        !          1650: 
        !          1651:     }
        !          1652: 
        !          1653: #endif
        !          1654: 
        !          1655: 
        !          1656: 
        !          1657:   *++yyvsp = yyval;
        !          1658: 
        !          1659: 
        !          1660: 
        !          1661: #ifdef YYLSP_NEEDED
        !          1662: 
        !          1663:   yylsp++;
        !          1664: 
        !          1665:   if (yylen == 0)
        !          1666: 
        !          1667:     {
        !          1668: 
        !          1669:       yylsp->first_line = yylloc.first_line;
        !          1670: 
        !          1671:       yylsp->first_column = yylloc.first_column;
        !          1672: 
        !          1673:       yylsp->last_line = (yylsp-1)->last_line;
        !          1674: 
        !          1675:       yylsp->last_column = (yylsp-1)->last_column;
        !          1676: 
        !          1677:       yylsp->text = 0;
        !          1678: 
        !          1679:     }
        !          1680: 
        !          1681:   else
        !          1682: 
        !          1683:     {
        !          1684: 
        !          1685:       yylsp->last_line = (yylsp+yylen-1)->last_line;
        !          1686: 
        !          1687:       yylsp->last_column = (yylsp+yylen-1)->last_column;
        !          1688: 
        !          1689:     }
        !          1690: 
        !          1691: #endif
        !          1692: 
        !          1693: 
        !          1694: 
        !          1695:   /* Now "shift" the result of the reduction.
        !          1696: 
        !          1697:      Determine what state that goes to,
        !          1698: 
        !          1699:      based on the state we popped back to
        !          1700: 
        !          1701:      and the rule number reduced by.  */
        !          1702: 
        !          1703: 
        !          1704: 
        !          1705:   yyn = yyr1[yyn];
        !          1706: 
        !          1707: 
        !          1708: 
        !          1709:   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
        !          1710: 
        !          1711:   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
        !          1712: 
        !          1713:     yystate = yytable[yystate];
        !          1714: 
        !          1715:   else
        !          1716: 
        !          1717:     yystate = yydefgoto[yyn - YYNTBASE];
        !          1718: 
        !          1719: 
        !          1720: 
        !          1721:   goto yynewstate;
        !          1722: 
        !          1723: 
        !          1724: 
        !          1725: yyerrlab:   /* here on detecting error */
        !          1726: 
        !          1727: 
        !          1728: 
        !          1729:   if (! yyerrstatus)
        !          1730: 
        !          1731:     /* If not already recovering from an error, report this error.  */
        !          1732: 
        !          1733:     {
        !          1734: 
        !          1735:       ++yynerrs;
        !          1736: 
        !          1737: 
        !          1738: 
        !          1739: #ifdef YYERROR_VERBOSE
        !          1740: 
        !          1741:       yyn = yypact[yystate];
        !          1742: 
        !          1743: 
        !          1744: 
        !          1745:       if (yyn > YYFLAG && yyn < YYLAST)
        !          1746: 
        !          1747:        {
        !          1748: 
        !          1749:          int size = 0;
        !          1750: 
        !          1751:          char *msg;
        !          1752: 
        !          1753:          int x, count;
        !          1754: 
        !          1755: 
        !          1756: 
        !          1757:          count = 0;
        !          1758: 
        !          1759:          for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
        !          1760: 
        !          1761:            if (yycheck[x + yyn] == x)
        !          1762: 
        !          1763:              size += strlen(yytname[x]) + 15, count++;
        !          1764: 
        !          1765:          msg = (char *) malloc(size + 15);
        !          1766: 
        !          1767:          if (msg != 0)
        !          1768: 
        !          1769:            {
        !          1770: 
        !          1771:              strcpy(msg, "parse error");
        !          1772: 
        !          1773: 
        !          1774: 
        !          1775:              if (count < 5)
        !          1776: 
        !          1777:                {
        !          1778: 
        !          1779:                  count = 0;
        !          1780: 
        !          1781:                  for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
        !          1782: 
        !          1783:                    if (yycheck[x + yyn] == x)
        !          1784: 
        !          1785:                      {
        !          1786: 
        !          1787:                        strcat(msg, count == 0 ? ", expecting `" : " or `");
        !          1788: 
        !          1789:                        strcat(msg, yytname[x]);
        !          1790: 
        !          1791:                        strcat(msg, "'");
        !          1792: 
        !          1793:                        count++;
        !          1794: 
        !          1795:                      }
        !          1796: 
        !          1797:                }
        !          1798: 
        !          1799:              yyerror(msg);
        !          1800: 
        !          1801:              free(msg);
        !          1802: 
        !          1803:            }
        !          1804: 
        !          1805:          else
        !          1806: 
        !          1807:            yyerror ("parse error; also virtual memory exceeded");
        !          1808: 
        !          1809:        }
        !          1810: 
        !          1811:       else
        !          1812: 
        !          1813: #endif /* YYERROR_VERBOSE */
        !          1814: 
        !          1815:        yyerror("parse error");
        !          1816: 
        !          1817:     }
        !          1818: 
        !          1819: 
        !          1820: 
        !          1821:   goto yyerrlab1;
        !          1822: 
        !          1823: yyerrlab1:   /* here on error raised explicitly by an action */
        !          1824: 
        !          1825: 
        !          1826: 
        !          1827:   if (yyerrstatus == 3)
        !          1828: 
        !          1829:     {
        !          1830: 
        !          1831:       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
        !          1832: 
        !          1833: 
        !          1834: 
        !          1835:       /* return failure if at end of input */
        !          1836: 
        !          1837:       if (yychar == YYEOF)
        !          1838: 
        !          1839:        YYABORT;
        !          1840: 
        !          1841: 
        !          1842: 
        !          1843: #if YYDEBUG != 0
        !          1844: 
        !          1845:       if (yydebug)
        !          1846: 
        !          1847:        fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
        !          1848: 
        !          1849: #endif
        !          1850: 
        !          1851: 
        !          1852: 
        !          1853:       yychar = YYEMPTY;
        !          1854: 
        !          1855:     }
        !          1856: 
        !          1857: 
        !          1858: 
        !          1859:   /* Else will try to reuse lookahead token
        !          1860: 
        !          1861:      after shifting the error token.  */
        !          1862: 
        !          1863: 
        !          1864: 
        !          1865:   yyerrstatus = 3;             /* Each real token shifted decrements this */
        !          1866: 
        !          1867: 
        !          1868: 
        !          1869:   goto yyerrhandle;
        !          1870: 
        !          1871: 
        !          1872: 
        !          1873: yyerrdefault:  /* current state does not do anything special for the error token. */
        !          1874: 
        !          1875: 
        !          1876: 
        !          1877: #if 0
        !          1878: 
        !          1879:   /* This is wrong; only states that explicitly want error tokens
        !          1880: 
        !          1881:      should shift them.  */
        !          1882: 
        !          1883:   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
        !          1884: 
        !          1885:   if (yyn) goto yydefault;
        !          1886: 
        !          1887: #endif
        !          1888: 
        !          1889: 
        !          1890: 
        !          1891: yyerrpop:   /* pop the current state because it cannot handle the error token */
        !          1892: 
        !          1893: 
        !          1894: 
        !          1895:   if (yyssp == yyss) YYABORT;
        !          1896: 
        !          1897:   yyvsp--;
        !          1898: 
        !          1899:   yystate = *--yyssp;
        !          1900: 
        !          1901: #ifdef YYLSP_NEEDED
        !          1902: 
        !          1903:   yylsp--;
        !          1904: 
        !          1905: #endif
        !          1906: 
        !          1907: 
        !          1908: 
        !          1909: #if YYDEBUG != 0
        !          1910: 
        !          1911:   if (yydebug)
        !          1912: 
        !          1913:     {
        !          1914: 
        !          1915:       short *ssp1 = yyss - 1;
        !          1916: 
        !          1917:       fprintf (stderr, "Error: state stack now");
        !          1918: 
        !          1919:       while (ssp1 != yyssp)
        !          1920: 
        !          1921:        fprintf (stderr, " %d", *++ssp1);
        !          1922: 
        !          1923:       fprintf (stderr, "\n");
        !          1924: 
        !          1925:     }
        !          1926: 
        !          1927: #endif
        !          1928: 
        !          1929: 
        !          1930: 
        !          1931: yyerrhandle:
        !          1932: 
        !          1933: 
        !          1934: 
        !          1935:   yyn = yypact[yystate];
        !          1936: 
        !          1937:   if (yyn == YYFLAG)
        !          1938: 
        !          1939:     goto yyerrdefault;
        !          1940: 
        !          1941: 
        !          1942: 
        !          1943:   yyn += YYTERROR;
        !          1944: 
        !          1945:   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
        !          1946: 
        !          1947:     goto yyerrdefault;
        !          1948: 
        !          1949: 
        !          1950: 
        !          1951:   yyn = yytable[yyn];
        !          1952: 
        !          1953:   if (yyn < 0)
        !          1954: 
        !          1955:     {
        !          1956: 
        !          1957:       if (yyn == YYFLAG)
        !          1958: 
        !          1959:        goto yyerrpop;
        !          1960: 
        !          1961:       yyn = -yyn;
        !          1962: 
        !          1963:       goto yyreduce;
        !          1964: 
        !          1965:     }
        !          1966: 
        !          1967:   else if (yyn == 0)
        !          1968: 
        !          1969:     goto yyerrpop;
        !          1970: 
        !          1971: 
        !          1972: 
        !          1973:   if (yyn == YYFINAL)
        !          1974: 
        !          1975:     YYACCEPT;
        !          1976: 
        !          1977: 
        !          1978: 
        !          1979: #if YYDEBUG != 0
        !          1980: 
        !          1981:   if (yydebug)
        !          1982: 
        !          1983:     fprintf(stderr, "Shifting error token, ");
        !          1984: 
        !          1985: #endif
        !          1986: 
        !          1987: 
        !          1988: 
        !          1989:   *++yyvsp = yylval;
        !          1990: 
        !          1991: #ifdef YYLSP_NEEDED
        !          1992: 
        !          1993:   *++yylsp = yylloc;
        !          1994: 
        !          1995: #endif
        !          1996: 
        !          1997: 
        !          1998: 
        !          1999:   yystate = yyn;
        !          2000: 
        !          2001:   goto yynewstate;
        !          2002: 
        !          2003: }
        !          2004: 
        !          2005: #line 91 "asm.y"
        !          2006: 
        !          2007: 
        !          2008: 
        !          2009: #include <setjmp.h>
        !          2010: 
        !          2011: 
        !          2012: 
        !          2013: jmp_buf start;
        !          2014: 
        !          2015: 
        !          2016: 
        !          2017: #ifdef NATIVEATARI
        !          2018: 
        !          2019: #define STACK 32*1024L;
        !          2020: 
        !          2021: #ifdef LATTICE
        !          2022: 
        !          2023: long _STACK = STACK;
        !          2024: 
        !          2025: #endif
        !          2026: 
        !          2027: #ifdef __GNUC__
        !          2028: 
        !          2029: long _stksize = STACK;
        !          2030: 
        !          2031: #endif
        !          2032: 
        !          2033: 
        !          2034: 
        !          2035: static void
        !          2036: 
        !          2037: hit_return()
        !          2038: 
        !          2039: {
        !          2040: 
        !          2041:        printf("Hit return to continue\n");
        !          2042: 
        !          2043:        fflush(stdout);
        !          2044: 
        !          2045:        getchar();
        !          2046: 
        !          2047: }
        !          2048: 
        !          2049: #endif
        !          2050: 
        !          2051: 
        !          2052: 
        !          2053: void usage()
        !          2054: 
        !          2055: {
        !          2056: 
        !          2057:        fprintf(stderr, "Usage: asmtrans [-gas][-asm][-o outfile] infile\n");
        !          2058: 
        !          2059:        exit(2);
        !          2060: 
        !          2061: }
        !          2062: 
        !          2063: 
        !          2064: 
        !          2065: int errors = 0;
        !          2066: 
        !          2067: 
        !          2068: 
        !          2069: void
        !          2070: 
        !          2071: do_include(file)
        !          2072: 
        !          2073:        char *file;
        !          2074: 
        !          2075: {
        !          2076: 
        !          2077:        jmp_buf save;
        !          2078: 
        !          2079:        FILE *oldin, *f;
        !          2080: 
        !          2081: 
        !          2082: 
        !          2083:        f = fopen(file, "r");
        !          2084: 
        !          2085:        if (!f) {
        !          2086: 
        !          2087:                perror(file);
        !          2088: 
        !          2089:                return;
        !          2090: 
        !          2091:        }
        !          2092: 
        !          2093:        bcopy(start, save, sizeof(jmp_buf));
        !          2094: 
        !          2095:        oldin = infile;
        !          2096: 
        !          2097:        infile = f;
        !          2098: 
        !          2099:        setjmp(start);
        !          2100: 
        !          2101:        yyparse();
        !          2102: 
        !          2103:        fclose(f);
        !          2104: 
        !          2105:        infile = oldin;
        !          2106: 
        !          2107:        bcopy(save, start, sizeof(jmp_buf));
        !          2108: 
        !          2109:        longjmp(start,1);
        !          2110: 
        !          2111: }
        !          2112: 
        !          2113: 
        !          2114: 
        !          2115: /* set up initial definitions based on syntax type */
        !          2116: 
        !          2117: 
        !          2118: 
        !          2119: void
        !          2120: 
        !          2121: do_initial_defs()
        !          2122: 
        !          2123: {
        !          2124: 
        !          2125:        if (syntax == GAS) {
        !          2126: 
        !          2127:                do_define("fpiar", "fpi");
        !          2128: 
        !          2129:                do_define("XREF", ".globl");
        !          2130: 
        !          2131:                do_define("XDEF", ".globl");
        !          2132: 
        !          2133:                do_define("TEXT", ".text");
        !          2134: 
        !          2135:                do_define("DATA", ".data");
        !          2136: 
        !          2137:        /* gas doesn't have a .bss directive */
        !          2138: 
        !          2139:                do_define("BSS", ".data");
        !          2140: 
        !          2141:                do_define("END", "| END");
        !          2142: 
        !          2143:                do_define("dc.l", ".long");
        !          2144: 
        !          2145:                do_define("dc.w", ".word");
        !          2146: 
        !          2147:                do_define("dc.b", ".byte");
        !          2148: 
        !          2149:        } else if (syntax == ASM) {
        !          2150: 
        !          2151:                do_define("TEXT", "SECTION TEXT");
        !          2152: 
        !          2153:                do_define("DATA", "SECTION DATA");
        !          2154: 
        !          2155:                do_define("BSS", "SECTION BSS");
        !          2156: 
        !          2157:        }
        !          2158: 
        !          2159: }
        !          2160: 
        !          2161: 
        !          2162: 
        !          2163: int
        !          2164: 
        !          2165: main (argc, argv)
        !          2166: 
        !          2167:        int argc; char **argv;
        !          2168: 
        !          2169: {
        !          2170: 
        !          2171:        FILE *f;
        !          2172: 
        !          2173: #ifdef NATIVEATARI
        !          2174: 
        !          2175:        if (!argv[0] || !argv[0][0])    /* run from desktop? */
        !          2176: 
        !          2177:                atexit(hit_return);
        !          2178: 
        !          2179: #endif
        !          2180: 
        !          2181:        argv++;
        !          2182: 
        !          2183:        outfile = stdout;
        !          2184: 
        !          2185: 
        !          2186: 
        !          2187:        while (*argv) {
        !          2188: 
        !          2189:                if (!strcmp(*argv, "-o")) {
        !          2190: 
        !          2191:                        argv++;
        !          2192: 
        !          2193:                        if (*argv == 0) {
        !          2194: 
        !          2195:                                fprintf(stderr, "missing argument to -o\n");
        !          2196: 
        !          2197:                                usage();
        !          2198: 
        !          2199:                        }
        !          2200: 
        !          2201:                        f = fopen(*argv, "w");
        !          2202: 
        !          2203:                        if (!f)
        !          2204: 
        !          2205:                                perror(*argv);
        !          2206: 
        !          2207:                        else
        !          2208: 
        !          2209:                                outfile = f;
        !          2210: 
        !          2211:                        argv++;
        !          2212: 
        !          2213:                } else if (!strcmp(*argv, "-gas")) {
        !          2214: 
        !          2215:                        argv++;
        !          2216: 
        !          2217:                        syntax = GAS;
        !          2218: 
        !          2219:                } else if (!strcmp(*argv, "-asm")) {
        !          2220: 
        !          2221:                        argv++;
        !          2222: 
        !          2223:                        syntax = ASM;
        !          2224: 
        !          2225:                } else if (!strcmp(*argv, "-purec")) {
        !          2226: 
        !          2227:                        argv++;
        !          2228: 
        !          2229:                        syntax = PUREC;
        !          2230: 
        !          2231:                } else if (!strncmp(*argv, "-D", 2)) {
        !          2232: 
        !          2233:                        char *word, *defn;
        !          2234: 
        !          2235:                        word = *argv+2;
        !          2236: 
        !          2237:                        defn = index(word,'=');
        !          2238: 
        !          2239:                        if (defn)
        !          2240: 
        !          2241:                                *defn++ = '\0';
        !          2242: 
        !          2243:                        else
        !          2244: 
        !          2245:                                defn = "1";
        !          2246: 
        !          2247:                        if (*word) do_define(word,defn);
        !          2248: 
        !          2249:                        argv++;
        !          2250: 
        !          2251:                } else if (!strcmp(*argv, "--")) {
        !          2252: 
        !          2253:                        argv++;
        !          2254: 
        !          2255:                        break;
        !          2256: 
        !          2257:                } else {
        !          2258: 
        !          2259:                        if (**argv == '-') {
        !          2260: 
        !          2261:                                fprintf(stderr, "unknown option: %s\n",
        !          2262: 
        !          2263:                                        *argv);
        !          2264: 
        !          2265:                                usage();
        !          2266: 
        !          2267:                        }
        !          2268: 
        !          2269:                        break;
        !          2270: 
        !          2271:                }
        !          2272: 
        !          2273:        }
        !          2274: 
        !          2275: 
        !          2276: 
        !          2277:        do_initial_defs();
        !          2278: 
        !          2279: 
        !          2280: 
        !          2281:        if (*argv == 0) {
        !          2282: 
        !          2283:                setjmp(start);
        !          2284: 
        !          2285:                infile = stdin;
        !          2286: 
        !          2287:                yyparse();
        !          2288: 
        !          2289:        } else {
        !          2290: 
        !          2291:            while(*argv) {
        !          2292: 
        !          2293:                if (!(f = fopen(*argv, "r")))
        !          2294: 
        !          2295:                        perror(*argv);
        !          2296: 
        !          2297:                else {
        !          2298: 
        !          2299:                        infile = f;
        !          2300: 
        !          2301:                        setjmp(start);
        !          2302: 
        !          2303:                        yyparse();
        !          2304: 
        !          2305:                        fclose(f);
        !          2306: 
        !          2307:                }
        !          2308: 
        !          2309:                argv++;
        !          2310: 
        !          2311:            }
        !          2312: 
        !          2313:        }
        !          2314: 
        !          2315: 
        !          2316: 
        !          2317:        if (ifstkptr != 0) {
        !          2318: 
        !          2319:                fputs("%ifdef without matching %endif\n", stderr);
        !          2320: 
        !          2321:                errors++;
        !          2322: 
        !          2323:        }
        !          2324: 
        !          2325:        return errors;
        !          2326: 
        !          2327: }
        !          2328: 
        !          2329: 
        !          2330: 
        !          2331: void
        !          2332: 
        !          2333: yyerror (s)  /* Called by yyparse on error */
        !          2334: 
        !          2335:      char *s;
        !          2336: 
        !          2337: {
        !          2338: 
        !          2339:        errors++;
        !          2340: 
        !          2341:        printf("%s\n", s);
        !          2342: 
        !          2343:        longjmp(start, 1);
        !          2344: 
        !          2345: }
        !          2346: 
        !          2347: 
        !          2348: 
        !          2349: void dbgmsg(s) char *s;
        !          2350: 
        !          2351: {
        !          2352: 
        !          2353:        fprintf(stderr, "%s\n", s);
        !          2354: 
        !          2355: }
        !          2356: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.