mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-22 18:17:55 +08:00
1123 lines
37 KiB
Diff
1123 lines
37 KiB
Diff
|
diff --git a/lib/scanner.c b/lib/scanner.c
|
||
|
index dc07eb0..efb6730 100644
|
||
|
--- a/lib/scanner.c
|
||
|
+++ b/lib/scanner.c
|
||
|
@@ -9,7 +9,7 @@
|
||
|
#define FLEX_SCANNER
|
||
|
#define YY_FLEX_MAJOR_VERSION 2
|
||
|
#define YY_FLEX_MINOR_VERSION 5
|
||
|
-#define YY_FLEX_SUBMINOR_VERSION 39
|
||
|
+#define YY_FLEX_SUBMINOR_VERSION 35
|
||
|
#if YY_FLEX_SUBMINOR_VERSION > 0
|
||
|
#define FLEX_BETA
|
||
|
#endif
|
||
|
@@ -159,7 +159,15 @@ typedef void* yyscan_t;
|
||
|
|
||
|
/* Size of default input buffer. */
|
||
|
#ifndef YY_BUF_SIZE
|
||
|
+#ifdef __ia64__
|
||
|
+/* On IA-64, the buffer size is 16k, not 8k.
|
||
|
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
|
||
|
+ * Ditto for the __ia64__ case accordingly.
|
||
|
+ */
|
||
|
+#define YY_BUF_SIZE 32768
|
||
|
+#else
|
||
|
#define YY_BUF_SIZE 16384
|
||
|
+#endif /* __ia64__ */
|
||
|
#endif
|
||
|
|
||
|
/* The state buf must be large enough to hold one state per character in the main buffer.
|
||
|
@@ -171,11 +179,6 @@ typedef void* yyscan_t;
|
||
|
typedef struct yy_buffer_state *YY_BUFFER_STATE;
|
||
|
#endif
|
||
|
|
||
|
-#ifndef YY_TYPEDEF_YY_SIZE_T
|
||
|
-#define YY_TYPEDEF_YY_SIZE_T
|
||
|
-typedef size_t yy_size_t;
|
||
|
-#endif
|
||
|
-
|
||
|
#define EOB_ACT_CONTINUE_SCAN 0
|
||
|
#define EOB_ACT_END_OF_FILE 1
|
||
|
#define EOB_ACT_LAST_MATCH 2
|
||
|
@@ -194,13 +197,6 @@ typedef size_t yy_size_t;
|
||
|
if ( yytext[yyl] == '\n' )\
|
||
|
--yylineno;\
|
||
|
}while(0)
|
||
|
- #define YY_LINENO_REWIND_TO(dst) \
|
||
|
- do {\
|
||
|
- const char *p;\
|
||
|
- for ( p = yy_cp-1; p >= (dst); --p)\
|
||
|
- if ( *p == '\n' )\
|
||
|
- --yylineno;\
|
||
|
- }while(0)
|
||
|
|
||
|
/* Return all but the first "n" matched characters back to the input stream. */
|
||
|
#define yyless(n) \
|
||
|
@@ -218,6 +214,11 @@ typedef size_t yy_size_t;
|
||
|
|
||
|
#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
|
||
|
|
||
|
+#ifndef YY_TYPEDEF_YY_SIZE_T
|
||
|
+#define YY_TYPEDEF_YY_SIZE_T
|
||
|
+typedef size_t yy_size_t;
|
||
|
+#endif
|
||
|
+
|
||
|
#ifndef YY_STRUCT_YY_BUFFER_STATE
|
||
|
#define YY_STRUCT_YY_BUFFER_STATE
|
||
|
struct yy_buffer_state
|
||
|
@@ -235,7 +236,7 @@ struct yy_buffer_state
|
||
|
/* Number of characters read into yy_ch_buf, not including EOB
|
||
|
* characters.
|
||
|
*/
|
||
|
- yy_size_t yy_n_chars;
|
||
|
+ int yy_n_chars;
|
||
|
|
||
|
/* Whether we "own" the buffer - i.e., we know we created it,
|
||
|
* and can realloc() it to grow it, and should free() it to
|
||
|
@@ -314,7 +315,7 @@ static void libconfig_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yys
|
||
|
|
||
|
YY_BUFFER_STATE libconfig_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
|
||
|
YY_BUFFER_STATE libconfig_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
|
||
|
-YY_BUFFER_STATE libconfig_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
|
||
|
+YY_BUFFER_STATE libconfig_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
|
||
|
|
||
|
void *libconfig_yyalloc (yy_size_t ,yyscan_t yyscanner );
|
||
|
void *libconfig_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
|
||
|
@@ -344,7 +345,7 @@ void libconfig_yyfree (void * ,yyscan_t yyscanner );
|
||
|
|
||
|
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
|
||
|
|
||
|
-#define libconfig_yywrap(yyscanner) 1
|
||
|
+#define libconfig_yywrap(n) 1
|
||
|
#define YY_SKIP_YYWRAP
|
||
|
|
||
|
typedef unsigned char YY_CHAR;
|
||
|
@@ -368,8 +369,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
|
||
|
*yy_cp = '\0'; \
|
||
|
yyg->yy_c_buf_p = yy_cp;
|
||
|
|
||
|
-#define YY_NUM_RULES 42
|
||
|
-#define YY_END_OF_BUFFER 43
|
||
|
+#define YY_NUM_RULES 47
|
||
|
+#define YY_END_OF_BUFFER 48
|
||
|
/* This struct is not used in this scanner,
|
||
|
but its presence is necessary. */
|
||
|
struct yy_trans_info
|
||
|
@@ -377,20 +378,21 @@ struct yy_trans_info
|
||
|
flex_int32_t yy_verify;
|
||
|
flex_int32_t yy_nxt;
|
||
|
};
|
||
|
-static yyconst flex_int16_t yy_accept[103] =
|
||
|
+static yyconst flex_int16_t yy_accept[117] =
|
||
|
{ 0,
|
||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 43, 41,
|
||
|
- 22, 21, 21, 5, 41, 37, 38, 29, 41, 24,
|
||
|
- 30, 41, 31, 31, 23, 39, 29, 29, 35, 36,
|
||
|
- 25, 26, 22, 41, 3, 4, 3, 6, 15, 14,
|
||
|
- 17, 20, 42, 22, 0, 40, 29, 30, 31, 30,
|
||
|
- 0, 1, 0, 30, 0, 32, 0, 29, 29, 22,
|
||
|
- 0, 0, 2, 6, 12, 0, 11, 10, 7, 8,
|
||
|
- 9, 17, 19, 18, 0, 30, 30, 0, 0, 30,
|
||
|
- 32, 33, 29, 29, 0, 0, 0, 30, 34, 29,
|
||
|
- 27, 0, 13, 34, 28, 0, 0, 0, 0, 0,
|
||
|
-
|
||
|
- 16, 0
|
||
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
|
+ 48, 46, 27, 26, 26, 5, 46, 42, 43, 34,
|
||
|
+ 46, 29, 35, 46, 36, 36, 28, 44, 34, 34,
|
||
|
+ 40, 41, 30, 31, 27, 46, 3, 4, 3, 6,
|
||
|
+ 15, 14, 17, 20, 47, 22, 25, 47, 27, 0,
|
||
|
+ 45, 34, 35, 36, 35, 0, 1, 0, 35, 0,
|
||
|
+ 37, 0, 34, 34, 27, 0, 0, 2, 6, 12,
|
||
|
+ 0, 11, 10, 7, 8, 9, 17, 19, 18, 22,
|
||
|
+ 24, 23, 0, 35, 35, 0, 0, 35, 37, 38,
|
||
|
+ 34, 34, 0, 0, 0, 35, 39, 34, 32, 0,
|
||
|
+
|
||
|
+ 13, 39, 33, 0, 0, 0, 0, 0, 0, 16,
|
||
|
+ 0, 0, 0, 0, 21, 0
|
||
|
} ;
|
||
|
|
||
|
static yyconst flex_int32_t yy_ec[256] =
|
||
|
@@ -434,110 +436,116 @@ static yyconst flex_int32_t yy_meta[49] =
|
||
|
3, 3, 3, 3, 3, 3, 1, 1
|
||
|
} ;
|
||
|
|
||
|
-static yyconst flex_int16_t yy_base[113] =
|
||
|
+static yyconst flex_int16_t yy_base[129] =
|
||
|
{ 0,
|
||
|
- 0, 47, 47, 48, 46, 47, 48, 49, 203, 204,
|
||
|
- 200, 204, 204, 204, 198, 204, 204, 0, 45, 204,
|
||
|
- 47, 50, 60, 74, 204, 204, 178, 28, 204, 204,
|
||
|
- 204, 204, 64, 158, 204, 204, 183, 0, 204, 63,
|
||
|
- 0, 204, 83, 195, 193, 204, 0, 88, 102, 98,
|
||
|
- 62, 204, 190, 104, 119, 162, 0, 67, 65, 121,
|
||
|
- 127, 124, 204, 0, 204, 0, 204, 204, 204, 204,
|
||
|
- 204, 0, 204, 204, 108, 117, 122, 134, 132, 136,
|
||
|
- 204, 139, 136, 116, 126, 0, 140, 142, 135, 130,
|
||
|
- 0, 102, 204, 204, 0, 85, 72, 63, 98, 158,
|
||
|
-
|
||
|
- 204, 204, 169, 173, 177, 181, 183, 187, 191, 89,
|
||
|
- 66, 63
|
||
|
+ 0, 47, 47, 48, 46, 47, 48, 49, 50, 53,
|
||
|
+ 223, 224, 220, 224, 224, 224, 218, 224, 224, 0,
|
||
|
+ 46, 224, 49, 54, 62, 76, 224, 224, 198, 33,
|
||
|
+ 224, 224, 224, 224, 70, 178, 224, 224, 203, 0,
|
||
|
+ 224, 64, 0, 224, 61, 0, 224, 65, 215, 213,
|
||
|
+ 224, 0, 89, 100, 94, 109, 224, 212, 113, 125,
|
||
|
+ 187, 0, 70, 88, 100, 172, 169, 224, 0, 224,
|
||
|
+ 0, 224, 224, 224, 224, 224, 0, 224, 224, 0,
|
||
|
+ 224, 224, 58, 115, 127, 137, 129, 139, 224, 184,
|
||
|
+ 181, 123, 172, 0, 141, 143, 181, 125, 0, 165,
|
||
|
+
|
||
|
+ 224, 224, 0, 160, 167, 165, 133, 159, 163, 224,
|
||
|
+ 156, 149, 166, 161, 224, 224, 169, 173, 177, 181,
|
||
|
+ 185, 187, 191, 195, 199, 136, 119, 81
|
||
|
} ;
|
||
|
|
||
|
-static yyconst flex_int16_t yy_def[113] =
|
||
|
+static yyconst flex_int16_t yy_def[129] =
|
||
|
{ 0,
|
||
|
- 102, 1, 103, 103, 104, 104, 105, 105, 102, 102,
|
||
|
- 102, 102, 102, 102, 106, 102, 102, 107, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 107, 107, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 102, 108, 102, 102,
|
||
|
- 109, 102, 102, 102, 106, 102, 107, 102, 102, 102,
|
||
|
- 102, 102, 106, 102, 102, 102, 110, 107, 107, 102,
|
||
|
- 102, 102, 102, 108, 102, 111, 102, 102, 102, 102,
|
||
|
- 102, 109, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 110, 107, 107, 102, 112, 102, 102, 102, 107,
|
||
|
- 107, 102, 102, 102, 107, 102, 102, 102, 102, 102,
|
||
|
-
|
||
|
- 102, 0, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102
|
||
|
+ 116, 1, 117, 117, 118, 118, 119, 119, 120, 120,
|
||
|
+ 116, 116, 116, 116, 116, 116, 121, 116, 116, 122,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 122, 122,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 123,
|
||
|
+ 116, 116, 124, 116, 116, 125, 116, 116, 116, 121,
|
||
|
+ 116, 122, 116, 116, 116, 116, 116, 121, 116, 116,
|
||
|
+ 116, 126, 122, 122, 116, 116, 116, 116, 123, 116,
|
||
|
+ 127, 116, 116, 116, 116, 116, 124, 116, 116, 125,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 126,
|
||
|
+ 122, 122, 116, 128, 116, 116, 116, 122, 122, 116,
|
||
|
+
|
||
|
+ 116, 116, 122, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 0, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116
|
||
|
} ;
|
||
|
|
||
|
-static yyconst flex_int16_t yy_nxt[253] =
|
||
|
+static yyconst flex_int16_t yy_nxt[273] =
|
||
|
{ 0,
|
||
|
- 10, 11, 12, 13, 13, 14, 15, 16, 17, 18,
|
||
|
- 19, 20, 19, 21, 22, 23, 24, 25, 26, 25,
|
||
|
- 10, 18, 18, 18, 27, 18, 18, 18, 18, 28,
|
||
|
- 18, 18, 29, 10, 30, 10, 18, 18, 18, 27,
|
||
|
- 18, 18, 18, 18, 28, 18, 31, 32, 33, 36,
|
||
|
- 36, 39, 39, 42, 42, 59, 37, 37, 48, 52,
|
||
|
- 49, 49, 50, 50, 53, 60, 93, 34, 65, 86,
|
||
|
- 51, 59, 75, 54, 75, 49, 49, 76, 76, 40,
|
||
|
- 40, 43, 43, 55, 61, 51, 56, 54, 73, 49,
|
||
|
- 49, 57, 82, 83, 66, 84, 67, 55, 55, 100,
|
||
|
-
|
||
|
- 56, 99, 68, 50, 50, 69, 70, 71, 83, 98,
|
||
|
- 84, 51, 55, 50, 50, 54, 74, 49, 49, 77,
|
||
|
- 77, 51, 60, 76, 76, 55, 51, 78, 56, 79,
|
||
|
- 97, 79, 76, 76, 80, 80, 51, 77, 77, 91,
|
||
|
- 55, 61, 78, 96, 87, 78, 87, 80, 80, 88,
|
||
|
- 88, 80, 80, 95, 91, 88, 88, 88, 88, 100,
|
||
|
- 78, 94, 92, 101, 90, 89, 85, 62, 95, 35,
|
||
|
- 35, 35, 35, 38, 38, 38, 38, 41, 41, 41,
|
||
|
- 41, 45, 45, 45, 45, 47, 47, 64, 81, 64,
|
||
|
- 64, 72, 46, 72, 72, 46, 44, 63, 62, 58,
|
||
|
-
|
||
|
- 46, 44, 102, 9, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102
|
||
|
+ 12, 13, 14, 15, 15, 16, 17, 18, 19, 20,
|
||
|
+ 21, 22, 21, 23, 24, 25, 26, 27, 28, 27,
|
||
|
+ 12, 20, 20, 20, 29, 20, 20, 20, 20, 30,
|
||
|
+ 20, 20, 31, 12, 32, 12, 20, 20, 20, 29,
|
||
|
+ 20, 20, 20, 20, 30, 20, 33, 34, 35, 38,
|
||
|
+ 38, 41, 41, 44, 44, 47, 39, 39, 47, 53,
|
||
|
+ 64, 54, 54, 57, 55, 55, 78, 36, 58, 70,
|
||
|
+ 81, 65, 56, 84, 84, 59, 64, 54, 54, 42,
|
||
|
+ 42, 45, 45, 48, 101, 60, 48, 56, 61, 59,
|
||
|
+ 66, 54, 54, 62, 79, 71, 91, 72, 82, 60,
|
||
|
+
|
||
|
+ 60, 65, 61, 73, 55, 55, 74, 75, 76, 55,
|
||
|
+ 55, 91, 56, 59, 60, 54, 54, 56, 92, 83,
|
||
|
+ 66, 83, 94, 60, 84, 84, 61, 56, 85, 85,
|
||
|
+ 84, 84, 56, 92, 108, 87, 86, 87, 60, 90,
|
||
|
+ 88, 88, 85, 85, 88, 88, 99, 95, 103, 95,
|
||
|
+ 86, 86, 96, 96, 88, 88, 96, 96, 96, 96,
|
||
|
+ 108, 99, 114, 103, 110, 86, 115, 114, 109, 37,
|
||
|
+ 37, 37, 37, 40, 40, 40, 40, 43, 43, 43,
|
||
|
+ 43, 46, 46, 46, 46, 50, 50, 50, 50, 52,
|
||
|
+ 52, 69, 113, 69, 69, 77, 112, 77, 77, 80,
|
||
|
+
|
||
|
+ 111, 80, 80, 107, 106, 105, 104, 102, 100, 98,
|
||
|
+ 97, 93, 67, 89, 51, 51, 49, 68, 67, 63,
|
||
|
+ 51, 49, 116, 11, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116
|
||
|
} ;
|
||
|
|
||
|
-static yyconst flex_int16_t yy_chk[253] =
|
||
|
+static yyconst flex_int16_t yy_chk[273] =
|
||
|
{ 0,
|
||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
|
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
|
||
|
- 4, 5, 6, 7, 8, 28, 3, 4, 19, 22,
|
||
|
- 19, 19, 21, 21, 22, 33, 112, 2, 40, 111,
|
||
|
- 21, 28, 51, 23, 51, 23, 23, 51, 51, 5,
|
||
|
- 6, 7, 8, 23, 33, 21, 23, 24, 43, 24,
|
||
|
- 24, 23, 110, 58, 40, 59, 40, 24, 23, 99,
|
||
|
-
|
||
|
- 24, 98, 40, 48, 48, 40, 40, 40, 58, 97,
|
||
|
- 59, 48, 24, 50, 50, 49, 43, 49, 49, 54,
|
||
|
- 54, 50, 60, 75, 75, 49, 48, 54, 49, 55,
|
||
|
- 96, 55, 76, 76, 55, 55, 50, 77, 77, 84,
|
||
|
- 49, 60, 54, 92, 78, 77, 78, 79, 79, 78,
|
||
|
- 78, 80, 80, 90, 84, 87, 87, 88, 88, 100,
|
||
|
- 77, 89, 85, 100, 83, 82, 62, 61, 90, 103,
|
||
|
- 103, 103, 103, 104, 104, 104, 104, 105, 105, 105,
|
||
|
- 105, 106, 106, 106, 106, 107, 107, 108, 56, 108,
|
||
|
- 108, 109, 53, 109, 109, 45, 44, 37, 34, 27,
|
||
|
-
|
||
|
- 15, 11, 9, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
|
||
|
- 102, 102
|
||
|
+ 4, 5, 6, 7, 8, 9, 3, 4, 10, 21,
|
||
|
+ 30, 21, 21, 24, 23, 23, 45, 2, 24, 42,
|
||
|
+ 48, 35, 23, 83, 83, 25, 30, 25, 25, 5,
|
||
|
+ 6, 7, 8, 9, 128, 25, 10, 23, 25, 26,
|
||
|
+ 35, 26, 26, 25, 45, 42, 63, 42, 48, 26,
|
||
|
+
|
||
|
+ 25, 65, 26, 42, 53, 53, 42, 42, 42, 55,
|
||
|
+ 55, 63, 53, 54, 26, 54, 54, 55, 64, 56,
|
||
|
+ 65, 56, 127, 54, 56, 56, 54, 53, 59, 59,
|
||
|
+ 84, 84, 55, 64, 107, 60, 59, 60, 54, 126,
|
||
|
+ 60, 60, 85, 85, 87, 87, 92, 86, 98, 86,
|
||
|
+ 85, 59, 86, 86, 88, 88, 95, 95, 96, 96,
|
||
|
+ 108, 92, 114, 98, 108, 85, 114, 113, 107, 117,
|
||
|
+ 117, 117, 117, 118, 118, 118, 118, 119, 119, 119,
|
||
|
+ 119, 120, 120, 120, 120, 121, 121, 121, 121, 122,
|
||
|
+ 122, 123, 112, 123, 123, 124, 111, 124, 124, 125,
|
||
|
+
|
||
|
+ 109, 125, 125, 106, 105, 104, 100, 97, 93, 91,
|
||
|
+ 90, 67, 66, 61, 58, 50, 49, 39, 36, 29,
|
||
|
+ 17, 13, 11, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
|
||
|
+ 116, 116
|
||
|
} ;
|
||
|
|
||
|
/* Table of booleans, true if rule could match eol. */
|
||
|
-static yyconst flex_int32_t yy_rule_can_match_eol[43] =
|
||
|
+static yyconst flex_int32_t yy_rule_can_match_eol[48] =
|
||
|
{ 0,
|
||
|
0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
|
||
|
- 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
|
- 0, 0, 0, };
|
||
|
+ 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
|
+ 0, 0, 0, 0, 0, 0, 0, 0, };
|
||
|
|
||
|
/* The intent behind this definition is that it'll catch
|
||
|
* any uses of REJECT which flex missed.
|
||
|
@@ -550,7 +558,7 @@ static yyconst flex_int32_t yy_rule_can_match_eol[43] =
|
||
|
/* -*- mode: C -*- */
|
||
|
/* --------------------------------------------------------------------------
|
||
|
libconfig - A library for processing structured configuration files
|
||
|
- Copyright (C) 2005-2014 Mark A Lindner
|
||
|
+ Copyright (C) 2005-2015 Mark A Lindner
|
||
|
|
||
|
This file is part of libconfig.
|
||
|
|
||
|
@@ -577,9 +585,11 @@ static yyconst flex_int32_t yy_rule_can_match_eol[43] =
|
||
|
#endif
|
||
|
|
||
|
#include <stdlib.h>
|
||
|
+#include <errno.h>
|
||
|
#include <ctype.h>
|
||
|
#include <string.h>
|
||
|
#include <limits.h>
|
||
|
+#include <dirent.h>
|
||
|
#include "parsectx.h"
|
||
|
#include "scanctx.h"
|
||
|
#include "grammar.h"
|
||
|
@@ -621,13 +631,30 @@ static unsigned long long fromhex(const char *s)
|
||
|
#endif /* __MINGW32__ */
|
||
|
}
|
||
|
|
||
|
+static int filter_dotfiles(const struct dirent *de)
|
||
|
+{
|
||
|
+ const char *fname = de->d_name;
|
||
|
+
|
||
|
+#ifdef _DIRENT_HAVE_D_TYPE
|
||
|
+ /* filter out non-files and non-symlinks */
|
||
|
+ if((de->d_type != DT_REG) && (de->d_type != DT_LNK) && (de->d_type != DT_UNKNOWN))
|
||
|
+ return 0;
|
||
|
+#endif
|
||
|
+
|
||
|
+ return (fname /* != NULL */
|
||
|
+ && ('\0' != fname[0]) /* can't really happen */
|
||
|
+ && ('.' != fname[0])
|
||
|
+ ) ? 1 : 0 ;
|
||
|
+}
|
||
|
|
||
|
-#line 626 "scanner.c"
|
||
|
+
|
||
|
+#line 652 "scanner.c"
|
||
|
|
||
|
#define INITIAL 0
|
||
|
#define COMMENT 1
|
||
|
#define STRING 2
|
||
|
-#define INCLUDE 3
|
||
|
+#define INCLUDE_F 3
|
||
|
+#define INCLUDE_D 4
|
||
|
|
||
|
#ifndef YY_NO_UNISTD_H
|
||
|
/* Special case for "unistd.h", since it is non-ANSI. We include it way
|
||
|
@@ -652,8 +679,8 @@ struct yyguts_t
|
||
|
size_t yy_buffer_stack_max; /**< capacity of stack. */
|
||
|
YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
|
||
|
char yy_hold_char;
|
||
|
- yy_size_t yy_n_chars;
|
||
|
- yy_size_t yyleng_r;
|
||
|
+ int yy_n_chars;
|
||
|
+ int yyleng_r;
|
||
|
char *yy_c_buf_p;
|
||
|
int yy_init;
|
||
|
int yy_start;
|
||
|
@@ -706,7 +733,7 @@ FILE *libconfig_yyget_out (yyscan_t yyscanner );
|
||
|
|
||
|
void libconfig_yyset_out (FILE * out_str ,yyscan_t yyscanner );
|
||
|
|
||
|
-yy_size_t libconfig_yyget_leng (yyscan_t yyscanner );
|
||
|
+int libconfig_yyget_leng (yyscan_t yyscanner );
|
||
|
|
||
|
char *libconfig_yyget_text (yyscan_t yyscanner );
|
||
|
|
||
|
@@ -714,10 +741,6 @@ int libconfig_yyget_lineno (yyscan_t yyscanner );
|
||
|
|
||
|
void libconfig_yyset_lineno (int line_number ,yyscan_t yyscanner );
|
||
|
|
||
|
-int libconfig_yyget_column (yyscan_t yyscanner );
|
||
|
-
|
||
|
-void libconfig_yyset_column (int column_no ,yyscan_t yyscanner );
|
||
|
-
|
||
|
YYSTYPE * libconfig_yyget_lval (yyscan_t yyscanner );
|
||
|
|
||
|
void libconfig_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
|
||
|
@@ -754,7 +777,12 @@ static int input (yyscan_t yyscanner );
|
||
|
|
||
|
/* Amount of stuff to slurp up with each read. */
|
||
|
#ifndef YY_READ_BUF_SIZE
|
||
|
+#ifdef __ia64__
|
||
|
+/* On IA-64, the buffer size is 16k, not 8k */
|
||
|
+#define YY_READ_BUF_SIZE 16384
|
||
|
+#else
|
||
|
#define YY_READ_BUF_SIZE 8192
|
||
|
+#endif /* __ia64__ */
|
||
|
#endif
|
||
|
|
||
|
/* Copy whatever the last rule matched to the standard output. */
|
||
|
@@ -861,6 +889,11 @@ YY_DECL
|
||
|
register int yy_act;
|
||
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
||
|
|
||
|
+#line 121 "scanner.l"
|
||
|
+
|
||
|
+
|
||
|
+#line 896 "scanner.c"
|
||
|
+
|
||
|
yylval = yylval_param;
|
||
|
|
||
|
if ( !yyg->yy_init )
|
||
|
@@ -889,12 +922,6 @@ YY_DECL
|
||
|
libconfig_yy_load_buffer_state(yyscanner );
|
||
|
}
|
||
|
|
||
|
- {
|
||
|
-#line 102 "scanner.l"
|
||
|
-
|
||
|
-
|
||
|
-#line 897 "scanner.c"
|
||
|
-
|
||
|
while ( 1 ) /* loops until end-of-file is reached */
|
||
|
{
|
||
|
yy_cp = yyg->yy_c_buf_p;
|
||
|
@@ -912,7 +939,7 @@ YY_DECL
|
||
|
yy_match:
|
||
|
do
|
||
|
{
|
||
|
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
|
||
|
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
|
||
|
if ( yy_accept[yy_current_state] )
|
||
|
{
|
||
|
yyg->yy_last_accepting_state = yy_current_state;
|
||
|
@@ -921,13 +948,13 @@ yy_match:
|
||
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||
|
{
|
||
|
yy_current_state = (int) yy_def[yy_current_state];
|
||
|
- if ( yy_current_state >= 103 )
|
||
|
+ if ( yy_current_state >= 117 )
|
||
|
yy_c = yy_meta[(unsigned int) yy_c];
|
||
|
}
|
||
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||
|
++yy_cp;
|
||
|
}
|
||
|
- while ( yy_current_state != 102 );
|
||
|
+ while ( yy_current_state != 116 );
|
||
|
yy_cp = yyg->yy_last_accepting_cpos;
|
||
|
yy_current_state = yyg->yy_last_accepting_state;
|
||
|
|
||
|
@@ -938,7 +965,7 @@ yy_find_action:
|
||
|
|
||
|
if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
|
||
|
{
|
||
|
- yy_size_t yyl;
|
||
|
+ int yyl;
|
||
|
for ( yyl = 0; yyl < yyleng; ++yyl )
|
||
|
if ( yytext[yyl] == '\n' )
|
||
|
|
||
|
@@ -961,69 +988,69 @@ do_action: /* This label is used only to access EOF actions. */
|
||
|
|
||
|
case 1:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 104 "scanner.l"
|
||
|
+#line 123 "scanner.l"
|
||
|
{ BEGIN COMMENT; }
|
||
|
YY_BREAK
|
||
|
case 2:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 105 "scanner.l"
|
||
|
+#line 124 "scanner.l"
|
||
|
{ BEGIN INITIAL; }
|
||
|
YY_BREAK
|
||
|
case 3:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 106 "scanner.l"
|
||
|
+#line 125 "scanner.l"
|
||
|
{ /* ignore */ }
|
||
|
YY_BREAK
|
||
|
case 4:
|
||
|
/* rule 4 can match eol */
|
||
|
YY_RULE_SETUP
|
||
|
-#line 107 "scanner.l"
|
||
|
+#line 126 "scanner.l"
|
||
|
{ /* ignore */ }
|
||
|
YY_BREAK
|
||
|
case 5:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 109 "scanner.l"
|
||
|
+#line 128 "scanner.l"
|
||
|
{ BEGIN STRING; }
|
||
|
YY_BREAK
|
||
|
case 6:
|
||
|
/* rule 6 can match eol */
|
||
|
YY_RULE_SETUP
|
||
|
-#line 110 "scanner.l"
|
||
|
+#line 129 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, yytext); }
|
||
|
YY_BREAK
|
||
|
case 7:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 111 "scanner.l"
|
||
|
+#line 130 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, "\n"); }
|
||
|
YY_BREAK
|
||
|
case 8:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 112 "scanner.l"
|
||
|
+#line 131 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, "\r"); }
|
||
|
YY_BREAK
|
||
|
case 9:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 113 "scanner.l"
|
||
|
+#line 132 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, "\t"); }
|
||
|
YY_BREAK
|
||
|
case 10:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 114 "scanner.l"
|
||
|
+#line 133 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, "\f"); }
|
||
|
YY_BREAK
|
||
|
case 11:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 115 "scanner.l"
|
||
|
+#line 134 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, "\\"); }
|
||
|
YY_BREAK
|
||
|
case 12:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 116 "scanner.l"
|
||
|
+#line 135 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, "\""); }
|
||
|
YY_BREAK
|
||
|
case 13:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 117 "scanner.l"
|
||
|
+#line 136 "scanner.l"
|
||
|
{
|
||
|
char c[2] = { (char)(strtol(yytext + 2, NULL, 16) & 0xFF),
|
||
|
0 };
|
||
|
@@ -1032,12 +1059,12 @@ YY_RULE_SETUP
|
||
|
YY_BREAK
|
||
|
case 14:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 122 "scanner.l"
|
||
|
+#line 141 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, "\\"); }
|
||
|
YY_BREAK
|
||
|
case 15:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 123 "scanner.l"
|
||
|
+#line 142 "scanner.l"
|
||
|
{
|
||
|
yylval->sval = scanctx_take_string(yyextra);
|
||
|
BEGIN INITIAL;
|
||
|
@@ -1046,198 +1073,304 @@ YY_RULE_SETUP
|
||
|
YY_BREAK
|
||
|
case 16:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 129 "scanner.l"
|
||
|
-{ BEGIN INCLUDE; }
|
||
|
+#line 148 "scanner.l"
|
||
|
+{ BEGIN INCLUDE_F; }
|
||
|
YY_BREAK
|
||
|
case 17:
|
||
|
/* rule 17 can match eol */
|
||
|
YY_RULE_SETUP
|
||
|
-#line 130 "scanner.l"
|
||
|
+#line 149 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, yytext); }
|
||
|
YY_BREAK
|
||
|
case 18:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 131 "scanner.l"
|
||
|
+#line 150 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, "\\"); }
|
||
|
YY_BREAK
|
||
|
case 19:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 132 "scanner.l"
|
||
|
+#line 151 "scanner.l"
|
||
|
{ scanctx_append_string(yyextra, "\""); }
|
||
|
YY_BREAK
|
||
|
case 20:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 133 "scanner.l"
|
||
|
+#line 152 "scanner.l"
|
||
|
{
|
||
|
- const char *error;
|
||
|
- FILE *fp = scanctx_push_include(yyextra,
|
||
|
- (void *)YY_CURRENT_BUFFER,
|
||
|
- &error);
|
||
|
- if(fp)
|
||
|
- {
|
||
|
- yyin = fp;
|
||
|
- libconfig_yy_switch_to_buffer(libconfig_yy_create_buffer(yyin,YY_BUF_SIZE,yyscanner),yyscanner);
|
||
|
- }
|
||
|
- else
|
||
|
- {
|
||
|
- yyextra->config->error_text = error;
|
||
|
- yyextra->config->error_file = scanctx_current_filename(
|
||
|
- yyextra);
|
||
|
- yyextra->config->error_line = libconfig_yyget_lineno(
|
||
|
- yyscanner);
|
||
|
- return TOK_ERROR;
|
||
|
- }
|
||
|
- BEGIN INITIAL;
|
||
|
- }
|
||
|
+ const char *error;
|
||
|
+ FILE *fp = scanctx_push_include(yyextra,
|
||
|
+ (void *)YY_CURRENT_BUFFER,
|
||
|
+ scanctx_getpath(yyextra),
|
||
|
+ &error);
|
||
|
+ if(fp)
|
||
|
+ {
|
||
|
+ yyin = fp;
|
||
|
+ libconfig_yy_switch_to_buffer(libconfig_yy_create_buffer(yyin,YY_BUF_SIZE,yyscanner),yyscanner
|
||
|
+ );
|
||
|
+ }
|
||
|
+ else
|
||
|
+ {
|
||
|
+ yyextra->config->error_text = error;
|
||
|
+ yyextra->config->error_file = scanctx_current_filename(
|
||
|
+ yyextra);
|
||
|
+ yyextra->config->error_line = libconfig_yyget_lineno(yyscanner);
|
||
|
+ return TOK_ERROR;
|
||
|
+ }
|
||
|
+ BEGIN INITIAL;
|
||
|
+ }
|
||
|
YY_BREAK
|
||
|
case 21:
|
||
|
-/* rule 21 can match eol */
|
||
|
YY_RULE_SETUP
|
||
|
-#line 157 "scanner.l"
|
||
|
-{ /* ignore */ }
|
||
|
+#line 177 "scanner.l"
|
||
|
+{ BEGIN INCLUDE_D; }
|
||
|
YY_BREAK
|
||
|
case 22:
|
||
|
+/* rule 22 can match eol */
|
||
|
YY_RULE_SETUP
|
||
|
-#line 158 "scanner.l"
|
||
|
-{ /* ignore */ }
|
||
|
+#line 178 "scanner.l"
|
||
|
+{ scanctx_append_string(yyextra, yytext); }
|
||
|
YY_BREAK
|
||
|
case 23:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 160 "scanner.l"
|
||
|
-{ return(TOK_EQUALS); }
|
||
|
+#line 179 "scanner.l"
|
||
|
+{ scanctx_append_string(yyextra, "\\"); }
|
||
|
YY_BREAK
|
||
|
case 24:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 161 "scanner.l"
|
||
|
-{ return(TOK_COMMA); }
|
||
|
+#line 180 "scanner.l"
|
||
|
+{ scanctx_append_string(yyextra, "\""); }
|
||
|
YY_BREAK
|
||
|
case 25:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 162 "scanner.l"
|
||
|
-{ return(TOK_GROUP_START); }
|
||
|
+#line 181 "scanner.l"
|
||
|
+{
|
||
|
+ const char *error;
|
||
|
+ const char* basedir;
|
||
|
+ FILE *fp = NULL;
|
||
|
+
|
||
|
+ basedir = scanctx_getpath(yyextra);
|
||
|
+ if(scanctx_dirscan(yyextra, basedir, filter_dotfiles, NULL) < 0)
|
||
|
+ {
|
||
|
+ if(basedir)
|
||
|
+ free((void*)basedir);
|
||
|
+ return TOK_ERROR;
|
||
|
+ }
|
||
|
+
|
||
|
+ if(scanctx_inloop(yyextra))
|
||
|
+ {
|
||
|
+ fp = scanctx_push_include(yyextra,
|
||
|
+ (void *)YY_CURRENT_BUFFER,
|
||
|
+ scanctx_filename(yyextra, NULL, scanctx_dirnext(yyextra)),
|
||
|
+ &error
|
||
|
+ );
|
||
|
+
|
||
|
+ if(fp)
|
||
|
+ {
|
||
|
+ yyin = fp;
|
||
|
+ libconfig_yy_switch_to_buffer(libconfig_yy_create_buffer(yyin,YY_BUF_SIZE,yyscanner),yyscanner
|
||
|
+ );
|
||
|
+ }
|
||
|
+ else
|
||
|
+ {
|
||
|
+ yyextra->config->error_text = error;
|
||
|
+ yyextra->config->error_file = scanctx_current_filename(yyextra);
|
||
|
+ yyextra->config->error_line = libconfig_yyget_lineno(yyscanner);
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else
|
||
|
+ scanctx_dirend(yyextra); /* avoid leaks */
|
||
|
+
|
||
|
+ BEGIN INITIAL;
|
||
|
+ }
|
||
|
YY_BREAK
|
||
|
case 26:
|
||
|
+/* rule 26 can match eol */
|
||
|
YY_RULE_SETUP
|
||
|
-#line 163 "scanner.l"
|
||
|
-{ return(TOK_GROUP_END); }
|
||
|
+#line 223 "scanner.l"
|
||
|
+{ /* ignore */ }
|
||
|
YY_BREAK
|
||
|
case 27:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 164 "scanner.l"
|
||
|
-{ yylval->ival = 1; return(TOK_BOOLEAN); }
|
||
|
+#line 224 "scanner.l"
|
||
|
+{ /* ignore */ }
|
||
|
YY_BREAK
|
||
|
case 28:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 165 "scanner.l"
|
||
|
-{ yylval->ival = 0; return(TOK_BOOLEAN); }
|
||
|
+#line 226 "scanner.l"
|
||
|
+{ return(TOK_EQUALS); }
|
||
|
YY_BREAK
|
||
|
case 29:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 166 "scanner.l"
|
||
|
-{ yylval->sval = yytext; return(TOK_NAME); }
|
||
|
+#line 227 "scanner.l"
|
||
|
+{ return(TOK_COMMA); }
|
||
|
YY_BREAK
|
||
|
case 30:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 167 "scanner.l"
|
||
|
-{ yylval->fval = atof(yytext); return(TOK_FLOAT); }
|
||
|
+#line 228 "scanner.l"
|
||
|
+{ return(TOK_GROUP_START); }
|
||
|
YY_BREAK
|
||
|
case 31:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 168 "scanner.l"
|
||
|
+#line 229 "scanner.l"
|
||
|
+{ return(TOK_GROUP_END); }
|
||
|
+ YY_BREAK
|
||
|
+case 32:
|
||
|
+YY_RULE_SETUP
|
||
|
+#line 230 "scanner.l"
|
||
|
+{ yylval->ival = 1; return(TOK_BOOLEAN); }
|
||
|
+ YY_BREAK
|
||
|
+case 33:
|
||
|
+YY_RULE_SETUP
|
||
|
+#line 231 "scanner.l"
|
||
|
+{ yylval->ival = 0; return(TOK_BOOLEAN); }
|
||
|
+ YY_BREAK
|
||
|
+case 34:
|
||
|
+YY_RULE_SETUP
|
||
|
+#line 232 "scanner.l"
|
||
|
+{ yylval->sval = yytext; return(TOK_NAME); }
|
||
|
+ YY_BREAK
|
||
|
+case 35:
|
||
|
+YY_RULE_SETUP
|
||
|
+#line 233 "scanner.l"
|
||
|
+{ yylval->fval = atof(yytext); return(TOK_FLOAT); }
|
||
|
+ YY_BREAK
|
||
|
+case 36:
|
||
|
+YY_RULE_SETUP
|
||
|
+#line 234 "scanner.l"
|
||
|
{
|
||
|
long long llval;
|
||
|
- llval = atoll(yytext);
|
||
|
+ char *endptr;
|
||
|
+ int errsave = errno;
|
||
|
+ errno = 0;
|
||
|
+ llval = strtoll(yytext, &endptr, 0); /* base 10 or base 8 */
|
||
|
+ if(*endptr || errno)
|
||
|
+ {
|
||
|
+ errno = 0;
|
||
|
+ return(TOK_ERROR); /* some error occured ... */
|
||
|
+ }
|
||
|
+ errno = errsave;
|
||
|
+ if((*yytext == '0') && (*(yytext+1) != '\0'))
|
||
|
+ { /* it's octal... so INT we go */
|
||
|
+ yylval->ival = (int)(llval);
|
||
|
+ return(TOK_INTEGER);
|
||
|
+ }
|
||
|
+
|
||
|
if((llval < INT_MIN) || (llval > INT_MAX))
|
||
|
{
|
||
|
- yylval->llval = llval;
|
||
|
- return(TOK_INTEGER64);
|
||
|
+ yylval->llval = llval;
|
||
|
+ return(TOK_INTEGER64);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
- yylval->ival = llval;
|
||
|
- return(TOK_INTEGER);
|
||
|
+ yylval->ival = llval;
|
||
|
+ return(TOK_INTEGER);
|
||
|
}
|
||
|
}
|
||
|
YY_BREAK
|
||
|
-case 32:
|
||
|
+case 37:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 182 "scanner.l"
|
||
|
+#line 263 "scanner.l"
|
||
|
{ yylval->llval = atoll(yytext); return(TOK_INTEGER64); }
|
||
|
YY_BREAK
|
||
|
-case 33:
|
||
|
+case 38:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 183 "scanner.l"
|
||
|
+#line 264 "scanner.l"
|
||
|
{
|
||
|
yylval->ival = strtoul(yytext, NULL, 16);
|
||
|
return(TOK_HEX);
|
||
|
}
|
||
|
YY_BREAK
|
||
|
-case 34:
|
||
|
+case 39:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 187 "scanner.l"
|
||
|
+#line 268 "scanner.l"
|
||
|
{ yylval->llval = fromhex(yytext); return(TOK_HEX64); }
|
||
|
YY_BREAK
|
||
|
-case 35:
|
||
|
+case 40:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 188 "scanner.l"
|
||
|
+#line 269 "scanner.l"
|
||
|
{ return(TOK_ARRAY_START); }
|
||
|
YY_BREAK
|
||
|
-case 36:
|
||
|
+case 41:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 189 "scanner.l"
|
||
|
+#line 270 "scanner.l"
|
||
|
{ return(TOK_ARRAY_END); }
|
||
|
YY_BREAK
|
||
|
-case 37:
|
||
|
+case 42:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 190 "scanner.l"
|
||
|
+#line 271 "scanner.l"
|
||
|
{ return(TOK_LIST_START); }
|
||
|
YY_BREAK
|
||
|
-case 38:
|
||
|
+case 43:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 191 "scanner.l"
|
||
|
+#line 272 "scanner.l"
|
||
|
{ return(TOK_LIST_END); }
|
||
|
YY_BREAK
|
||
|
-case 39:
|
||
|
+case 44:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 192 "scanner.l"
|
||
|
+#line 273 "scanner.l"
|
||
|
{ return(TOK_SEMICOLON); }
|
||
|
YY_BREAK
|
||
|
-case 40:
|
||
|
+case 45:
|
||
|
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||
|
yyg->yy_c_buf_p = yy_cp -= 1;
|
||
|
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
|
YY_RULE_SETUP
|
||
|
-#line 193 "scanner.l"
|
||
|
+#line 274 "scanner.l"
|
||
|
{ /* ignore */ }
|
||
|
YY_BREAK
|
||
|
-case 41:
|
||
|
+case 46:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 194 "scanner.l"
|
||
|
+#line 275 "scanner.l"
|
||
|
{ return(TOK_GARBAGE); }
|
||
|
YY_BREAK
|
||
|
case YY_STATE_EOF(INITIAL):
|
||
|
case YY_STATE_EOF(COMMENT):
|
||
|
case YY_STATE_EOF(STRING):
|
||
|
-case YY_STATE_EOF(INCLUDE):
|
||
|
-#line 196 "scanner.l"
|
||
|
+case YY_STATE_EOF(INCLUDE_F):
|
||
|
+case YY_STATE_EOF(INCLUDE_D):
|
||
|
+#line 277 "scanner.l"
|
||
|
{
|
||
|
- YY_BUFFER_STATE buf = (YY_BUFFER_STATE)scanctx_pop_include(
|
||
|
- yyextra);
|
||
|
- if(buf)
|
||
|
- {
|
||
|
- libconfig_yy_delete_buffer(YY_CURRENT_BUFFER,yyscanner);
|
||
|
- libconfig_yy_switch_to_buffer(buf,yyscanner);
|
||
|
- }
|
||
|
- else
|
||
|
- yyterminate();
|
||
|
- }
|
||
|
+ const char* error;
|
||
|
+ FILE *fp;
|
||
|
+ YY_BUFFER_STATE buf = (YY_BUFFER_STATE)scanctx_pop_include(yyextra);
|
||
|
+ if(buf)
|
||
|
+ {
|
||
|
+ libconfig_yy_delete_buffer(YY_CURRENT_BUFFER,yyscanner);
|
||
|
+ libconfig_yy_switch_to_buffer(buf,yyscanner);
|
||
|
+ }
|
||
|
+ else /* if no more buffers, we are done */
|
||
|
+ yyterminate();
|
||
|
+
|
||
|
+ if(scanctx_inloop(yyextra))
|
||
|
+ {
|
||
|
+ /* gotta keep looping.... */
|
||
|
+ fp = scanctx_push_include(yyextra,
|
||
|
+ (void *)YY_CURRENT_BUFFER,
|
||
|
+ scanctx_filename(yyextra, NULL, scanctx_dirnext(yyextra)),
|
||
|
+ &error
|
||
|
+ );
|
||
|
+ if(fp)
|
||
|
+ {
|
||
|
+ yyin = fp;
|
||
|
+ libconfig_yy_switch_to_buffer(libconfig_yy_create_buffer(yyin,YY_BUF_SIZE,yyscanner),yyscanner
|
||
|
+ );
|
||
|
+ }
|
||
|
+ else
|
||
|
+ {
|
||
|
+ yyextra->config->error_text = error;
|
||
|
+ yyextra->config->error_file = scanctx_current_filename(yyextra);
|
||
|
+ yyextra->config->error_line = libconfig_yyget_lineno(yyscanner);
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else /* not on loop, or just finished */
|
||
|
+ scanctx_dirend(yyextra);
|
||
|
+ }
|
||
|
YY_BREAK
|
||
|
-case 42:
|
||
|
+case 47:
|
||
|
YY_RULE_SETUP
|
||
|
-#line 207 "scanner.l"
|
||
|
+#line 315 "scanner.l"
|
||
|
ECHO;
|
||
|
YY_BREAK
|
||
|
-#line 1241 "scanner.c"
|
||
|
+#line 1374 "scanner.c"
|
||
|
|
||
|
case YY_END_OF_BUFFER:
|
||
|
{
|
||
|
@@ -1367,7 +1500,6 @@ ECHO;
|
||
|
"fatal flex scanner internal error--no action found" );
|
||
|
} /* end of action switch */
|
||
|
} /* end of scanning one token */
|
||
|
- } /* end of user's declarations */
|
||
|
} /* end of libconfig_yylex */
|
||
|
|
||
|
/* yy_get_next_buffer - try to read in a new buffer
|
||
|
@@ -1424,21 +1556,21 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
||
|
|
||
|
else
|
||
|
{
|
||
|
- yy_size_t num_to_read =
|
||
|
+ int num_to_read =
|
||
|
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
|
||
|
|
||
|
while ( num_to_read <= 0 )
|
||
|
{ /* Not enough room in the buffer - grow it. */
|
||
|
|
||
|
/* just a shorter name for the current buffer */
|
||
|
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
|
||
|
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
|
||
|
|
||
|
int yy_c_buf_p_offset =
|
||
|
(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
|
||
|
|
||
|
if ( b->yy_is_our_buffer )
|
||
|
{
|
||
|
- yy_size_t new_size = b->yy_buf_size * 2;
|
||
|
+ int new_size = b->yy_buf_size * 2;
|
||
|
|
||
|
if ( new_size <= 0 )
|
||
|
b->yy_buf_size += b->yy_buf_size / 8;
|
||
|
@@ -1469,7 +1601,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
||
|
|
||
|
/* Read in more data. */
|
||
|
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
|
||
|
- yyg->yy_n_chars, num_to_read );
|
||
|
+ yyg->yy_n_chars, (size_t) num_to_read );
|
||
|
|
||
|
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
|
||
|
}
|
||
|
@@ -1532,7 +1664,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
||
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||
|
{
|
||
|
yy_current_state = (int) yy_def[yy_current_state];
|
||
|
- if ( yy_current_state >= 103 )
|
||
|
+ if ( yy_current_state >= 117 )
|
||
|
yy_c = yy_meta[(unsigned int) yy_c];
|
||
|
}
|
||
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||
|
@@ -1561,13 +1693,12 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
||
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||
|
{
|
||
|
yy_current_state = (int) yy_def[yy_current_state];
|
||
|
- if ( yy_current_state >= 103 )
|
||
|
+ if ( yy_current_state >= 117 )
|
||
|
yy_c = yy_meta[(unsigned int) yy_c];
|
||
|
}
|
||
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||
|
- yy_is_jam = (yy_current_state == 102);
|
||
|
+ yy_is_jam = (yy_current_state == 116);
|
||
|
|
||
|
- (void)yyg;
|
||
|
return yy_is_jam ? 0 : yy_current_state;
|
||
|
}
|
||
|
|
||
|
@@ -1596,7 +1727,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
||
|
|
||
|
else
|
||
|
{ /* need more input */
|
||
|
- yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
|
||
|
+ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
|
||
|
++yyg->yy_c_buf_p;
|
||
|
|
||
|
switch ( yy_get_next_buffer( yyscanner ) )
|
||
|
@@ -1884,7 +2015,7 @@ void libconfig_yypop_buffer_state (yyscan_t yyscanner)
|
||
|
*/
|
||
|
static void libconfig_yyensure_buffer_stack (yyscan_t yyscanner)
|
||
|
{
|
||
|
- yy_size_t num_to_alloc;
|
||
|
+ int num_to_alloc;
|
||
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
||
|
|
||
|
if (!yyg->yy_buffer_stack) {
|
||
|
@@ -1982,12 +2113,12 @@ YY_BUFFER_STATE libconfig_yy_scan_string (yyconst char * yystr , yyscan_t yyscan
|
||
|
* @param yyscanner The scanner object.
|
||
|
* @return the newly allocated buffer state object.
|
||
|
*/
|
||
|
-YY_BUFFER_STATE libconfig_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner)
|
||
|
+YY_BUFFER_STATE libconfig_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
|
||
|
{
|
||
|
YY_BUFFER_STATE b;
|
||
|
char *buf;
|
||
|
yy_size_t n;
|
||
|
- yy_size_t i;
|
||
|
+ int i;
|
||
|
|
||
|
/* Get memory for full buffer, including space for trailing EOB's. */
|
||
|
n = _yybytes_len + 2;
|
||
|
@@ -2097,7 +2228,7 @@ FILE *libconfig_yyget_out (yyscan_t yyscanner)
|
||
|
/** Get the length of the current token.
|
||
|
* @param yyscanner The scanner object.
|
||
|
*/
|
||
|
-yy_size_t libconfig_yyget_leng (yyscan_t yyscanner)
|
||
|
+int libconfig_yyget_leng (yyscan_t yyscanner)
|
||
|
{
|
||
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
||
|
return yyleng;
|
||
|
@@ -2133,7 +2264,7 @@ void libconfig_yyset_lineno (int line_number , yyscan_t yyscanner)
|
||
|
|
||
|
/* lineno is only valid if an input buffer exists. */
|
||
|
if (! YY_CURRENT_BUFFER )
|
||
|
- YY_FATAL_ERROR( "libconfig_yyset_lineno called with no buffer" );
|
||
|
+ yy_fatal_error( "libconfig_yyset_lineno called with no buffer" , yyscanner);
|
||
|
|
||
|
yylineno = line_number;
|
||
|
}
|
||
|
@@ -2148,7 +2279,7 @@ void libconfig_yyset_column (int column_no , yyscan_t yyscanner)
|
||
|
|
||
|
/* column is only valid if an input buffer exists. */
|
||
|
if (! YY_CURRENT_BUFFER )
|
||
|
- YY_FATAL_ERROR( "libconfig_yyset_column called with no buffer" );
|
||
|
+ yy_fatal_error( "libconfig_yyset_column called with no buffer" , yyscanner);
|
||
|
|
||
|
yycolumn = column_no;
|
||
|
}
|
||
|
@@ -2372,4 +2503,4 @@ void libconfig_yyfree (void * ptr , yyscan_t yyscanner)
|
||
|
|
||
|
#define YYTABLES_NAME "yytables"
|
||
|
|
||
|
-#line 207 "scanner.l"
|
||
|
+#line 315 "scanner.l"
|