home *** CD-ROM | disk | FTP | other *** search
/ Mega Top 1 / os2_top1.zip / os2_top1 / APPS / TEKST / TXI2IPF1 / SOURCE.ZIP / scan.cc < prev    next >
Encoding:
C/C++ Source or Header  |  1993-02-11  |  81.3 KB  |  2,758 lines

  1. /* A lexical scanner generated by flex */
  2.  
  3. /* scanner skeleton version:
  4.  * $Header: f:/SRC.SSB/flex/flex.skel,v 1.1.1.1 1992/04/22 12:07:56 ak Exp $
  5.  */
  6.  
  7. #define FLEX_SCANNER
  8.  
  9.  
  10. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  11. #ifdef c_plusplus
  12. #ifndef __cplusplus
  13. #define __cplusplus
  14. #endif
  15. #endif
  16.  
  17.  
  18. #ifdef __cplusplus
  19.  
  20. extern "C" {
  21. #include <stdio.h>
  22. #include <stdlib.h>
  23. #include <osfcn.h>
  24. }
  25.  
  26. /* use prototypes in function declarations */
  27. #define YY_USE_PROTOS
  28.  
  29. /* the "const" storage-class-modifier is valid */
  30. #define YY_USE_CONST
  31.  
  32. #else    /* ! __cplusplus */
  33.  
  34. #include <stdio.h>
  35.  
  36. #ifdef __STDC__
  37.  
  38. #ifdef __GNUC__
  39. #include <stddef.h>
  40. void *malloc( size_t );
  41. void free( void* );
  42. #else
  43. #include <stdlib.h>
  44. #endif    /* __GNUC__ */
  45.  
  46. #define YY_USE_PROTOS
  47. #define YY_USE_CONST
  48.  
  49. #endif    /* __STDC__ */
  50. #endif    /* ! __cplusplus */
  51.  
  52.  
  53. #ifdef __TURBOC__
  54. #define YY_USE_CONST
  55. #endif
  56.  
  57.  
  58. #ifndef YY_USE_CONST
  59. #define const
  60. #endif
  61.  
  62.  
  63. #ifdef YY_USE_PROTOS
  64. #define YY_PROTO(proto) proto
  65. #else
  66. #define YY_PROTO(proto) ()
  67. /* we can't get here if it's an ANSI C compiler, or a C++ compiler,
  68.  * so it's got to be a K&R compiler, and therefore there's no standard
  69.  * place from which to include these definitions
  70.  */
  71. char *malloc();
  72. int free();
  73. int read();
  74. #endif
  75.  
  76.  
  77. /* amount of stuff to slurp up with each read */
  78. #ifndef YY_READ_BUF_SIZE
  79. #define YY_READ_BUF_SIZE 8192
  80. #endif
  81.  
  82. /* returned upon end-of-file */
  83. #define YY_END_TOK 0
  84.  
  85. /* copy whatever the last rule matched to the standard output */
  86.  
  87. /* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */
  88. /* this used to be an fputs(), but since the string might contain NUL's,
  89.  * we now use fwrite()
  90.  */
  91. #define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout )
  92.  
  93. /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  94.  * is returned in "result".
  95.  */
  96. #define YY_INPUT(buf,result,max_size) \
  97.     if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
  98.         YY_FATAL_ERROR( "read() in flex scanner failed" );
  99. #define YY_NULL 0
  100.  
  101. /* no semi-colon after return; correct usage is to write "yyterminate();" -
  102.  * we don't want an extra ';' after the "return" because that will cause
  103.  * some compilers to complain about unreachable statements.
  104.  */
  105. #define yyterminate() return ( YY_NULL )
  106.  
  107. /* report a fatal error */
  108.  
  109. /* The funky do-while is used to turn this macro definition into
  110.  * a single C statement (which needs a semi-colon terminator).
  111.  * This avoids problems with code like:
  112.  *
  113.  *     if ( something_happens )
  114.  *        YY_FATAL_ERROR( "oops, the something happened" );
  115.  *    else
  116.  *        everything_okay();
  117.  *
  118.  * Prior to using the do-while the compiler would get upset at the
  119.  * "else" because it interpreted the "if" statement as being all
  120.  * done when it reached the ';' after the YY_FATAL_ERROR() call.
  121.  */
  122.  
  123. #define YY_FATAL_ERROR(msg) \
  124.     do \
  125.         { \
  126.         (void) fputs( msg, stderr ); \
  127.         (void) putc( '\n', stderr ); \
  128.         exit( 1 ); \
  129.         } \
  130.     while ( 0 )
  131.  
  132. /* default yywrap function - always treat EOF as an EOF */
  133. #define yywrap() 1
  134.  
  135. /* enter a start condition.  This macro really ought to take a parameter,
  136.  * but we do it the disgusting crufty way forced on us by the ()-less
  137.  * definition of BEGIN
  138.  */
  139. #define BEGIN yy_start = 1 + 2 *
  140.  
  141. /* action number for EOF rule of a given start state */
  142. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  143.  
  144. /* special action meaning "start processing a new file" */
  145. #define YY_NEW_FILE \
  146.     do \
  147.         { \
  148.         yy_init_buffer( yy_current_buffer, yyin ); \
  149.         yy_load_buffer_state(); \
  150.         } \
  151.     while ( 0 )
  152.  
  153. /* default declaration of generated scanner - a define so the user can
  154.  * easily add parameters
  155.  */
  156. #define YY_DECL int yylex YY_PROTO(( void )) 
  157.  
  158. /* code executed at the end of each rule */
  159. #define YY_BREAK break;
  160.  
  161. #define YY_END_OF_BUFFER_CHAR 0
  162.  
  163. #ifndef YY_BUF_SIZE
  164. #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */
  165. #endif
  166.  
  167. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  168.  
  169. #define FLEX_DEBUG
  170. #define YY_CHAR unsigned char
  171. # line 1 "scan.l"
  172. #define INITIAL 0
  173. # line 2 "scan.l"
  174. /*****************************************************************************
  175.  * $Id: scan.l,v 1.8 1993/02/10 21:25:53 ak Exp $
  176.  *****************************************************************************
  177.  * $Log: scan.l,v $
  178.  * Revision 1.8  1993/02/10  21:25:53  ak
  179.  * *** empty log message ***
  180.  *
  181.  * Revision 1.7  1993/02/10  20:58:19  ak
  182.  * Pass menues.
  183.  *
  184.  * Revision 1.6  1993/02/06  00:15:13  ak
  185.  * *** empty log message ***
  186.  *
  187.  * Revision 1.5  1993/02/06  00:09:53  ak
  188.  * *** empty log message ***
  189.  *
  190.  * Revision 1.4  1993/02/05  23:44:06  ak
  191.  * Bugfixes and cosmetic changes.
  192.  *
  193.  * Revision 1.3  1993/02/04  17:51:18  ak
  194.  * *** empty log message ***
  195.  *
  196.  * Revision 1.2  1993/02/04  15:28:58  ak
  197.  * *** empty log message ***
  198.  *
  199.  * Revision 1.1.1.1  1993/02/04  15:21:54  ak
  200.  * Texinfo -> OS/2 IPF/INF converter.
  201.  *
  202.  * Revision 1.1  1993/02/04  15:21:51  ak
  203.  * Initial revision
  204.  *
  205.  *****************************************************************************/
  206.  
  207. static char *rcsid = "$Id: scan.l,v 1.8 1993/02/10 21:25:53 ak Exp $";
  208.  
  209. #include "info.h"
  210. #include <ctype.h>
  211. #include <io.h>
  212. #include <strstream.h>
  213. extern "C" char *strupr(char *);
  214.  
  215. String & arg();
  216. String & eol();
  217. void unexpected(const char *);
  218. void footnote();
  219. void skip();
  220. void dot();
  221. void include(const char *);
  222.  
  223. const int    MaxIncl = 10;
  224. YY_BUFFER_STATE inclstack[MaxIncl];
  225. int        incllevel = 0;
  226. #define TABLE 1
  227. #define MENU 2
  228. #define FALSE 3
  229. #define IGNORE 4
  230. #define TEX 5
  231. #define TITLE 6
  232. # line 58 "scan.l"
  233.  
  234. /* done after the current pattern has been matched and before the
  235.  * corresponding action - sets up yytext
  236.  */
  237. #define YY_DO_BEFORE_ACTION \
  238.     yytext = yy_bp; \
  239.     yyleng = yy_cp - yy_bp; \
  240.     yy_hold_char = *yy_cp; \
  241.     *yy_cp = '\0'; \
  242.     yy_c_buf_p = yy_cp;
  243.  
  244. #define EOB_ACT_CONTINUE_SCAN 0
  245. #define EOB_ACT_END_OF_FILE 1
  246. #define EOB_ACT_LAST_MATCH 2
  247.  
  248. /* return all but the first 'n' matched characters back to the input stream */
  249. #define yyless(n) \
  250.     do \
  251.         { \
  252.         /* undo effects of setting up yytext */ \
  253.         *yy_cp = yy_hold_char; \
  254.         yy_c_buf_p = yy_cp = yy_bp + n; \
  255.         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  256.         } \
  257.     while ( 0 )
  258.  
  259. #define unput(c) yyunput( c, yytext )
  260.  
  261.  
  262. struct yy_buffer_state
  263.     {
  264.     FILE *yy_input_file;
  265.  
  266.     YY_CHAR *yy_ch_buf;        /* input buffer */
  267.     YY_CHAR *yy_buf_pos;    /* current position in input buffer */
  268.  
  269.     /* size of input buffer in bytes, not including room for EOB characters*/
  270.     int yy_buf_size;    
  271.  
  272.     /* number of characters read into yy_ch_buf, not including EOB characters */
  273.     int yy_n_chars;
  274.  
  275.     int yy_eof_status;        /* whether we've seen an EOF on this buffer */
  276. #define EOF_NOT_SEEN 0
  277.     /* "pending" happens when the EOF has been seen but there's still
  278.      * some text process
  279.      */
  280. #define EOF_PENDING 1
  281. #define EOF_DONE 2
  282.     };
  283.  
  284. static YY_BUFFER_STATE yy_current_buffer;
  285.  
  286. /* we provide macros for accessing buffer states in case in the
  287.  * future we want to put the buffer states in a more general
  288.  * "scanner state"
  289.  */
  290. #define YY_CURRENT_BUFFER yy_current_buffer
  291.  
  292.  
  293. /* yy_hold_char holds the character lost when yytext is formed */
  294. static YY_CHAR yy_hold_char;
  295.  
  296. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  297.  
  298.  
  299.  
  300. #ifndef YY_USER_ACTION
  301. #define YY_USER_ACTION
  302. #endif
  303.  
  304. #ifndef YY_USER_INIT
  305. #define YY_USER_INIT
  306. #endif
  307.  
  308. extern YY_CHAR *yytext;
  309. extern int yyleng;
  310. extern FILE *yyin, *yyout;
  311.  
  312. YY_CHAR *yytext;
  313. int yyleng;
  314.  
  315. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  316.  
  317. #define YY_END_OF_BUFFER 224
  318. typedef int yy_state_type;
  319. static const short int yy_accept[1027] =
  320.     {   0,
  321.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  322.         0,    0,    0,    0,  224,  222,  216,  217,  215,  219,
  323.       218,  222,  222,  220,  221,  223,   94,   95,  223,  136,
  324.       133,  135,  136,  136,  105,  104,  105,  115,  114,  115,
  325.       187,  186,  187,  199,  198,  199,  214,    1,    2,    3,
  326.         4,  214,  214,  214,   17,  214,  214,  214,  214,  214,
  327.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  328.       214,  214,  214,  214,  214,    5,    6,    0,    0,   89,
  329.         0,    0,    0,    0,   90,    0,   91,    0,   92,    0,
  330.       133,    0,  134,  132,    0,    0,    0,    0,    0,  214,
  331.  
  332.       214,  214,  214,  214,  214,   14,  214,  214,  214,  214,
  333.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  334.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  335.       214,  214,  214,  214,  100,  214,  214,  214,  214,  214,
  336.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  337.       214,  214,  152,  214,  214,  214,  214,  214,  169,  214,
  338.       214,  214,  214,  214,  214,  214,  214,  214,  179,  214,
  339.       214,  214,  214,  214,  211,  214,    0,    0,    0,    0,
  340.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  341.         0,    0,  214,  214,  214,  214,  214,   16,  214,  214,
  342.  
  343.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  344.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  345.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  346.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  347.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  348.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  349.       157,  214,  159,  214,  214,  214,  214,  214,  214,  214,
  350.       184,  214,  214,  214,  214,  201,  180,  214,  214,  214,
  351.       214,  214,  214,    0,    0,    0,    0,   86,    0,    0,
  352.        81,   82,    0,   84,    0,    0,    0,    0,    0,    0,
  353.  
  354.       214,   12,  214,  214,  214,  214,  214,  214,  214,  214,
  355.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  356.       214,  214,  214,  214,   49,  214,   52,  214,  214,    0,
  357.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  358.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  359.       214,  214,  214,  214,  120,  124,  125,  214,  127,  214,
  360.       130,  214,  138,  139,  214,  214,  214,  143,  214,  214,
  361.       214,  214,  214,  214,  214,  153,  214,  214,  214,  214,
  362.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  363.       214,  214,  214,  214,  214,  214,  214,  206,  214,  214,
  364.  
  365.       214,  214,    0,   88,   87,   80,   93,   85,   83,    0,
  366.         0,    0,    0,    0,  183,  214,  214,  214,  214,  214,
  367.       214,  214,  214,   24,   25,   26,  214,  214,  214,  214,
  368.        31,   32,  214,  214,  214,   37,  214,   40,  214,   45,
  369.       214,   47,  214,    0,   54,  213,  213,  213,  213,  213,
  370.       213,  213,  213,  213,  213,  213,  213,  214,  214,  214,
  371.       214,  214,  214,  214,  214,  214,   67,  214,  214,  214,
  372.       214,  214,  214,   96,  214,  214,  214,  108,  110,  214,
  373.       214,  214,  214,  123,  214,  214,  214,  214,  214,  214,
  374.       214,  214,  214,  214,  214,  214,  214,  214,  156,  214,
  375.  
  376.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  377.       214,  214,  214,  181,  214,  214,  214,  214,  214,  194,
  378.       214,  214,  214,  208,  214,  212,  119,    0,    0,    0,
  379.         0,    0,  214,   13,  214,  214,   20,  214,  214,   23,
  380.       214,  214,  214,  214,   33,  214,   35,  214,   38,  214,
  381.       214,   46,  214,   53,  213,  213,  213,  213,  213,  213,
  382.       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
  383.       214,    0,    0,  214,  214,  214,  214,  214,   65,  214,
  384.       214,   69,  214,  214,  214,   76,   78,  214,  214,  106,
  385.       112,  214,  214,  214,  126,  214,    0,  214,  214,  214,
  386.  
  387.       214,  145,    0,  214,    0,  149,  214,  154,  214,  214,
  388.       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  389.       214,  214,  214,  214,  214,  214,  214,  214,  214,  193,
  390.       214,  214,    0,  214,  207,  209,    0,    0,    0,    0,
  391.         0,  214,    0,  214,  214,   22,   27,  214,  214,  214,
  392.        34,  214,   39,  214,   50,  213,  213,  213,  213,  213,
  393.       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
  394.       213,  213,  213,  213,  214,   57,   58,  214,  214,  214,
  395.       214,   63,  214,  214,  214,  214,  214,   98,  101,  116,
  396.       118,  121,  214,  137,  214,  214,  214,  214,  146,  214,
  397.  
  398.       147,  214,    0,  158,  214,  214,  214,  214,  214,  214,
  399.       214,  170,  214,  214,  214,  214,  214,  214,  214,  214,
  400.       214,  214,  214,  214,  214,  214,  200,  214,    0,  103,
  401.         0,  185,    0,    7,   15,  214,  214,   28,  214,  214,
  402.       214,  214,  214,  213,   48,  213,  213,  213,  213,  213,
  403.       213,  213,  213,  213,  213,  213,  213,  128,  213,  213,
  404.       213,  213,  214,  214,  214,  214,  214,  214,   68,  214,
  405.       214,  214,   99,  214,  140,  214,  214,  214,  214,  214,
  406.       155,  214,  214,  162,  214,  214,  214,  214,  214,  214,
  407.       214,  214,  175,  214,  214,  178,  214,  190,  191,  214,
  408.  
  409.       214,  214,  214,  131,    0,    0,  214,   18,  214,  214,
  410.        30,   36,   41,  214,  214,   43,  213,  213,  213,  213,
  411.       213,  213,  213,   97,  213,  213,  109,  111,  213,  213,
  412.       213,  182,  213,   55,  214,  214,  214,  214,  214,   70,
  413.       214,  214,   74,  214,  214,  214,  214,  214,  150,  214,
  414.       214,  214,  164,  214,  167,  214,  214,  214,  214,  214,
  415.       214,  214,  192,  214,  196,  214,    0,    0,  214,  214,
  416.       214,    0,   42,   44,  213,  213,  213,  213,  213,  213,
  417.        77,   79,  213,  107,  213,  213,  213,  213,  210,  214,
  418.       214,  214,  214,    0,   72,  214,  214,  141,  142,  214,
  419.  
  420.       148,  214,  214,  214,  214,  171,  172,  214,  214,  214,
  421.       214,  214,  195,  202,  113,    0,    8,  214,   21,   29,
  422.       213,   51,  213,   64,  213,  213,  102,  122,  213,  213,
  423.       213,   59,   60,  214,  214,   66,  214,  214,  214,  214,
  424.       161,  214,  214,  214,  214,  214,  214,  188,  214,    0,
  425.       214,  214,  213,  213,  213,  213,  213,  213,  213,   61,
  426.        62,  214,  129,  214,  214,  214,  165,  214,  214,  214,
  427.       177,  214,  214,  214,    0,  214,  214,  214,   19,   56,
  428.        71,  213,  151,  213,  168,   75,  214,  214,  163,  173,
  429.       174,  214,  214,  203,  214,  197,  214,   10,  214,   73,
  430.  
  431.       213,  214,  214,  214,  214,  214,    9,  214,  213,  144,
  432.       214,  176,  189,  214,  214,  214,  166,  214,  204,  214,
  433.        11,  160,  214,  214,  205,    0
  434.     } ;
  435.  
  436. static const YY_CHAR yy_ec[256] =
  437.     {   0,
  438.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  439.         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
  440.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  441.         1,    5,    1,    1,    1,    6,    1,    7,    1,    1,
  442.         1,    8,    1,    1,    6,    9,    1,    6,    6,    6,
  443.         6,    6,    6,    6,    6,    6,    6,   10,    1,    1,
  444.         1,    1,    1,   11,    6,    6,    6,    6,    6,    6,
  445.         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
  446.         6,    6,    6,   12,    6,    6,    6,   13,    6,    6,
  447.         1,   14,    1,    1,    6,    1,   15,   16,   17,   18,
  448.  
  449.        19,   20,   21,   22,   23,   24,   25,   26,   27,   28,
  450.        29,   30,   31,   32,   33,   34,   35,   36,   37,   38,
  451.        39,   40,   41,    1,   42,    1,    1,    1,    1,    1,
  452.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  453.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  454.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  455.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  456.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  457.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  458.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  459.  
  460.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  461.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  462.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  463.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  464.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  465.         1,    1,    1,    1,    1
  466.     } ;
  467.  
  468. static const YY_CHAR yy_meta[43] =
  469.     {   0,
  470.         1,    1,    1,    1,    1,    2,    1,    1,    1,    1,
  471.         1,    2,    2,    1,    3,    3,    3,    3,    3,    3,
  472.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  473.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  474.         1,    1
  475.     } ;
  476.  
  477. static const short int yy_base[1038] =
  478.     {   0,
  479.         0,   40,   10,   14,   21,   25,   28,   34,   35,   37,
  480.        49,   50,   52,   53, 1081, 1082, 1082, 1082, 1082, 1082,
  481.      1082,   77, 1057, 1082, 1082, 1082, 1082, 1082,  105, 1082,
  482.         0,   63,   57, 1060, 1082, 1082, 1059, 1082, 1082, 1058,
  483.      1082, 1082, 1057, 1082, 1082, 1056,    0, 1082, 1082, 1082,
  484.      1082, 1055,   37,   34,  127,  125,  130,  106, 1041, 1053,
  485.       143,   55, 1048,   61,  107, 1052,  150, 1034,   16,  174,
  486.       199, 1040,  152, 1026, 1034, 1082, 1082, 1037, 1031, 1082,
  487.       104, 1043, 1035, 1038, 1082,  115, 1082, 1045, 1082, 1044,
  488.       167,  178, 1082,  185, 1030, 1029, 1028, 1027, 1026, 1040,
  489.  
  490.      1022, 1028, 1016, 1023, 1029, 1082, 1015, 1018, 1030,  142,
  491.      1025,  189, 1014, 1022, 1013, 1007, 1011, 1004, 1007,  125,
  492.      1001, 1003, 1015,  180,   51,  998,  165, 1017, 1002, 1015,
  493.       203, 1001,  182, 1009, 1082, 1009,  987,  997,  991,  999,
  494.       994,  993, 1001,  182, 1001,  171,  990,  994,  993,  983,
  495.       985,  191, 1082,  986,  971,  189,  982,  995,    0,  977,
  496.       211,  980,  991,  968,  982,  197,    4,  963, 1082,  975,
  497.       970,  973,  975,  984, 1082,  979,  967,  973,  961,  976,
  498.       965,  962,  965,  972,  950,  961,  955,  968,  967,  966,
  499.       965,  964,  940,  961,  946,  956,  951,    0,  942,  941,
  500.  
  501.       944,  955,  953,  956,  951,  942,  934,  928,  936,  224,
  502.       924,  934,  922,  929,  939,  955,  932,  935,  928,  119,
  503.       929,  936,  939,  934,  197,  919,  917,  923,  933,  913,
  504.       929,  920,  917,  925,  924,  913,  915,  911,  912,  897,
  505.       896,  918,  905,  905,  898,  897,  913,  911,  901,  210,
  506.       909,  912,  908,  897,  896,  904,  888,  211,  886,  890,
  507.      1082,  885,  222,  886,  891,  887,  221,  888,  212,  888,
  508.         0,  880,  894,  885,  895,    0, 1082,  874,  867,  889,
  509.       883,  889,  884,  868,  869,  882,  881, 1082,  877,  879,
  510.      1082, 1082,  867, 1082,  891,  890,  889,  888,  887,  849,
  511.  
  512.       862,    0,  860,  869,  858,  867,  227,  866,  843,  851,
  513.       841,  862,  861,  847,  851,  841,  848,  839,  159,  844,
  514.       843,  232,  844,  231, 1082,  845, 1082,  829,  828,  255,
  515.       849,  831,  834,  228,  826,  834,  835,  834,  820,  834,
  516.       840,  836,  829,  841,  829,  824,  830,  833,  831,  816,
  517.       811,  816,  812,  814,  241, 1082, 1082,  826,    0,  812,
  518.         0,  810,    0,    0,  824,  812,  821,    0,  818,  819,
  519.       803,  802,  815,  819,  807, 1082,  806,  790,  807,  807,
  520.       805,  804,  792,  799,  796,  804,  247,  799,  806,  791,
  521.       791,  799,  250,  798,  797,  776,  787, 1082,  794,  782,
  522.  
  523.       785,  769,  775, 1082, 1082, 1082, 1082, 1082, 1082,  781,
  524.       784,  783,  771,  770, 1082,  785,  770,  767,  765,  767,
  525.       779,  778,  758, 1082,    0, 1082,  767,  766,  770,  777,
  526.         0,  753,  775,  772,  754,  753,  767,    0,  755,    0,
  527.       752,    0,  768,  740, 1082,    0,  766,  246,  249,  264,
  528.       748,  263,  756,  743,  750,  761,  741,  742,  732,  731,
  529.       742,  751,  272,  743,  734,  734, 1082,  737,  727,  269,
  530.       735,  729,  743,    0,  733,  745,  730,    0,    0,  739,
  531.       739,  737,  715,    0,  716,  731,  711,  732,  721,  734,
  532.       716,  709,  705,  262,  704,  710,  717,  708, 1082,  712,
  533.  
  534.       725,  713,  704,  720,  280,  715,  720,  717,  717,  698,
  535.       699,  712,  711,    0,  706,  704,  711,  702,  686,  280,
  536.       682,  706,  683,    0,  701, 1082, 1082,  700,  698,  696,
  537.       697,  692,  691,    0,  672,  695,    0,  696,  678,    0,
  538.       675,  674,  686,  674,    0,  673,    0,  682,    0,  686,
  539.       683,    0,  662, 1082,  668,  679,  665,  662,  681,  660,
  540.       662,  678,  663,  285,  672,  657,  660,  673,  671,  671,
  541.       670,  642,  641,  653,  666,  651,  660,  659,    0,  654,
  542.       641,    0,  656,  651,  639,    0,    0,  651,  639,    0,
  543.         0,  651,  649,  649,    0,  648,  624,  637,  630,  645,
  544.  
  545.       647,    0,  619,  632,  617, 1082,  635,    0,  616,  628,
  546.       625,  635,  627,  623,  622,  612,  626,  607,  629,  612,
  547.       282,  619,  605,  624,  623,  626,  614,  618,  604,    0,
  548.       608,  621,  593,  615,    0,    0,  605,    0,  604,  593,
  549.       596,  591,  586,  605,  608,    0,    0,  592,  602,  598,
  550.         0,  593,    0,  285,    0,  587,  301,  590,  592,  591,
  551.       584,  589,  599,  579,  587,  584,  592,  591,  582,  578,
  552.       573,  580,  579,  588,  569, 1082, 1082,  568,  583,  571,
  553.       584,    0,  569,  563,  576,  574,  575,  560,    0,    0,
  554.         0,    0,  577, 1082,  557,  567,  566,  558, 1082,  569,
  555.  
  556.      1082,  529,  515,    0,  522,  527,    1,   30,   62,  140,
  557.       212, 1082,  245,  286,  292,  293,  297,  300,  297,  284,
  558.       293,  305,  306,  300,  299,  307, 1082,  297,  295,    0,
  559.       302, 1082,  306,  300, 1082,  315,  312,    0,  302,  304,
  560.       320,  311,  325,  312,  336,  317,  325,  315,  325,  335,
  561.       325,  322,  334,  334,  321,  318,  335,    0,  344,  334,
  562.       342,  336,  344,  341,  342,  332,  349,  340,    0,  335,
  563.       348,  338,    0,  354,    0,  345,  346,  353,  357,  349,
  564.      1082,  359,  365,    0,  347,  357,  356,  354,  357,  357,
  565.       372,  371,    0,  360,  362,    0,  357,    0,    0,  373,
  566.  
  567.       359,  375,  376, 1082,  364,  378,  379,    0,  371,  359,
  568.         0,    0,    0,  373,  370,    0,  368,  389,  373,  380,
  569.       381,  374,  390,    0,  395,  382,    0,    0,  372,  381,
  570.       397,    0,  398,    0,  390,  391,  397,  398,  381,    0,
  571.       390,  391, 1082,  403,  406,  407,  406,  392,    0,  399,
  572.       405,  414,    0,  404,    0,  414,  408,  419,  404,  411,
  573.       422,  422,    0,  401,    0,  425,  425,  415,  429,  431,
  574.       427,  407,    0,    0,  433,  412,  437,  434,  435,  432,
  575.         0,    0,  424,    0,  438,  435,  421,  437,    0,  440,
  576.       441,  435,  436,  423,    0,  427,  439,    0,    0,  440,
  577.  
  578.         0,  441,  451,  443,  446,    0,    0,  450,  451,  441,
  579.       457,  445, 1082,  445, 1082,  464,  446,  448,    0, 1082,
  580.       460,    0,  449,    0,  464,  464,    0,    0,  457,  472,
  581.       455,    0,    0,  468,  469, 1082,  465,  471,  475,  475,
  582.         0,  461,  477,  469,  469,  480,  462,  473,  483,  482,
  583.       481,  486,  487,  488,  474,  487,  482,  484,  482,    0,
  584.         0,  494,    0,  495,  478,  483,    0,  496,  491,  492,
  585.         0,  507,  506,  508,  506,  497,  510,  512,    0,    0,
  586.         0,  495,    0,  500,    0,    0,  503,  502,    0,    0,
  587.         0,  499,  507,    0,  502, 1082,  508,    0,  504,    0,
  588.  
  589.       512,  505,  525,  508,  523,  524,    0,  525,  526,    0,
  590.       525,    0,    0,  530,  532,  532,    0,  531,    0,  518,
  591.         0,    0,  533,  536,    0, 1082,  559,  562,  565,  568,
  592.       571,  574,  577,  579,  581,  551,  583
  593.     } ;
  594.  
  595. static const short int yy_def[1038] =
  596.     {   0,
  597.      1027, 1027, 1028, 1028, 1029, 1029, 1030, 1030, 1031, 1031,
  598.      1032, 1032, 1033, 1033, 1026, 1026, 1026, 1026, 1026, 1026,
  599.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  600.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  601.      1026, 1026, 1026, 1026, 1026, 1026, 1034, 1026, 1026, 1026,
  602.      1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  603.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  604.      1034, 1034, 1034, 1034, 1034, 1026, 1026, 1026, 1026, 1026,
  605.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  606.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1034,
  607.  
  608.      1034, 1034, 1034, 1034, 1034, 1026, 1034, 1034, 1034, 1034,
  609.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  610.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  611.      1034, 1034, 1034, 1034, 1026, 1034, 1034, 1034, 1034, 1034,
  612.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  613.      1034, 1034, 1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  614.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1026, 1034,
  615.      1034, 1034, 1034, 1034, 1026, 1034, 1026, 1026, 1026, 1026,
  616.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  617.      1026, 1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  618.  
  619.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  620.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  621.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  622.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  623.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  624.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  625.      1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  626.      1034, 1034, 1034, 1034, 1034, 1034, 1026, 1034, 1034, 1034,
  627.      1034, 1034, 1034, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  628.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  629.  
  630.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  631.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  632.      1034, 1034, 1034, 1034, 1026, 1034, 1026, 1034, 1034, 1035,
  633.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  634.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  635.      1034, 1034, 1034, 1034, 1034, 1026, 1026, 1034, 1034, 1034,
  636.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  637.      1034, 1034, 1034, 1034, 1034, 1026, 1034, 1034, 1034, 1034,
  638.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  639.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1026, 1034, 1034,
  640.  
  641.      1034, 1034, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  642.      1026, 1026, 1026, 1026, 1026, 1034, 1034, 1034, 1034, 1034,
  643.      1034, 1034, 1034, 1026, 1034, 1026, 1034, 1034, 1034, 1034,
  644.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  645.      1034, 1034, 1034, 1026, 1026, 1035, 1035, 1035, 1035, 1035,
  646.      1035, 1035, 1035, 1035, 1035, 1035, 1035, 1034, 1034, 1034,
  647.      1034, 1034, 1034, 1034, 1034, 1034, 1026, 1034, 1034, 1034,
  648.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  649.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  650.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1026, 1034,
  651.  
  652.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  653.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  654.      1034, 1034, 1034, 1034, 1034, 1026, 1026, 1026, 1026, 1026,
  655.      1026, 1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  656.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  657.      1034, 1034, 1034, 1026, 1035, 1035, 1035, 1035, 1035, 1035,
  658.      1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
  659.      1034, 1026, 1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  660.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  661.      1034, 1034, 1034, 1034, 1034, 1034, 1026, 1034, 1034, 1034,
  662.  
  663.      1034, 1034, 1026, 1034, 1026, 1026, 1034, 1034, 1034, 1034,
  664.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  665.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  666.      1034, 1034, 1026, 1034, 1034, 1034, 1026, 1036, 1026, 1026,
  667.      1026, 1034, 1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  668.      1034, 1034, 1034, 1034, 1034, 1035, 1037, 1035, 1035, 1035,
  669.      1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
  670.      1035, 1035, 1035, 1035, 1034, 1026, 1026, 1034, 1034, 1034,
  671.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  672.      1034, 1034, 1034, 1026, 1034, 1034, 1034, 1034, 1026, 1034,
  673.  
  674.      1026, 1034, 1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  675.      1034, 1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  676.      1034, 1034, 1034, 1034, 1034, 1034, 1026, 1034, 1026, 1036,
  677.      1026, 1026, 1026, 1034, 1026, 1034, 1034, 1034, 1034, 1034,
  678.      1034, 1034, 1034, 1035, 1037, 1035, 1035, 1035, 1035, 1035,
  679.      1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
  680.      1035, 1035, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  681.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  682.      1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  683.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  684.  
  685.      1034, 1034, 1034, 1026, 1026, 1026, 1034, 1034, 1034, 1034,
  686.      1034, 1034, 1034, 1034, 1034, 1034, 1035, 1035, 1035, 1035,
  687.      1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
  688.      1035, 1035, 1035, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  689.      1034, 1034, 1026, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  690.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  691.      1034, 1034, 1034, 1034, 1034, 1034, 1026, 1026, 1034, 1034,
  692.      1034, 1026, 1034, 1034, 1035, 1035, 1035, 1035, 1035, 1035,
  693.      1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1034,
  694.      1034, 1034, 1034, 1026, 1034, 1034, 1034, 1034, 1034, 1034,
  695.  
  696.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  697.      1034, 1034, 1026, 1034, 1026, 1026, 1034, 1034, 1034, 1026,
  698.      1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
  699.      1035, 1034, 1034, 1034, 1034, 1026, 1034, 1034, 1034, 1034,
  700.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1026,
  701.      1034, 1034, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1034,
  702.      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
  703.      1034, 1034, 1034, 1034, 1026, 1034, 1034, 1034, 1035, 1035,
  704.      1035, 1035, 1035, 1035, 1035, 1034, 1034, 1034, 1034, 1034,
  705.      1034, 1034, 1034, 1034, 1034, 1026, 1034, 1034, 1034, 1035,
  706.  
  707.      1035, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1035, 1034,
  708.      1034, 1034, 1034, 1034, 1034, 1034, 1035, 1034, 1034, 1034,
  709.      1034, 1034, 1034, 1034, 1034,    0, 1026, 1026, 1026, 1026,
  710.      1026, 1026, 1026, 1026, 1026, 1026, 1026
  711.     } ;
  712.  
  713. static const short int yy_nxt[1125] =
  714.     {   0,
  715.      1026,   91,   17,   18,   91, 1026,   19, 1026,   20,   21,
  716.        22,   27,   28,   23,   27,   27,   28, 1026,   27,  784,
  717.        29,  275,   31,   32,   29,   31,   31,   32,   33,   31,
  718.        36,   34,   33,  276,  152,   34,   36,   39,   37,   39,
  719.        24,   25,   17,   18,   37,   40,   19,   40,   20,   21,
  720.        22,   42,   42,   23,   45,   45,  153,  785,   94,   43,
  721.        43,   94,   46,   46,   92,   93,  101,   92,  104,  102,
  722.       136,  103,  105,  137,  106,  140,  224,  138,  225,  141,
  723.        24,   25,   47,  142,   48,   49,   50,   51,   52,   47,
  724.       786,   53,   54,   55,   56,   57,   58,   59,   60,   61,
  725.  
  726.        47,   62,   63,   64,   65,   66,   67,   68,   69,   70,
  727.        71,   72,   73,   74,   75,   47,   47,   76,   77,   79,
  728.        80,   81,   82,   83,   84,  143,  179,   85,  125,   86,
  729.       184,  126,  180,  185,  127,  144,   87,   88,   89,  128,
  730.        90,  107,  216,  114,  115,  108,  334,  116,  109,  110,
  731.       335,  117,  111,  118,  787,  112,  119,  120,  113,  217,
  732.       121,  122,  131,  132,  146,  123,  171,  124,   91,  202,
  733.       133,   91,  147,  434,  172,  203,  134,  435,  148,   92,
  734.        93,  149,   92,  135,  173,  174,   94,  150,  154,   94,
  735.       155,  251,  156,  227,  221,  157,  228,  222,  237,  248,
  736.  
  737.       158,  238,  252,  159,  249,  262,  205,  160,  161,  223,
  738.       258,  340,  162,  163,  341,  206,  207,  164,  208,  232,
  739.       165,  166,  263,  259,  273,  233,  267,  167,  390,  366,
  740.       274,  367,  168,  375,  391,  234,  235,  268,  380,  169,
  741.       316,  381,  386,  317,  788,  441,  318,  461,  421,  462,
  742.       319,  376,  320,  387,  388,  382,  321,  322,  323,  324,
  743.       422,  438,  442,  483,  556,  508,  515,  789,  557,  516,
  744.       439,  447,  448,  449,  450,  451,  558,  452,  484,  517,
  745.       453,  509,  564,  518,  604,  454,  559,  455,  456,  560,
  746.       457,  576,  561,  577,  583,  615,  565,  562,  616,  631,
  747.  
  748.       584,  665,  605,  715,  742,  617,  446,  666,  790,  632,
  749.       791,  792,  446,  446,  716,  793,  794,  667,  668,  795,
  750.       743,  796,  797,  798,  799,  800,  801,  802,  803,  804,
  751.       805,  806,  807,  808,  809,  810,  811,  812,  813,  815,
  752.       817,  446,  818,  819,  820,  814,  821,  446,  446,  822,
  753.       823,  824,  825,  826,  827,  828,  816,  829,  830,  831,
  754.       832,  833,  834,  835,  836,  837,  838,  839,  840,  841,
  755.       842,  844,  845,  846,  847,  848,  849,  850,  843,  851,
  756.       852,  853,  854,  855,  856,  857,  858,  859,  860,  861,
  757.       862,  863,  864,  865,  866,  867,  868,  869,  871,  872,
  758.  
  759.       873,  874,  875,  876,  877,  878,  879,  881,  882,  883,
  760.       884,  885,  880,  870,  886,  887,  889,  890,  891,  892,
  761.       893,  894,  888,  895,  896,  897,  898,  899,  900,  901,
  762.       902,  903,  904,  905,  906,  907,  908,  909,  910,  911,
  763.       912,  913,  914,  915,  916,  917,  918,  919,  920,  921,
  764.       922,  923,  924,  925,  926,  927,  928,  929,  930,  931,
  765.       932,  933,  934,  935,  936,  937,  938,  939,  940,  941,
  766.       942,  943,  944,  945,  946,  947,  948,  949,  950,  951,
  767.       952,  953,  954,  955,  956,  957,  958,  959,  960,  961,
  768.       962,  963,  964,  965,  966,  967,  968,  969,  970,  971,
  769.  
  770.       972,  973,  975,  976,  977,  979,  980,  981,  982,  983,
  771.       984,  985,  986,  987,  988,  989,  990,  974,  991,  992,
  772.       978,  993,  994,  995,  996,  997,  998,  999, 1000, 1001,
  773.      1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
  774.      1012, 1013, 1014, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
  775.      1023, 1024, 1025,  730,  783,  782,  781,  780, 1015,   16,
  776.        16,   16,   26,   26,   26,   30,   30,   30,   35,   35,
  777.        35,   38,   38,   38,   41,   41,   41,   44,   44,   44,
  778.        47,   47,  446,  446,  745,  745,  779,  778,  777,  776,
  779.       775,  774,  773,  772,  771,  770,  769,  768,  767,  766,
  780.  
  781.       765,  764,  763,  762,  761,  760,  759,  758,  757,  756,
  782.       755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
  783.       744,  741,  740,  739,  738,  737,  736,  735,  734,  733,
  784.       732,  731,  729,  728,  727,  726,  725,  724,  723,  722,
  785.       721,  720,  719,  718,  717,  714,  713,  712,  711,  710,
  786.       709,  708,  707,  706,  705,  704,  703,  702,  701,  700,
  787.       699,  698,  697,  696,  695,  694,  693,  692,  691,  690,
  788.       689,  688,  687,  686,  685,  684,  683,  682,  681,  680,
  789.       679,  678,  677,  676,  675,  674,  673,  672,  671,  670,
  790.       669,  664,  663,  662,  661,  660,  659,  658,  657,  656,
  791.  
  792.       655,  654,  653,  652,  651,  650,  649,  648,  647,  646,
  793.       645,  644,  643,  642,  641,  640,  639,  638,  637,  636,
  794.       635,  634,  633,  630,  629,  628,  627,  626,  625,  624,
  795.       623,  622,  621,  620,  619,  618,  614,  613,  612,  611,
  796.       610,  609,  608,  607,  606,  603,  602,  601,  600,  599,
  797.       598,  597,  596,  595,  594,  593,  592,  591,  590,  589,
  798.       588,  587,  586,  585,  582,  581,  580,  579,  578,  575,
  799.       574,  573,  572,  571,  570,  569,  568,  567,  566,  563,
  800.       555,  554,  553,  552,  551,  550,  549,  548,  547,  546,
  801.       545,  544,  543,  542,  541,  540,  539,  538,  537,  536,
  802.  
  803.       535,  534,  533,  532,  531,  530,  529,  528,  527,  526,
  804.       525,  524,  523,  522,  521,  520,  519,  514,  513,  512,
  805.       511,  510,  507,  506,  505,  504,  503,  502,  501,  500,
  806.       499,  498,  497,  496,  495,  494,  493,  492,  491,  490,
  807.       489,  488,  487,  486,  485,  482,  481,  480,  479,  478,
  808.       477,  476,  475,  474,  473,  472,  471,  470,  469,  468,
  809.       467,  466,  465,  464,  463,  460,  459,  458,  445,  444,
  810.       443,  440,  437,  436,  433,  432,  431,  430,  429,  428,
  811.       427,  426,  425,  424,  423,  420,  419,  418,  417,  416,
  812.       415,  414,  413,  412,  411,  410,  409,  408,  407,  406,
  813.  
  814.       405,  404,  403,  402,  401,  400,  399,  398,  397,  396,
  815.       395,  394,  393,  392,  389,  385,  384,  383,  379,  378,
  816.       377,  374,  373,  372,  371,  370,  369,  368,  365,  364,
  817.       363,  362,  361,  360,  359,  358,  357,  356,  355,  354,
  818.       353,  352,  351,  350,  349,  348,  347,  346,  345,  344,
  819.       343,  342,  339,  338,  337,  336,  333,  332,  331,  330,
  820.       329,  328,  327,  326,  325,  315,  314,  313,  312,  311,
  821.       310,  309,  308,  307,  306,  305,  304,  303,  302,  301,
  822.       300,  299,  298,  297,  296,  295,  294,  293,  292,  291,
  823.       290,  289,  288,  287,  286,  285,  284,  283,  282,  281,
  824.  
  825.       280,  279,  278,  277,  272,  271,  270,  269,  266,  265,
  826.       264,  261,  260,  257,  256,  255,  254,  253,  250,  247,
  827.       246,  245,  244,  243,  242,  241,  240,  239,  236,  231,
  828.       230,  229,  226,  220,  219,  218,  215,  214,  213,  212,
  829.       211,  210,  209,  204,  201,  200,  199,  198,  197,  196,
  830.       195,  194,  193,  192,  191,  190,  189,  188,  187,  186,
  831.       183,  182,  181,  178,  177,  176,  175,  170,  151,  145,
  832.       139,  130,  129,  100,   99,   98,   97,   96,   95,   78,
  833.      1026,   15, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  834.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  835.  
  836.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  837.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  838.      1026, 1026, 1026, 1026
  839.     } ;
  840.  
  841. static const short int yy_chk[1125] =
  842.     {   0,
  843.         0,   31,    1,    1,   31,    0,    1,    0,    1,    1,
  844.         1,    3,    3,    1,    3,    4,    4,    0,    4,  707,
  845.         3,  167,    5,    5,    4,    5,    6,    6,    5,    6,
  846.         7,    5,    6,  167,   69,    6,    8,    9,    7,   10,
  847.         1,    1,    2,    2,    8,    9,    2,   10,    2,    2,
  848.         2,   11,   12,    2,   13,   14,   69,  708,   33,   11,
  849.        12,   33,   13,   14,   32,   32,   53,   32,   54,   53,
  850.        62,   53,   54,   62,   54,   64,  125,   62,  125,   64,
  851.         2,    2,   22,   64,   22,   22,   22,   22,   22,   22,
  852.       709,   22,   22,   22,   22,   22,   22,   22,   22,   22,
  853.  
  854.        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
  855.        22,   22,   22,   22,   22,   22,   22,   22,   22,   29,
  856.        29,   29,   29,   29,   29,   65,   81,   29,   58,   29,
  857.        86,   58,   81,   86,   58,   65,   29,   29,   29,   58,
  858.        29,   55,  120,   56,   56,   55,  220,   56,   55,   55,
  859.       220,   56,   55,   56,  710,   55,   57,   57,   55,  120,
  860.        57,   57,   61,   61,   67,   57,   73,   57,   91,  110,
  861.        61,   91,   67,  319,   73,  110,   61,  319,   67,   92,
  862.        92,   67,   92,   61,   73,   73,   94,   67,   70,   94,
  863.        70,  146,   70,  127,  124,   70,  127,  124,  133,  144,
  864.  
  865.        70,  133,  146,   70,  144,  156,  112,   70,   70,  124,
  866.       152,  225,   70,   71,  225,  112,  112,   71,  112,  131,
  867.        71,   71,  156,  152,  166,  131,  161,   71,  269,  250,
  868.       166,  250,   71,  258,  269,  131,  131,  161,  263,   71,
  869.       210,  263,  267,  210,  711,  324,  210,  334,  307,  334,
  870.       210,  258,  210,  267,  267,  263,  210,  210,  210,  210,
  871.       307,  322,  324,  355,  448,  387,  393,  713,  448,  393,
  872.       322,  330,  330,  330,  330,  330,  449,  330,  355,  393,
  873.       330,  387,  452,  393,  494,  330,  449,  330,  330,  450,
  874.       330,  463,  450,  463,  470,  505,  452,  450,  505,  520,
  875.  
  876.       470,  564,  494,  621,  654,  505,  657,  564,  714,  520,
  877.       715,  716,  657,  657,  621,  717,  718,  564,  564,  719,
  878.       654,  720,  721,  722,  723,  724,  725,  726,  728,  729,
  879.       731,  733,  734,  736,  737,  739,  740,  741,  742,  743,
  880.       744,  745,  746,  747,  748,  742,  749,  745,  745,  750,
  881.       751,  752,  753,  754,  755,  756,  743,  757,  759,  760,
  882.       761,  762,  763,  764,  765,  766,  767,  768,  770,  771,
  883.       772,  774,  776,  777,  778,  779,  780,  782,  772,  783,
  884.       785,  786,  787,  788,  789,  790,  791,  792,  794,  795,
  885.       797,  800,  801,  802,  803,  805,  806,  807,  809,  810,
  886.  
  887.       814,  815,  817,  818,  819,  820,  821,  822,  823,  825,
  888.       826,  829,  821,  807,  830,  831,  833,  835,  836,  837,
  889.       838,  839,  831,  841,  842,  844,  845,  846,  847,  848,
  890.       850,  851,  852,  854,  856,  857,  858,  859,  860,  861,
  891.       862,  864,  866,  867,  868,  869,  870,  871,  872,  875,
  892.       876,  877,  878,  879,  880,  883,  885,  886,  887,  888,
  893.       890,  891,  892,  893,  894,  896,  897,  900,  902,  903,
  894.       904,  905,  908,  909,  910,  911,  912,  914,  916,  917,
  895.       918,  921,  923,  925,  926,  929,  930,  931,  934,  935,
  896.       937,  938,  939,  940,  942,  943,  944,  945,  946,  947,
  897.  
  898.       948,  949,  950,  951,  952,  953,  954,  955,  956,  957,
  899.       958,  959,  962,  964,  965,  966,  968,  949,  969,  970,
  900.       952,  972,  973,  974,  975,  976,  977,  978,  982,  984,
  901.       987,  988,  992,  993,  995,  997,  999, 1001, 1002, 1003,
  902.      1004, 1005, 1006, 1008, 1009, 1011, 1014, 1015, 1016, 1018,
  903.      1020, 1023, 1024, 1036,  706,  705,  703,  702, 1006, 1027,
  904.      1027, 1027, 1028, 1028, 1028, 1029, 1029, 1029, 1030, 1030,
  905.      1030, 1031, 1031, 1031, 1032, 1032, 1032, 1033, 1033, 1033,
  906.      1034, 1034, 1035, 1035, 1037, 1037,  700,  698,  697,  696,
  907.       695,  693,  688,  687,  686,  685,  684,  683,  681,  680,
  908.  
  909.       679,  678,  675,  674,  673,  672,  671,  670,  669,  668,
  910.       667,  666,  665,  664,  663,  662,  661,  660,  659,  658,
  911.       656,  652,  650,  649,  648,  645,  644,  643,  642,  641,
  912.       640,  639,  637,  634,  633,  632,  631,  629,  628,  627,
  913.       626,  625,  624,  623,  622,  620,  619,  618,  617,  616,
  914.       615,  614,  613,  612,  611,  610,  609,  607,  605,  604,
  915.       603,  601,  600,  599,  598,  597,  596,  594,  593,  592,
  916.       589,  588,  585,  584,  583,  581,  580,  578,  577,  576,
  917.       575,  574,  573,  572,  571,  570,  569,  568,  567,  566,
  918.       565,  563,  562,  561,  560,  559,  558,  557,  556,  555,
  919.  
  920.       553,  551,  550,  548,  546,  544,  543,  542,  541,  539,
  921.       538,  536,  535,  533,  532,  531,  530,  529,  528,  525,
  922.       523,  522,  521,  519,  518,  517,  516,  515,  513,  512,
  923.       511,  510,  509,  508,  507,  506,  504,  503,  502,  501,
  924.       500,  498,  497,  496,  495,  493,  492,  491,  490,  489,
  925.       488,  487,  486,  485,  483,  482,  481,  480,  477,  476,
  926.       475,  473,  472,  471,  469,  468,  466,  465,  464,  462,
  927.       461,  460,  459,  458,  457,  456,  455,  454,  453,  451,
  928.       447,  444,  443,  441,  439,  437,  436,  435,  434,  433,
  929.       432,  430,  429,  428,  427,  423,  422,  421,  420,  419,
  930.  
  931.       418,  417,  416,  414,  413,  412,  411,  410,  403,  402,
  932.       401,  400,  399,  397,  396,  395,  394,  392,  391,  390,
  933.       389,  388,  386,  385,  384,  383,  382,  381,  380,  379,
  934.       378,  377,  375,  374,  373,  372,  371,  370,  369,  367,
  935.       366,  365,  362,  360,  358,  354,  353,  352,  351,  350,
  936.       349,  348,  347,  346,  345,  344,  343,  342,  341,  340,
  937.       339,  338,  337,  336,  335,  333,  332,  331,  329,  328,
  938.       326,  323,  321,  320,  318,  317,  316,  315,  314,  313,
  939.       312,  311,  310,  309,  308,  306,  305,  304,  303,  301,
  940.       300,  299,  298,  297,  296,  295,  293,  290,  289,  287,
  941.  
  942.       286,  285,  284,  283,  282,  281,  280,  279,  278,  275,
  943.       274,  273,  272,  270,  268,  266,  265,  264,  262,  260,
  944.       259,  257,  256,  255,  254,  253,  252,  251,  249,  248,
  945.       247,  246,  245,  244,  243,  242,  241,  240,  239,  238,
  946.       237,  236,  235,  234,  233,  232,  231,  230,  229,  228,
  947.       227,  226,  224,  223,  222,  221,  219,  218,  217,  216,
  948.       215,  214,  213,  212,  211,  209,  208,  207,  206,  205,
  949.       204,  203,  202,  201,  200,  199,  197,  196,  195,  194,
  950.       193,  192,  191,  190,  189,  188,  187,  186,  185,  184,
  951.       183,  182,  181,  180,  179,  178,  177,  176,  174,  173,
  952.  
  953.       172,  171,  170,  168,  165,  164,  163,  162,  160,  158,
  954.       157,  155,  154,  151,  150,  149,  148,  147,  145,  143,
  955.       142,  141,  140,  139,  138,  137,  136,  134,  132,  130,
  956.       129,  128,  126,  123,  122,  121,  119,  118,  117,  116,
  957.       115,  114,  113,  111,  109,  108,  107,  105,  104,  103,
  958.       102,  101,  100,   99,   98,   97,   96,   95,   90,   88,
  959.        84,   83,   82,   79,   78,   75,   74,   72,   68,   66,
  960.        63,   60,   59,   52,   46,   43,   40,   37,   34,   23,
  961.        15, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  962.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  963.  
  964.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  965.      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
  966.      1026, 1026, 1026, 1026
  967.     } ;
  968.  
  969. static yy_state_type yy_last_accepting_state;
  970. static YY_CHAR *yy_last_accepting_cpos;
  971.  
  972. extern int yy_flex_debug;
  973. int yy_flex_debug = 1;
  974.  
  975. static const short int yy_rule_linenum[223] =
  976.     {   0,
  977.        60,   61,   62,   63,   64,   65,   67,   68,   69,   70,
  978.        71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
  979.        81,   82,   83,   84,   85,   86,   87,   88,   89,   90,
  980.        92,   93,   94,   95,   96,   97,   98,   99,  100,  101,
  981.       102,  103,  104,  105,  106,  107,  108,  109,  111,  112,
  982.       113,  114,  115,  116,  117,  118,  119,  120,  121,  122,
  983.       123,  124,  125,  126,  127,  128,  129,  130,  131,  132,
  984.       133,  134,  135,  136,  137,  138,  139,  140,  141,  142,
  985.       143,  144,  145,  146,  147,  148,  149,  150,  151,  152,
  986.       153,  154,  155,  156,  157,  158,  159,  160,  161,  162,
  987.  
  988.       163,  164,  165,  166,  167,  168,  169,  170,  171,  172,
  989.       173,  174,  175,  176,  177,  178,  178,  184,  185,  186,
  990.       187,  188,  189,  190,  191,  192,  193,  194,  195,  196,
  991.       197,  198,  199,  200,  201,  202,  203,  204,  205,  206,
  992.       207,  208,  209,  210,  211,  212,  213,  214,  215,  216,
  993.       217,  218,  219,  220,  221,  222,  223,  224,  225,  226,
  994.       227,  228,  229,  230,  231,  232,  233,  234,  235,  236,
  995.       237,  238,  239,  240,  241,  242,  243,  244,  245,  246,
  996.       247,  248,  249,  250,  251,  252,  253,  254,  255,  256,
  997.       257,  258,  259,  260,  261,  262,  263,  264,  265,  266,
  998.  
  999.       267,  268,  269,  270,  271,  272,  273,  274,  275,  276,
  1000.       277,  278,  280,  281,  283,  284,  285,  286,  287,  288,
  1001.       289,  290
  1002.     } ;
  1003.  
  1004. /* the intent behind this definition is that it'll catch
  1005.  * any uses of REJECT which flex missed
  1006.  */
  1007. #define REJECT reject_used_but_not_detected
  1008. #define yymore() yymore_used_but_not_detected
  1009. #define YY_MORE_ADJ 0
  1010.  
  1011. /* these variables are all declared out here so that section 3 code can
  1012.  * manipulate them
  1013.  */
  1014. /* points to current character in buffer */
  1015. static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0;
  1016. static int yy_init = 1;        /* whether we need to initialize */
  1017. static int yy_start = 0;    /* start state number */
  1018.  
  1019. /* flag which is used to allow yywrap()'s to do buffer switches
  1020.  * instead of setting up a fresh yyin.  A bit of a hack ...
  1021.  */
  1022. static int yy_did_buffer_switch_on_eof;
  1023.  
  1024. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  1025. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  1026. static int yy_get_next_buffer YY_PROTO(( void ));
  1027. static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr ));
  1028. void yyrestart YY_PROTO(( FILE *input_file ));
  1029. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  1030. void yy_load_buffer_state YY_PROTO(( void ));
  1031. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  1032. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  1033. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  1034.  
  1035. #define yy_new_buffer yy_create_buffer
  1036.  
  1037. #ifdef __cplusplus
  1038. static int yyinput YY_PROTO(( void ));
  1039. #else
  1040. static int input YY_PROTO(( void ));
  1041. #endif
  1042.  
  1043. YY_DECL
  1044.     {
  1045.     register yy_state_type yy_current_state;
  1046.     register YY_CHAR *yy_cp, *yy_bp;
  1047.     register int yy_act;
  1048.  
  1049.  
  1050.  
  1051.  
  1052.     if ( yy_init )
  1053.     {
  1054.     YY_USER_INIT;
  1055.  
  1056.     if ( ! yy_start )
  1057.         yy_start = 1;    /* first start state */
  1058.  
  1059.     if ( ! yyin )
  1060.         yyin = stdin;
  1061.  
  1062.     if ( ! yyout )
  1063.         yyout = stdout;
  1064.  
  1065.     if ( yy_current_buffer )
  1066.         yy_init_buffer( yy_current_buffer, yyin );
  1067.     else
  1068.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  1069.  
  1070.     yy_load_buffer_state();
  1071.  
  1072.     yy_init = 0;
  1073.     }
  1074.  
  1075.     while ( 1 )        /* loops until end-of-file is reached */
  1076.     {
  1077.     yy_cp = yy_c_buf_p;
  1078.  
  1079.     /* support of yytext */
  1080.     *yy_cp = yy_hold_char;
  1081.  
  1082.     /* yy_bp points to the position in yy_ch_buf of the start of the
  1083.      * current run.
  1084.      */
  1085.     yy_bp = yy_cp;
  1086.  
  1087.     yy_current_state = yy_start;
  1088. yy_match:
  1089.     do
  1090.         {
  1091.         register YY_CHAR yy_c = yy_ec[*yy_cp];
  1092.         if ( yy_accept[yy_current_state] )
  1093.         {
  1094.         yy_last_accepting_state = yy_current_state;
  1095.         yy_last_accepting_cpos = yy_cp;
  1096.         }
  1097.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1098.         {
  1099.         yy_current_state = yy_def[yy_current_state];
  1100.         if ( yy_current_state >= 1027 )
  1101.             yy_c = yy_meta[yy_c];
  1102.         }
  1103.         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1104.         ++yy_cp;
  1105.         }
  1106.     while ( yy_current_state != 1026 );
  1107.     yy_cp = yy_last_accepting_cpos;
  1108.     yy_current_state = yy_last_accepting_state;
  1109.  
  1110. yy_find_action:
  1111.     yy_act = yy_accept[yy_current_state];
  1112.  
  1113.     YY_DO_BEFORE_ACTION;
  1114.     YY_USER_ACTION;
  1115.  
  1116. do_action:    /* this label is used only to access EOF actions */
  1117.  
  1118.     if ( yy_flex_debug )
  1119.         {
  1120.         if ( yy_act == 0 )
  1121.         fprintf( stderr, "--scanner backtracking\n" );
  1122.         else if ( yy_act < 223 )
  1123.         fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
  1124.                  yy_rule_linenum[yy_act], yytext );
  1125.         else if ( yy_act == 223 )
  1126.         fprintf( stderr, "--accepting default rule (\"%s\")\n",
  1127.                  yytext );
  1128.         else if ( yy_act == 224 )
  1129.         fprintf( stderr, "--(end of buffer or a NUL)\n" );
  1130.         else
  1131.         fprintf( stderr, "--EOF\n" );
  1132.         }
  1133.  
  1134.     switch ( yy_act )
  1135.         {
  1136.         case 0: /* must backtrack */
  1137.         /* undo the effects of YY_DO_BEFORE_ACTION */
  1138.         *yy_cp = yy_hold_char;
  1139.         yy_cp = yy_last_accepting_cpos;
  1140.         yy_current_state = yy_last_accepting_state;
  1141.         goto yy_find_action;
  1142.  
  1143. case 1:
  1144. # line 60 "scan.l"
  1145. PUTS(endl << ".br"); PUTL();
  1146.     YY_BREAK
  1147. case 2:
  1148. # line 61 "scan.l"
  1149. PUTS('.');
  1150.     YY_BREAK
  1151. case 3:
  1152. # line 62 "scan.l"
  1153. ;
  1154.     YY_BREAK
  1155. case 4:
  1156. # line 63 "scan.l"
  1157. PUTS('@');
  1158.     YY_BREAK
  1159. case 5:
  1160. # line 64 "scan.l"
  1161. PUTS('{');
  1162.     YY_BREAK
  1163. case 6:
  1164. # line 65 "scan.l"
  1165. PUTS('}');
  1166.     YY_BREAK
  1167. case 7:
  1168. # line 67 "scan.l"
  1169. heading(1, eol());
  1170.     YY_BREAK
  1171. case 8:
  1172. # line 68 "scan.l"
  1173. heading(2, eol());
  1174.     YY_BREAK
  1175. case 9:
  1176. # line 69 "scan.l"
  1177. heading(2, eol());
  1178.     YY_BREAK
  1179. case 10:
  1180. # line 70 "scan.l"
  1181. heading(3, eol());
  1182.     YY_BREAK
  1183. case 11:
  1184. # line 71 "scan.l"
  1185. heading(4, eol());
  1186.     YY_BREAK
  1187. case 12:
  1188. # line 72 "scan.l"
  1189. ;
  1190.     YY_BREAK
  1191. case 13:
  1192. # line 73 "scan.l"
  1193. PUTA(":hp5."); PUT(eol()); PUTA(":ehp5.");
  1194.     YY_BREAK
  1195. case 14:
  1196. # line 74 "scan.l"
  1197. PUTA(":hp2."); PUT(arg()); PUTA(":ehp2.");
  1198.     YY_BREAK
  1199. case 15:
  1200. # line 75 "scan.l"
  1201. PUTS("&sqbul.");
  1202.     YY_BREAK
  1203. case 16:
  1204. # line 76 "scan.l"
  1205. return 0;
  1206.     YY_BREAK
  1207. case 17:
  1208. # line 77 "scan.l"
  1209. skip();
  1210.     YY_BREAK
  1211. case 18:
  1212. # line 78 "scan.l"
  1213. ;
  1214.     YY_BREAK
  1215. case 19:
  1216. # line 79 "scan.l"
  1217. ;
  1218.     YY_BREAK
  1219. case 20:
  1220. # line 80 "scan.l"
  1221. PUTA(":lines align=center."); PUT(eol()); PUTA(":elines.");
  1222.     YY_BREAK
  1223. case 21:
  1224. # line 81 "scan.l"
  1225. heading(1, eol());
  1226.     YY_BREAK
  1227. case 22:
  1228. # line 82 "scan.l"
  1229. heading(1, eol());
  1230.     YY_BREAK
  1231. case 23:
  1232. # line 83 "scan.l"
  1233. indexes["cp"].entries[eol()].add(XItem(panel_name, panel_id));
  1234.     YY_BREAK
  1235. case 24:
  1236. # line 84 "scan.l"
  1237. PUTA(":hp1."); PUT(arg()); PUTA(":ehp1.");
  1238.     YY_BREAK
  1239. case 25:
  1240. # line 85 "scan.l"
  1241. flags[eol()] = 1;
  1242.     YY_BREAK
  1243. case 26:
  1244. # line 86 "scan.l"
  1245. font("Courier"); PUT(arg()); font(0);
  1246.     YY_BREAK
  1247. case 27:
  1248. # line 87 "scan.l"
  1249. eol();
  1250.     YY_BREAK
  1251. case 28:
  1252. # line 88 "scan.l"
  1253. ;
  1254.     YY_BREAK
  1255. case 29:
  1256. # line 89 "scan.l"
  1257. PUTS("(C)");
  1258.     YY_BREAK
  1259. case 30:
  1260. # line 90 "scan.l"
  1261. /*!!*/;
  1262.     YY_BREAK
  1263.             /*          class/type    name    args    category    */
  1264. case 31:
  1265. # line 92 "scan.l"
  1266. words(eol()); define(w[1],    w[2],    0,    w[0]);
  1267.     YY_BREAK
  1268. case 32:
  1269. # line 93 "scan.l"
  1270. words(eol()); define(null,    w[1],    w+2,    w[0]);
  1271.     YY_BREAK
  1272. case 33:
  1273. # line 94 "scan.l"
  1274. words(eol()); define(null,    w[1],    w+2,    w[0]);
  1275.     YY_BREAK
  1276. case 34:
  1277. # line 95 "scan.l"
  1278. words(eol()); define(w[0],    w[1],    0,    "Instance Variable");
  1279.     YY_BREAK
  1280. case 35:
  1281. # line 96 "scan.l"
  1282. words(eol()); define(null,    w[0],    w+1,    "Macro");
  1283.     YY_BREAK
  1284. case 36:
  1285. # line 97 "scan.l"
  1286. words(eol()); define(w[0],    w[1],    w+2,    "Method");
  1287.     YY_BREAK
  1288. case 37:
  1289. # line 98 "scan.l"
  1290. words(eol()); define(w[1],    w[2],    w+3,    w[0]);
  1291.     YY_BREAK
  1292. case 38:
  1293. # line 99 "scan.l"
  1294. words(eol()); define(null,    w[0],    0,    "User Option");
  1295.     YY_BREAK
  1296. case 39:
  1297. # line 100 "scan.l"
  1298. words(eol()); define(null,    w[0],    w+1,    "Special Form");
  1299.     YY_BREAK
  1300. case 40:
  1301. # line 101 "scan.l"
  1302. words(eol()); define(null,    w[1],    w+2,    w[0]);
  1303.     YY_BREAK
  1304. case 41:
  1305. # line 102 "scan.l"
  1306. words(eol()); define(w[1],    w[2],    w+3,    w[0]);
  1307.     YY_BREAK
  1308. case 42:
  1309. # line 103 "scan.l"
  1310. words(eol()); define(w[0],    w[1],    w+2,    "Function");
  1311.     YY_BREAK
  1312. case 43:
  1313. # line 104 "scan.l"
  1314. words(eol()); define(w[1],    w[2],    0,    w[0]);
  1315.     YY_BREAK
  1316. case 44:
  1317. # line 105 "scan.l"
  1318. words(eol()); define(w[0],    w[1],    0,    "Variable");
  1319.     YY_BREAK
  1320. case 45:
  1321. # line 106 "scan.l"
  1322. words(eol()); define(null,    w[0],    w+1,    "Function");
  1323.     YY_BREAK
  1324. case 46:
  1325. # line 107 "scan.l"
  1326. words(eol()); define(null,    w[0],    0,    "Variable");
  1327.     YY_BREAK
  1328. case 47:
  1329. # line 108 "scan.l"
  1330. words(eol()); define(null,    w[1],    0,    w[0]);
  1331.     YY_BREAK
  1332. case 48:
  1333. # line 109 "scan.l"
  1334. ;
  1335.     YY_BREAK
  1336. case 49:
  1337. # line 111 "scan.l"
  1338. PUTA(":hp1."); PUT(arg()); PUTA(":ehp1.");
  1339.     YY_BREAK
  1340. case 50:
  1341. # line 112 "scan.l"
  1342. beg_example("default");
  1343.     YY_BREAK
  1344. case 51:
  1345. # line 113 "scan.l"
  1346. end_example();
  1347.     YY_BREAK
  1348. case 52:
  1349. # line 114 "scan.l"
  1350. PUTS(' ' << arg());
  1351.     YY_BREAK
  1352. case 53:
  1353. # line 115 "scan.l"
  1354. PUTS("&dot.&dot.&dot.");
  1355.     YY_BREAK
  1356. case 54:
  1357. # line 116 "scan.l"
  1358. PUTA(":hp1."); PUT(arg()); PUTA(":ehp1.");
  1359.     YY_BREAK
  1360. case 55:
  1361. # line 117 "scan.l"
  1362. item_begin(":ol.", 'o',0); skip();
  1363.     YY_BREAK
  1364. case 56:
  1365. # line 118 "scan.l"
  1366. item_end(":eol.");
  1367.     YY_BREAK
  1368. case 57:
  1369. # line 119 "scan.l"
  1370. PUTS("==");
  1371.     YY_BREAK
  1372. case 58:
  1373. # line 120 "scan.l"
  1374. PUTA(":hp8."); PUTS("ERROR: "); PUTA(":ehp8.");
  1375.     YY_BREAK
  1376. case 59:
  1377. # line 121 "scan.l"
  1378. eol();
  1379.     YY_BREAK
  1380. case 60:
  1381. # line 122 "scan.l"
  1382. eol();
  1383.     YY_BREAK
  1384. case 61:
  1385. # line 123 "scan.l"
  1386. eol();
  1387.     YY_BREAK
  1388. case 62:
  1389. # line 124 "scan.l"
  1390. eol();
  1391.     YY_BREAK
  1392. case 63:
  1393. # line 125 "scan.l"
  1394. beg_example("Courier");
  1395.     YY_BREAK
  1396. case 64:
  1397. # line 126 "scan.l"
  1398. end_example();
  1399.     YY_BREAK
  1400. case 65:
  1401. # line 127 "scan.l"
  1402. { int old=margin(0); PUTS(eol()); margin(old); }
  1403.     YY_BREAK
  1404. case 66:
  1405. # line 128 "scan.l"
  1406. PUTS("==>");
  1407.     YY_BREAK
  1408. case 67:
  1409. # line 129 "scan.l"
  1410. font("Courier"); PUTS("&apos." << arg() << "&apos."); font(0);
  1411.     YY_BREAK
  1412. case 68:
  1413. # line 130 "scan.l"
  1414. ;
  1415.     YY_BREAK
  1416. case 69:
  1417. # line 131 "scan.l"
  1418. indexes["fn"].entries[eol()].add(XItem(panel_name, panel_id));
  1419.     YY_BREAK
  1420. case 70:
  1421. # line 132 "scan.l"
  1422. ;
  1423.     YY_BREAK
  1424. case 71:
  1425. # line 133 "scan.l"
  1426. ;
  1427.     YY_BREAK
  1428. case 72:
  1429. # line 134 "scan.l"
  1430. PUTA(":lines align=right.");
  1431.     YY_BREAK
  1432. case 73:
  1433. # line 135 "scan.l"
  1434. PUTA(":elines.");
  1435.     YY_BREAK
  1436. case 74:
  1437. # line 136 "scan.l"
  1438. footnote();
  1439.     YY_BREAK
  1440. case 75:
  1441. # line 137 "scan.l"
  1442. ;
  1443.     YY_BREAK
  1444. case 76:
  1445. # line 138 "scan.l"
  1446. PUTA(":lines align=left.");
  1447.     YY_BREAK
  1448. case 77:
  1449. # line 139 "scan.l"
  1450. PUTA(":elines.");
  1451.     YY_BREAK
  1452. case 78:
  1453. # line 140 "scan.l"
  1454. item_begin(":parml break=fit.", 'p',"Function"); BEGIN(TABLE);
  1455.     YY_BREAK
  1456. case 79:
  1457. # line 141 "scan.l"
  1458. item_end(":eparml.");
  1459.     YY_BREAK
  1460. case 80:
  1461. # line 142 "scan.l"
  1462. istackp->beg = Item("Courier"); istackp->end = Item("default");
  1463.     YY_BREAK
  1464. case 81:
  1465. # line 143 "scan.l"
  1466. istackp->beg = 0; istackp->end = 0;
  1467.     YY_BREAK
  1468. case 82:
  1469. # line 144 "scan.l"
  1470. istackp->beg = 0; istackp->end = 0;
  1471.     YY_BREAK
  1472. case 83:
  1473. # line 145 "scan.l"
  1474. istackp->beg = Item("Courier", 0, "&apos."); istackp->end = Item("default", 0, "&apos.");
  1475.     YY_BREAK
  1476. case 84:
  1477. # line 146 "scan.l"
  1478. istackp->beg = Item(0, 1); istackp->end = Item(0, 1);
  1479.     YY_BREAK
  1480. case 85:
  1481. # line 147 "scan.l"
  1482. istackp->beg = Item("Courier"); istackp->end =Item("default");
  1483.     YY_BREAK
  1484. case 86:
  1485. # line 148 "scan.l"
  1486. istackp->beg = Item(0, 1); istackp->end = Item(0, 1);
  1487.     YY_BREAK
  1488. case 87:
  1489. # line 149 "scan.l"
  1490. istackp->beg = Item(0, 1); istackp->end = Item(0, 1);
  1491.     YY_BREAK
  1492. case 88:
  1493. # line 150 "scan.l"
  1494. istackp->beg = 0; istackp->end = 0;
  1495.     YY_BREAK
  1496. case 89:
  1497. # line 151 "scan.l"
  1498. istackp->beg = Item(0, 2); istackp->end = Item(0, 2);
  1499.     YY_BREAK
  1500. case 90:
  1501. # line 152 "scan.l"
  1502. istackp->beg = Item(0, 1); istackp->end = Item(0, 1);
  1503.     YY_BREAK
  1504. case 91:
  1505. # line 153 "scan.l"
  1506. istackp->beg = Item("'Tms Rmn'"); istackp->end = Item("default");
  1507.     YY_BREAK
  1508. case 92:
  1509. # line 154 "scan.l"
  1510. istackp->beg = Item("Courier"); istackp->end = Item("default");
  1511.     YY_BREAK
  1512. case 93:
  1513. # line 155 "scan.l"
  1514. istackp->beg = Item(0, 1); istackp->end = Item(0, 1);
  1515.     YY_BREAK
  1516. case 94:
  1517. # line 156 "scan.l"
  1518. ;
  1519.     YY_BREAK
  1520. case 95:
  1521. # line 157 "scan.l"
  1522. BEGIN(0); ++yylineno;
  1523.     YY_BREAK
  1524. case 96:
  1525. # line 158 "scan.l"
  1526. ;
  1527.     YY_BREAK
  1528. case 97:
  1529. # line 159 "scan.l"
  1530. ;
  1531.     YY_BREAK
  1532. case 98:
  1533. # line 160 "scan.l"
  1534. heading(2, eol());
  1535.     YY_BREAK
  1536. case 99:
  1537. # line 161 "scan.l"
  1538. eol();
  1539.     YY_BREAK
  1540. case 100:
  1541. # line 162 "scan.l"
  1542. PUTA(":hp1."); PUT(arg()); PUTA(":ehp1.");
  1543.     YY_BREAK
  1544. case 101:
  1545. # line 163 "scan.l"
  1546. if (flags[eol()]) BEGIN(FALSE);
  1547.     YY_BREAK
  1548. case 102:
  1549. # line 164 "scan.l"
  1550. ;
  1551.     YY_BREAK
  1552. case 103:
  1553. # line 165 "scan.l"
  1554. BEGIN(0); eol();
  1555.     YY_BREAK
  1556. case 104:
  1557. # line 166 "scan.l"
  1558. ++yylineno;
  1559.     YY_BREAK
  1560. case 105:
  1561. # line 167 "scan.l"
  1562. ;
  1563.     YY_BREAK
  1564. case 106:
  1565. # line 168 "scan.l"
  1566. ;
  1567.     YY_BREAK
  1568. case 107:
  1569. # line 169 "scan.l"
  1570. ;
  1571.     YY_BREAK
  1572. case 108:
  1573. # line 170 "scan.l"
  1574. if (!flags[eol()]) BEGIN(FALSE);
  1575.     YY_BREAK
  1576. case 109:
  1577. # line 171 "scan.l"
  1578. ;
  1579.     YY_BREAK
  1580. case 110:
  1581. # line 172 "scan.l"
  1582. BEGIN(0);
  1583.     YY_BREAK
  1584. case 111:
  1585. # line 173 "scan.l"
  1586. ;
  1587.     YY_BREAK
  1588. case 112:
  1589. # line 174 "scan.l"
  1590. BEGIN(IGNORE);
  1591.     YY_BREAK
  1592. case 113:
  1593. # line 175 "scan.l"
  1594. BEGIN(0); eol();
  1595.     YY_BREAK
  1596. case 114:
  1597. # line 176 "scan.l"
  1598. ++yylineno;
  1599.     YY_BREAK
  1600. case 115:
  1601. # line 177 "scan.l"
  1602. ;
  1603.     YY_BREAK
  1604. case 116:
  1605. # line 178 "scan.l"
  1606. include(eol());    BEGIN(INITIAL);
  1607.     YY_BREAK
  1608. case YY_STATE_EOF(INITIAL):
  1609. case YY_STATE_EOF(TABLE):
  1610. case YY_STATE_EOF(MENU):
  1611. case YY_STATE_EOF(FALSE):
  1612. case YY_STATE_EOF(IGNORE):
  1613. case YY_STATE_EOF(TEX):
  1614. case YY_STATE_EOF(TITLE):
  1615. # line 179 "scan.l"
  1616. { if (--incllevel < 0)
  1617.                 yyterminate();
  1618.               else
  1619.                 yy_switch_to_buffer(inclstack[incllevel]);
  1620.             }
  1621.     YY_BREAK
  1622. case 118:
  1623. # line 184 "scan.l"
  1624. eol();
  1625.     YY_BREAK
  1626. case 119:
  1627. # line 185 "scan.l"
  1628. eol();
  1629.     YY_BREAK
  1630. case 120:
  1631. # line 186 "scan.l"
  1632. istackp->item(eol());
  1633.     YY_BREAK
  1634. case 121:
  1635. # line 187 "scan.l"
  1636. item_begin(":ul.", 'u',0); skip();
  1637.     YY_BREAK
  1638. case 122:
  1639. # line 188 "scan.l"
  1640. item_end(":eul.");
  1641.     YY_BREAK
  1642. case 123:
  1643. # line 189 "scan.l"
  1644. istackp->item(eol());
  1645.     YY_BREAK
  1646. case 124:
  1647. # line 190 "scan.l"
  1648. PUTS(arg());
  1649.     YY_BREAK
  1650. case 125:
  1651. # line 191 "scan.l"
  1652. PUTS(arg());
  1653.     YY_BREAK
  1654. case 126:
  1655. # line 192 "scan.l"
  1656. indexes["ky"].entries[eol()].add(XItem(panel_name, panel_id));
  1657.     YY_BREAK
  1658. case 127:
  1659. # line 193 "scan.l"
  1660. beg_example("Courier");
  1661.     YY_BREAK
  1662. case 128:
  1663. # line 194 "scan.l"
  1664. end_example();
  1665.     YY_BREAK
  1666. case 129:
  1667. # line 195 "scan.l"
  1668. eol();
  1669.     YY_BREAK
  1670. case 130:
  1671. # line 196 "scan.l"
  1672. eol(); BEGIN(MENU); menu.line = ""; PUTS(":parml tsize=30 break=none compact.");
  1673.     YY_BREAK
  1674. case 131:
  1675. # line 197 "scan.l"
  1676. BEGIN(0); eol(); menu.flush(); PUTS(":eparml.");
  1677.     YY_BREAK
  1678. case 132:
  1679. # line 198 "scan.l"
  1680. menu.flush(); menu.line = eol();
  1681.     YY_BREAK
  1682. case 133:
  1683. # line 199 "scan.l"
  1684. menu.line += ' '; menu.line += eol();
  1685.     YY_BREAK
  1686. case 134:
  1687. # line 200 "scan.l"
  1688. menu.flush(); PUTL(); ++yylineno;
  1689.     YY_BREAK
  1690. case 135:
  1691. # line 201 "scan.l"
  1692. ++yylineno;
  1693.     YY_BREAK
  1694. case 136:
  1695. # line 202 "scan.l"
  1696. menu.flush(); PUTS(yytext[0]); PUTS(eol()); PUTL();
  1697.     YY_BREAK
  1698. case 137:
  1699. # line 203 "scan.l"
  1700. PUTS("&emdash.");
  1701.     YY_BREAK
  1702. case 138:
  1703. # line 204 "scan.l"
  1704. eol();
  1705.     YY_BREAK
  1706. case 139:
  1707. # line 205 "scan.l"
  1708. words(eol()); node(w[0], w[1], w[2], w[3]);
  1709.     YY_BREAK
  1710. case 140:
  1711. # line 206 "scan.l"
  1712. newpara = 0; PUTS(endl << ".br"); PUTL();
  1713.     YY_BREAK
  1714. case 141:
  1715. # line 207 "scan.l"
  1716. eol();
  1717.     YY_BREAK
  1718. case 142:
  1719. # line 208 "scan.l"
  1720. eol();
  1721.     YY_BREAK
  1722. case 143:
  1723. # line 209 "scan.l"
  1724. ;
  1725.     YY_BREAK
  1726. case 144:
  1727. # line 210 "scan.l"
  1728. eol();
  1729.     YY_BREAK
  1730. case 145:
  1731. # line 211 "scan.l"
  1732. indexes["pg"].entries[eol()].add(XItem(panel_name, panel_id));
  1733.     YY_BREAK
  1734. case 146:
  1735. # line 212 "scan.l"
  1736. PUTS('*');
  1737.     YY_BREAK
  1738. case 147:
  1739. # line 213 "scan.l"
  1740. PUTS("&bxh.&bxri.");
  1741.     YY_BREAK
  1742. case 148:
  1743. # line 214 "scan.l"
  1744. printindex(eol());
  1745.     YY_BREAK
  1746. case 149:
  1747. # line 215 "scan.l"
  1748. words(arg()); xref("see ", w[0], w[1], w[2], w[3], w[4]);
  1749.     YY_BREAK
  1750. case 150:
  1751. # line 216 "scan.l"
  1752. margin(+10); PUTA(":rm margin=4.");
  1753.     YY_BREAK
  1754. case 151:
  1755. # line 217 "scan.l"
  1756. margin(-10); PUTA(":rm margin=1.");
  1757.     YY_BREAK
  1758. case 152:
  1759. # line 218 "scan.l"
  1760. font("'Tms Rmn'"); PUTS(arg()); font(0);
  1761.     YY_BREAK
  1762. case 153:
  1763. # line 219 "scan.l"
  1764. words(arg()); xref(0, w[0], w[1], w[2], w[3], w[4]);
  1765.     YY_BREAK
  1766. case 154:
  1767. # line 220 "scan.l"
  1768. ;
  1769.     YY_BREAK
  1770. case 155:
  1771. # line 221 "scan.l"
  1772. PUTS("=>");
  1773.     YY_BREAK
  1774. case 156:
  1775. # line 222 "scan.l"
  1776. font("Courier"); PUTS("&apos." << arg() << "&apos."); font(0);
  1777.     YY_BREAK
  1778. case 157:
  1779. # line 223 "scan.l"
  1780. { char *cp = arg(); strupr(cp); font("Helv", "8x4"); PUTS(cp); font(0); }
  1781.     YY_BREAK
  1782. case 158:
  1783. # line 224 "scan.l"
  1784. heading(2, eol());
  1785.     YY_BREAK
  1786. case 159:
  1787. # line 225 "scan.l"
  1788. flags[eol()] = 1;
  1789.     YY_BREAK
  1790. case 160:
  1791. # line 226 "scan.l"
  1792. eol();
  1793.     YY_BREAK
  1794. case 161:
  1795. # line 227 "scan.l"
  1796. eol();
  1797.     YY_BREAK
  1798. case 162:
  1799. # line 228 "scan.l"
  1800. PUT(":title." << eol() << endl << ":h1.-Preface-"); PUTL();
  1801.     YY_BREAK
  1802. case 163:
  1803. # line 229 "scan.l"
  1804. ;
  1805.     YY_BREAK
  1806. case 164:
  1807. # line 230 "scan.l"
  1808. ;
  1809.     YY_BREAK
  1810. case 165:
  1811. # line 231 "scan.l"
  1812. beg_example("Courier");
  1813.     YY_BREAK
  1814. case 166:
  1815. # line 232 "scan.l"
  1816. end_example();
  1817.     YY_BREAK
  1818. case 167:
  1819. # line 233 "scan.l"
  1820. beg_example("Courier");
  1821.     YY_BREAK
  1822. case 168:
  1823. # line 234 "scan.l"
  1824. end_example();
  1825.     YY_BREAK
  1826. case 169:
  1827. # line 235 "scan.l"
  1828. { int n = atoi(eol()); while (n--) PUTS(endl << ".br" << endl); lastnl = 1; }
  1829.     YY_BREAK
  1830. case 170:
  1831. # line 236 "scan.l"
  1832. PUTA(":hp2."); PUTS(arg()); PUTA(":ehp2.");
  1833.     YY_BREAK
  1834. case 171:
  1835. # line 237 "scan.l"
  1836. heading(3, eol());
  1837.     YY_BREAK
  1838. case 172:
  1839. # line 238 "scan.l"
  1840. heading(3, eol());
  1841.     YY_BREAK
  1842. case 173:
  1843. # line 239 "scan.l"
  1844. heading(4, eol());
  1845.     YY_BREAK
  1846. case 174:
  1847. # line 240 "scan.l"
  1848. heading(4, eol());
  1849.     YY_BREAK
  1850. case 175:
  1851. # line 241 "scan.l"
  1852. eol();
  1853.     YY_BREAK
  1854. case 176:
  1855. # line 242 "scan.l"
  1856. ;
  1857.     YY_BREAK
  1858. case 177:
  1859. # line 243 "scan.l"
  1860. eol();
  1861.     YY_BREAK
  1862. case 178:
  1863. # line 244 "scan.l"
  1864. eol();
  1865.     YY_BREAK
  1866. case 179:
  1867. # line 245 "scan.l"
  1868. font("Courier"); PUTS(arg()); font(0);
  1869.     YY_BREAK
  1870. case 180:
  1871. # line 246 "scan.l"
  1872. font("Courier"); PUTS(arg()); font(0);
  1873.     YY_BREAK
  1874. case 181:
  1875. # line 247 "scan.l"
  1876. BEGIN(TABLE); item_begin(":parml break=fit.", 'p',0); BEGIN(TABLE);
  1877.     YY_BREAK
  1878. case 182:
  1879. # line 248 "scan.l"
  1880. item_end(":eparml.");
  1881.     YY_BREAK
  1882. case 183:
  1883. # line 249 "scan.l"
  1884. PUTS("TeX");
  1885.     YY_BREAK
  1886. case 184:
  1887. # line 250 "scan.l"
  1888. BEGIN(TEX);
  1889.     YY_BREAK
  1890. case 185:
  1891. # line 251 "scan.l"
  1892. BEGIN(0); eol();
  1893.     YY_BREAK
  1894. case 186:
  1895. # line 252 "scan.l"
  1896. ++yylineno;
  1897.     YY_BREAK
  1898. case 187:
  1899. # line 253 "scan.l"
  1900. ;
  1901.     YY_BREAK
  1902. case 188:
  1903. # line 254 "scan.l"
  1904. ;
  1905.     YY_BREAK
  1906. case 189:
  1907. # line 255 "scan.l"
  1908. ;
  1909.     YY_BREAK
  1910. case 190:
  1911. # line 256 "scan.l"
  1912. ;
  1913.     YY_BREAK
  1914. case 191:
  1915. # line 257 "scan.l"
  1916. ;
  1917.     YY_BREAK
  1918. case 192:
  1919. # line 258 "scan.l"
  1920. ;
  1921.     YY_BREAK
  1922. case 193:
  1923. # line 259 "scan.l"
  1924. indexes["tp"].entries[eol()].add(XItem(panel_name, panel_id));
  1925.     YY_BREAK
  1926. case 194:
  1927. # line 260 "scan.l"
  1928. ;
  1929.     YY_BREAK
  1930. case 195:
  1931. # line 261 "scan.l"
  1932. arg();
  1933.     YY_BREAK
  1934. case 196:
  1935. # line 262 "scan.l"
  1936. BEGIN(TITLE);
  1937.     YY_BREAK
  1938. case 197:
  1939. # line 263 "scan.l"
  1940. BEGIN(0); eol();
  1941.     YY_BREAK
  1942. case 198:
  1943. # line 264 "scan.l"
  1944. ++yylineno;
  1945.     YY_BREAK
  1946. case 199:
  1947. # line 265 "scan.l"
  1948. ;
  1949.     YY_BREAK
  1950. case 200:
  1951. # line 266 "scan.l"
  1952.  
  1953.     YY_BREAK
  1954. case 201:
  1955. # line 267 "scan.l"
  1956. table["Top"] = Name(++hdid, 1, 0); heading(1, eol());
  1957.     YY_BREAK
  1958. case 202:
  1959. # line 268 "scan.l"
  1960. heading(1, eol());
  1961.     YY_BREAK
  1962. case 203:
  1963. # line 269 "scan.l"
  1964. heading(2, eol());
  1965.     YY_BREAK
  1966. case 204:
  1967. # line 270 "scan.l"
  1968. heading(3, eol());
  1969.     YY_BREAK
  1970. case 205:
  1971. # line 271 "scan.l"
  1972. heading(4, eol());
  1973.     YY_BREAK
  1974. case 206:
  1975. # line 272 "scan.l"
  1976. PUTA(":hp1."); PUTS(arg()); PUTA(":ehp1.");
  1977.     YY_BREAK
  1978. case 207:
  1979. # line 273 "scan.l"
  1980. indexes["vr"].entries[eol()].add(XItem(panel_name, panel_id));
  1981.     YY_BREAK
  1982. case 208:
  1983. # line 274 "scan.l"
  1984. eol();
  1985.     YY_BREAK
  1986. case 209:
  1987. # line 275 "scan.l"
  1988. BEGIN(TABLE);  item_begin(":parml break=fit.", 'p',"Variable");
  1989.     YY_BREAK
  1990. case 210:
  1991. # line 276 "scan.l"
  1992. item_end(":eparml.");
  1993.     YY_BREAK
  1994. case 211:
  1995. # line 277 "scan.l"
  1996. single_word(arg());
  1997.     YY_BREAK
  1998. case 212:
  1999. # line 278 "scan.l"
  2000. words(arg()); xref("See ", w[0], w[1], w[2], w[3], w[4]);
  2001.     YY_BREAK
  2002. case 213:
  2003. # line 280 "scan.l"
  2004. { cerr << "Unknown control " << yytext << " in line " << yylineno << endl; }
  2005.     YY_BREAK
  2006. case 214:
  2007. # line 281 "scan.l"
  2008. { cerr << "Unknown control " << yytext << " in line " << yylineno << endl; }
  2009.     YY_BREAK
  2010. case 215:
  2011. # line 283 "scan.l"
  2012. PUTS("&.");
  2013.     YY_BREAK
  2014. case 216:
  2015. # line 284 "scan.l"
  2016. ++yylineno; return '\n';
  2017.     YY_BREAK
  2018. case 217:
  2019. # line 285 "scan.l"
  2020. ;
  2021.     YY_BREAK
  2022. case 218:
  2023. # line 286 "scan.l"
  2024. PUTS("&colon.");
  2025.     YY_BREAK
  2026. case 219:
  2027. # line 287 "scan.l"
  2028. dot();
  2029.     YY_BREAK
  2030. case 220:
  2031. # line 288 "scan.l"
  2032. PUTS(arg());
  2033.     YY_BREAK
  2034. case 221:
  2035. # line 289 "scan.l"
  2036. return '}';
  2037.     YY_BREAK
  2038. case 222:
  2039. # line 290 "scan.l"
  2040. PUTS(yytext[0]);
  2041.     YY_BREAK
  2042. case 223:
  2043. # line 293 "scan.l"
  2044. YY_FATAL_ERROR( "flex scanner jammed" );
  2045.     YY_BREAK
  2046.  
  2047.         case YY_END_OF_BUFFER:
  2048.         {
  2049.         /* amount of text matched not including the EOB char */
  2050.         int yy_amount_of_matched_text = yy_cp - yytext - 1;
  2051.  
  2052.         /* undo the effects of YY_DO_BEFORE_ACTION */
  2053.         *yy_cp = yy_hold_char;
  2054.  
  2055.         /* note that here we test for yy_c_buf_p "<=" to the position
  2056.          * of the first EOB in the buffer, since yy_c_buf_p will
  2057.          * already have been incremented past the NUL character
  2058.          * (since all states make transitions on EOB to the end-
  2059.          * of-buffer state).  Contrast this with the test in yyinput().
  2060.          */
  2061.         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2062.             /* this was really a NUL */
  2063.             {
  2064.             yy_state_type yy_next_state;
  2065.  
  2066.             yy_c_buf_p = yytext + yy_amount_of_matched_text;
  2067.  
  2068.             yy_current_state = yy_get_previous_state();
  2069.  
  2070.             /* okay, we're now positioned to make the
  2071.              * NUL transition.  We couldn't have
  2072.              * yy_get_previous_state() go ahead and do it
  2073.              * for us because it doesn't know how to deal
  2074.              * with the possibility of jamming (and we
  2075.              * don't want to build jamming into it because
  2076.              * then it will run more slowly)
  2077.              */
  2078.  
  2079.             yy_next_state = yy_try_NUL_trans( yy_current_state );
  2080.  
  2081.             yy_bp = yytext + YY_MORE_ADJ;
  2082.  
  2083.             if ( yy_next_state )
  2084.             {
  2085.             /* consume the NUL */
  2086.             yy_cp = ++yy_c_buf_p;
  2087.             yy_current_state = yy_next_state;
  2088.             goto yy_match;
  2089.             }
  2090.  
  2091.             else
  2092.             {
  2093.                 yy_cp = yy_last_accepting_cpos;
  2094.                 yy_current_state = yy_last_accepting_state;
  2095.             goto yy_find_action;
  2096.             }
  2097.             }
  2098.  
  2099.         else switch ( yy_get_next_buffer() )
  2100.             {
  2101.             case EOB_ACT_END_OF_FILE:
  2102.             {
  2103.             yy_did_buffer_switch_on_eof = 0;
  2104.  
  2105.             if ( yywrap() )
  2106.                 {
  2107.                 /* note: because we've taken care in
  2108.                  * yy_get_next_buffer() to have set up yytext,
  2109.                  * we can now set up yy_c_buf_p so that if some
  2110.                  * total hoser (like flex itself) wants
  2111.                  * to call the scanner after we return the
  2112.                  * YY_NULL, it'll still work - another YY_NULL
  2113.                  * will get returned.
  2114.                  */
  2115.                 yy_c_buf_p = yytext + YY_MORE_ADJ;
  2116.  
  2117.                 yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  2118.                 goto do_action;
  2119.                 }
  2120.  
  2121.             else
  2122.                 {
  2123.                 if ( ! yy_did_buffer_switch_on_eof )
  2124.                 YY_NEW_FILE;
  2125.                 }
  2126.             }
  2127.             break;
  2128.  
  2129.             case EOB_ACT_CONTINUE_SCAN:
  2130.             yy_c_buf_p = yytext + yy_amount_of_matched_text;
  2131.  
  2132.             yy_current_state = yy_get_previous_state();
  2133.  
  2134.             yy_cp = yy_c_buf_p;
  2135.             yy_bp = yytext + YY_MORE_ADJ;
  2136.             goto yy_match;
  2137.  
  2138.             case EOB_ACT_LAST_MATCH:
  2139.             yy_c_buf_p =
  2140.                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
  2141.  
  2142.             yy_current_state = yy_get_previous_state();
  2143.  
  2144.             yy_cp = yy_c_buf_p;
  2145.             yy_bp = yytext + YY_MORE_ADJ;
  2146.             goto yy_find_action;
  2147.             }
  2148.         break;
  2149.         }
  2150.  
  2151.         default:
  2152. #ifdef FLEX_DEBUG
  2153.         printf( "action # %d\n", yy_act );
  2154. #endif
  2155.         YY_FATAL_ERROR(
  2156.             "fatal flex scanner internal error--no action found" );
  2157.         }
  2158.     }
  2159.     }
  2160.  
  2161.  
  2162. /* yy_get_next_buffer - try to read in a new buffer
  2163.  *
  2164.  * synopsis
  2165.  *     int yy_get_next_buffer();
  2166.  *     
  2167.  * returns a code representing an action
  2168.  *     EOB_ACT_LAST_MATCH - 
  2169.  *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  2170.  *     EOB_ACT_END_OF_FILE - end of file
  2171.  */
  2172.  
  2173. static int yy_get_next_buffer()
  2174.  
  2175.     {
  2176.     register YY_CHAR *dest = yy_current_buffer->yy_ch_buf;
  2177.     register YY_CHAR *source = yytext - 1; /* copy prev. char, too */
  2178.     register int number_to_move, i;
  2179.     int ret_val;
  2180.  
  2181.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  2182.     YY_FATAL_ERROR(
  2183.         "fatal flex scanner internal error--end of buffer missed" );
  2184.  
  2185.     /* try to read more data */
  2186.  
  2187.     /* first move last chars to start of buffer */
  2188.     number_to_move = yy_c_buf_p - yytext;
  2189.  
  2190.     for ( i = 0; i < number_to_move; ++i )
  2191.     *(dest++) = *(source++);
  2192.  
  2193.     if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
  2194.     /* don't do the read, it's not guaranteed to return an EOF,
  2195.      * just force an EOF
  2196.      */
  2197.     yy_n_chars = 0;
  2198.  
  2199.     else
  2200.     {
  2201.     int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1;
  2202.  
  2203.     if ( num_to_read > YY_READ_BUF_SIZE )
  2204.         num_to_read = YY_READ_BUF_SIZE;
  2205.  
  2206.     else if ( num_to_read <= 0 )
  2207.         YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
  2208.  
  2209.     /* read in more data */
  2210.     YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  2211.           yy_n_chars, num_to_read );
  2212.     }
  2213.  
  2214.     if ( yy_n_chars == 0 )
  2215.     {
  2216.     if ( number_to_move == 1 )
  2217.         {
  2218.         ret_val = EOB_ACT_END_OF_FILE;
  2219.         yy_current_buffer->yy_eof_status = EOF_DONE;
  2220.         }
  2221.  
  2222.     else
  2223.         {
  2224.         ret_val = EOB_ACT_LAST_MATCH;
  2225.         yy_current_buffer->yy_eof_status = EOF_PENDING;
  2226.         }
  2227.     }
  2228.  
  2229.     else
  2230.     ret_val = EOB_ACT_CONTINUE_SCAN;
  2231.  
  2232.     yy_n_chars += number_to_move;
  2233.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  2234.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  2235.  
  2236.     /* yytext begins at the second character in yy_ch_buf; the first
  2237.      * character is the one which preceded it before reading in the latest
  2238.      * buffer; it needs to be kept around in case it's a newline, so
  2239.      * yy_get_previous_state() will have with '^' rules active
  2240.      */
  2241.  
  2242.     yytext = &yy_current_buffer->yy_ch_buf[1];
  2243.  
  2244.     return ( ret_val );
  2245.     }
  2246.  
  2247.  
  2248. /* yy_get_previous_state - get the state just before the EOB char was reached
  2249.  *
  2250.  * synopsis
  2251.  *     yy_state_type yy_get_previous_state();
  2252.  */
  2253.  
  2254. static yy_state_type yy_get_previous_state()
  2255.  
  2256.     {
  2257.     register yy_state_type yy_current_state;
  2258.     register YY_CHAR *yy_cp;
  2259.  
  2260.     yy_current_state = yy_start;
  2261.  
  2262.     for ( yy_cp = yytext + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  2263.     {
  2264.     register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1);
  2265.     if ( yy_accept[yy_current_state] )
  2266.         {
  2267.         yy_last_accepting_state = yy_current_state;
  2268.         yy_last_accepting_cpos = yy_cp;
  2269.         }
  2270.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2271.         {
  2272.         yy_current_state = yy_def[yy_current_state];
  2273.         if ( yy_current_state >= 1027 )
  2274.         yy_c = yy_meta[yy_c];
  2275.         }
  2276.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  2277.     }
  2278.  
  2279.     return ( yy_current_state );
  2280.     }
  2281.  
  2282.  
  2283. /* yy_try_NUL_trans - try to make a transition on the NUL character
  2284.  *
  2285.  * synopsis
  2286.  *     next_state = yy_try_NUL_trans( current_state );
  2287.  */
  2288.  
  2289. #ifdef YY_USE_PROTOS
  2290. static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
  2291. #else
  2292. static yy_state_type yy_try_NUL_trans( yy_current_state )
  2293. register yy_state_type yy_current_state;
  2294. #endif
  2295.  
  2296.     {
  2297.     register int yy_is_jam;
  2298.     register YY_CHAR *yy_cp = yy_c_buf_p;
  2299.  
  2300.     register YY_CHAR yy_c = 1;
  2301.     if ( yy_accept[yy_current_state] )
  2302.     {
  2303.     yy_last_accepting_state = yy_current_state;
  2304.     yy_last_accepting_cpos = yy_cp;
  2305.     }
  2306.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2307.     {
  2308.     yy_current_state = yy_def[yy_current_state];
  2309.     if ( yy_current_state >= 1027 )
  2310.         yy_c = yy_meta[yy_c];
  2311.     }
  2312.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  2313.     yy_is_jam = (yy_current_state == 1026);
  2314.  
  2315.     return ( yy_is_jam ? 0 : yy_current_state );
  2316.     }
  2317.  
  2318.  
  2319. #ifdef YY_USE_PROTOS
  2320. static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp )
  2321. #else
  2322. static void yyunput( c, yy_bp )
  2323. YY_CHAR c;
  2324. register YY_CHAR *yy_bp;
  2325. #endif
  2326.  
  2327.     {
  2328.     register YY_CHAR *yy_cp = yy_c_buf_p;
  2329.  
  2330.     /* undo effects of setting up yytext */
  2331.     *yy_cp = yy_hold_char;
  2332.  
  2333.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2334.     { /* need to shift things up to make room */
  2335.     register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  2336.     register YY_CHAR *dest =
  2337.         &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
  2338.     register YY_CHAR *source =
  2339.         &yy_current_buffer->yy_ch_buf[number_to_move];
  2340.  
  2341.     while ( source > yy_current_buffer->yy_ch_buf )
  2342.         *--dest = *--source;
  2343.  
  2344.     yy_cp += dest - source;
  2345.     yy_bp += dest - source;
  2346.     yy_n_chars = yy_current_buffer->yy_buf_size;
  2347.  
  2348.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2349.         YY_FATAL_ERROR( "flex scanner push-back overflow" );
  2350.     }
  2351.  
  2352.     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  2353.     yy_cp[-2] = '\n';
  2354.  
  2355.     *--yy_cp = c;
  2356.  
  2357.     /* note: the formal parameter *must* be called "yy_bp" for this
  2358.      *       macro to now work correctly
  2359.      */
  2360.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  2361.     }
  2362.  
  2363.  
  2364. #ifdef __cplusplus
  2365. static int yyinput()
  2366. #else
  2367. static int input()
  2368. #endif
  2369.  
  2370.     {
  2371.     int c;
  2372.     YY_CHAR *yy_cp = yy_c_buf_p;
  2373.  
  2374.     *yy_cp = yy_hold_char;
  2375.  
  2376.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  2377.     {
  2378.     /* yy_c_buf_p now points to the character we want to return.
  2379.      * If this occurs *before* the EOB characters, then it's a
  2380.      * valid NUL; if not, then we've hit the end of the buffer.
  2381.      */
  2382.     if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2383.         /* this was really a NUL */
  2384.         *yy_c_buf_p = '\0';
  2385.  
  2386.     else
  2387.         { /* need more input */
  2388.         yytext = yy_c_buf_p;
  2389.         ++yy_c_buf_p;
  2390.  
  2391.         switch ( yy_get_next_buffer() )
  2392.         {
  2393.         case EOB_ACT_END_OF_FILE:
  2394.             {
  2395.             if ( yywrap() )
  2396.             {
  2397.             yy_c_buf_p = yytext + YY_MORE_ADJ;
  2398.             return ( EOF );
  2399.             }
  2400.  
  2401.             YY_NEW_FILE;
  2402.  
  2403. #ifdef __cplusplus
  2404.             return ( yyinput() );
  2405. #else
  2406.             return ( input() );
  2407. #endif
  2408.             }
  2409.             break;
  2410.  
  2411.         case EOB_ACT_CONTINUE_SCAN:
  2412.             yy_c_buf_p = yytext + YY_MORE_ADJ;
  2413.             break;
  2414.  
  2415.         case EOB_ACT_LAST_MATCH:
  2416. #ifdef __cplusplus
  2417.             YY_FATAL_ERROR( "unexpected last match in yyinput()" );
  2418. #else
  2419.             YY_FATAL_ERROR( "unexpected last match in input()" );
  2420. #endif
  2421.         }
  2422.         }
  2423.     }
  2424.  
  2425.     c = *yy_c_buf_p;
  2426.     yy_hold_char = *++yy_c_buf_p;
  2427.  
  2428.     return ( c );
  2429.     }
  2430.  
  2431.  
  2432. #ifdef YY_USE_PROTOS
  2433. void yyrestart( FILE *input_file )
  2434. #else
  2435. void yyrestart( input_file )
  2436. FILE *input_file;
  2437. #endif
  2438.  
  2439.     {
  2440.     yy_init_buffer( yy_current_buffer, input_file );
  2441.     yy_load_buffer_state();
  2442.     }
  2443.  
  2444.  
  2445. #ifdef YY_USE_PROTOS
  2446. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  2447. #else
  2448. void yy_switch_to_buffer( new_buffer )
  2449. YY_BUFFER_STATE new_buffer;
  2450. #endif
  2451.  
  2452.     {
  2453.     if ( yy_current_buffer == new_buffer )
  2454.     return;
  2455.  
  2456.     if ( yy_current_buffer )
  2457.     {
  2458.     /* flush out information for old buffer */
  2459.     *yy_c_buf_p = yy_hold_char;
  2460.     yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  2461.     yy_current_buffer->yy_n_chars = yy_n_chars;
  2462.     }
  2463.  
  2464.     yy_current_buffer = new_buffer;
  2465.     yy_load_buffer_state();
  2466.  
  2467.     /* we don't actually know whether we did this switch during
  2468.      * EOF (yywrap()) processing, but the only time this flag
  2469.      * is looked at is after yywrap() is called, so it's safe
  2470.      * to go ahead and always set it.
  2471.      */
  2472.     yy_did_buffer_switch_on_eof = 1;
  2473.     }
  2474.  
  2475.  
  2476. #ifdef YY_USE_PROTOS
  2477. void yy_load_buffer_state( void )
  2478. #else
  2479. void yy_load_buffer_state()
  2480. #endif
  2481.  
  2482.     {
  2483.     yy_n_chars = yy_current_buffer->yy_n_chars;
  2484.     yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  2485.     yyin = yy_current_buffer->yy_input_file;
  2486.     yy_hold_char = *yy_c_buf_p;
  2487.     }
  2488.  
  2489.  
  2490. #ifdef YY_USE_PROTOS
  2491. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  2492. #else
  2493. YY_BUFFER_STATE yy_create_buffer( file, size )
  2494. FILE *file;
  2495. int size;
  2496. #endif
  2497.  
  2498.     {
  2499.     YY_BUFFER_STATE b;
  2500.  
  2501.     b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
  2502.  
  2503.     if ( ! b )
  2504.     YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2505.  
  2506.     b->yy_buf_size = size;
  2507.  
  2508.     /* yy_ch_buf has to be 2 characters longer than the size given because
  2509.      * we need to put in 2 end-of-buffer characters.
  2510.      */
  2511.     b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
  2512.  
  2513.     if ( ! b->yy_ch_buf )
  2514.     YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2515.  
  2516.     yy_init_buffer( b, file );
  2517.  
  2518.     return ( b );
  2519.     }
  2520.  
  2521.  
  2522. #ifdef YY_USE_PROTOS
  2523. void yy_delete_buffer( YY_BUFFER_STATE b )
  2524. #else
  2525. void yy_delete_buffer( b )
  2526. YY_BUFFER_STATE b;
  2527. #endif
  2528.  
  2529.     {
  2530.     if ( b == yy_current_buffer )
  2531.     yy_current_buffer = (YY_BUFFER_STATE) 0;
  2532.  
  2533.     free( (char *) b->yy_ch_buf );
  2534.     free( (char *) b );
  2535.     }
  2536.  
  2537.  
  2538. #ifdef YY_USE_PROTOS
  2539. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  2540. #else
  2541. void yy_init_buffer( b, file )
  2542. YY_BUFFER_STATE b;
  2543. FILE *file;
  2544. #endif
  2545.  
  2546.     {
  2547.     b->yy_input_file = file;
  2548.  
  2549.     /* we put in the '\n' and start reading from [1] so that an
  2550.      * initial match-at-newline will be true.
  2551.      */
  2552.  
  2553.     b->yy_ch_buf[0] = '\n';
  2554.     b->yy_n_chars = 1;
  2555.  
  2556.     /* we always need two end-of-buffer characters.  The first causes
  2557.      * a transition to the end-of-buffer state.  The second causes
  2558.      * a jam in that state.
  2559.      */
  2560.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  2561.     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
  2562.  
  2563.     b->yy_buf_pos = &b->yy_ch_buf[1];
  2564.  
  2565.     b->yy_eof_status = EOF_NOT_SEEN;
  2566.     }
  2567. # line 293 "scan.l"
  2568.  
  2569.  
  2570. static String    buffer;
  2571.  
  2572. String &
  2573. arg()
  2574. {
  2575.     ostrstream ostr;
  2576.     ostream *old = out;
  2577.     out = &ostr;
  2578.  
  2579.     if (plevel == 9)
  2580.         unexpected(0);
  2581.     plines[++plevel] = yylineno;
  2582.     if (yy_flex_debug)
  2583.         fprintf(stderr, "++push to %d\n", plevel);
  2584.  
  2585.     int old_start = yy_start;
  2586.     int old_np = newpara;
  2587.     int old_nl = lastnl;
  2588.     BEGIN(0);
  2589.     newpara = 0;
  2590.     for (;;) {
  2591.         switch (yylex()) {
  2592.         case 0:
  2593.             unexpected("EOF");
  2594.         case '}':
  2595.             break;
  2596.         case '\n':
  2597.             if (ostr.pcount() > 100) {
  2598.                 PUTL();
  2599.             } else
  2600.                 PUT(' ');
  2601.             ++yylineno;
  2602.             continue;
  2603.         default:
  2604.             continue;
  2605.         }
  2606.         break;
  2607.     }
  2608.     yy_start = old_start;
  2609.     newpara = old_np;
  2610.     lastnl = old_nl;
  2611.  
  2612.     if (yy_flex_debug)
  2613.         fprintf(stderr, "++pop from %d\n", plevel);
  2614.     --plevel;
  2615.  
  2616.     buffer = String(ostr.str(), ostr.pcount());
  2617.     while (buffer.length() && isspace(buffer[0]))
  2618.         buffer.del(0, 1);
  2619.     out = old;
  2620.     return buffer;
  2621. }
  2622.  
  2623. String &
  2624. eol()
  2625. {
  2626.     ostrstream ostr;
  2627.     ostream *old = out;
  2628.     out = &ostr;
  2629.     
  2630.     if (plevel == 9)
  2631.         unexpected(0);
  2632.     plines[++plevel] = yylineno;
  2633.     if (yy_flex_debug)
  2634.         fprintf(stderr, "++push to %d\n", plevel);
  2635.  
  2636.     int old_start = yy_start;
  2637.     int old_np = newpara;
  2638.     int old_nl = lastnl;
  2639.     BEGIN(0);
  2640.     newpara = 0;
  2641.     for (;;) {
  2642.         switch (yylex()) {
  2643.         case 0:
  2644.             unexpected("EOF");
  2645.         case '}':
  2646.             unput('}');
  2647.             break;
  2648.         case '\n':
  2649.             unput('\n');
  2650.             break;
  2651.         default:
  2652.             continue;
  2653.         }
  2654.         break;
  2655.     }
  2656.     yy_start = old_start;
  2657.     newpara = old_np;
  2658.     lastnl = old_nl;
  2659.  
  2660.     if (yy_flex_debug)
  2661.         fprintf(stderr, "++pop from %d\n", plevel);
  2662.     --plevel;
  2663.  
  2664.     buffer = String(ostr.str(), ostr.pcount());
  2665.     while (buffer.length() && isspace(buffer[0]))
  2666.         buffer.del(0, 1);
  2667.     out = old;
  2668.     return buffer;
  2669. }
  2670.  
  2671. void
  2672. unexpected(const char *msg)
  2673. {
  2674.     if (msg)
  2675.         cerr << "Unexpected EOF in line " << yylineno << endl;
  2676.     else
  2677.         cerr << "Nesting overflow in line " << yylineno << endl;
  2678.     for (; plevel; --plevel)
  2679.         cerr << "\tunterminated argument starting in line "
  2680.              << plines[plevel] << endl;
  2681.     cerr.flush();
  2682.     exit(1);
  2683. }
  2684.  
  2685. void
  2686. footnote()
  2687. {
  2688.     ++fnid;
  2689.     PUTS(":fn id=fn" << fnid << '.' << arg() << ":efn. "
  2690.       << ":link reftype=fn refid=fn" << fnid << ".(" << fnid << "):elink.");
  2691. }
  2692.  
  2693. void
  2694. newline()
  2695. {
  2696.     if (!lastnl) {
  2697.         lastnl = 1;
  2698.         *out << endl;
  2699.     }
  2700.     if (!nofill) {
  2701.         int c = yyinput();
  2702.         if (c == '\n') {
  2703.             newpara = 1;
  2704.             do ++yylineno; while ((c = yyinput()) == '\n');
  2705.         }
  2706.         unput(c);
  2707.     }
  2708. }    
  2709.  
  2710. void
  2711. skip()
  2712. {
  2713.     for (int c; (c = yyinput()) != '\n'; )
  2714.         ;
  2715.     ++yylineno;
  2716. }
  2717.  
  2718. void
  2719. dot()
  2720. {
  2721.     int c = yyinput();
  2722.     if (c == '.') {
  2723.         PUTS("&dot.");
  2724.         do { PUT("&dot."); } while ((c = yyinput()) == '.');
  2725.     } else if (lastnl) {
  2726.         PUTS("&dot.");
  2727.     } else
  2728.         PUTS('.');
  2729.     unput(c);
  2730. }
  2731.  
  2732. void
  2733. include(const char *fname)
  2734. {
  2735.     if (incllevel >= MaxIncl) {
  2736.         fprintf(stderr, "Includes nested too deeply\n");
  2737.         exit(1);
  2738.     }
  2739.     inclstack[incllevel++] = YY_CURRENT_BUFFER;
  2740.  
  2741.     char name[FILENAME_MAX+1];
  2742.     strcpy(name, fname);
  2743.     char *namep = strtok(name, " \t");    // strip any blanks
  2744.     yyin = fopen(namep, "r");
  2745.     if (!yyin) {
  2746.         char *dotp = strrchr(namep, '.');
  2747.         if (dotp && !strpbrk(dotp, ":\\/") && strlen(dotp) > 4)
  2748.             dotp[4] = 0;        // truncate .texi to .tex
  2749.         yyin = fopen(namep, "r");
  2750.     }
  2751.     if (!yyin) {
  2752.         fprintf(stderr, "Cannot open include file %s\n", namep);
  2753.         exit(1);
  2754.     }
  2755.  
  2756.     yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
  2757. }
  2758.