Index: trunk/AGRIF/LIB/fortran.yy.c
===================================================================
--- trunk/AGRIF/LIB/fortran.yy.c	(revision 1200)
+++ trunk/AGRIF/LIB/fortran.yy.c	(revision 1349)
@@ -1,92 +1,49 @@
-#line 2 "fortran.yy.c"
-
-#line 4 "fortran.yy.c"
-
-#define  YY_INT_ALIGNED short int
-
+#define yy_create_buffer fortran_create_buffer
+#define yy_delete_buffer fortran_delete_buffer
+#define yy_scan_buffer fortran_scan_buffer
+#define yy_scan_string fortran_scan_string
+#define yy_scan_bytes fortran_scan_bytes
+#define yy_flex_debug fortran_flex_debug
+#define yy_init_buffer fortran_init_buffer
+#define yy_flush_buffer fortran_flush_buffer
+#define yy_load_buffer_state fortran_load_buffer_state
+#define yy_switch_to_buffer fortran_switch_to_buffer
+#define yyin fortranin
+#define yyleng fortranleng
+#define yylex fortranlex
+#define yyout fortranout
+#define yyrestart fortranrestart
+#define yytext fortrantext
+#define yywrap fortranwrap
+
+#line 20 "fortran.yy.c"
 /* A lexical scanner generated by flex */
+
+/* Scanner skeleton version:
+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
 
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 33
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
+
 #include <stdio.h>
-#include <string.h>
-#include <errno.h>
+
+
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
+#endif
+#endif
+
+
+#ifdef __cplusplus
+
 #include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
+#include <unistd.h>
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
 
 /* The "const" storage-class-modifier is valid. */
@@ -97,8 +54,18 @@
 #if __STDC__
 
+#define YY_USE_PROTOS
 #define YY_USE_CONST
 
 #endif	/* __STDC__ */
 #endif	/* ! __cplusplus */
+
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
 
 #ifdef YY_USE_CONST
@@ -106,4 +73,11 @@
 #else
 #define yyconst
+#endif
+
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
 #endif
 
@@ -122,5 +96,5 @@
  * definition of BEGIN.
  */
-#define BEGIN (yy_start) = 1 + 2 *
+#define BEGIN yy_start = 1 + 2 *
 
 /* Translate the current start state into a value that can be later handed
@@ -128,5 +102,5 @@
  * compatibility.
  */
-#define YY_START (((yy_start) - 1) / 2)
+#define YY_START ((yy_start - 1) / 2)
 #define YYSTATE YY_START
 
@@ -135,25 +109,15 @@
 
 /* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE fortranrestart(fortranin  )
+#define YY_NEW_FILE yyrestart( yyin )
 
 #define YY_END_OF_BUFFER_CHAR 0
 
 /* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
 #define YY_BUF_SIZE 16384
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
+
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-extern int fortranleng;
-
-extern FILE *fortranin, *fortranout;
+
+extern int yyleng;
+extern FILE *yyin, *yyout;
 
 #define EOB_ACT_CONTINUE_SCAN 0
@@ -161,21 +125,32 @@
 #define EOB_ACT_LAST_MATCH 2
 
-    #define YY_LESS_LINENO(n)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
+/* The funky do-while in the following #define is used to turn the definition
+ * int a single C statement (which needs a semi-colon terminator).  This
+ * avoids problems with code like:
+ *
+ * 	if ( condition_holds )
+ *		yyless( 5 );
+ *	else
+ *		do_something_else();
+ *
+ * Prior to using the do-while the compiler would get upset at the
+ * "else" because it interpreted the "if" statement as being all
+ * done when it reached the ';' after the yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
 #define yyless(n) \
 	do \
 		{ \
-		/* Undo effects of setting up fortrantext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = (yy_hold_char); \
+		/* Undo effects of setting up yytext. */ \
+		*yy_cp = yy_hold_char; \
 		YY_RESTORE_YY_MORE_OFFSET \
-		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up fortrantext again */ \
+		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
 		} \
 	while ( 0 )
 
-#define unput(c) yyunput( c, (yytext_ptr)  )
+#define unput(c) yyunput( c, yytext_ptr )
 
 /* The following is because we cannot portably get our hands on size_t
@@ -183,12 +158,7 @@
  * flex-generated scanners to compile on their own).
  */
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
 typedef unsigned int yy_size_t;
-#endif
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
+
+
 struct yy_buffer_state
 	{
@@ -227,7 +197,4 @@
 	int yy_at_bol;
 
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
 	/* Whether to try to fill the input buffer when we reach the
 	 * end of it.
@@ -236,5 +203,4 @@
 
 	int yy_buffer_status;
-
 #define YY_BUFFER_NEW 0
 #define YY_BUFFER_NORMAL 1
@@ -246,133 +212,97 @@
 	 *
 	 * When we actually see the EOF, we change the status to "new"
-	 * (via fortranrestart()), so that the user can continue scanning by
-	 * just pointing fortranin at a new input file.
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
 	 */
 #define YY_BUFFER_EOF_PENDING 2
-
 	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+static YY_BUFFER_STATE yy_current_buffer = 0;
 
 /* We provide macros for accessing buffer states in case in the
  * future we want to put the buffer states in a more general
  * "scanner state".
- *
- * Returns the top of the stack, or NULL.
  */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when fortrantext is formed. */
+#define YY_CURRENT_BUFFER yy_current_buffer
+
+
+/* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
+
 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
-int fortranleng;
+
+
+int yyleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 0;		/* whether we need to initialize */
+static int yy_init = 1;		/* whether we need to initialize */
 static int yy_start = 0;	/* start state number */
 
-/* Flag which is used to allow fortranwrap()'s to do buffer switches
- * instead of setting up a fresh fortranin.  A bit of a hack ...
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
  */
 static int yy_did_buffer_switch_on_eof;
 
-void fortranrestart (FILE *input_file  );
-void fortran_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE fortran_create_buffer (FILE *file,int size  );
-void fortran_delete_buffer (YY_BUFFER_STATE b  );
-void fortran_flush_buffer (YY_BUFFER_STATE b  );
-void fortranpush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void fortranpop_buffer_state (void );
-
-static void fortranensure_buffer_stack (void );
-static void fortran_load_buffer_state (void );
-static void fortran_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER fortran_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE fortran_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE fortran_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE fortran_scan_bytes (yyconst char *bytes,int len  );
-
-void *fortranalloc (yy_size_t  );
-void *fortranrealloc (void *,yy_size_t  );
-void fortranfree (void *  );
-
-#define yy_new_buffer fortran_create_buffer
+void yyrestart YY_PROTO(( FILE *input_file ));
+
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+
+static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static void yy_flex_free YY_PROTO(( void * ));
+
+#define yy_new_buffer yy_create_buffer
 
 #define yy_set_interactive(is_interactive) \
 	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        fortranensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            fortran_create_buffer(fortranin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_is_interactive = is_interactive; \
 	}
 
 #define yy_set_bol(at_bol) \
 	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        fortranensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            fortran_create_buffer(fortranin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_at_bol = at_bol; \
 	}
 
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
 
 typedef unsigned char YY_CHAR;
-
-FILE *fortranin = (FILE *) 0, *fortranout = (FILE *) 0;
-
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 typedef int yy_state_type;
-
-extern int fortranlineno;
-
-int fortranlineno = 1;
-
-extern char *fortrantext;
-#define yytext_ptr fortrantext
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 
 /* Done after the current pattern has been matched and before the
- * corresponding action - sets up fortrantext.
+ * corresponding action - sets up yytext.
  */
 #define YY_DO_BEFORE_ACTION \
-	(yytext_ptr) = yy_bp; \
-	fortranleng = (size_t) (yy_cp - yy_bp); \
-	(yy_hold_char) = *yy_cp; \
+	yytext_ptr = yy_bp; \
+	yyleng = (int) (yy_cp - yy_bp); \
+	yy_hold_char = *yy_cp; \
 	*yy_cp = '\0'; \
-	(yy_c_buf_p) = yy_cp;
+	yy_c_buf_p = yy_cp;
 
 #define YY_NUM_RULES 173
 #define YY_END_OF_BUFFER 174
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[1124] =
+static yyconst short int yy_accept[1124] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -502,5 +432,5 @@
     } ;
 
-static yyconst flex_int32_t yy_ec[256] =
+static yyconst int yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
@@ -534,5 +464,5 @@
     } ;
 
-static yyconst flex_int32_t yy_meta[64] =
+static yyconst int yy_meta[64] =
     {   0,
         1,    2,    3,    4,    1,    5,    1,    1,    1,    6,
@@ -545,18 +475,18 @@
     } ;
 
-static yyconst flex_int16_t yy_base[1180] =
+static yyconst short int yy_base[1180] =
     {   0,
-        0,   62,    0,    0,    0,    0, 4188,   65,    0,   55,
-        0,    0, 4190,   35,   69,   70,   74,   37,   75,   50,
+        0,   62,    0,    0,    0,    0, 4185,   65,    0,   55,
+        0,    0, 4187,   35,   69,   70,   74,   37,   75,   50,
        53,   72,   93,   78,   66,   56,  148,   87,   81,   65,
        68,   99,   71,  191,  230,  108,  183,  225,  244,  103,
       137,  152,  185,  250,  265,  262,  281,  220,  286,  296,
-      308,  368,  134,  424,  321,  350,  149, 4152,  310,  337,
-      270, 4192, 4185, 4192,  158,  380,  481, 4150, 4132,  138,
-      163,  175,  179,    0, 4148, 4130, 4177, 4176,  147,  133,
-     4178, 4177,  192,  156,  232,  393,  376, 4192,  402,  406,
-     4192, 4192,  543,  184, 4129, 4125,  204,  218,  226, 4123,
-
-     4125, 4192,  584,  358, 4192,  448,  532,  507,  514,  572,
+      308,  368,  134,  424,  321,  350,  149, 4149,  310,  337,
+      270, 4189, 4182, 4189,  158,  380,  481, 4147, 4129,  138,
+      163,  175,  179,    0, 4145, 4127, 4174, 4189,  147,  133,
+     4176, 4175,  192,  156,  232,  393,  376, 4189,  402,  406,
+     4189, 4189,  543,  184, 4127, 4123,  204,  218,  226, 4121,
+
+     4123, 4189,  584,  358, 4189,  448,  532,  507,  514,  572,
       534,  588,  593,  605,  617,  381,  242,  169,  195,  404,
       384,  312,  517,  672,  524,  378,  403,  544,  365,  630,
@@ -564,78 +494,78 @@
       672,  673,  603,  674,  680,  684,  698,  686,  699,  704,
       706,  584,  707,  710,  711,  730,  683,  297,  732,  735,
-      734,  737,  742,  750,  788,  795, 4172,  389,  316, 4137,
-     4125,   72, 4117,  807, 4192,  863,  427, 4168, 4192,  225,
+      734,  737,  742,  750,  788,  795, 4170,  389,  316, 4135,
+     4123,   72, 4115,  807, 4189,  863,  427, 4166, 4189,  225,
       327,  543,  632,  660,  804,  765,  799,  770,  764,  785,
-      788, 4167, 4192,  343, 4166,  774, 4192, 4165,  820,  564,
-
-      856,  918,  946, 4149,  271,  661,  187,  270, 4118, 4108,
-      812, 4116, 4106,  547,  804,  617,  398,  859,  894,  906,
-      868, 4192,  889,  871,  815,  860,  896, 4122,  372, 4143,
-     4142, 4141, 4140,  275, 4101, 4138, 4101, 4192,  874,  907,
-      908,  914, 4113, 4112,  864,  973,  999,  977,  975,  983,
+      788, 4165, 4189,  343, 4164,  774, 4189, 4163,  820,  564,
+
+      856,  918,  946, 4147,  271,  661,  187,  270, 4116, 4106,
+      812, 4114, 4104,  547,  804,  617,  398,  859,  894,  906,
+      868, 4189,  889,  871,  815,  860,  896, 4120,  372, 4141,
+     4140, 4139, 4138,  275, 4099, 4136, 4099, 4189,  874,  907,
+      908,  914, 4111, 4110,  864,  973,  999,  977,  975,  983,
       984,  981, 1002,  986,  987, 1006, 1007, 1008, 1011, 1020,
-     1010, 4093,  737, 1029, 1032, 1017, 1036, 1089, 1033, 1078,
+     1010, 4091,  737, 1029, 1032, 1017, 1036, 1089, 1033, 1078,
      1042, 1035, 1047, 1058, 1038, 1057, 1063, 1101, 1071, 1013,
-     4192, 1070, 1079, 1082, 1083, 1105, 1110, 1148, 1149, 1112,
+     4189, 1070, 1079, 1082, 1083, 1105, 1110, 1148, 1149, 1112,
      1117, 1119, 1126, 1128, 1133, 1139, 1076, 1125, 1137, 1140,
 
      1151, 1161, 1162, 1171, 1163, 1175, 1176, 1177, 1186, 1187,
      1184, 1198, 1189, 1199, 1202, 1141, 1245, 1207, 1221, 1209,
-     1211, 1213, 1225, 1264, 1283, 4090, 1290, 4147, 4094, 4098,
-     4091, 4095, 4093, 4103, 1346,  715,  922,  557, 1120,  837,
-     1266,    0,  931, 4100, 4093, 1236, 1235, 1243, 1264, 1271,
-     1274,  800, 4138, 1311, 4192, 1268,  873, 4137, 1332, 1295,
-     1132, 1401, 1440,    0, 4005, 1479,  697,  659,  815,  998,
-     3951, 3948,  932, 3883, 3892, 1231,  551,  561, 1302, 1321,
-     1342, 1351, 1355, 1385, 1410, 1424, 1449, 1463, 3913, 4192,
-     3846, 4192, 4192, 4192, 4192, 4192, 3789, 3812, 4192, 3807,
-
-     1347, 1488, 1497, 1506, 1515, 1524, 1533, 1302, 3782, 1327,
-     1304, 1525, 4192, 1273, 1362, 1361, 1402, 1403, 1441, 1442,
-     1526, 1443, 1527, 1528, 1531, 1533, 1535, 1534, 3776, 1549,
-     1553, 1539, 1597, 1655, 4192, 1541, 1554, 1563, 1565, 1567,
-     1569, 1575, 1578, 1577, 1361, 4192, 1583, 1714, 1587, 1623,
-     1591, 1596, 1607, 3768, 1611, 1617, 1612, 1616, 1630, 1631,
-     1645, 1639, 1684, 4192, 1652, 1654, 1690, 4192, 1741, 1672,
+     1211, 1213, 1225, 1264, 1283, 4088, 1290, 4145, 4092, 4096,
+     4089, 4093, 4091, 4101, 1346,  715,  922,  557, 1120,  837,
+     1266,    0,  931, 4098, 4091, 1236, 1235, 1243, 1264, 1271,
+     1274,  800, 4020, 1311, 4189, 1268,  873, 4003, 1332, 1295,
+     1132, 1401, 1440,    0, 3971, 1479,  697,  659,  815,  998,
+     3883, 3892,  932, 3876, 3823, 1231,  551,  561, 1302, 1321,
+     1342, 1351, 1355, 1385, 1410, 1424, 1449, 1463, 3829, 4189,
+     3812, 4189, 4189, 4189, 4189, 4189, 3767, 3805, 4189, 3802,
+
+     1347, 1488, 1497, 1506, 1515, 1524, 1533, 1302, 3778, 1327,
+     1304, 1525, 4189, 1273, 1362, 1361, 1402, 1403, 1441, 1442,
+     1526, 1443, 1527, 1528, 1531, 1533, 1535, 1534, 3773, 1549,
+     1553, 1539, 1597, 1655, 4189, 1541, 1554, 1563, 1565, 1567,
+     1569, 1575, 1578, 1577, 1361, 4189, 1583, 1714, 1587, 1623,
+     1591, 1596, 1607, 3762, 1611, 1617, 1612, 1616, 1630, 1631,
+     1645, 1639, 1684, 4189, 1652, 1654, 1690, 4189, 1741, 1672,
      1742, 1743, 1744, 1745, 1746, 1747, 1751, 1757, 1766, 1756,
      1767, 1771, 1772, 1777, 1776, 1801, 1779, 1780, 1781, 1782,
-     1787, 1790, 1800, 1802, 1828, 1805, 1806, 1810, 1846, 4192,
-
-     1808, 1812, 1809, 1814, 1830, 1832, 1870, 1885, 1892, 3776,
-     3757, 3774, 3770, 3766, 3801, 1948, 1009, 1380, 1303,  663,
-     1414, 1873, 3748, 3749, 1903, 1863, 1902, 1839, 1943, 3796,
+     1787, 1790, 1800, 1802, 1828, 1805, 1806, 1810, 1846, 4189,
+
+     1808, 1812, 1809, 1814, 1830, 1832, 1870, 1885, 1892, 3770,
+     3752, 3770, 3767, 3761, 3797, 1948, 1009, 1380, 1303,  663,
+     1414, 1873, 3746, 3747, 1903, 1863, 1902, 1839, 1943, 3794,
      1306, 1438, 1451, 1849, 1566, 2003, 2029, 2068, 1591,  424,
-     1063, 1373, 3758,    0, 1392, 3757,    0,  815, 3791, 1875,
-     3793, 1919, 1702, 4192, 4192, 3776, 4192, 4192, 1987, 2013,
+     1063, 1373, 3756,    0, 1392, 3755,    0,  815, 3788, 1875,
+     3790, 1919, 1702, 4189, 4189, 3774, 4189, 4189, 1987, 2013,
      2038, 2052, 1844, 2096, 1864, 1882, 1884, 1883, 1927, 1924,
-     1929, 1909, 1945, 1930, 3748, 1949, 2123, 2124, 2160, 2045,
-     2126, 3741, 3734, 1588, 3738, 3731, 1623, 3723, 3690, 1963,
+     1929, 1909, 1945, 1930, 3746, 1949, 2123, 2124, 2160, 2045,
+     2126, 3738, 3728, 1588, 3733, 3680, 1623, 3668, 3683, 1963,
      2129, 1965, 2030, 2132, 2130, 2128, 2136, 2148, 2150, 2138,
 
-     2191, 4192, 2186, 2178, 2162, 2180, 1990, 4192, 2164, 2166,
-     2184, 4192, 2187, 2196, 2188, 2190, 2194, 2200, 2209, 2203,
+     2191, 4189, 2186, 2178, 2162, 2180, 1990, 4189, 2164, 2166,
+     2184, 4189, 2187, 2196, 2188, 2190, 2194, 2200, 2209, 2203,
      2206, 2210, 2218, 2222, 2221, 2230, 2225, 2228, 2236, 2231,
-     2246, 2237, 2243, 2244, 2249, 3701, 2252, 2255, 2258, 2256,
-     2264, 4192, 2265, 2267, 2276, 2277, 2322, 2331, 2341, 2313,
-     3690, 1416, 3687, 2336, 2397, 1449, 1648, 1854, 2040, 3720,
-     2324, 3676, 1783, 2335, 4192, 2313, 2312, 1910, 2335, 2392,
-     4192, 2389, 2194, 2341, 3697, 2249, 2042, 2452, 2478, 2504,
-     2530, 1870, 3681, 2558, 3678,    0, 4192, 2615,    0,    0,
-     3687, 3684, 3677, 3679, 3659, 2353, 2366, 2400, 4192, 4192,
+     2246, 2237, 2243, 2244, 2249, 3696, 2252, 2255, 2258, 2256,
+     2264, 4189, 2265, 2267, 2276, 2277, 2322, 2331, 2341, 2313,
+     3686, 1416, 3684, 2336, 2397, 1449, 1648, 1854, 2040, 3697,
+     2324, 3654, 1783, 2335, 4189, 2313, 2312, 1910, 2335, 2392,
+     4189, 2389, 2194, 2341, 3693, 2249, 2042, 2452, 2478, 2504,
+     2530, 1870, 3675, 2558, 3672,    0, 4189, 2615,    0,    0,
+     3677, 3676, 4189, 3659, 3654, 2353, 2366, 2400, 4189, 4189,
 
      2643, 2392, 2355, 2331, 2369, 2384, 2385, 2389, 2390, 2391,
-     2392, 2397, 3609, 2431, 2415, 2393, 3586, 3583, 2395, 2430,
-     4192, 3576, 4192, 3569, 3582, 3569, 3542, 3551, 3536, 3546,
+     2392, 2397, 3580, 2431, 2415, 2393, 3585, 3582, 2395, 2430,
+     4189, 3575, 4189, 3566, 3580, 3539, 3541, 3550, 3535, 3495,
      2454, 2455, 2457, 2480, 2481, 2428, 2670, 2458, 2671, 2455,
-     4192, 2482, 2708, 2672, 2676, 2677, 2692, 2483, 2484, 2678,
+     4189, 2482, 2708, 2672, 2676, 2677, 2692, 2483, 2484, 2678,
      2680, 2690, 2685, 2699, 2700, 2703, 2739, 2705, 2710, 2711,
      2712, 2714, 2721, 2715, 2537, 2726, 2719, 2724, 2735, 2775,
-     2744, 2745, 2781, 2792, 2801, 3495, 3474, 3433,    0, 1637,
-     3477, 3476, 3436,    0, 1991, 2750, 2772, 2806, 1959, 3474,
-     3473, 2313, 3472, 2356, 2860, 2921,    0, 3456, 4192, 4192,
-
-        0, 3467, 3466, 3468, 2537, 2621, 4192, 2905, 2793, 2747,
+     2744, 2745, 2781, 2792, 2801, 3478, 3436, 3432,    0, 1637,
+     3476, 3475, 3435,    0, 1991, 2750, 2772, 2806, 1959, 3473,
+     3472, 2313, 3471, 2356, 2860, 2921,    0, 3455, 4189, 4189,
+
+        0, 3466, 4189, 3468, 2537, 2621, 4189, 2905, 2793, 2747,
      2782, 2779, 2805, 2753, 2897, 2780, 2802, 3429, 2458, 2899,
-     2791, 2898, 4192, 3428, 2900, 3429, 3426, 3409, 3422, 3423,
+     2791, 2898, 4189, 3428, 2900, 3429, 3426, 3409, 3422, 3423,
      3409, 3421, 3407, 2902, 2903, 2918, 2922, 2923, 2924, 2926,
      2927, 2928, 2936, 2981, 2976, 2937, 2951, 2955, 2957, 2958,
@@ -643,32 +573,32 @@
      2987, 3024, 3423, 2988, 2811, 2990, 2993, 3417, 3407, 2459,
      2510, 3453, 3419, 2994, 2997, 2462, 3026, 3448, 3029, 3063,
-        0, 3426, 3002, 3000, 3016, 3006, 3013, 3018, 3021, 4192,
+        0, 3426, 3002, 3000, 3016, 3006, 3013, 3018, 3021, 4189,
      3389, 3309, 3024, 3022, 3272, 3027, 3215, 3209, 3187, 3150,
 
-     3134, 3029, 4192, 3004, 3055, 3040, 3056, 3042, 3058, 3061,
+     3134, 3029, 4189, 3004, 3055, 3040, 3056, 3042, 3058, 3061,
      3062, 3067, 3065, 3098, 2484, 3110, 3119, 3070, 3088, 3089,
      3094, 2917, 3090, 3091, 3097, 3098, 2953, 3099, 2930, 3100,
      3109, 2818, 2796, 2785, 2502, 3110, 3102, 2383, 3135, 3112,
      3120, 3124, 3128, 3125, 2746, 2687, 3131, 3133, 2605, 3134,
-     2590, 2592, 2586, 2479, 2459, 2433, 4192, 3139, 3143, 3144,
+     2590, 2592, 2586, 2479, 2459, 2433, 4189, 3139, 3143, 3144,
      3147, 3149, 3152, 3155, 2541, 3192, 3208, 3204, 3210, 3162,
      3178, 2438, 3185, 3182, 2414, 3188, 2340, 3189, 3190, 2333,
-     4192, 2018, 2288, 2260, 3192,  112, 3197, 3188, 3200, 3191,
-     2137, 2149, 3210, 3211, 4192, 2017, 2011, 4192, 1998, 4192,
+     4189, 2018, 2288, 2260, 3192,  112, 3197, 3188, 3200, 3191,
+     2137, 2149, 3210, 3211, 4189, 2017, 2011, 4189, 1998, 4189,
 
      1986, 3212, 3213, 3197, 3216, 3218, 2624, 3271, 1977, 3239,
      1982, 1903, 3223, 3231, 1885, 3254, 1854, 1829, 3232, 3066,
-     1951, 1593, 3241, 1822, 1744, 3242, 3245, 1736, 1662, 4192,
+     1951, 1593, 3241, 1822, 1744, 3242, 3245, 1736, 1662, 4189,
      1653, 3250, 3257, 3252, 3254, 2850, 3310, 1642, 3270, 1622,
-     4192, 1521, 3100, 1441,    0, 3255, 3294, 1280, 1416, 1354,
-     1309, 3268, 3280, 4192, 1314, 1246, 3264, 3278, 3325, 3333,
-     1178, 3284, 1155, 4192, 3300, 1072, 3313, 2771, 1054, 1064,
-     3294, 3296, 4192, 1044, 3302, 3350, 3377,  992, 3305,  960,
-     3102,    0, 3337,  892, 4192,  829, 3312, 4192, 3342, 3388,
+     4189, 1521, 3100, 1441,    0, 3255, 3294, 1280, 1416, 1354,
+     1309, 3268, 3280, 4189, 1314, 1246, 3264, 3278, 3325, 3333,
+     1178, 3284, 1155, 4189, 3300, 1072, 3313, 2771, 1054, 1064,
+     3294, 3296, 4189, 1044, 3302, 3350, 3377,  992, 3305,  960,
+     3102,    0, 3337,  892, 4189,  829, 3312, 4189, 3342, 3388,
       696, 3345,  555, 3358, 3364,  406, 3367, 3414, 3415,  348,
 
-     3368, 4192, 3341, 3380, 4192, 4192, 3366, 3381, 3351, 3367,
-     2713, 3390, 3382, 3386,  281, 3404, 4192, 3405, 3416, 3426,
-      177, 4192, 4192, 3482, 3499, 3516, 3533, 3550, 3567, 3577,
+     3368, 4189, 3341, 3380, 4189, 4189, 3366, 3381, 3351, 3367,
+     2713, 3390, 3382, 3386,  281, 3404, 4189, 3405, 3416, 3426,
+      177, 4189, 4189, 3482, 3499, 3516, 3533, 3550, 3567, 3577,
      3584, 3601, 3615, 3629, 3646, 3663, 3672, 3685, 3702, 3716,
      3722, 3731, 3748, 3765, 3424, 3427, 3428, 3774, 3432, 3436,
@@ -678,5 +608,5 @@
     } ;
 
-static yyconst flex_int16_t yy_def[1180] =
+static yyconst short int yy_def[1180] =
     {   0,
      1123,    1, 1124, 1124,    1,    2, 1125, 1125,    1,    2,
@@ -687,5 +617,5 @@
        37, 1123, 1123, 1123, 1132, 1133,   37,   38,   38,   37,
        38, 1123, 1134, 1123, 1134, 1135, 1123, 1123, 1123, 1123,
-     1123, 1123, 1123, 1126, 1126, 1126, 1127, 1127, 1127, 1127,
+     1123, 1123, 1123, 1126, 1126, 1126, 1127, 1123, 1127, 1127,
      1128, 1123, 1128, 1128, 1129, 1136, 1129, 1123, 1129, 1129,
      1123, 1123, 1123, 1137, 1123, 1123, 1123, 1123, 1123, 1123,
@@ -755,5 +685,5 @@
      1123, 1123, 1134, 1143, 1169, 1144, 1170, 1143, 1143, 1143,
      1143,  203,  203, 1123,  203, 1171, 1123, 1123, 1172, 1126,
-     1173, 1127, 1127, 1174, 1128, 1175, 1129, 1129, 1123, 1123,
+     1173, 1127, 1123, 1174, 1128, 1175, 1129, 1129, 1123, 1123,
 
      1123, 1123,  115,  115,  115,  115,  115,  115,  115,  115,
@@ -768,5 +698,5 @@
      1143, 1144, 1170, 1170, 1123, 1143,  203,  203, 1123, 1123,
 
-     1126, 1127, 1127, 1128, 1129, 1129, 1123, 1123,  115,  115,
+     1126, 1127, 1123, 1128, 1129, 1129, 1123, 1123,  115,  115,
       115,  115,  115,  115,  115,  115,  115, 1123, 1123,  115,
       115,  115, 1123, 1123,  115, 1123, 1123, 1123, 1123, 1123,
@@ -811,5 +741,5 @@
     } ;
 
-static yyconst flex_int16_t yy_nxt[4256] =
+static yyconst short int yy_nxt[4253] =
     {   0,
        14,   15,   16,   17,   18,   19,   14,   20,   21,   22,
@@ -1194,48 +1124,48 @@
       197,  562, 1120,  562,  935,  179,  933, 1118,  932,  927,
       904,  903,  902,  901,  900,  899,  898,  897,  895,  890,
-       82,   78,   78,  366,  197,  197,  197,  873,  179,  179,
-      870, 1121,   62,   62,   62,   62,   62,   62,   62,   62,
+       82,   78,  366,  197,  197,  197,  873,  179,  179,  870,
+      869, 1121,   62,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   63,
 
        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   74,   74,  869,   74,
+       63,   63,   63,   63,   63,   63,   74,   74,  868,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   74,   77,   77,  868,   77,   77,   77,   77,
+       74,   74,   74,   77,   77,  833,   77,   77,   77,   77,
        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
        81,   81,   81,   81,   81,   81,   81,   85,   85,   85,
        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,  104,  104,  833,  832,  831,  830,
+       85,   85,   85,   85,  104,  104,  832,  831,  830,  829,
       104,  108,  108,  108,  108,  108,  108,  108,  108,  108,
 
       108,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  184,  829,
-      184,  828,  184,  184,  827,  826,  824,  823,  184,  192,
+      178,  178,  178,  178,  178,  178,  178,  178,  184,  828,
+      184,  827,  184,  184,  826,  824,  823,  818,  184,  192,
       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
       192,  192,  192,  192,  192,  192,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  818,  195,  195,  195,
+      195,  195,  195,  195,  195,  195,   82,  195,  195,  195,
       195,   82,  195,  218,  218,  218,  218,  218,  218,  218,
       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
-       94,   82,   78,   94,   94,  238,  238,  238,  238,   78,
-      238,  238,  803,  238,  238,  366,  238,  238,  366,  197,
+       94,   78,  803,   94,   94,  238,  238,  238,  238,  366,
+      238,  238,  366,  238,  238,  197,  238,  238,  783,  179,
 
       238,  238,  328,  328,  328,  328,  328,  328,  328,  328,
       328,  328,  328,  328,  328,  328,  328,  328,  328,  336,
-      783,  336,  179,  778,  336,  341,  777,  341,  765,  341,
-      341,  342,  342,  730,  342,  342,  342,  342,  342,  342,
+      778,  336,  777,  765,  336,  341,  730,  341,  729,  341,
+      341,  342,  342,  726,  342,  342,  342,  342,  342,  342,
       342,  342,  342,  342,  342,  342,  342,  342,  353,  353,
       353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
       353,  353,  353,  353,  353,  358,  358,  358,  358,  358,
       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
-      358,  358,  401,  729,  726,  401,  401,  262,  725,  262,
-      722,  721,  713,  700,  262,   82,  693,  689,  686,  530,
-
-      663,  662,  262,  517,  530,  517,  654,  653,  517,  522,
-      652,  522,  651,  522,  522,  656,  650,  656,  612,  575,
-      656,  661,  408,  661,  558,  661,  661,  687,  687,  557,
+      358,  358,  401,  725,  722,  401,  401,  262,  721,  262,
+      713,  700,   82,  693,  262,  689,  686,  530,  663,  662,
+
+      530,  654,  262,  517,  653,  517,  652,  651,  517,  522,
+      650,  522,  612,  522,  522,  656,  575,  656,  408,  558,
+      656,  661,  557,  661,  556,  661,  661,  687,  687,  555,
       687,  687,  687,  687,  687,  687,  687,  687,  687,  687,
-      687,  687,  687,  687,  690,  690,  556,  690,  690,  690,
+      687,  687,  687,  687,  690,  690,  554,  690,  690,  690,
       690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
-      690,  692,  692,  555,  692,  692,  692,  692,  692,  692,
+      690,  692,  692,  547,  692,  692,  692,  692,  692,  692,
       692,  692,  692,  692,  692,  692,  692,  692,  695,  695,
       695,  695,  695,  695,  695,  695,  695,  695,  695,  695,
@@ -1245,15 +1175,15 @@
       697,  697,  782,  782,  782,  782,  782,  782,  782,  782,
       782,  782,  782,  782,  782,  782,  782,  782,  782,  104,
-      554,  104,  547,  104,  104,  784,  784,  546,  784,  784,
+      546,  104,  544,  104,  104,  784,  784,  543,  784,  784,
       784,  784,  784,  784,  784,  784,  784,  784,  784,  784,
       784,  784,  791,  791,  791,  791,  791,  791,  791,  791,
       791,  791,  791,  791,  791,  791,  791,  791,  791,  793,
       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
-      793,  793,  793,  793,  793,  793,  799,  799,  544,  799,
+      793,  793,  793,  793,  793,  793,  799,  799,  366,  799,
       799,  799,  799,  799,  799,  799,  799,  799,  799,  799,
 
-      799,  799,  799,  801,  801,  543,  801,  801,  801,  801,
+      799,  799,  799,  801,  801,  197,  801,  801,  801,  801,
       801,  801,  801,  801,  801,  801,  801,  801,  801,  801,
-      802,  802,  366,  802,  802,  802,  802,  802,  802,  802,
+      802,  802,  197,  802,  802,  802,  802,  802,  802,  802,
       802,  802,  802,  802,  802,  802,  802,  804,  804,  804,
       804,  804,  804,  804,  804,  804,  804,  804,  804,  804,
@@ -1267,11 +1197,11 @@
       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
       914,  914,  966,  966,  966,  966,  966,  966,  966,  966,
-      966,  966,  966,  966,  966,  966,  966,  966,  966,  197,
-      197,  524,  523,  515,  514,  513,  512,  511,  510,  179,
-      333,  429,  410,  408,  400,  399,  398,  395,  394,  393,
-      392,  389,  375,  374,  372,  371,  366,  197,  197,  193,
-      179,  334,  332,  331,  179,  237,  236,  229,  228,   82,
-       82,   78,   78,  213,  212,  210,  209,  193,  188, 1123,
-       64,   13, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
+      966,  966,  966,  966,  966,  966,  966,  966,  966,  524,
+      523,  515,  514,  513,  512,  511,  510,  179,  333,  429,
+      410,  408,  400,  399,  398,  395,  394,  393,  392,  389,
+      375,  374,  372,  371,  366,  197,  197,  193,  179,  334,
+      332,  331,  179,  237,  236,  229,  228,   82,   82,   78,
+      213,  212,  210,  209,  193,  188, 1123,   64,   13, 1123,
+     1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
 
      1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
@@ -1280,8 +1210,8 @@
      1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
      1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
-     1123, 1123, 1123, 1123, 1123
+     1123, 1123
     } ;
 
-static yyconst flex_int16_t yy_chk[4256] =
+static yyconst short int yy_chk[4253] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1666,48 +1596,48 @@
       878, 1158, 1119, 1158,  873,  872,  869, 1116,  868,  863,
       833,  832,  831,  830,  829,  828,  827,  826,  824,  818,
-      804,  803,  802,  798,  793,  791,  790,  783,  782,  781,
-      778, 1120, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
+      804,  802,  798,  793,  791,  790,  783,  782,  781,  778,
+      777, 1120, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
      1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125,
 
      1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
-     1125, 1125, 1125, 1125, 1125, 1125, 1126, 1126,  777, 1126,
+     1125, 1125, 1125, 1125, 1125, 1125, 1126, 1126,  776, 1126,
      1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
-     1126, 1126, 1126, 1127, 1127,  776, 1127, 1127, 1127, 1127,
+     1126, 1126, 1126, 1127, 1127,  730, 1127, 1127, 1127, 1127,
      1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
      1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
      1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129, 1129,
      1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
-     1129, 1129, 1129, 1129, 1130, 1130,  730,  729,  728,  727,
+     1129, 1129, 1129, 1129, 1130, 1130,  729,  728,  727,  726,
      1130, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
 
      1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
-     1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1133,  726,
-     1133,  725, 1133, 1133,  724,  722,  718,  717, 1133, 1134,
+     1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1133,  725,
+     1133,  724, 1133, 1133,  722,  718,  717,  713, 1133, 1134,
      1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
      1134, 1134, 1134, 1134, 1134, 1134, 1135, 1135, 1135, 1135,
-     1135, 1135, 1135, 1135, 1135, 1135,  713, 1135, 1135, 1135,
-     1135,  695, 1135, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
+     1135, 1135, 1135, 1135, 1135, 1135,  695, 1135, 1135, 1135,
+     1135,  694, 1135, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
      1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
-     1137,  694,  693, 1137, 1137, 1138, 1138, 1138, 1138,  692,
-     1138, 1138,  691, 1138, 1138,  685, 1138, 1138,  683,  675,
+     1137,  692,  691, 1137, 1137, 1138, 1138, 1138, 1138,  685,
+     1138, 1138,  683, 1138, 1138,  675, 1138, 1138,  662,  660,
 
      1138, 1138, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
      1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1140,
-      662, 1140,  660,  653, 1140, 1141,  651, 1141,  636, 1141,
-     1141, 1142, 1142,  589, 1142, 1142, 1142, 1142, 1142, 1142,
+      653, 1140,  651,  636, 1140, 1141,  589, 1141,  588, 1141,
+     1141, 1142, 1142,  586, 1142, 1142, 1142, 1142, 1142, 1142,
      1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1143, 1143,
      1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
      1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144,
      1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
-     1144, 1144, 1148,  588,  586, 1148, 1148, 1154,  585, 1154,
-      583,  582,  575,  556, 1154,  551,  549,  546,  543,  530,
-
-      524,  523, 1154, 1155,  515, 1155,  514,  513, 1155, 1156,
-      512, 1156,  511, 1156, 1156, 1159,  510, 1159,  454,  429,
-     1159, 1160,  409, 1160,  400, 1160, 1160, 1161, 1161,  398,
+     1144, 1144, 1148,  585,  583, 1148, 1148, 1154,  582, 1154,
+      575,  556,  551,  549, 1154,  546,  543,  530,  524,  523,
+
+      515,  514, 1154, 1155,  513, 1155,  512,  511, 1155, 1156,
+      510, 1156,  454, 1156, 1156, 1159,  429, 1159,  409,  400,
+     1159, 1160,  398, 1160,  397, 1160, 1160, 1161, 1161,  391,
      1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
-     1161, 1161, 1161, 1161, 1162, 1162,  397, 1162, 1162, 1162,
+     1161, 1161, 1161, 1161, 1162, 1162,  389, 1162, 1162, 1162,
      1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
-     1162, 1163, 1163,  391, 1163, 1163, 1163, 1163, 1163, 1163,
+     1162, 1163, 1163,  375, 1163, 1163, 1163, 1163, 1163, 1163,
      1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1164, 1164,
      1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
@@ -1717,15 +1647,15 @@
      1165, 1165, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
      1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1167,
-      389, 1167,  375, 1167, 1167, 1168, 1168,  374, 1168, 1168,
+      374, 1167,  372, 1167, 1167, 1168, 1168,  371, 1168, 1168,
      1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
      1168, 1168, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
      1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170,
      1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
-     1170, 1170, 1170, 1170, 1170, 1170, 1171, 1171,  372, 1171,
+     1170, 1170, 1170, 1170, 1170, 1170, 1171, 1171,  365, 1171,
      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
 
-     1171, 1171, 1171, 1172, 1172,  371, 1172, 1172, 1172, 1172,
+     1171, 1171, 1171, 1172, 1172,  358, 1172, 1172, 1172, 1172,
      1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
-     1173, 1173,  365, 1173, 1173, 1173, 1173, 1173, 1173, 1173,
+     1173, 1173,  353, 1173, 1173, 1173, 1173, 1173, 1173, 1173,
      1173, 1173, 1173, 1173, 1173, 1173, 1173, 1174, 1174, 1174,
      1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174,
@@ -1739,11 +1669,11 @@
      1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
      1178, 1178, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
-     1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,  358,
-      353,  345,  344,  334,  333,  332,  331,  330,  329,  328,
-      326,  262,  244,  243,  237,  236,  235,  233,  232,  231,
-      230,  228,  213,  212,  210,  209,  204,  198,  195,  192,
-      178,  173,  171,  170,  167,  101,  100,   96,   95,   82,
-       81,   78,   77,   76,   75,   69,   68,   63,   58,   13,
-        7, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
+     1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,  345,
+      344,  334,  333,  332,  331,  330,  329,  328,  326,  262,
+      244,  243,  237,  236,  235,  233,  232,  231,  230,  228,
+      213,  212,  210,  209,  204,  198,  195,  192,  178,  173,
+      171,  170,  167,  101,  100,   96,   95,   82,   81,   77,
+       76,   75,   69,   68,   63,   58,   13,    7, 1123, 1123,
+     1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
 
      1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
@@ -1752,12 +1682,9 @@
      1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
      1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
-     1123, 1123, 1123, 1123, 1123
+     1123, 1123
     } ;
 
 static yy_state_type yy_last_accepting_state;
 static char *yy_last_accepting_cpos;
-
-extern int fortran_flex_debug;
-int fortran_flex_debug = 0;
 
 /* The intent behind this definition is that it'll catch
@@ -1768,6 +1695,7 @@
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
-char *fortrantext;
+char *yytext;
 #line 1 "fortran.lex"
+#define INITIAL 0
 /******************************************************************************/
 /*                                                                            */
@@ -1804,8 +1732,13 @@
 /* version 1.7                                                                */
 /******************************************************************************/
-
-
-
-
+#define parameter 1
+
+#define character 2
+
+#define donottreat 3
+
+#define fortran77style 4
+
+#define fortran90style 5
 
 #line 41 "fortran.lex"
@@ -1813,5 +1746,5 @@
 #include <stdlib.h>
 #include <string.h>
-extern FILE * fortranin;
+extern FILE * yyin;
 #define MAX_INCLUDE_DEPTH 30
 #define tabsize 6
@@ -1835,38 +1768,17 @@
            if (firstpass == 0) \
            {\
-              strcat(curbuf,fortrantext); \
+              strcat(curbuf,yytext); \
               Save_Length(curbuf,38); \
-              strcpy(motparse,fortrantext);\
+              strcpy(motparse,yytext);\
               Save_Length(motparse,32); \
               colnum = colnum + strlen(motparse);\
               ECHO; \
            }\
-           strcpy(motparse1,fortrantext);\
-           /*printf("fortrantext = %s\n",fortrantext);*/\
+           strcpy(motparse1,yytext);\
+           /*printf("yytext = %s\n",yytext);*/\
         /*if ( firstpass == 1 ) 
-                      printf("fortrantext = %s %d\n",fortrantext,strlen(fortrantext));*/\
+                      printf("yytext = %s %d\n",yytext,strlen(yytext));*/\
         }
-#line 1850 "fortran.yy.c"
-
-#define INITIAL 0
-#define parameter 1
-#define character 2
-#define donottreat 3
-#define fortran77style 4
-#define fortran90style 5
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals (void );
+#line 1783 "fortran.yy.c"
 
 /* Macros after this point can all be overridden by user definitions in
@@ -1876,28 +1788,63 @@
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int fortranwrap (void );
+extern "C" int yywrap YY_PROTO(( void ));
 #else
-extern int fortranwrap (void );
-#endif
-#endif
-
-    static void yyunput (int c,char *buf_ptr  );
-    
+extern int yywrap YY_PROTO(( void ));
+#endif
+#endif
+
+#ifndef YY_NO_UNPUT
+static void yyunput YY_PROTO(( int c, char *buf_ptr ));
+#endif
+
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
 #endif
 
 #ifndef YY_NO_INPUT
-
 #ifdef __cplusplus
-static int yyinput (void );
+static int yyinput YY_PROTO(( void ));
 #else
-static int input (void );
-#endif
-
+static int input YY_PROTO(( void ));
+#endif
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
+#else
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
+#endif
+
+#ifdef YY_MALLOC_DECL
+YY_MALLOC_DECL
+#else
+#if __STDC__
+#ifndef __cplusplus
+#include <stdlib.h>
+#endif
+#else
+/* Just try to get by without declaring the routines.  This will fail
+ * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+ * or sizeof(void*) != sizeof(int).
+ */
+#endif
 #endif
 
@@ -1908,9 +1855,10 @@
 
 /* Copy whatever the last rule matched to the standard output. */
+
 #ifndef ECHO
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( fortrantext, fortranleng, 1, fortranout )
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
 #endif
 
@@ -1920,33 +1868,19 @@
 #ifndef YY_INPUT
 #define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+	if ( yy_current_buffer->yy_is_interactive ) \
 		{ \
-		int c = '*'; \
-		size_t n; \
+		int c = '*', n; \
 		for ( n = 0; n < max_size && \
-			     (c = getc( fortranin )) != EOF && c != '\n'; ++n ) \
+			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
 		if ( c == '\n' ) \
 			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( fortranin ) ) \
+		if ( c == EOF && ferror( yyin ) ) \
 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
 		result = n; \
 		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, fortranin))==0 && ferror(fortranin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(fortranin); \
-			} \
-		}\
-\
-
+	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+		  && ferror( yyin ) ) \
+		YY_FATAL_ERROR( "input in flex scanner failed" );
 #endif
 
@@ -1969,18 +1903,12 @@
 #endif
 
-/* end tables serialization structures and prototypes */
-
 /* Default declaration of generated scanner - a define so the user can
  * easily add parameters.
  */
 #ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int fortranlex (void);
-
-#define YY_DECL int fortranlex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after fortrantext and fortranleng
+#define YY_DECL int yylex YY_PROTO(( void ))
+#endif
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
  * have been set up.
  */
@@ -1995,17 +1923,15 @@
 
 #define YY_RULE_SETUP \
-	if ( fortranleng > 0 ) \
-		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
-				(fortrantext[fortranleng - 1] == '\n'); \
+	if ( yyleng > 0 ) \
+		yy_current_buffer->yy_at_bol = \
+				(yytext[yyleng - 1] == '\n'); \
 	YY_USER_ACTION
 
-/** The main scanner function which does all the work.
- */
 YY_DECL
-{
+	{
 	register yy_state_type yy_current_state;
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
-    
+
 #line 106 "fortran.lex"
 
@@ -2013,9 +1939,9 @@
   if (infree) BEGIN(fortran90style)  ;
 
-#line 2016 "fortran.yy.c"
-
-	if ( !(yy_init) )
+#line 1942 "fortran.yy.c"
+
+	if ( yy_init )
 		{
-		(yy_init) = 1;
+		yy_init = 0;
 
 #ifdef YY_USER_INIT
@@ -2023,28 +1949,26 @@
 #endif
 
-		if ( ! (yy_start) )
-			(yy_start) = 1;	/* first start state */
-
-		if ( ! fortranin )
-			fortranin = stdin;
-
-		if ( ! fortranout )
-			fortranout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			fortranensure_buffer_stack ();
-			YY_CURRENT_BUFFER_LVALUE =
-				fortran_create_buffer(fortranin,YY_BUF_SIZE );
-		}
-
-		fortran_load_buffer_state( );
+		if ( ! yy_start )
+			yy_start = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! yy_current_buffer )
+			yy_current_buffer =
+				yy_create_buffer( yyin, YY_BUF_SIZE );
+
+		yy_load_buffer_state();
 		}
 
 	while ( 1 )		/* loops until end-of-file is reached */
 		{
-		yy_cp = (yy_c_buf_p);
-
-		/* Support of fortrantext. */
-		*yy_cp = (yy_hold_char);
+		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
@@ -2053,5 +1977,5 @@
 		yy_bp = yy_cp;
 
-		yy_current_state = (yy_start);
+		yy_current_state = yy_start;
 		yy_current_state += YY_AT_BOL();
 yy_match:
@@ -2061,6 +1985,6 @@
 			if ( yy_accept[yy_current_state] )
 				{
-				(yy_last_accepting_state) = yy_current_state;
-				(yy_last_accepting_cpos) = yy_cp;
+				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 )
@@ -2073,5 +1997,5 @@
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 4192 );
+		while ( yy_base[yy_current_state] != 4189 );
 
 yy_find_action:
@@ -2079,6 +2003,6 @@
 		if ( yy_act == 0 )
 			{ /* have to back up */
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
+			yy_cp = yy_last_accepting_cpos;
+			yy_current_state = yy_last_accepting_state;
 			yy_act = yy_accept[yy_current_state];
 			}
@@ -2086,5 +2010,7 @@
 		YY_DO_BEFORE_ACTION;
 
+
 do_action:	/* This label is used only to access EOF actions. */
+
 
 		switch ( yy_act )
@@ -2092,7 +2018,7 @@
 			case 0: /* must back up */
 			/* 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);
+			*yy_cp = yy_hold_char;
+			yy_cp = yy_last_accepting_cpos;
+			yy_current_state = yy_last_accepting_state;
 			goto yy_find_action;
 
@@ -2155,20 +2081,20 @@
 YY_RULE_SETUP
 #line 122 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_ENDSUBROUTINE;}
+{strcpy(yylval.na,yytext);return TOK_ENDSUBROUTINE;}
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
 #line 123 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_ENDPROGRAM;}
+{strcpy(yylval.na,yytext);return TOK_ENDPROGRAM;}
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
 #line 124 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_ENDFUNCTION;}
+{strcpy(yylval.na,yytext);return TOK_ENDFUNCTION;}
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
 #line 125 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_ENDUNIT;}
+{strcpy(yylval.na,yytext);return TOK_ENDUNIT;}
 	YY_BREAK
 case 16:
@@ -2181,5 +2107,5 @@
 #line 127 "fortran.lex"
 {
-                            strcpy(yylval.na,fortrantext);
+                            strcpy(yylval.na,yytext);
                             tmpc = input();
                             unput(tmpc);
@@ -2236,65 +2162,65 @@
 YY_RULE_SETUP
 #line 151 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_DASTER;}
+{strcpy(yylval.na,yytext);return TOK_DASTER;}
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
 #line 152 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_EQV;}
+{strcpy(yylval.na,yytext);return TOK_EQV;}
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
 #line 153 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_EQ;}
+{strcpy(yylval.na,yytext);return TOK_EQ;}
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
 #line 154 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_GT;}
+{strcpy(yylval.na,yytext);return TOK_GT;}
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
 #line 155 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_GE;}
+{strcpy(yylval.na,yytext);return TOK_GE;}
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
 #line 156 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_LT;}
+{strcpy(yylval.na,yytext);return TOK_LT;}
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
 #line 157 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_LE;}
+{strcpy(yylval.na,yytext);return TOK_LE;}
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
 #line 158 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_NEQV;}
+{strcpy(yylval.na,yytext);return TOK_NEQV;}
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
 #line 159 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_NE;}
+{strcpy(yylval.na,yytext);return TOK_NE;}
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
 #line 160 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_NOT;}
+{strcpy(yylval.na,yytext);return TOK_NOT;}
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
 #line 161 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_OR;}
+{strcpy(yylval.na,yytext);return TOK_OR;}
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
 #line 162 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_XOR;}
+{strcpy(yylval.na,yytext);return TOK_XOR;}
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
 #line 163 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_AND;}
+{strcpy(yylval.na,yytext);return TOK_AND;}
 	YY_BREAK
 case 38:
@@ -2326,20 +2252,20 @@
 YY_RULE_SETUP
 #line 169 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_REAL;}
+{strcpy(yylval.na,yytext);return TOK_REAL;}
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
 #line 170 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_INTEGER;}
+{strcpy(yylval.na,yytext);return TOK_INTEGER;}
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
 #line 171 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_LOGICAL;}
+{strcpy(yylval.na,yytext);return TOK_LOGICAL;}
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
 #line 172 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CHARACTER;}
+{strcpy(yylval.na,yytext);return TOK_CHARACTER;}
 	YY_BREAK
 case 47:
@@ -2466,5 +2392,5 @@
 YY_RULE_SETUP
 #line 197 "fortran.lex"
-{if (inallocate == 1) return TOK_STAT; else {strcpy(yylval.na,fortrantext);return TOK_NAME;}}
+{if (inallocate == 1) return TOK_STAT; else {strcpy(yylval.na,yytext);return TOK_NAME;}}
 	YY_BREAK
 case 72:
@@ -2484,5 +2410,4 @@
 	YY_BREAK
 case 75:
-/* rule 75 can match eol */
 YY_RULE_SETUP
 #line 201 "fortran.lex"
@@ -2532,10 +2457,10 @@
 YY_RULE_SETUP
 #line 210 "fortran.lex"
-{strcpy(yylval.nac,fortrantext);return TOK_IN;}
+{strcpy(yylval.nac,yytext);return TOK_IN;}
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
 #line 211 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_DATA;}
+{strcpy(yylval.na,yytext);return TOK_DATA;}
 	YY_BREAK
 case 86:
@@ -2552,10 +2477,10 @@
 YY_RULE_SETUP
 #line 214 "fortran.lex"
-{strcpy(yylval.nac,fortrantext);return TOK_OUT;}
+{strcpy(yylval.nac,yytext);return TOK_OUT;}
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
 #line 215 "fortran.lex"
-{strcpy(yylval.nac,fortrantext);return TOK_INOUT;}
+{strcpy(yylval.nac,yytext);return TOK_INOUT;}
 	YY_BREAK
 case 90:
@@ -2785,5 +2710,4 @@
 	YY_BREAK
 case 135:
-/* rule 135 can match eol */
 YY_RULE_SETUP
 #line 261 "fortran.lex"
@@ -2793,75 +2717,73 @@
 YY_RULE_SETUP
 #line 262 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_DOUBLEPRECISION;}
+{strcpy(yylval.na,yytext);return TOK_DOUBLEPRECISION;}
 	YY_BREAK
 case 137:
 YY_RULE_SETUP
 #line 263 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_DOUBLECOMPLEX;}
+{strcpy(yylval.na,yytext);return TOK_DOUBLECOMPLEX;}
 	YY_BREAK
 case 138:
 YY_RULE_SETUP
 #line 264 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_SLASH;}
+{strcpy(yylval.na,yytext);return TOK_SLASH;}
 	YY_BREAK
 case 139:
 YY_RULE_SETUP
 #line 265 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_DSLASH;}
+{strcpy(yylval.na,yytext);return TOK_DSLASH;}
 	YY_BREAK
 case 140:
-/* rule 140 can match eol */
 YY_RULE_SETUP
 #line 266 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CHAR_CUT;}
+{strcpy(yylval.na,yytext);return TOK_CHAR_CUT;}
 	YY_BREAK
 case 141:
 YY_RULE_SETUP
 #line 267 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CHAR_CONSTANT;}
+{strcpy(yylval.na,yytext);return TOK_CHAR_CONSTANT;}
 	YY_BREAK
 case 142:
 YY_RULE_SETUP
 #line 268 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CHAR_MESSAGE;}
+{strcpy(yylval.na,yytext);return TOK_CHAR_MESSAGE;}
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
 #line 269 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CHAR_INT;}
+{strcpy(yylval.na,yytext);return TOK_CHAR_INT;}
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
 #line 270 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_NAME;}
+{strcpy(yylval.na,yytext);return TOK_NAME;}
 	YY_BREAK
 case 145:
 YY_RULE_SETUP
 #line 271 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CSTREAL;}
+{strcpy(yylval.na,yytext);return TOK_CSTREAL;}
 	YY_BREAK
 case 146:
 YY_RULE_SETUP
 #line 272 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CSTREALDP;}
+{strcpy(yylval.na,yytext);return TOK_CSTREALDP;}
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
 #line 273 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CSTREALQP;}
+{strcpy(yylval.na,yytext);return TOK_CSTREALQP;}
 	YY_BREAK
 case 148:
-/* rule 148 can match eol */
-*yy_cp = (yy_hold_char); /* undo effects of setting up fortrantext */
-(yy_c_buf_p) = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up fortrantext again */
+*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 */
 YY_RULE_SETUP
 #line 274 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CSTREAL;}
+{strcpy(yylval.na,yytext);return TOK_CSTREAL;}
 	YY_BREAK
 case 149:
 YY_RULE_SETUP
 #line 275 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return TOK_CSTINT;}
+{strcpy(yylval.na,yytext);return TOK_CSTINT;}
 	YY_BREAK
 case 150:
@@ -2883,5 +2805,5 @@
 YY_RULE_SETUP
 #line 279 "fortran.lex"
-{strcpy(yylval.na,fortrantext);return (int) *fortrantext;}
+{strcpy(yylval.na,yytext);return (int) *yytext;}
 	YY_BREAK
 case 154:
@@ -2893,31 +2815,30 @@
 YY_RULE_SETUP
 #line 281 "fortran.lex"
-{return (int) *fortrantext;}
+{return (int) *yytext;}
 	YY_BREAK
 case 156:
 YY_RULE_SETUP
 #line 282 "fortran.lex"
-{return (int) *fortrantext;}
+{return (int) *yytext;}
 	YY_BREAK
 case 157:
 YY_RULE_SETUP
 #line 283 "fortran.lex"
-{return (int) *fortrantext;}
+{return (int) *yytext;}
 	YY_BREAK
 case 158:
 YY_RULE_SETUP
 #line 284 "fortran.lex"
-{return (int) *fortrantext;}
+{return (int) *yytext;}
 	YY_BREAK
 case 159:
-/* rule 159 can match eol */
 YY_RULE_SETUP
 #line 285 "fortran.lex"
-{colnum=0;line_num_fortran++;line_num_fortran_common++; return (int) *fortrantext;}
+{colnum=0;line_num_fortran++;line_num_fortran_common++; return (int) *yytext;}
 	YY_BREAK
 case 160:
-*yy_cp = (yy_hold_char); /* undo effects of setting up fortrantext */
-(yy_c_buf_p) = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up fortrantext again */
+*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 */
 YY_RULE_SETUP
 #line 286 "fortran.lex"
@@ -2945,5 +2866,4 @@
 	YY_BREAK
 case 165:
-/* rule 165 can match eol */
 YY_RULE_SETUP
 #line 291 "fortran.lex"
@@ -2951,5 +2871,4 @@
 	YY_BREAK
 case 166:
-/* rule 166 can match eol */
 YY_RULE_SETUP
 #line 292 "fortran.lex"
@@ -2957,5 +2876,4 @@
 	YY_BREAK
 case 167:
-/* rule 167 can match eol */
 YY_RULE_SETUP
 #line 293 "fortran.lex"
@@ -2975,5 +2893,4 @@
 	YY_BREAK
 case 168:
-/* rule 168 can match eol */
 YY_RULE_SETUP
 #line 306 "fortran.lex"
@@ -2981,5 +2898,4 @@
 	YY_BREAK
 case 169:
-/* rule 169 can match eol */
 YY_RULE_SETUP
 #line 307 "fortran.lex"
@@ -2987,5 +2903,4 @@
 	YY_BREAK
 case 170:
-/* rule 170 can match eol */
 YY_RULE_SETUP
 #line 308 "fortran.lex"
@@ -2993,5 +2908,4 @@
 	YY_BREAK
 case 171:
-/* rule 171 can match eol */
 YY_RULE_SETUP
 #line 309 "fortran.lex"
@@ -3016,5 +2930,5 @@
 ECHO;
 	YY_BREAK
-#line 3019 "fortran.yy.c"
+#line 2933 "fortran.yy.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(parameter):
@@ -3028,24 +2942,24 @@
 		{
 		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
 
 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = (yy_hold_char);
+		*yy_cp = yy_hold_char;
 		YY_RESTORE_YY_MORE_OFFSET
 
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
 			{
 			/* We're scanning a new file or input source.  It's
 			 * possible that this happened because the user
-			 * just pointed fortranin at a new source and called
-			 * fortranlex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between yy_current_buffer and our
 			 * globals.  Here is the right place to do so, because
 			 * this is the first action (other than possibly a
 			 * back-up) that will match for the new input source.
 			 */
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = fortranin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			yy_n_chars = yy_current_buffer->yy_n_chars;
+			yy_current_buffer->yy_input_file = yyin;
+			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
 			}
 
@@ -3057,11 +2971,11 @@
 		 * in input().
 		 */
-		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 			{ /* This was really a NUL. */
 			yy_state_type yy_next_state;
 
-			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state(  );
+			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state();
 
 			/* Okay, we're now positioned to make the NUL
@@ -3076,10 +2990,10 @@
 			yy_next_state = yy_try_NUL_trans( yy_current_state );
 
-			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+			yy_bp = yytext_ptr + YY_MORE_ADJ;
 
 			if ( yy_next_state )
 				{
 				/* Consume the NUL. */
-				yy_cp = ++(yy_c_buf_p);
+				yy_cp = ++yy_c_buf_p;
 				yy_current_state = yy_next_state;
 				goto yy_match;
@@ -3088,20 +3002,20 @@
 			else
 				{
-				yy_cp = (yy_c_buf_p);
+				yy_cp = yy_c_buf_p;
 				goto yy_find_action;
 				}
 			}
 
-		else switch ( yy_get_next_buffer(  ) )
+		else switch ( yy_get_next_buffer() )
 			{
 			case EOB_ACT_END_OF_FILE:
 				{
-				(yy_did_buffer_switch_on_eof) = 0;
-
-				if ( fortranwrap( ) )
+				yy_did_buffer_switch_on_eof = 0;
+
+				if ( yywrap() )
 					{
 					/* Note: because we've taken care in
 					 * yy_get_next_buffer() to have set up
-					 * fortrantext, we can now set up
+					 * yytext, we can now set up
 					 * yy_c_buf_p so that if some total
 					 * hoser (like flex itself) wants to
@@ -3110,5 +3024,5 @@
 					 * YY_NULL will get returned.
 					 */
-					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
 
 					yy_act = YY_STATE_EOF(YY_START);
@@ -3118,5 +3032,5 @@
 				else
 					{
-					if ( ! (yy_did_buffer_switch_on_eof) )
+					if ( ! yy_did_buffer_switch_on_eof )
 						YY_NEW_FILE;
 					}
@@ -3125,21 +3039,21 @@
 
 			case EOB_ACT_CONTINUE_SCAN:
-				(yy_c_buf_p) =
-					(yytext_ptr) + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				yy_c_buf_p =
+					yytext_ptr + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state();
+
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
 				goto yy_match;
 
 			case EOB_ACT_LAST_MATCH:
-				(yy_c_buf_p) =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				yy_c_buf_p =
+				&yy_current_buffer->yy_ch_buf[yy_n_chars];
+
+				yy_current_state = yy_get_previous_state();
+
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
 				goto yy_find_action;
 			}
@@ -3152,5 +3066,6 @@
 	} /* end of action switch */
 		} /* end of scanning one token */
-} /* end of fortranlex */
+	} /* end of yylex */
+
 
 /* yy_get_next_buffer - try to read in a new buffer
@@ -3161,18 +3076,19 @@
  *	EOB_ACT_END_OF_FILE - end of file
  */
-static int yy_get_next_buffer (void)
-{
-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = (yytext_ptr);
+
+static int yy_get_next_buffer()
+	{
+	register char *dest = yy_current_buffer->yy_ch_buf;
+	register char *source = yytext_ptr;
 	register int number_to_move, i;
 	int ret_val;
 
-	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
 		YY_FATAL_ERROR(
 		"fatal flex scanner internal error--end of buffer missed" );
 
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+	if ( yy_current_buffer->yy_fill_buffer == 0 )
 		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
 			{
 			/* We matched a single character, the EOB, so
@@ -3194,28 +3110,32 @@
 
 	/* First move last chars to start of buffer. */
-	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
 
 	for ( i = 0; i < number_to_move; ++i )
 		*(dest++) = *(source++);
 
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
 		/* don't do the read, it's not guaranteed to return an EOF,
 		 * just force an EOF
 		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
 
 	else
 		{
-			int num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+		int num_to_read =
+			yy_current_buffer->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
 			{ /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+			YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
 
 			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+			YY_BUFFER_STATE b = yy_current_buffer;
 
 			int yy_c_buf_p_offset =
-				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+				(int) (yy_c_buf_p - b->yy_ch_buf);
 
 			if ( b->yy_is_our_buffer )
@@ -3230,5 +3150,6 @@
 				b->yy_ch_buf = (char *)
 					/* Include room in for 2 EOB chars. */
-					fortranrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+					yy_flex_realloc( (void *) b->yy_ch_buf,
+							 b->yy_buf_size + 2 );
 				}
 			else
@@ -3240,9 +3161,9 @@
 				"fatal error - scanner input buffer overflow" );
 
-			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = yy_current_buffer->yy_buf_size -
 						number_to_move - 1;
-
+#endif
 			}
 
@@ -3251,16 +3172,16 @@
 
 		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+			yy_n_chars, num_to_read );
+
+		yy_current_buffer->yy_n_chars = yy_n_chars;
 		}
 
-	if ( (yy_n_chars) == 0 )
+	if ( yy_n_chars == 0 )
 		{
 		if ( number_to_move == YY_MORE_ADJ )
 			{
 			ret_val = EOB_ACT_END_OF_FILE;
-			fortranrestart(fortranin  );
+			yyrestart( yyin );
 			}
 
@@ -3268,5 +3189,5 @@
 			{
 			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+			yy_current_buffer->yy_buffer_status =
 				YY_BUFFER_EOF_PENDING;
 			}
@@ -3276,30 +3197,31 @@
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
-	(yy_n_chars) += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
-	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+	yy_n_chars += number_to_move;
+	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
 
 	return ret_val;
-}
+	}
+
 
 /* yy_get_previous_state - get the state just before the EOB char was reached */
 
-    static yy_state_type yy_get_previous_state (void)
-{
+static yy_state_type yy_get_previous_state()
+	{
 	register yy_state_type yy_current_state;
 	register char *yy_cp;
-    
-	yy_current_state = (yy_start);
+
+	yy_current_state = yy_start;
 	yy_current_state += YY_AT_BOL();
 
-	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
 		{
 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
 		if ( yy_accept[yy_current_state] )
 			{
-			(yy_last_accepting_state) = yy_current_state;
-			(yy_last_accepting_cpos) = yy_cp;
+			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 )
@@ -3313,5 +3235,6 @@
 
 	return yy_current_state;
-}
+	}
+
 
 /* yy_try_NUL_trans - try to make a transition on the NUL character
@@ -3320,14 +3243,20 @@
  *	next_state = yy_try_NUL_trans( current_state );
  */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
+
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+	{
 	register int yy_is_jam;
-    	register char *yy_cp = (yy_c_buf_p);
+	register char *yy_cp = yy_c_buf_p;
 
 	register YY_CHAR yy_c = 1;
 	if ( yy_accept[yy_current_state] )
 		{
-		(yy_last_accepting_state) = yy_current_state;
-		(yy_last_accepting_cpos) = yy_cp;
+		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 )
@@ -3341,33 +3270,39 @@
 
 	return yy_is_jam ? 0 : yy_current_state;
-}
-
-    static void yyunput (int c, register char * yy_bp )
-{
-	register char *yy_cp;
-    
-    yy_cp = (yy_c_buf_p);
-
-	/* undo effects of setting up fortrantext */
-	*yy_cp = (yy_hold_char);
-
-	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+	}
+
+
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+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;
+
+	/* undo effects of setting up yytext */
+	*yy_cp = yy_hold_char;
+
+	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		register int number_to_move = (yy_n_chars) + 2;
-		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+		register int number_to_move = yy_n_chars + 2;
+		register char *dest = &yy_current_buffer->yy_ch_buf[
+					yy_current_buffer->yy_buf_size + 2];
 		register char *source =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-
-		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+				&yy_current_buffer->yy_ch_buf[number_to_move];
+
+		while ( source > yy_current_buffer->yy_ch_buf )
 			*--dest = *--source;
 
 		yy_cp += (int) (dest - source);
 		yy_bp += (int) (dest - source);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-
-		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+		yy_current_buffer->yy_n_chars =
+			yy_n_chars = yy_current_buffer->yy_buf_size;
+
+		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
 		}
@@ -3375,22 +3310,23 @@
 	*--yy_cp = (char) c;
 
-	(yytext_ptr) = yy_bp;
-	(yy_hold_char) = *yy_cp;
-	(yy_c_buf_p) = yy_cp;
-}
-
-#ifndef YY_NO_INPUT
+
+	yytext_ptr = yy_bp;
+	yy_hold_char = *yy_cp;
+	yy_c_buf_p = yy_cp;
+	}
+#endif	/* ifndef YY_NO_UNPUT */
+
+
 #ifdef __cplusplus
-    static int yyinput (void)
+static int yyinput()
 #else
-    static int input  (void)
-#endif
-
-{
+static int input()
+#endif
+	{
 	int c;
-    
-	*(yy_c_buf_p) = (yy_hold_char);
-
-	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+
+	*yy_c_buf_p = yy_hold_char;
+
+	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
 		{
 		/* yy_c_buf_p now points to the character we want to return.
@@ -3398,14 +3334,14 @@
 		 * valid NUL; if not, then we've hit the end of the buffer.
 		 */
-		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 			/* This was really a NUL. */
-			*(yy_c_buf_p) = '\0';
+			*yy_c_buf_p = '\0';
 
 		else
 			{ /* need more input */
-			int offset = (yy_c_buf_p) - (yytext_ptr);
-			++(yy_c_buf_p);
-
-			switch ( yy_get_next_buffer(  ) )
+			int offset = yy_c_buf_p - yytext_ptr;
+			++yy_c_buf_p;
+
+			switch ( yy_get_next_buffer() )
 				{
 				case EOB_ACT_LAST_MATCH:
@@ -3421,14 +3357,14 @@
 
 					/* Reset buffer status. */
-					fortranrestart(fortranin );
-
-					/*FALLTHROUGH*/
+					yyrestart( yyin );
+
+					/* fall through */
 
 				case EOB_ACT_END_OF_FILE:
 					{
-					if ( fortranwrap( ) )
-						return 0;
-
-					if ( ! (yy_did_buffer_switch_on_eof) )
+					if ( yywrap() )
+						return EOF;
+
+					if ( ! yy_did_buffer_switch_on_eof )
 						YY_NEW_FILE;
 #ifdef __cplusplus
@@ -3440,5 +3376,5 @@
 
 				case EOB_ACT_CONTINUE_SCAN:
-					(yy_c_buf_p) = (yytext_ptr) + offset;
+					yy_c_buf_p = yytext_ptr + offset;
 					break;
 				}
@@ -3446,88 +3382,85 @@
 		}
 
-	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
-	*(yy_c_buf_p) = '\0';	/* preserve fortrantext */
-	(yy_hold_char) = *++(yy_c_buf_p);
-
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
+	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
+	*yy_c_buf_p = '\0';	/* preserve yytext */
+	yy_hold_char = *++yy_c_buf_p;
+
+	yy_current_buffer->yy_at_bol = (c == '\n');
 
 	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * 
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void fortranrestart  (FILE * input_file )
-{
-    
-	if ( ! YY_CURRENT_BUFFER ){
-        fortranensure_buffer_stack ();
-		YY_CURRENT_BUFFER_LVALUE =
-            fortran_create_buffer(fortranin,YY_BUF_SIZE );
 	}
 
-	fortran_init_buffer(YY_CURRENT_BUFFER,input_file );
-	fortran_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * 
- */
-    void fortran_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-    
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		fortranpop_buffer_state();
-	 *		fortranpush_buffer_state(new_buffer);
-     */
-	fortranensure_buffer_stack ();
-	if ( YY_CURRENT_BUFFER == new_buffer )
+
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+	{
+	if ( ! yy_current_buffer )
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+	yy_init_buffer( yy_current_buffer, input_file );
+	yy_load_buffer_state();
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+	{
+	if ( yy_current_buffer == new_buffer )
 		return;
 
-	if ( YY_CURRENT_BUFFER )
+	if ( yy_current_buffer )
 		{
 		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		*yy_c_buf_p = yy_hold_char;
+		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+		yy_current_buffer->yy_n_chars = yy_n_chars;
 		}
 
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	fortran_load_buffer_state( );
+	yy_current_buffer = new_buffer;
+	yy_load_buffer_state();
 
 	/* We don't actually know whether we did this switch during
-	 * EOF (fortranwrap()) processing, but the only time this flag
-	 * is looked at is after fortranwrap() is called, so it's safe
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
 	 * to go ahead and always set it.
 	 */
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void fortran_load_buffer_state  (void)
-{
-    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	fortranin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	(yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * 
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE fortran_create_buffer  (FILE * file, int  size )
-{
+	yy_did_buffer_switch_on_eof = 1;
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+	{
+	yy_n_chars = yy_current_buffer->yy_n_chars;
+	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+	yyin = yy_current_buffer->yy_input_file;
+	yy_hold_char = *yy_c_buf_p;
+	}
+
+
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+	{
 	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) fortranalloc(sizeof( struct yy_buffer_state )  );
+
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in fortran_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
 	b->yy_buf_size = size;
@@ -3536,73 +3469,78 @@
 	 * we need to put in 2 end-of-buffer characters.
 	 */
-	b->yy_ch_buf = (char *) fortranalloc(b->yy_buf_size + 2  );
+	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
 	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in fortran_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
 	b->yy_is_our_buffer = 1;
 
-	fortran_init_buffer(b,file );
+	yy_init_buffer( b, file );
 
 	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with fortran_create_buffer()
- * 
- */
-    void fortran_delete_buffer (YY_BUFFER_STATE  b )
-{
-    
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+	{
 	if ( ! b )
 		return;
 
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+	if ( b == yy_current_buffer )
+		yy_current_buffer = (YY_BUFFER_STATE) 0;
 
 	if ( b->yy_is_our_buffer )
-		fortranfree((void *) b->yy_ch_buf  );
-
-	fortranfree((void *) b  );
-}
-
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-    
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a fortranrestart() or at EOF.
- */
-    static void fortran_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
-
-{
-	int oerrno = errno;
-    
-	fortran_flush_buffer(b );
+		yy_flex_free( (void *) b->yy_ch_buf );
+
+	yy_flex_free( (void *) b );
+	}
+
+
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+
+	{
+	yy_flush_buffer( b );
 
 	b->yy_input_file = file;
 	b->yy_fill_buffer = 1;
 
-    /* If b is the current buffer, then fortran_init_buffer was _probably_
-     * called from fortranrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-    
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * 
- */
-    void fortran_flush_buffer (YY_BUFFER_STATE  b )
-{
-    	if ( ! b )
+#if YY_ALWAYS_INTERACTIVE
+	b->yy_is_interactive = 1;
+#else
+#if YY_NEVER_INTERACTIVE
+	b->yy_is_interactive = 0;
+#else
+	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+#endif
+#endif
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+	{
+	if ( ! b )
 		return;
 
@@ -3621,112 +3559,20 @@
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	if ( b == YY_CURRENT_BUFFER )
-		fortran_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  
- */
-void fortranpush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-    	if (new_buffer == NULL)
-		return;
-
-	fortranensure_buffer_stack();
-
-	/* This block is copied from fortran_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		(yy_buffer_stack_top)++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from fortran_switch_to_buffer. */
-	fortran_load_buffer_state( );
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  
- */
-void fortranpop_buffer_state (void)
-{
-    	if (!YY_CURRENT_BUFFER)
-		return;
-
-	fortran_delete_buffer(YY_CURRENT_BUFFER );
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if ((yy_buffer_stack_top) > 0)
-		--(yy_buffer_stack_top);
-
-	if (YY_CURRENT_BUFFER) {
-		fortran_load_buffer_state( );
-		(yy_did_buffer_switch_on_eof) = 1;
+	if ( b == yy_current_buffer )
+		yy_load_buffer_state();
 	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void fortranensure_buffer_stack (void)
-{
-	int num_to_alloc;
-    
-	if (!(yy_buffer_stack)) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		(yy_buffer_stack) = (struct yy_buffer_state**)fortranalloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		
-		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		(yy_buffer_stack_max) = num_to_alloc;
-		(yy_buffer_stack_top) = 0;
-		return;
-	}
-
-	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = (yy_buffer_stack_max) + grow_size;
-		(yy_buffer_stack) = (struct yy_buffer_state**)fortranrealloc
-								((yy_buffer_stack),
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-
-		/* zero only the new slots.*/
-		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-		(yy_buffer_stack_max) = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * 
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE fortran_scan_buffer  (char * base, yy_size_t  size )
-{
+
+
+#ifndef YY_NO_SCAN_BUFFER
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+	{
 	YY_BUFFER_STATE b;
-    
+
 	if ( size < 2 ||
 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
@@ -3735,7 +3581,7 @@
 		return 0;
 
-	b = (YY_BUFFER_STATE) fortranalloc(sizeof( struct yy_buffer_state )  );
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in fortran_scan_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
 
 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
@@ -3749,51 +3595,56 @@
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	fortran_switch_to_buffer(b  );
+	yy_switch_to_buffer( b );
 
 	return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to fortranlex() will
- * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
- * 
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       fortran_scan_bytes() instead.
- */
-YY_BUFFER_STATE fortran_scan_string (yyconst char * yystr )
-{
-    
-	return fortran_scan_bytes(yystr,strlen(yystr) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to fortranlex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * 
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE fortran_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
-{
+	}
+#endif
+
+
+#ifndef YY_NO_SCAN_STRING
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+	{
+	int len;
+	for ( len = 0; yy_str[len]; ++len )
+		;
+
+	return yy_scan_bytes( yy_str, len );
+	}
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+	{
 	YY_BUFFER_STATE b;
 	char *buf;
 	yy_size_t n;
 	int i;
-    
+
 	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) fortranalloc(n  );
+	n = len + 2;
+	buf = (char *) yy_flex_alloc( n );
 	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in fortran_scan_bytes()" );
-
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = fortran_scan_buffer(buf,n );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < len; ++i )
+		buf[i] = bytes[i];
+
+	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer( buf, n );
 	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in fortran_scan_bytes()" );
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
 
 	/* It's okay to grow etc. this buffer, and we should throw it
@@ -3803,5 +3654,59 @@
 
 	return b;
-}
+	}
+#endif
+
+
+#ifndef YY_NO_PUSH_STATE
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
+#endif
+	{
+	if ( yy_start_stack_ptr >= yy_start_stack_depth )
+		{
+		yy_size_t new_size;
+
+		yy_start_stack_depth += YY_START_STACK_INCR;
+		new_size = yy_start_stack_depth * sizeof( int );
+
+		if ( ! yy_start_stack )
+			yy_start_stack = (int *) yy_flex_alloc( new_size );
+
+		else
+			yy_start_stack = (int *) yy_flex_realloc(
+					(void *) yy_start_stack, new_size );
+
+		if ( ! yy_start_stack )
+			YY_FATAL_ERROR(
+			"out of memory expanding start-condition stack" );
+		}
+
+	yy_start_stack[yy_start_stack_ptr++] = YY_START;
+
+	BEGIN(new_state);
+	}
+#endif
+
+
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state()
+	{
+	if ( --yy_start_stack_ptr < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN(yy_start_stack[yy_start_stack_ptr]);
+	}
+#endif
+
+
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state()
+	{
+	return yy_start_stack[yy_start_stack_ptr - 1];
+	}
+#endif
 
 #ifndef YY_EXIT_FAILURE
@@ -3809,9 +3714,16 @@
 #endif
 
-static void yy_fatal_error (yyconst char* msg )
-{
-    	(void) fprintf( stderr, "%s\n", msg );
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+	{
+	(void) fprintf( stderr, "%s\n", msg );
 	exit( YY_EXIT_FAILURE );
-}
+	}
+
+
 
 /* Redefine yyless() so it works in section 3 code. */
@@ -3821,161 +3733,40 @@
 	do \
 		{ \
-		/* Undo effects of setting up fortrantext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		fortrantext[fortranleng] = (yy_hold_char); \
-		(yy_c_buf_p) = fortrantext + yyless_macro_arg; \
-		(yy_hold_char) = *(yy_c_buf_p); \
-		*(yy_c_buf_p) = '\0'; \
-		fortranleng = yyless_macro_arg; \
+		/* Undo effects of setting up yytext. */ \
+		yytext[yyleng] = yy_hold_char; \
+		yy_c_buf_p = yytext + n; \
+		yy_hold_char = *yy_c_buf_p; \
+		*yy_c_buf_p = '\0'; \
+		yyleng = n; \
 		} \
 	while ( 0 )
 
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- * 
- */
-int fortranget_lineno  (void)
-{
-        
-    return fortranlineno;
-}
-
-/** Get the input stream.
- * 
- */
-FILE *fortranget_in  (void)
-{
-        return fortranin;
-}
-
-/** Get the output stream.
- * 
- */
-FILE *fortranget_out  (void)
-{
-        return fortranout;
-}
-
-/** Get the length of the current token.
- * 
- */
-int fortranget_leng  (void)
-{
-        return fortranleng;
-}
-
-/** Get the current token.
- * 
- */
-
-char *fortranget_text  (void)
-{
-        return fortrantext;
-}
-
-/** Set the current line number.
- * @param line_number
- * 
- */
-void fortranset_lineno (int  line_number )
-{
-    
-    fortranlineno = line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * 
- * @see fortran_switch_to_buffer
- */
-void fortranset_in (FILE *  in_str )
-{
-        fortranin = in_str ;
-}
-
-void fortranset_out (FILE *  out_str )
-{
-        fortranout = out_str ;
-}
-
-int fortranget_debug  (void)
-{
-        return fortran_flex_debug;
-}
-
-void fortranset_debug (int  bdebug )
-{
-        fortran_flex_debug = bdebug ;
-}
-
-static int yy_init_globals (void)
-{
-        /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from fortranlex_destroy(), so don't allocate here.
-     */
-
-    (yy_buffer_stack) = 0;
-    (yy_buffer_stack_top) = 0;
-    (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
-    (yy_init) = 0;
-    (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    fortranin = stdin;
-    fortranout = stdout;
+
+/* Internal utility routines. */
+
+#ifndef yytext_ptr
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
 #else
-    fortranin = (FILE *) 0;
-    fortranout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * fortranlex_init()
-     */
-    return 0;
-}
-
-/* fortranlex_destroy is for both reentrant and non-reentrant scanners. */
-int fortranlex_destroy  (void)
-{
-    
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		fortran_delete_buffer(YY_CURRENT_BUFFER  );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		fortranpop_buffer_state();
-	}
-
-	/* Destroy the stack itself. */
-	fortranfree((yy_buffer_stack) );
-	(yy_buffer_stack) = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * fortranlex() is called, initialization will occur. */
-    yy_init_globals( );
-
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+	{
 	register int i;
 	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
-}
+	}
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+	{
 	register int n;
 	for ( n = 0; s[n]; ++n )
@@ -3983,14 +3774,26 @@
 
 	return n;
-}
-#endif
-
-void *fortranalloc (yy_size_t  size )
-{
+	}
+#endif
+
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+	{
 	return (void *) malloc( size );
-}
-
-void *fortranrealloc  (void * ptr, yy_size_t  size )
-{
+	}
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static void *yy_flex_realloc( ptr, size )
+void *ptr;
+yy_size_t size;
+#endif
+	{
 	/* The cast to (char *) in the following accommodates both
 	 * implementations that use char* generic pointers, and those
@@ -4001,15 +3804,24 @@
 	 */
 	return (void *) realloc( (char *) ptr, size );
-}
-
-void fortranfree (void * ptr )
-{
-	free( (char *) ptr );	/* see fortranrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
+	}
+
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+	{
+	free( ptr );
+	}
+
+#if YY_MAIN
+int main()
+	{
+	yylex();
+	return 0;
+	}
+#endif
 #line 319 "fortran.lex"
-
 
 
@@ -4030,3 +3842,2 @@
 {
 }
-
