mirror of
https://github.com/Hopiu/linkchecker.git
synced 2026-04-24 16:14:45 +00:00
Fix parser for changes in bison 3.0.x
This commit is contained in:
parent
27937e6f83
commit
3d711666e1
5 changed files with 554 additions and 685 deletions
|
|
@ -1,8 +1,8 @@
|
|||
# this parser needs flex >= 2.5.xx from http://lex.sf.net/
|
||||
# for reentrant bison parser support
|
||||
FLEX = flex
|
||||
# This HTML parser needs flex >= 2.5.xx from http://lex.sf.net/ for
|
||||
# reentrant bison parser support and uses features of bison >= 3.0.x
|
||||
LEX = flex
|
||||
YACC = bison
|
||||
PYINCLUDE=-I/usr/include/python2.7
|
||||
#PYINCLUDE="-I/home/calvin/src/python-gitsvn -I/home/calvin/src/python-gitsvn/Include"
|
||||
|
||||
all: htmllex.c htmlparse.c
|
||||
|
||||
|
|
@ -13,12 +13,12 @@ htmlsax.so: htmllex.o htmlparse.o s_util.o
|
|||
gcc -g -std=c99 -O3 -Wall -pedantic -Wstrict-prototypes -fPIC -I. $(PYINCLUDE) -c $< -o $@
|
||||
|
||||
htmlparse.h htmlparse.c: htmlparse.y htmlsax.h
|
||||
bison htmlparse.y
|
||||
$(YACC) --output=htmlparse.c htmlparse.y
|
||||
|
||||
htmllex.l: htmlparse.h
|
||||
|
||||
htmllex.c: htmllex.l htmlsax.h
|
||||
$(FLEX) htmllex.l
|
||||
$(LEX) htmllex.l
|
||||
awk -f fixincludes.awk htmllex.c > htmllex.c.fixed; mv -f htmllex.c.fixed htmllex.c
|
||||
|
||||
clean:
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
#define FLEX_SCANNER
|
||||
#define YY_FLEX_MAJOR_VERSION 2
|
||||
#define YY_FLEX_MINOR_VERSION 5
|
||||
#define YY_FLEX_SUBMINOR_VERSION 35
|
||||
#define YY_FLEX_SUBMINOR_VERSION 39
|
||||
#if YY_FLEX_SUBMINOR_VERSION > 0
|
||||
#define FLEX_BETA
|
||||
#endif
|
||||
|
|
@ -222,6 +222,11 @@ 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
|
||||
|
||||
/* %if-not-reentrant */
|
||||
/* %endif */
|
||||
|
||||
|
|
@ -235,6 +240,7 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
|
|||
#define EOB_ACT_LAST_MATCH 2
|
||||
|
||||
#define YY_LESS_LINENO(n)
|
||||
#define YY_LINENO_REWIND_TO(ptr)
|
||||
|
||||
/* Return all but the first "n" matched characters back to the input stream. */
|
||||
#define yyless(n) \
|
||||
|
|
@ -252,11 +258,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
|
|||
|
||||
#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
|
||||
|
|
@ -279,7 +280,7 @@ struct yy_buffer_state
|
|||
/* Number of characters read into yy_ch_buf, not including EOB
|
||||
* characters.
|
||||
*/
|
||||
int yy_n_chars;
|
||||
yy_size_t 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
|
||||
|
|
@ -376,7 +377,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
|
|||
|
||||
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
|
||||
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
|
||||
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
|
||||
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
|
||||
|
||||
/* %endif */
|
||||
|
||||
|
|
@ -411,7 +412,7 @@ void yyfree (void * ,yyscan_t yyscanner );
|
|||
/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
|
||||
/* Begin user sect3 */
|
||||
|
||||
#define yywrap(n) 1
|
||||
#define yywrap(yyscanner) 1
|
||||
#define YY_SKIP_YYWRAP
|
||||
|
||||
#define FLEX_DEBUG
|
||||
|
|
@ -421,6 +422,8 @@ typedef unsigned char YY_CHAR;
|
|||
typedef int yy_state_type;
|
||||
|
||||
#define yytext_ptr yytext_r
|
||||
|
||||
/* %% [1.5] DFA */
|
||||
static yyconst flex_int32_t yy_nxt[][38] =
|
||||
{
|
||||
{
|
||||
|
|
@ -2817,7 +2820,7 @@ void yyfree (void* ptr, void* yyscanner) {
|
|||
|
||||
|
||||
/* regular expression definitions used below */
|
||||
#line 2820 "htmllex.c"
|
||||
#line 2823 "htmllex.c"
|
||||
|
||||
#define INITIAL 0
|
||||
#define S_PI 1
|
||||
|
|
@ -2879,8 +2882,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;
|
||||
int yy_n_chars;
|
||||
int yyleng_r;
|
||||
yy_size_t yy_n_chars;
|
||||
yy_size_t yyleng_r;
|
||||
char *yy_c_buf_p;
|
||||
int yy_init;
|
||||
int yy_start;
|
||||
|
|
@ -2943,7 +2946,7 @@ FILE *yyget_out (yyscan_t yyscanner );
|
|||
|
||||
void yyset_out (FILE * out_str ,yyscan_t yyscanner );
|
||||
|
||||
int yyget_leng (yyscan_t yyscanner );
|
||||
yy_size_t yyget_leng (yyscan_t yyscanner );
|
||||
|
||||
char *yyget_text (yyscan_t yyscanner );
|
||||
|
||||
|
|
@ -3131,13 +3134,6 @@ YY_DECL
|
|||
register int yy_act;
|
||||
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
||||
|
||||
/* %% [7.0] user's declarations go here */
|
||||
#line 226 "htmllex.l"
|
||||
|
||||
|
||||
/*********************** EOF ************************/
|
||||
#line 3139 "htmllex.c"
|
||||
|
||||
yylval = yylval_param;
|
||||
|
||||
if ( !yyg->yy_init )
|
||||
|
|
@ -3174,6 +3170,14 @@ YY_DECL
|
|||
yy_load_buffer_state(yyscanner );
|
||||
}
|
||||
|
||||
{
|
||||
/* %% [7.0] user's declarations go here */
|
||||
#line 226 "htmllex.l"
|
||||
|
||||
|
||||
/*********************** EOF ************************/
|
||||
#line 3179 "htmllex.c"
|
||||
|
||||
while ( 1 ) /* loops until end-of-file is reached */
|
||||
{
|
||||
/* %% [8.0] yymore()-related code goes here */
|
||||
|
|
@ -3355,6 +3359,7 @@ YY_RULE_SETUP
|
|||
case 9:
|
||||
/* rule 9 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_bp + 1);
|
||||
yyg->yy_c_buf_p = yy_cp = yy_bp + 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3367,6 +3372,7 @@ YY_RULE_SETUP
|
|||
case 10:
|
||||
/* rule 10 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_bp + 2);
|
||||
yyg->yy_c_buf_p = yy_cp = yy_bp + 2;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3379,6 +3385,7 @@ YY_RULE_SETUP
|
|||
case 11:
|
||||
/* rule 11 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3409,6 +3416,7 @@ YY_RULE_SETUP
|
|||
case 14:
|
||||
/* rule 14 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3580,6 +3588,7 @@ YY_RULE_SETUP
|
|||
case 32:
|
||||
/* rule 32 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3680,6 +3689,7 @@ YY_RULE_SETUP
|
|||
case 38:
|
||||
/* rule 38 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_bp + 1);
|
||||
yyg->yy_c_buf_p = yy_cp = yy_bp + 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3780,6 +3790,7 @@ YY_RULE_SETUP
|
|||
case 47:
|
||||
/* rule 47 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_bp + 1);
|
||||
yyg->yy_c_buf_p = yy_cp = yy_bp + 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3792,6 +3803,7 @@ YY_RULE_SETUP
|
|||
case 48:
|
||||
/* rule 48 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3804,6 +3816,7 @@ YY_RULE_SETUP
|
|||
case 49:
|
||||
/* rule 49 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3816,6 +3829,7 @@ YY_RULE_SETUP
|
|||
case 50:
|
||||
/* rule 50 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3828,6 +3842,7 @@ YY_RULE_SETUP
|
|||
case 51:
|
||||
/* rule 51 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3840,6 +3855,7 @@ YY_RULE_SETUP
|
|||
case 52:
|
||||
/* rule 52 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3852,6 +3868,7 @@ YY_RULE_SETUP
|
|||
case 53:
|
||||
/* rule 53 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -3864,6 +3881,7 @@ YY_RULE_SETUP
|
|||
case 54:
|
||||
/* rule 54 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4024,6 +4042,7 @@ YY_RULE_SETUP
|
|||
case 71:
|
||||
/* rule 71 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_bp + 1);
|
||||
yyg->yy_c_buf_p = yy_cp = yy_bp + 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4036,6 +4055,7 @@ YY_RULE_SETUP
|
|||
case 72:
|
||||
/* rule 72 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4048,6 +4068,7 @@ YY_RULE_SETUP
|
|||
case 73:
|
||||
/* rule 73 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4060,6 +4081,7 @@ YY_RULE_SETUP
|
|||
case 74:
|
||||
/* rule 74 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4072,6 +4094,7 @@ YY_RULE_SETUP
|
|||
case 75:
|
||||
/* rule 75 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4084,6 +4107,7 @@ YY_RULE_SETUP
|
|||
case 76:
|
||||
/* rule 76 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4096,6 +4120,7 @@ YY_RULE_SETUP
|
|||
case 77:
|
||||
/* rule 77 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4494,6 +4519,7 @@ YY_RULE_SETUP
|
|||
case 114:
|
||||
/* rule 114 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4526,6 +4552,7 @@ YY_RULE_SETUP
|
|||
case 117:
|
||||
/* rule 117 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4541,6 +4568,7 @@ YY_RULE_SETUP
|
|||
case 118:
|
||||
/* rule 118 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4594,6 +4622,7 @@ YY_RULE_SETUP
|
|||
case 123:
|
||||
/* rule 123 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4609,6 +4638,7 @@ YY_RULE_SETUP
|
|||
case 124:
|
||||
/* rule 124 can match eol */
|
||||
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
|
||||
YY_LINENO_REWIND_TO(yy_cp - 1);
|
||||
yyg->yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
|
|
@ -4687,7 +4717,7 @@ YY_RULE_SETUP
|
|||
#line 1091 "htmllex.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 4690 "htmllex.c"
|
||||
#line 4720 "htmllex.c"
|
||||
|
||||
case YY_END_OF_BUFFER:
|
||||
{
|
||||
|
|
@ -4817,6 +4847,7 @@ 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 yylex */
|
||||
/* %ok-for-header */
|
||||
|
||||
|
|
@ -4885,21 +4916,21 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|||
|
||||
else
|
||||
{
|
||||
int num_to_read =
|
||||
yy_size_t 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;
|
||||
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
|
||||
|
||||
int yy_c_buf_p_offset =
|
||||
(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
|
||||
|
||||
if ( b->yy_is_our_buffer )
|
||||
{
|
||||
int new_size = b->yy_buf_size * 2;
|
||||
yy_size_t new_size = b->yy_buf_size * 2;
|
||||
|
||||
if ( new_size <= 0 )
|
||||
b->yy_buf_size += b->yy_buf_size / 8;
|
||||
|
|
@ -4930,7 +4961,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, (size_t) num_to_read );
|
||||
yyg->yy_n_chars, num_to_read );
|
||||
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
|
||||
}
|
||||
|
|
@ -5030,6 +5061,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|||
}
|
||||
}
|
||||
|
||||
(void)yyg;
|
||||
return yy_is_jam ? 0 : yy_current_state;
|
||||
}
|
||||
|
||||
|
|
@ -5066,7 +5098,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|||
|
||||
else
|
||||
{ /* need more input */
|
||||
int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
|
||||
yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
|
||||
++yyg->yy_c_buf_p;
|
||||
|
||||
switch ( yy_get_next_buffer( yyscanner ) )
|
||||
|
|
@ -5254,13 +5286,6 @@ static void yy_load_buffer_state (yyscan_t yyscanner)
|
|||
yyfree((void *) b ,yyscanner );
|
||||
}
|
||||
|
||||
/* %if-c-only */
|
||||
|
||||
/* %endif */
|
||||
|
||||
/* %if-c++-only */
|
||||
/* %endif */
|
||||
|
||||
/* Initializes or reinitializes a buffer.
|
||||
* This function is sometimes called more than once on the same buffer,
|
||||
* such as during a yyrestart() or at EOF.
|
||||
|
|
@ -5407,7 +5432,7 @@ static void yyensure_buffer_stack (yyscan_t yyscanner)
|
|||
/* %if-c++-only */
|
||||
/* %endif */
|
||||
{
|
||||
int num_to_alloc;
|
||||
yy_size_t num_to_alloc;
|
||||
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
||||
|
||||
if (!yyg->yy_buffer_stack) {
|
||||
|
|
@ -5511,12 +5536,12 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
|
|||
* @param yyscanner The scanner object.
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
|
||||
YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner)
|
||||
{
|
||||
YY_BUFFER_STATE b;
|
||||
char *buf;
|
||||
yy_size_t n;
|
||||
int i;
|
||||
yy_size_t i;
|
||||
|
||||
/* Get memory for full buffer, including space for trailing EOB's. */
|
||||
n = _yybytes_len + 2;
|
||||
|
|
@ -5636,7 +5661,7 @@ FILE *yyget_out (yyscan_t yyscanner)
|
|||
/** Get the length of the current token.
|
||||
* @param yyscanner The scanner object.
|
||||
*/
|
||||
int yyget_leng (yyscan_t yyscanner)
|
||||
yy_size_t yyget_leng (yyscan_t yyscanner)
|
||||
{
|
||||
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
||||
return yyleng;
|
||||
|
|
@ -5676,7 +5701,7 @@ void yyset_lineno (int line_number , yyscan_t yyscanner)
|
|||
|
||||
/* lineno is only valid if an input buffer exists. */
|
||||
if (! YY_CURRENT_BUFFER )
|
||||
yy_fatal_error( "yyset_lineno called with no buffer" , yyscanner);
|
||||
YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
|
||||
|
||||
yylineno = line_number;
|
||||
}
|
||||
|
|
@ -5691,7 +5716,7 @@ void yyset_column (int column_no , yyscan_t yyscanner)
|
|||
|
||||
/* column is only valid if an input buffer exists. */
|
||||
if (! YY_CURRENT_BUFFER )
|
||||
yy_fatal_error( "yyset_column called with no buffer" , yyscanner);
|
||||
YY_FATAL_ERROR( "yyset_column called with no buffer" );
|
||||
|
||||
yycolumn = column_no;
|
||||
}
|
||||
|
|
@ -5913,7 +5938,7 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
|
|||
|
||||
/* %ok-for-header */
|
||||
|
||||
#line 1091 "htmllex.l"
|
||||
#line 1090 "htmllex.l"
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,19 +1,19 @@
|
|||
/* A Bison parser, made by GNU Bison 2.5. */
|
||||
/* A Bison parser, made by GNU Bison 3.0.2. */
|
||||
|
||||
/* Bison interface for Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
|
||||
|
||||
|
||||
Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
|
|
@ -26,41 +26,49 @@
|
|||
special exception, which will cause the skeleton and the resulting
|
||||
Bison output files to be licensed under the GNU General Public
|
||||
License without this special exception.
|
||||
|
||||
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
|
||||
/* Tokens. */
|
||||
#ifndef YYTOKENTYPE
|
||||
# define YYTOKENTYPE
|
||||
/* Put the tokens into the symbol table, so that GDB and other debuggers
|
||||
know about them. */
|
||||
enum yytokentype {
|
||||
T_WAIT = 258,
|
||||
T_ERROR = 259,
|
||||
T_TEXT = 260,
|
||||
T_ELEMENT_START = 261,
|
||||
T_ELEMENT_START_END = 262,
|
||||
T_ELEMENT_END = 263,
|
||||
T_SCRIPT = 264,
|
||||
T_STYLE = 265,
|
||||
T_PI = 266,
|
||||
T_COMMENT = 267,
|
||||
T_CDATA = 268,
|
||||
T_DOCTYPE = 269
|
||||
};
|
||||
#ifndef YY_YY_HTMLPARSE_H_INCLUDED
|
||||
# define YY_YY_HTMLPARSE_H_INCLUDED
|
||||
/* Debug traces. */
|
||||
#ifndef YYDEBUG
|
||||
# define YYDEBUG 1
|
||||
#endif
|
||||
#if YYDEBUG
|
||||
extern int yydebug;
|
||||
#endif
|
||||
|
||||
/* Token type. */
|
||||
#ifndef YYTOKENTYPE
|
||||
# define YYTOKENTYPE
|
||||
enum yytokentype
|
||||
{
|
||||
T_WAIT = 258,
|
||||
T_ERROR = 259,
|
||||
T_TEXT = 260,
|
||||
T_ELEMENT_START = 261,
|
||||
T_ELEMENT_START_END = 262,
|
||||
T_ELEMENT_END = 263,
|
||||
T_SCRIPT = 264,
|
||||
T_STYLE = 265,
|
||||
T_PI = 266,
|
||||
T_COMMENT = 267,
|
||||
T_CDATA = 268,
|
||||
T_DOCTYPE = 269
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
/* Value type. */
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
typedef int YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
int yyparse (PyObject* scanner);
|
||||
|
||||
#endif /* !YY_YY_HTMLPARSE_H_INCLUDED */
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
|
||||
/* bison type definitions */
|
||||
#define YYSTYPE PyObject*
|
||||
#define YYPARSE_PARAM scanner
|
||||
#define YYLEX_PARAM scanner
|
||||
/* extern functions found in htmllex.l */
|
||||
extern int yylex(YYSTYPE* yylvalp, void* scanner);
|
||||
extern int htmllexInit (void** scanner, UserData* data);
|
||||
|
|
@ -39,9 +37,8 @@ extern int yyget_lineno(void*);
|
|||
#define YYERROR_VERBOSE 1
|
||||
|
||||
/* standard error reporting, indicating an internal error */
|
||||
static int yyerror (char* msg) {
|
||||
static void yyerror (YYSTYPE *locp, char const *msg) {
|
||||
fprintf(stderr, "htmlsax: internal parse error: %s\n", msg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Python 2/3 compatibility */
|
||||
|
|
@ -176,8 +173,8 @@ finish_html_end_tag:
|
|||
%verbose
|
||||
%debug
|
||||
%defines
|
||||
%output="htmlparse.c"
|
||||
%pure_parser
|
||||
%pure-parser
|
||||
%param {PyObject* scanner}
|
||||
|
||||
/* parser tokens, see below for what they mean */
|
||||
%token T_WAIT
|
||||
|
|
|
|||
Loading…
Reference in a new issue