V10/cmd/flex/initscan.c

Compare this file to the similar file:
Show the results in this format:

#define FLEX_COMPRESSED
/* A lexical scanner generated by flex */

/* scanner skeleton version:
 * $Header: flex.skel,v 2.0 89/06/20 15:49:46 vern Locked $
 */

#include <stdio.h>

#define FLEX_SCANNER

/* amount of stuff to slurp up with each read */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif

#ifndef YY_BUF_SIZE
#define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of input buffer */
#endif

/* returned upon end-of-file */
#define YY_END_TOK 0

/* copy whatever the last rule matched to the standard output */

#define ECHO fputs( yytext, yyout )

/* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 * is returned in "result".
 */
#define YY_INPUT(buf,result,max_size) \
	if ( (result = read( fileno(yyin), buf, max_size )) < 0 ) \
	    YY_FATAL_ERROR( "read() in flex scanner failed" );
#define YY_NULL 0
#define yyterminate() return ( YY_NULL )

/* report a fatal error */
#define YY_FATAL_ERROR(msg) \
	{ \
	fputs( msg, stderr ); \
	putc( '\n', stderr ); \
	exit( 1 ); \
	}

/* default yywrap function - always treat EOF as an EOF */
#define yywrap() 1

/* enter a start condition.  This macro really ought to take a parameter,
 * but we do it the disgusting crufty way forced on us by the ()-less
 * definition of BEGIN
 */
#define BEGIN yy_start = 1 + 2 *

/* action number for EOF rule of a given start state */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)

/* special action meaning "start processing a new file" */
#define YY_NEW_FILE goto new_file

/* default declaration of generated scanner - a define so the user can
 * easily add parameters
 */
#ifdef __STDC__
#define YY_DECL int yylex( void )
#else
#define YY_DECL int yylex()
#endif

/* code executed at the end of each rule */
#define YY_BREAK break;

#define YY_END_OF_BUFFER_CHAR 0

/* done after the current pattern has been matched and before the
 * corresponding action - sets up yytext
 */
#define YY_DO_BEFORE_ACTION \
	yytext = yy_bp; \
	yy_hold_char = *yy_cp; \
	*yy_cp = '\0'; \
	yy_c_buf_p = yy_cp;

/* returns the length of the matched text */
#define yyleng (yy_cp - yy_bp)

#define EOB_ACT_RESTART_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2

/* return all but the first 'n' matched characters back to the input stream */
#define yyless(n) \
	{ \
	*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
	yy_c_buf_p = yy_cp = yy_bp + n; \
	YY_DO_BEFORE_ACTION; /* set up yytext again */ \
	}

#define unput(c) yyunput( c, yy_bp )

#define YY_USER_ACTION

FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
char *yytext;

#ifndef __STDC__
#define const
#endif

# line 1 "scan.l"
#define INITIAL 0
/* scan.l - scanner for flex input */
/*
 * Copyright (c) 1989 The Regents of the University of California.
 * All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Vern Paxson.
 * 
 * The United States Government has rights in this work pursuant to
 * contract no. DE-AC03-76SF00098 between the United States Department of
 * Energy and the University of California.
 *
 * Redistribution and use in source and binary forms are permitted
 * provided that the above copyright notice and this paragraph are
 * duplicated in all such forms and that any documentation,
 * advertising materials, and other materials related to such
 * distribution and use acknowledge that the software was developed
 * by the University of California, Berkeley.  The name of the
 * University may not be used to endorse or promote products derived
 * from this software without specific prior written permission.
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */
# line 28 "scan.l"
#include "flexdef.h"
#include "parse.h"

#ifndef lint
static char copyright[] =
    "@(#) Copyright (c) 1989 The Regents of the University of California.\n";
static char CR_continuation[] = "@(#) All rights reserved.\n";

static char rcsid[] =
    "@(#) $Header: scan.l,v 2.1 89/06/20 17:24:13 vern Exp $ (LBL)";
#endif

#define ACTION_ECHO fprintf( temp_action_file, "%s", yytext )
#define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" );

#undef YY_DECL
#define YY_DECL \
	int flexscan()

#define RETURNCHAR \
	yylval = yytext[0]; \
	return ( CHAR );

#define RETURNNAME \
	(void) strcpy( nmstr, yytext ); \
	return ( NAME );

#define PUT_BACK_STRING(str, start) \
	for ( i = strlen( str ) - 1; i >= start; --i ) \
	    unput(str[i])

#define CHECK_REJECT(str) \
	if ( all_upper( str ) ) \
	    reject = true;

#define CHECK_YYMORE(str) \
	if ( all_lower( str ) ) \
	    yymore_used = true;
#define SECT2 1
#define SECT2PROLOG 2
#define SECT3 3
#define CODEBLOCK 4
#define PICKUPDEF 5
#define SC 6
#define CARETISBOL 7
#define NUM 8
#define QUOTE 9
#define FIRSTCCL 10
#define CCL 11
#define ACTION 12
#define RECOVER 13
#define BRACEERROR 14
#define C_COMMENT 15
#define C_COMMENT_2 16
#define ACTION_COMMENT 17
#define ACTION_STRING 18
#define PERCENT_BRACE_ACTION 19
#define USED_LIST 20
# line 83 "scan.l"
#define YY_END_OF_BUFFER 116
typedef int yy_state_type;
static const short int yy_accept[317] =
    {   0,
        0,    0,    0,    0,    0,    0,  114,  114,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  116,   16,    7,   15,   13,    1,   14,   16,
       16,   16,   12,   58,   50,   51,   43,   58,   57,   41,
       58,   58,   58,   50,   39,   58,   57,   42,  115,   37,
      114,  114,   25,   26,   25,   25,   25,   25,   28,   27,
       29,   64,  115,   60,   61,   63,   65,   79,   80,   77,
       76,   78,   66,   68,   67,   66,   72,   71,   72,   72,

       74,   74,   74,   75,   90,   95,   94,   96,   96,   91,
       91,   91,   88,   89,  115,   30,   82,   81,   19,   21,
       20,  104,  106,  105,   98,  100,   99,  107,  109,  110,
      111,   86,   86,   87,   86,   86,   86,   86,   35,   32,
       31,   35,   35,    7,   13,    1,   14,    0,    2,    0,
        8,    4,    0,    5,    0,    3,   12,   50,   51,    0,
        0,   46,    0,    0,    0,  112,  112,   45,   44,   45,
        0,   50,   39,    0,    0,    0,   54,   49,    0,   37,
       36,  114,  114,   25,   25,   25,   25,   25,   28,   27,
       62,   63,   76,  113,  113,   69,   70,   73,   90,    0,

       93,    0,   92,   91,   91,   91,    0,   30,   19,   17,
      104,  102,   98,   97,  107,  108,   86,   86,   86,   83,
       86,   86,   86,   35,   32,   35,   35,    0,    8,    8,
        0,    0,    0,    0,    6,    0,   47,    0,   48,    0,
       55,    0,  112,   45,   45,   56,   40,    0,   47,    0,
       40,    0,   54,   25,   25,   25,   22,    0,  113,   91,
       91,    0,   18,    0,  103,   83,   83,   86,   86,   35,
       35,    0,   11,    8,    0,    0,    0,    0,    6,    0,
        0,   25,   25,   91,   91,   86,   86,   35,   35,    0,
        0,    9,    0,    0,   25,   25,   91,   91,   86,   86,

       35,   35,    4,    0,    0,   23,   24,   84,   85,   84,
       85,   33,   34,   10,   53,    0
    } ;

static const char yy_ec[128] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    5,    1,    6,    7,    8,    9,    1,   10,   11,
       11,   12,   11,   13,   14,   11,   15,   16,   16,   16,
       16,   16,   16,   16,   16,   16,   16,    1,    1,   17,
        1,   18,   11,    1,   24,   23,   25,   26,   27,   28,
       23,   23,   23,   29,   23,   23,   30,   31,   32,   23,
       23,   33,   34,   35,   36,   23,   23,   37,   38,   23,
       19,   20,   21,   22,   23,    1,   24,   23,   25,   26,

       27,   28,   23,   23,   23,   29,   23,   23,   30,   31,
       32,   23,   23,   33,   34,   35,   36,   23,   23,   37,
       38,   23,   39,   40,   41,    1,    1
    } ;

static const char yy_meta[42] =
    {   0,
        1,    2,    3,    2,    2,    4,    1,    1,    1,    5,
        1,    6,    1,    7,    5,    7,    1,    1,    1,    8,
        9,    1,   10,   10,   10,   10,   10,   10,   10,   10,
       10,   10,   10,   10,   10,   10,   10,   10,    5,    1,
       11
    } ;

static const short int yy_base[375] =
    {   0,
        0,   41,   81,  120, 1129, 1096, 1085, 1084,  160, 1075,
      100,  104,  201,    0, 1061, 1058,  114,  240,   91,  113,
      131,  241,  244,  246,  281,    0, 1070, 1059,  107,  109,
       87,  135,  140,  146,  242,  245,  256,  320,  340,    0,
      380,  384, 1056, 1250,  152, 1250,    0,  266, 1250, 1049,
      241, 1039,    0, 1250,  388, 1250, 1250,  322, 1250, 1026,
     1020, 1016,  428,  468, 1250, 1020, 1009, 1250, 1015,    0,
     1000, 1250,    0, 1250,    0,  975,  954,  944,    0,  326,
     1250, 1250, 1250, 1250,  962,    0, 1250, 1250, 1250, 1250,
      967, 1250, 1250, 1250, 1250,  962, 1250, 1250,  956,  947,

     1250,    0,  934, 1250,    0, 1250, 1250,  126,  934,    0,
      918,  897, 1250, 1250,  928, 1250, 1250, 1250,    0, 1250,
      915,    0, 1250,  912,    0, 1250,  905,    0, 1250, 1250,
        0,    0,  330, 1250,  857,    0,  870,  827,    0,  394,
     1250,  833,  816,  398,    0,  402, 1250,  847, 1250,  844,
      819,  788,  110, 1250,  269, 1250,    0,  476, 1250,  543,
      578, 1250,  553,   93,  230, 1250,  563,    0, 1250,  503,
      405,  543, 1250,  471,  326,  406,    0, 1250,  575,    0,
     1250,  574, 1250,    0,    0,  547,  545,  583,    0,  410,
     1250,    0,  558, 1250,  557, 1250, 1250, 1250,    0,  391,

     1250,    0, 1250,    0,  543,  541,  567, 1250,    0,  566,
        0,  565,    0, 1250,    0, 1250,    0,  422,  526,  602,
        0,  537,  535,    0,  485,  535,  533,  559,    0,  558,
      536,  523,  530,  553, 1250,  552, 1250,  551, 1250,  521,
     1250,  472,  535,    0,    0, 1250, 1250,  407,  479,  481,
     1250,  413,    0,  523,  517,    0, 1250,  540,  526,  498,
      492,  520, 1250,  519, 1250,  618,    0,  494,  488,  491,
      483,  511, 1250,  510,  479,  477,  483,  504, 1250,  478,
      479,  480,  471,  478,  469,  476,  465,  472,  458,  441,
      448, 1250,  405,  316,  360,  367,  298,  252,  238,  225,

       83,   68, 1250,   65,   70,    0,    0,    0,    0,    0,
        0,    0,    0, 1250, 1250, 1250,  656,  667,  678,  689,
      700,  711,  722,  733,  744,  755,  766,  777,  788,  799,
      810,  815,  825,  836,  841,  851,  862,  873,  884,  895,
      906,  917,  922,  932,  937,  947,  958,  969,  980,  989,
      994, 1004, 1015, 1026, 1037, 1048, 1059, 1070, 1075, 1085,
     1096, 1107, 1118, 1129, 1139, 1150, 1161, 1172, 1183, 1194,
     1205, 1216, 1227, 1238
    } ;

static const short int yy_def[375] =
    {   0,
      316,  316,  317,  317,  318,  318,  319,  319,  316,    9,
      320,  320,  316,   13,  321,  321,  322,  322,  323,  323,
      324,  324,  325,  325,  316,   25,  326,  326,  321,  321,
      327,  327,  328,  328,  329,  329,  330,  330,  316,   39,
      331,  331,  316,  316,  316,  316,  332,  316,  316,  333,
      334,  316,  335,  316,  316,  316,  316,  316,  316,  316,
      336,  337,  316,  338,  316,  316,  316,  316,  339,  340,
      341,  316,  342,  316,  343,  343,  343,  342,  344,  316,
      316,  316,  316,  316,  316,  345,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  337,  316,  316,  346,  347,

      316,  348,  337,  316,  349,  316,  316,  350,  316,  351,
      351,  351,  316,  316,  352,  316,  316,  316,  353,  316,
      316,  354,  316,  316,  355,  316,  316,  356,  316,  316,
      357,  358,  358,  316,  358,  359,  359,  359,  360,  316,
      316,  360,  360,  316,  332,  316,  316,  333,  316,  316,
      361,  316,  316,  316,  362,  316,  335,  316,  316,  316,
      363,  316,  316,  336,  336,  316,  316,  364,  316,  364,
      338,  338,  316,  338,  338,  365,  366,  316,  339,  340,
      316,  341,  316,  342,  343,  343,  343,  316,  344,  316,
      316,  345,  316,  316,  316,  316,  316,  316,  349,  350,

      316,  350,  316,  351,  351,  351,  352,  316,  353,  367,
      354,  368,  355,  316,  356,  316,  358,  358,  358,  369,
      359,  359,  359,  360,  316,  360,  360,  370,  361,  371,
      316,  316,  316,  362,  316,  372,  316,  363,  316,  316,
      316,  336,  316,  364,  170,  316,  316,  338,  338,  365,
      316,  365,  366,  343,  343,  188,  316,  373,  316,  351,
      351,  367,  316,  368,  316,  369,  374,  359,  359,  360,
      360,  370,  316,  371,  316,  316,  316,  372,  316,  316,
      336,  343,  343,  351,  351,  359,  359,  360,  360,  316,
      316,  316,  316,  336,  343,  343,  351,  351,  359,  359,

      360,  360,  316,  316,  316,  343,  343,  351,  351,  359,
      359,  360,  360,  316,  316,    0,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316
    } ;

static const short int yy_nxt[1292] =
    {   0,
       44,   45,   46,   45,   45,   44,   44,   44,   44,   44,
       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
       44,   44,   47,   47,   47,   47,   47,   47,   47,   47,
       47,   47,   47,   47,   47,   47,   47,   47,   44,   44,
       44,   44,   48,   49,   48,   48,   44,   50,   44,   51,
       44,   44,   44,   44,   44,   52,   44,   44,   44,   44,
       44,   44,   44,   53,   53,   53,   53,   53,   53,   53,
       53,   53,   53,   53,   53,   53,   53,   53,   53,   44,
       44,   44,   55,   56,   55,   55,   57,  315,   58,  120,
      314,   59,   59,   94,  313,   59,   95,   60,  121,   61,

       62,   80,   81,   80,   80,   80,   81,   80,   80,  117,
       96,  117,  165,  241,  228,   94,   89,  312,   95,   63,
       59,   64,   65,   64,   64,   57,   90,   58,   66,   91,
       59,   59,   96,   83,   67,  201,   60,  120,   61,   62,
      232,   68,  123,  233,   98,  202,  121,  118,  123,  118,
       99,  124,  100,  144,   92,  144,  144,  124,   63,   59,
       73,   73,   74,   73,   73,   73,   73,   73,   73,   73,
       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
       73,   73,   75,   75,   75,   75,   75,   75,   75,   75,
       75,   75,   76,   75,   75,   75,   75,   77,   73,   73,

       73,   82,   82,   83,   82,   82,   82,   82,   82,   82,
       82,   82,   82,   84,   82,   82,   82,   82,   85,   82,
       82,   82,   82,   86,   86,   86,   86,   86,   86,   86,
       86,   86,   86,   86,   86,   86,   86,   86,   86,   82,
       82,   82,   89,   83,  126,  242,   83,  126,   83,  151,
      164,  311,   90,  127,   98,   91,  127,  102,  129,  102,
       99,  130,  100,  103,  104,  103,  104,  146,  147,  146,
      146,  235,  310,  236,  152,  131,  153,  154,  309,  155,
       92,  105,  105,  106,  105,  105,  107,  105,  105,  105,
      108,  105,  105,  105,  105,  109,  105,  105,  105,  105,

      105,  105,  105,  110,  110,  110,  110,  110,  110,  110,
      110,  110,  110,  111,  110,  110,  110,  110,  112,  113,
      105,  114,  129,  162,  162,  130,  162,  190,  247,  190,
      190,  218,  308,  218,  218,  165,  241,  178,  219,  131,
      132,  133,  134,  133,  133,  132,  132,  132,  135,  132,
      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
      132,  132,  136,  136,  136,  136,  136,  136,  136,  136,
      136,  136,  137,  136,  136,  136,  136,  138,  132,  132,
      132,  140,  141,  140,  140,  140,  141,  140,  140,  158,
      159,  158,  158,  307,  306,  225,  160,  225,  225,  144,

      201,  144,  144,  146,  147,  146,  146,  247,  251,  247,
      202,  190,  142,  190,  190,  251,  142,  143,  316,  248,
      252,  143,  305,  218,  238,  218,  218,  161,  168,  168,
      219,  168,  168,  168,  168,  168,  168,  168,  168,  168,
      168,  168,  168,  169,  168,  168,  168,  168,  168,  168,
      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
      170,  170,  170,  170,  170,  170,  168,  168,  168,  172,
      173,  172,  172,  247,  304,  303,  174,  158,  159,  158,
      158,  247,  175,  251,  160,  248,  225,  281,  225,  225,
      302,  165,  241,  248,  294,  252,  301,  300,  165,  241,

      299,  298,  297,  296,  295,  293,  279,  176,  292,  249,
      291,  290,  273,  273,  289,  161,  245,  288,  245,  287,
      286,  265,  263,  285,  284,  245,  245,  245,  245,  245,
      245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
      245,  194,  257,  246,  172,  173,  172,  172,  283,  282,
      166,  174,  280,  239,  279,  235,  277,  175,  276,  275,
      273,  273,  271,  270,  269,  268,  220,  265,  263,  208,
      261,  260,  259,  193,  255,  254,  183,  180,  243,  240,
      239,  237,  176,  256,  256,  257,  256,  256,  256,  256,
      256,  256,  256,  256,  256,  256,  256,  256,  256,  256,

      256,  256,  256,  256,  256,  258,  258,  258,  258,  258,
      258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
      258,  256,  256,  256,  267,  267,  267,  267,  267,  267,
      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
      267,  267,  267,  267,  267,  267,   54,   54,   54,   54,
       54,   54,   54,   54,   54,   54,   54,   69,   69,   69,
       69,   69,   69,   69,   69,   69,   69,   69,   71,   71,
       71,   71,   71,   71,   71,   71,   71,   71,   71,   79,
       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,

       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
       83,   88,   88,   88,   88,   88,   88,   88,   88,   88,
       88,   88,   93,   93,   93,   93,   93,   93,   93,   93,
       93,   93,   93,   97,   97,   97,   97,   97,   97,   97,
       97,   97,   97,   97,  101,  101,  101,  101,  101,  101,
      101,  101,  101,  101,  101,  115,  115,  115,  115,  115,
      115,  115,  115,  115,  115,  115,  119,  119,  119,  119,
      119,  119,  119,  119,  119,  119,  119,  122,  122,  122,
      122,  122,  122,  122,  122,  122,  122,  122,  125,  125,
      125,  125,  125,  125,  125,  125,  125,  125,  125,  128,

      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
      139,  145,  231,  230,  145,  148,  148,  148,  148,  148,
      148,  148,  148,  148,  148,  148,  150,  150,  150,  150,
      150,  150,  150,  150,  150,  150,  150,  157,  228,  149,
      157,  164,  164,  227,  164,  164,  164,  164,  164,  226,
      164,  164,  166,  166,  223,  166,  166,  166,  166,  166,
      166,  166,  166,  171,  171,  171,  171,  171,  171,  171,
      171,  171,  171,  171,  179,  179,  179,  179,  179,  179,
      179,  179,  179,  179,  179,  181,  222,  220,  181,  181,

      181,  181,  181,  181,  181,  181,  182,  182,  182,  182,
      182,  182,  182,  182,  182,  182,  182,  184,  184,  214,
      184,  184,  184,  184,  184,  184,  212,  184,  185,  210,
      208,  185,  189,  189,  206,  189,  189,  189,  189,  189,
      189,  189,  189,  192,  205,  203,  192,  194,  194,  167,
      194,  194,  194,  194,  194,  194,  194,  194,  196,  196,
      197,  196,  196,  196,  196,  196,  196,  196,  196,  198,
      198,  195,  198,  198,  198,  198,  198,  167,  198,  198,
      199,  199,  193,  191,  188,  199,  199,  199,  199,  200,
      200,  187,  200,  200,  200,  200,  200,  200,  200,  200,

      204,  186,  183,  204,  207,  207,  207,  207,  207,  207,
      207,  207,  207,  207,  207,  209,  209,  180,  209,  209,
      178,  209,  209,  209,  209,  209,  211,  211,  177,  211,
      211,  167,  211,  211,  211,  211,  211,  213,  213,  165,
      213,  213,  163,  213,  213,  213,  213,  213,  215,  215,
      156,  149,  215,  215,  215,  316,  215,  215,  215,  216,
      216,  116,  216,  216,  216,  216,  216,  216,  216,  216,
      217,  217,  116,  217,  217,  217,  217,  217,  217,   87,
      217,  221,   87,   78,  221,  224,   72,   72,  224,  224,
      224,  224,  224,  224,  224,  224,  229,  229,   70,  229,

      229,  229,  229,  229,  229,  229,  229,  234,  234,  234,
      234,  234,  234,  234,  234,  234,  234,  234,  238,  238,
      238,  238,  238,  238,  238,  238,  238,  238,  238,  244,
      244,   70,  244,  244,  244,  244,  244,  244,  244,  250,
      250,  250,  250,  250,  250,  250,  250,  250,  250,  250,
      253,  253,  316,  253,  253,  253,  253,  253,  253,  253,
      253,  262,  262,  262,  262,  262,  262,  262,  262,  262,
      262,  262,  264,  264,  264,  264,  264,  264,  264,  264,
      264,  264,  264,  266,  266,  316,  266,  266,  266,  266,
      266,  266,  266,  266,  272,  272,  272,  272,  272,  272,

      272,  272,  272,  272,  272,  274,  274,  274,  274,  274,
      274,  274,  274,  274,  274,  274,  278,  278,  278,  278,
      278,  278,  278,  278,  278,  278,  278,  258,  258,  258,
      258,  258,  258,  258,  258,  258,  258,  258,  267,  267,
      316,  267,  267,  267,  267,  267,  267,  267,  267,   43,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316

    } ;

static const short int yy_chk[1292] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    2,    2,    2,    2,    2,    2,    2,    2,
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
        2,    2,    3,    3,    3,    3,    3,  305,    3,   31,
      304,    3,    3,   19,  302,    3,   19,    3,   31,    3,

        3,   11,   11,   11,   11,   12,   12,   12,   12,   29,
       19,   30,  164,  164,  153,   20,   17,  301,   20,    3,
        3,    4,    4,    4,    4,    4,   17,    4,    4,   17,
        4,    4,   20,   21,    4,  108,    4,   32,    4,    4,
      153,    4,   33,  153,   21,  108,   32,   29,   34,   30,
       21,   33,   21,   45,   17,   45,   45,   34,    4,    4,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,

        9,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   18,   22,   35,  165,   23,   36,   24,   51,
      165,  300,   18,   35,   22,   18,   36,   23,   37,   24,
       22,   37,   22,   23,   23,   24,   24,   48,   48,   48,
       48,  155,  299,  155,   51,   37,   51,   51,  298,   51,
       18,   25,   25,   25,   25,   25,   25,   25,   25,   25,
       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,

       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
       25,   25,   38,   58,   58,   38,   58,   80,  175,   80,
       80,  133,  297,  133,  133,  294,  294,  175,  133,   38,
       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
       39,   41,   41,   41,   41,   42,   42,   42,   42,   55,
       55,   55,   55,  296,  295,  140,   55,  140,  140,  144,

      200,  144,  144,  146,  146,  146,  146,  171,  176,  248,
      200,  190,   41,  190,  190,  252,   42,   41,  248,  171,
      176,   42,  293,  218,  252,  218,  218,   55,   63,   63,
      218,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   64,
       64,   64,   64,  174,  291,  290,   64,  158,  158,  158,
      158,  249,   64,  250,  158,  174,  225,  242,  225,  225,
      289,  242,  242,  249,  281,  250,  288,  287,  281,  281,

      286,  285,  284,  283,  282,  280,  278,   64,  277,  174,
      276,  275,  274,  272,  271,  158,  170,  270,  170,  269,
      268,  264,  262,  261,  260,  170,  170,  170,  170,  170,
      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
      170,  259,  258,  170,  172,  172,  172,  172,  255,  254,
      243,  172,  240,  238,  236,  234,  233,  172,  232,  231,
      230,  228,  227,  226,  223,  222,  219,  212,  210,  207,
      206,  205,  195,  193,  187,  186,  182,  179,  167,  163,
      161,  160,  172,  188,  188,  188,  188,  188,  188,  188,
      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,

      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
      188,  188,  188,  188,  220,  220,  220,  220,  220,  220,
      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
      266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
      266,  266,  266,  266,  266,  266,  317,  317,  317,  317,
      317,  317,  317,  317,  317,  317,  317,  318,  318,  318,
      318,  318,  318,  318,  318,  318,  318,  318,  319,  319,
      319,  319,  319,  319,  319,  319,  319,  319,  319,  320,
      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,

      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
      321,  322,  322,  322,  322,  322,  322,  322,  322,  322,
      322,  322,  323,  323,  323,  323,  323,  323,  323,  323,
      323,  323,  323,  324,  324,  324,  324,  324,  324,  324,
      324,  324,  324,  324,  325,  325,  325,  325,  325,  325,
      325,  325,  325,  325,  325,  326,  326,  326,  326,  326,
      326,  326,  326,  326,  326,  326,  327,  327,  327,  327,
      327,  327,  327,  327,  327,  327,  327,  328,  328,  328,
      328,  328,  328,  328,  328,  328,  328,  328,  329,  329,
      329,  329,  329,  329,  329,  329,  329,  329,  329,  330,

      330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
      331,  331,  331,  331,  331,  331,  331,  331,  331,  331,
      331,  332,  152,  151,  332,  333,  333,  333,  333,  333,
      333,  333,  333,  333,  333,  333,  334,  334,  334,  334,
      334,  334,  334,  334,  334,  334,  334,  335,  150,  148,
      335,  336,  336,  143,  336,  336,  336,  336,  336,  142,
      336,  336,  337,  337,  138,  337,  337,  337,  337,  337,
      337,  337,  337,  338,  338,  338,  338,  338,  338,  338,
      338,  338,  338,  338,  339,  339,  339,  339,  339,  339,
      339,  339,  339,  339,  339,  340,  137,  135,  340,  340,

      340,  340,  340,  340,  340,  340,  341,  341,  341,  341,
      341,  341,  341,  341,  341,  341,  341,  342,  342,  127,
      342,  342,  342,  342,  342,  342,  124,  342,  343,  121,
      115,  343,  344,  344,  112,  344,  344,  344,  344,  344,
      344,  344,  344,  345,  111,  109,  345,  346,  346,  103,
      346,  346,  346,  346,  346,  346,  346,  346,  347,  347,
      100,  347,  347,  347,  347,  347,  347,  347,  347,  348,
      348,   99,  348,  348,  348,  348,  348,   96,  348,  348,
      349,  349,   91,   85,   78,  349,  349,  349,  349,  350,
      350,   77,  350,  350,  350,  350,  350,  350,  350,  350,

      351,   76,   71,  351,  352,  352,  352,  352,  352,  352,
      352,  352,  352,  352,  352,  353,  353,   69,  353,  353,
       67,  353,  353,  353,  353,  353,  354,  354,   66,  354,
      354,   62,  354,  354,  354,  354,  354,  355,  355,   61,
      355,  355,   60,  355,  355,  355,  355,  355,  356,  356,
       52,   50,  356,  356,  356,   43,  356,  356,  356,  357,
      357,   28,  357,  357,  357,  357,  357,  357,  357,  357,
      358,  358,   27,  358,  358,  358,  358,  358,  358,   16,
      358,  359,   15,   10,  359,  360,    8,    7,  360,  360,
      360,  360,  360,  360,  360,  360,  361,  361,    6,  361,

      361,  361,  361,  361,  361,  361,  361,  362,  362,  362,
      362,  362,  362,  362,  362,  362,  362,  362,  363,  363,
      363,  363,  363,  363,  363,  363,  363,  363,  363,  364,
      364,    5,  364,  364,  364,  364,  364,  364,  364,  365,
      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
      366,  366,    0,  366,  366,  366,  366,  366,  366,  366,
      366,  367,  367,  367,  367,  367,  367,  367,  367,  367,
      367,  367,  368,  368,  368,  368,  368,  368,  368,  368,
      368,  368,  368,  369,  369,    0,  369,  369,  369,  369,
      369,  369,  369,  369,  370,  370,  370,  370,  370,  370,

      370,  370,  370,  370,  370,  371,  371,  371,  371,  371,
      371,  371,  371,  371,  371,  371,  372,  372,  372,  372,
      372,  372,  372,  372,  372,  372,  372,  373,  373,  373,
      373,  373,  373,  373,  373,  373,  373,  373,  374,  374,
        0,  374,  374,  374,  374,  374,  374,  374,  374,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
      316

    } ;

/* the intent behind this definition is that it'll catch
 * any uses of REJECT which flex missed
 */
#define REJECT reject_used_but_not_detected
#define yymore() yymore_used_but_not_detected

/* these variables are all declared out here so that section 3 code can
 * manipulate them
 */
static char *yy_c_buf_p;	/* points to current character in buffer */
static int yy_init = 1;		/* whether we need to initialize */
static int yy_start = 0;	/* start state number */

/* true when we've seen an EOF for the current input file */
static int yy_eof_has_been_seen;

static int yy_n_chars;		/* number of characters read into yy_ch_buf */

/* yy_ch_buf has to be 2 characters longer than YY_BUF_SIZE because we need
 * to put in 2 end-of-buffer characters (this is explained where it is
 * done) at the end of yy_ch_buf
 */
static char yy_ch_buf[YY_BUF_SIZE + 2];

/* yy_hold_char holds the character lost when yytext is formed */
static char yy_hold_char;

static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;

#ifdef __STDC__
static yy_state_type yy_get_previous_state( void );
static int yy_get_next_buffer( void );
static void yyunput( int c, char *buf_ptr );
static int input( void );
static void yyrestart( FILE *input_file );
#else
static yy_state_type yy_get_previous_state();
static int yy_get_next_buffer();
static void yyunput();
static int input();
static void yyrestart();
#endif

YY_DECL
    {
    register yy_state_type yy_current_state;
    register char *yy_cp, *yy_bp;
    register int yy_act;


    static int bracelevel, didadef;
    int i, indented_code, checking_used;
    char nmdef[MAXLINE], myesc();


    if ( yy_init )
	{
	if ( ! yy_start )
	    yy_start = 1;	/* first start state */

	if ( ! yyin )
	    yyin = stdin;

	if ( ! yyout )
	    yyout = stdout;

new_file:
	/* this is where we enter upon encountering an end-of-file and
	 * yywrap() indicating that we should continue processing
	 */

	/* we put in the '\n' and start reading from [1] so that an
	 * initial match-at-newline will be true.
	 */

	yy_ch_buf[0] = '\n';
	yy_n_chars = 1;

	/* we always need two end-of-buffer characters.  The first causes
	 * a transition to the end-of-buffer state.  The second causes
	 * a jam in that state.
	 */
	yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
	yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;

	yy_eof_has_been_seen = 0;

	yytext = yy_c_buf_p = &yy_ch_buf[1];
	yy_hold_char = *yy_c_buf_p;
	yy_init = 0;
	}

    while ( 1 )		/* loops until end-of-file is reached */
	{
	yy_cp = yy_c_buf_p;

	/* support of yytext */
	*yy_cp = yy_hold_char;

	/* yy_bp points to the position in yy_ch_buf of the start of the
	 * current run.
	 */
	yy_bp = yy_cp;

	yy_current_state = yy_start;
	if ( yy_bp[-1] == '\n' )
	    ++yy_current_state;
	do
	    {
	    register char yy_c = yy_ec[*yy_cp];
	    if ( yy_accept[yy_current_state] )
		{
		yy_last_accepting_state = yy_current_state;
		yy_last_accepting_cpos = yy_cp;
		}
	    while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
		{
		yy_current_state = yy_def[yy_current_state];
		if ( yy_current_state >= 317 )
		    yy_c = yy_meta[yy_c];
		}
	    yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
	    ++yy_cp;
	    }
	while ( yy_current_state != 316 );
	yy_cp = yy_last_accepting_cpos;
	yy_current_state = yy_last_accepting_state;

	/* bogus while loop to let YY_BACK_TRACK, EOB_ACT_LAST_MATCH,
	 * and EOF actions branch here without introducing an optimizer-
	 * daunting goto
	 */
	while ( 1 )
	    {
	    yy_act = yy_accept[yy_current_state];

	    YY_DO_BEFORE_ACTION;
	    YY_USER_ACTION;

#ifdef FLEX_DEBUG
	    fprintf( stderr, "--accepting rule #%d (\"%s\")\n",
		     yy_act, yytext );
#endif

do_action:	/* this label is used only to access EOF actions */
	    switch ( yy_act )
		{
		case 0: /* must backtrack */
		/* undo the effects of YY_DO_BEFORE_ACTION */
		*yy_cp = yy_hold_char;
		yy_cp = yy_last_accepting_cpos;
		yy_current_state = yy_last_accepting_state;
		continue; /* go to "YY_DO_BEFORE_ACTION" */

case 1:
# line 88 "scan.l"
indented_code = true; BEGIN(CODEBLOCK);
	YY_BREAK
case 2:
# line 89 "scan.l"
++linenum; ECHO; /* treat as a comment */
	YY_BREAK
case 3:
# line 90 "scan.l"
ECHO; BEGIN(C_COMMENT);
	YY_BREAK
case 4:
# line 91 "scan.l"
return ( SCDECL );
	YY_BREAK
case 5:
# line 92 "scan.l"
return ( XSCDECL );
	YY_BREAK
case 6:
# line 93 "scan.l"
{
			++linenum;
			line_directive_out( stdout );
			indented_code = false;
			BEGIN(CODEBLOCK);
			}
	YY_BREAK
case 7:
# line 100 "scan.l"
return ( WHITESPACE );
	YY_BREAK
case 8:
# line 102 "scan.l"
{
			sectnum = 2;
			line_directive_out( stdout );
			BEGIN(SECT2PROLOG);
			return ( SECTEND );
			}
	YY_BREAK
case 9:
# line 109 "scan.l"
checking_used = REALLY_USED; BEGIN(USED_LIST);
	YY_BREAK
case 10:
# line 110 "scan.l"
checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
	YY_BREAK
case 11:
# line 113 "scan.l"
{
			fprintf( stderr,
			     "old-style lex command at line %d ignored:\n\t%s",
				 linenum, yytext );
			++linenum;
			}
	YY_BREAK
case 12:
# line 120 "scan.l"
{
			(void) strcpy( nmstr, yytext );
			didadef = false;
			BEGIN(PICKUPDEF);
			}
	YY_BREAK
case 13:
# line 126 "scan.l"
RETURNNAME;
	YY_BREAK
case 14:
# line 127 "scan.l"
++linenum; /* allows blank lines in section 1 */
	YY_BREAK
case 15:
# line 128 "scan.l"
++linenum; return ( '\n' );
	YY_BREAK
case 16:
# line 129 "scan.l"
synerr( "illegal character" ); BEGIN(RECOVER);
	YY_BREAK
case 17:
# line 132 "scan.l"
ECHO; BEGIN(0);
	YY_BREAK
case 18:
# line 133 "scan.l"
++linenum; ECHO; BEGIN(0);
	YY_BREAK
case 19:
# line 134 "scan.l"
ECHO;
	YY_BREAK
case 20:
# line 135 "scan.l"
ECHO;
	YY_BREAK
case 21:
# line 136 "scan.l"
++linenum; ECHO;
	YY_BREAK
case 22:
# line 139 "scan.l"
++linenum; BEGIN(0);
	YY_BREAK
case 23:
# line 140 "scan.l"
ECHO; CHECK_REJECT(yytext);
	YY_BREAK
case 24:
# line 141 "scan.l"
ECHO; CHECK_YYMORE(yytext);
	YY_BREAK
case 25:
# line 142 "scan.l"
ECHO;
	YY_BREAK
case 26:
# line 143 "scan.l"
{
			++linenum;
			ECHO;
			if ( indented_code )
			    BEGIN(0);
			}
	YY_BREAK
case 27:
# line 151 "scan.l"
/* separates name and definition */
	YY_BREAK
case 28:
# line 153 "scan.l"
{
			(void) strcpy( nmdef, yytext );

			for ( i = strlen( nmdef ) - 1;
			      i >= 0 &&
			      nmdef[i] == ' ' || nmdef[i] == '\t';
			      --i )
			    ;

			nmdef[i + 1] = '\0';

                        ndinstal( nmstr, nmdef );
			didadef = true;
			}
	YY_BREAK
case 29:
# line 168 "scan.l"
{
			if ( ! didadef )
			    synerr( "incomplete name definition" );
			BEGIN(0);
			++linenum;
			}
	YY_BREAK
case 30:
# line 175 "scan.l"
++linenum; BEGIN(0); RETURNNAME;
	YY_BREAK
case 31:
# line 178 "scan.l"
++linenum; BEGIN(0);
	YY_BREAK
case 32:
# line 179 "scan.l"

	YY_BREAK
case 33:
# line 180 "scan.l"
{
			if ( all_upper( yytext ) )
			    reject_really_used = checking_used;
			else
			    synerr( "unrecognized %used/%unused construct" );
			}
	YY_BREAK
case 34:
# line 186 "scan.l"
{
			if ( all_lower( yytext ) )
			    yymore_really_used = checking_used;
			else
			    synerr( "unrecognized %used/%unused construct" );
			}
	YY_BREAK
case 35:
# line 192 "scan.l"
synerr( "unrecognized %used/%unused construct" );
	YY_BREAK
case 36:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
# line 195 "scan.l"
{
			++linenum;
			ACTION_ECHO;
			MARK_END_OF_PROLOG;
			BEGIN(SECT2);
			}
	YY_BREAK
case 37:
# line 202 "scan.l"
++linenum; ACTION_ECHO;
	YY_BREAK
case YY_STATE_EOF(SECT2PROLOG):
# line 204 "scan.l"
MARK_END_OF_PROLOG; yyterminate();
	YY_BREAK
case 39:
# line 206 "scan.l"
++linenum; /* allow blank lines in section 2 */
	YY_BREAK
	/* this horrible mess of a rule matches indented lines which
	 * do not contain "/*".  We need to make the distinction because
	 * otherwise this rule will be taken instead of the rule which
	 * matches the beginning of comments like this one
	 */
case 40:
# line 213 "scan.l"
{
			synerr( "indented code found outside of action" );
			++linenum;
			}
	YY_BREAK
case 41:
# line 218 "scan.l"
BEGIN(SC); return ( '<' );
	YY_BREAK
case 42:
# line 219 "scan.l"
return ( '^' );
	YY_BREAK
case 43:
# line 220 "scan.l"
BEGIN(QUOTE); return ( '"' );
	YY_BREAK
case 44:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
# line 221 "scan.l"
BEGIN(NUM); return ( '{' );
	YY_BREAK
case 45:
# line 222 "scan.l"
BEGIN(BRACEERROR);
	YY_BREAK
case 46:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
# line 223 "scan.l"
return ( '$' );
	YY_BREAK
case 47:
# line 225 "scan.l"
{
			bracelevel = 1;
			BEGIN(PERCENT_BRACE_ACTION);
			return ( '\n' );
			}
	YY_BREAK
case 48:
# line 230 "scan.l"
continued_action = true; ++linenum; return ( '\n' );
	YY_BREAK
case 49:
# line 232 "scan.l"
ACTION_ECHO; BEGIN(C_COMMENT_2);
	YY_BREAK
case 50:
# line 234 "scan.l"
{
			/* this rule is separate from the one below because
			 * otherwise we get variable trailing context, so
			 * we can't build the scanner using -{f,F}
			 */
			bracelevel = 0;
			continued_action = false;
			BEGIN(ACTION);
			return ( '\n' );
			}
	YY_BREAK
case 51:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
# line 245 "scan.l"
{
			bracelevel = 0;
			continued_action = false;
			BEGIN(ACTION);
			return ( '\n' );
			}
	YY_BREAK
case 52:
# line 252 "scan.l"
++linenum; return ( '\n' );
	YY_BREAK
case 53:
# line 254 "scan.l"
return ( EOF_OP );
	YY_BREAK
case 54:
# line 256 "scan.l"
{
			sectnum = 3;
			BEGIN(SECT3);
			return ( EOF ); /* to stop the parser */
			}
	YY_BREAK
case 55:
# line 262 "scan.l"
{
			int cclval;

			(void) strcpy( nmstr, yytext );

			/* check to see if we've already encountered this ccl */
			if ( (cclval = ccllookup( nmstr )) )
			    {
			    yylval = cclval;
			    ++cclreuse;
			    return ( PREVCCL );
			    }
			else
			    {
			    /* we fudge a bit.  We know that this ccl will
			     * soon be numbered as lastccl + 1 by cclinit
			     */
			    cclinstal( nmstr, lastccl + 1 );

			    /* push back everything but the leading bracket
			     * so the ccl can be rescanned
			     */
			    PUT_BACK_STRING(nmstr, 1);

			    BEGIN(FIRSTCCL);
			    return ( '[' );
			    }
			}
	YY_BREAK
case 56:
# line 291 "scan.l"
{
			register char *nmdefptr;
			char *ndlookup();

			(void) strcpy( nmstr, yytext );
			nmstr[yyleng - 1] = '\0';  /* chop trailing brace */

			/* lookup from "nmstr + 1" to chop leading brace */
			if ( ! (nmdefptr = ndlookup( nmstr + 1 )) )
			    synerr( "undefined {name}" );

			else
			    { /* push back name surrounded by ()'s */
			    unput(')');
			    PUT_BACK_STRING(nmdefptr, 0);
			    unput('(');
			    }
			}
	YY_BREAK
case 57:
# line 310 "scan.l"
return ( yytext[0] );
	YY_BREAK
case 58:
# line 311 "scan.l"
RETURNCHAR;
	YY_BREAK
case 59:
# line 312 "scan.l"
++linenum; return ( '\n' );
	YY_BREAK
case 60:
# line 315 "scan.l"
return ( ',' );
	YY_BREAK
case 61:
# line 316 "scan.l"
BEGIN(SECT2); return ( '>' );
	YY_BREAK
case 62:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
# line 317 "scan.l"
BEGIN(CARETISBOL); return ( '>' );
	YY_BREAK
case 63:
# line 318 "scan.l"
RETURNNAME;
	YY_BREAK
case 64:
# line 319 "scan.l"
synerr( "bad start condition name" );
	YY_BREAK
case 65:
# line 321 "scan.l"
BEGIN(SECT2); return ( '^' );
	YY_BREAK
case 66:
# line 324 "scan.l"
RETURNCHAR;
	YY_BREAK
case 67:
# line 325 "scan.l"
BEGIN(SECT2); return ( '"' );
	YY_BREAK
case 68:
# line 327 "scan.l"
{
			synerr( "missing quote" );
			BEGIN(SECT2);
			++linenum;
			return ( '"' );
			}
	YY_BREAK
case 69:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
# line 335 "scan.l"
BEGIN(CCL); return ( '^' );
	YY_BREAK
case 70:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
# line 336 "scan.l"
return ( '^' );
	YY_BREAK
case 71:
# line 337 "scan.l"
BEGIN(CCL); yylval = '-'; return ( CHAR );
	YY_BREAK
case 72:
# line 338 "scan.l"
BEGIN(CCL); RETURNCHAR;
	YY_BREAK
case 73:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
# line 340 "scan.l"
return ( '-' );
	YY_BREAK
case 74:
# line 341 "scan.l"
RETURNCHAR;
	YY_BREAK
case 75:
# line 342 "scan.l"
BEGIN(SECT2); return ( ']' );
	YY_BREAK
case 76:
# line 345 "scan.l"
{
			yylval = myctoi( yytext );
			return ( NUMBER );
			}
	YY_BREAK
case 77:
# line 350 "scan.l"
return ( ',' );
	YY_BREAK
case 78:
# line 351 "scan.l"
BEGIN(SECT2); return ( '}' );
	YY_BREAK
case 79:
# line 353 "scan.l"
{
			synerr( "bad character inside {}'s" );
			BEGIN(SECT2);
			return ( '}' );
			}
	YY_BREAK
case 80:
# line 359 "scan.l"
{
			synerr( "missing }" );
			BEGIN(SECT2);
			++linenum;
			return ( '}' );
			}
	YY_BREAK
case 81:
# line 367 "scan.l"
synerr( "bad name in {}'s" ); BEGIN(SECT2);
	YY_BREAK
case 82:
# line 368 "scan.l"
synerr( "missing }" ); ++linenum; BEGIN(SECT2);
	YY_BREAK
case 83:
# line 371 "scan.l"
bracelevel = 0;
	YY_BREAK
case 84:
# line 372 "scan.l"
ACTION_ECHO; CHECK_REJECT(yytext);
	YY_BREAK
case 85:
# line 373 "scan.l"
ACTION_ECHO; CHECK_YYMORE(yytext);
	YY_BREAK
case 86:
# line 374 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 87:
# line 375 "scan.l"
{
			++linenum;
			ACTION_ECHO;
			if ( bracelevel == 0 )
			    {
			    fputs( "\tYY_BREAK\n", temp_action_file );
			    BEGIN(SECT2);
			    }
			}
	YY_BREAK
	/* REJECT and yymore() are checked for above, in PERCENT_BRACE_ACTION */
case 88:
# line 386 "scan.l"
ACTION_ECHO; ++bracelevel;
	YY_BREAK
case 89:
# line 387 "scan.l"
ACTION_ECHO; --bracelevel;
	YY_BREAK
case 90:
# line 388 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 91:
# line 389 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 92:
# line 390 "scan.l"
ACTION_ECHO; BEGIN(ACTION_COMMENT);
	YY_BREAK
case 93:
# line 391 "scan.l"
ACTION_ECHO; /* character constant */
	YY_BREAK
case 94:
# line 392 "scan.l"
ACTION_ECHO; BEGIN(ACTION_STRING);
	YY_BREAK
case 95:
# line 393 "scan.l"
{
			++linenum;
			ACTION_ECHO;
			if ( bracelevel == 0 )
			    {
			    fputs( "\tYY_BREAK\n", temp_action_file );
			    BEGIN(SECT2);
			    }
			}
	YY_BREAK
case 96:
# line 402 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 97:
# line 404 "scan.l"
ACTION_ECHO; BEGIN(ACTION);
	YY_BREAK
case 98:
# line 405 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 99:
# line 406 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 100:
# line 407 "scan.l"
++linenum; ACTION_ECHO;
	YY_BREAK
case 101:
# line 408 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 102:
# line 410 "scan.l"
ACTION_ECHO; BEGIN(SECT2);
	YY_BREAK
case 103:
# line 411 "scan.l"
++linenum; ACTION_ECHO; BEGIN(SECT2);
	YY_BREAK
case 104:
# line 412 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 105:
# line 413 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 106:
# line 414 "scan.l"
++linenum; ACTION_ECHO;
	YY_BREAK
case 107:
# line 416 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 108:
# line 417 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 109:
# line 418 "scan.l"
++linenum; ACTION_ECHO;
	YY_BREAK
case 110:
# line 419 "scan.l"
ACTION_ECHO; BEGIN(ACTION);
	YY_BREAK
case 111:
# line 420 "scan.l"
ACTION_ECHO;
	YY_BREAK
case 112:
# line 423 "scan.l"
{
			yylval = myesc( yytext );
			return ( CHAR );
			}
	YY_BREAK
case 113:
# line 428 "scan.l"
{
			yylval = myesc( yytext );
			BEGIN(CCL);
			return ( CHAR );
			}
	YY_BREAK
case 114:
# line 435 "scan.l"
ECHO;
	YY_BREAK
case 115:
# line 436 "scan.l"
YY_FATAL_ERROR( "flex scanner jammed" );
	YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(SECT2):
case YY_STATE_EOF(SECT3):
case YY_STATE_EOF(CODEBLOCK):
case YY_STATE_EOF(PICKUPDEF):
case YY_STATE_EOF(SC):
case YY_STATE_EOF(CARETISBOL):
case YY_STATE_EOF(NUM):
case YY_STATE_EOF(QUOTE):
case YY_STATE_EOF(FIRSTCCL):
case YY_STATE_EOF(CCL):
case YY_STATE_EOF(ACTION):
case YY_STATE_EOF(RECOVER):
case YY_STATE_EOF(BRACEERROR):
case YY_STATE_EOF(C_COMMENT):
case YY_STATE_EOF(C_COMMENT_2):
case YY_STATE_EOF(ACTION_COMMENT):
case YY_STATE_EOF(ACTION_STRING):
case YY_STATE_EOF(PERCENT_BRACE_ACTION):
case YY_STATE_EOF(USED_LIST):
    yyterminate();

		case YY_END_OF_BUFFER:
		    /* undo the effects of YY_DO_BEFORE_ACTION */
		    *yy_cp = yy_hold_char;

		    yytext = yy_bp;

		    switch ( yy_get_next_buffer() )
			{
			case EOB_ACT_END_OF_FILE:
			    {
			    if ( yywrap() )
				{
				/* note: because we've taken care in
				 * yy_get_next_buffer() to have set up yytext,
				 * we can now set up yy_c_buf_p so that if some
				 * total hoser (like flex itself) wants
				 * to call the scanner after we return the
				 * YY_NULL, it'll still work - another YY_NULL
				 * will get returned.
				 */
				yy_c_buf_p = yytext;

				yy_act = YY_STATE_EOF((yy_start - 1) / 2);
				goto do_action;
				}

			    else
				YY_NEW_FILE;
			    }
			    break;

			case EOB_ACT_RESTART_SCAN:
			    yy_c_buf_p = yytext;
			    yy_hold_char = *yy_c_buf_p;
			    break;

			case EOB_ACT_LAST_MATCH:
			    yy_c_buf_p = &yy_ch_buf[yy_n_chars];

			    yy_current_state = yy_get_previous_state();

			    yy_cp = yy_c_buf_p;
			    yy_bp = yytext;
			    continue; /* go to "YY_DO_BEFORE_ACTION" */
			}
		    break;

		default:
		    printf( "action # %d\n", yy_act );
		    YY_FATAL_ERROR( "fatal flex scanner internal error" );
		}

	    break; /* exit bogus while loop */
	    }
	}
    }


/* yy_get_next_buffer - try to read in new buffer
 *
 * synopsis
 *     int yy_get_next_buffer();
 *     
 * returns a code representing an action
 *     EOB_ACT_LAST_MATCH - 
 *     EOB_ACT_RESTART_SCAN - restart the scanner
 *     EOB_ACT_END_OF_FILE - end of file
 */

static int yy_get_next_buffer()

    {
    register char *dest = yy_ch_buf;
    register char *source = yytext - 1; /* copy prev. char, too */
    register int number_to_move, i;
    int ret_val;
    
    if ( yy_c_buf_p != &yy_ch_buf[yy_n_chars + 1] )
	{
	YY_FATAL_ERROR( "NULL in input" );
	/*NOTREACHED*/
	}

    /* try to read more data */

    /* first move last chars to start of buffer */
    number_to_move = yy_c_buf_p - yytext;

    for ( i = 0; i < number_to_move; ++i )
	*(dest++) = *(source++);

    if ( yy_eof_has_been_seen )
	/* don't do the read, it's not guaranteed to return an EOF,
	 * just force an EOF
	 */
	yy_n_chars = 0;

    else
	{
	int num_to_read = YY_BUF_SIZE - number_to_move - 1;

	if ( num_to_read > YY_READ_BUF_SIZE )
	    num_to_read = YY_READ_BUF_SIZE;

	/* read in more data */
	YY_INPUT( (&yy_ch_buf[number_to_move]), yy_n_chars, num_to_read );
	}

    if ( yy_n_chars == 0 )
	{
	if ( number_to_move == 1 )
	    ret_val = EOB_ACT_END_OF_FILE;
	else
	    ret_val = EOB_ACT_LAST_MATCH;

	yy_eof_has_been_seen = 1;
	}

    else
	ret_val = EOB_ACT_RESTART_SCAN;

    yy_n_chars += number_to_move;
    yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
    yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;

    /* yytext begins at the second character in
     * yy_ch_buf; the first character is the one which
     * preceded it before reading in the latest buffer;
     * it needs to be kept around in case it's a
     * newline, so yy_get_previous_state() will have
     * with '^' rules active
     */

    yytext = &yy_ch_buf[1];

    return ( ret_val );
    }


/* yy_get_previous_state - get the state just before the EOB char was reached
 *
 * synopsis
 *     yy_state_type yy_get_previous_state();
 */

static yy_state_type yy_get_previous_state()

    {
    register yy_state_type yy_current_state;
    register char *yy_cp;

    register char *yy_bp = yytext;

    yy_current_state = yy_start;
    if ( yy_bp[-1] == '\n' )
	++yy_current_state;

    for ( yy_cp = yytext; yy_cp < yy_c_buf_p; ++yy_cp )
	{
	register char yy_c = yy_ec[*yy_cp];
	if ( yy_accept[yy_current_state] )
	    {
	    yy_last_accepting_state = yy_current_state;
	    yy_last_accepting_cpos = yy_cp;
	    }
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
	    {
	    yy_current_state = yy_def[yy_current_state];
	    if ( yy_current_state >= 317 )
		yy_c = yy_meta[yy_c];
	    }
	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
	}

    return ( yy_current_state );
    }


#ifdef __STDC__
static void yyunput( int c, register char *yy_bp )
#else
static void yyunput( c, yy_bp )
int c;
register char *yy_bp;
#endif

    {
    register char *yy_cp = yy_c_buf_p;

    *yy_cp = yy_hold_char; /* undo effects of setting up yytext */

    if ( yy_cp < yy_ch_buf + 2 )
	{ /* need to shift things up to make room */
	register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
	register char *dest = &yy_ch_buf[YY_BUF_SIZE + 2];
	register char *source = &yy_ch_buf[number_to_move];

	while ( source > yy_ch_buf )
	    *--dest = *--source;

	yy_cp += dest - source;
	yy_bp += dest - source;

	if ( yy_cp < yy_ch_buf + 2 )
	    YY_FATAL_ERROR( "flex scanner push-back overflow" );
	}

    if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
	yy_cp[-2] = '\n';

    *--yy_cp = c;

    YY_DO_BEFORE_ACTION; /* set up yytext again */
    }


static int input()

    {
    int c;
    char *yy_cp = yy_c_buf_p;

    *yy_cp = yy_hold_char;

    if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
	{ /* need more input */
	yytext = yy_c_buf_p;
	++yy_c_buf_p;

	switch ( yy_get_next_buffer() )
	    {
	    /* this code, unfortunately, is somewhat redundant with
	     * that above
	     */
	    case EOB_ACT_END_OF_FILE:
		{
		if ( yywrap() )
		    {
		    yy_c_buf_p = yytext;
		    return ( EOF );
		    }

		yy_ch_buf[0] = '\n';
		yy_n_chars = 1;
		yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
		yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
		yy_eof_has_been_seen = 0;
		yytext = yy_c_buf_p = &yy_ch_buf[1];
		yy_hold_char = *yy_c_buf_p;

		return ( input() );
		}
		break;

	    case EOB_ACT_RESTART_SCAN:
		yy_c_buf_p = yytext;
		break;

	    case EOB_ACT_LAST_MATCH:
		YY_FATAL_ERROR( "unexpected last match in input()" );
	    }
	}

    c = *yy_c_buf_p;
    yy_hold_char = *++yy_c_buf_p;

    return ( c );
    }


#ifdef __STDC__
static void yyrestart( FILE *input_file )
#else
static void yyrestart( input_file )
FILE *input_file;
#endif

    {
    if ( yyin != stdin )
	fclose( yyin );

    yyin = input_file;
    yy_init = 1;
    }
# line 436 "scan.l"