2 ms·
Part 1/2 /* html to sql example */ #define jmp (yy_start) = 1 + 2 * int fileno (FILE *); FILE *f; int printf(const char *__restrict, ...);
by 1vuio0pswjnm7 2y ago
Part 1/2
/* html to sql example */
#define jmp (yy_start) = 1 + 2 *
int fileno (FILE *);
FILE *f;
int printf(const char *__restrict, ...);
int w,x,y,z;
int setenv (const char *, const char *, int);
char text[1024];
#include <time.h>
char *strptime(const char *s, const char *f, struct tm *tm);
struct tm t;
%option nounput noinput noyywrap
%s MODE1
%%
/*```````````input:1-column list```````````*/
^[0-9]+\n {
fwrite("https://hacker-news.firebaseio.com/v0/item/",1,43,yyout);
fwrite(yytext,1,yyleng-1,yyout);
fwrite(".json\n",1,6,yyout);
}
/*```````````input:json```````````*/
\"id\":[0-9]+ {
fwrite("https://hacker-news.firebaseio.com/v0/item/",1,43,yyout);
for(x=5;x<yyleng;x++)
putc(yytext[x],yyout);
fwrite(".json\n",1,6,yyout);
}
\"kids\":\[ z++;
\] if(z)z=0;
[0-9]+ if(z){
fwrite("https://hacker-news.firebaseio.com/v0/item/",1,43,yyout);
fwrite(yytext,1,yyleng,yyout);
fwrite(".json\n",1,6,yyout);
}
/*```````````input:html```````````*/
\74html[ ]lang= jmp MODE1;
/*```````````id```````````*/
<MODE1>[ ]id='[0-9]+' {
fwrite("INSERT or IGNORE INTO t1 VALUES(",1,32,stdout);
for(x=5;x<yyleng-1;x++)
putc(yytext[x],yyout);
y=yyleng-6;
fwrite(",'",1,2,yyout);
w=0;
}
/*```````````status```````````*/
/* 1 [ok] */
/* 2 \[dupe\] */
/* 3 \[dead\] */
/* 4 \[flagged\] */
/* 5 \[dupe\][ ]{2}\[dead\] */
/* 6 \[flagged\][ ]{2}\[dead\] */
/* 7 \[flagged\][ ]{2}\[dupe\] omit */
/* 8 \[flagged\][ ]{2}\[dupe\][ ]\[dead\] omit */
/*```````````url```````````*/
<MODE1>class=\"titleline\">[ ]\[flagged\][ ]{2}\[dead\][ ]<a[ ]href=\"[^\"]+ if(!z){
fwrite("[flagged] [dead]','",1,19,yyout);
z=6;for(x=46;x<yyleng;x++)putc(yytext[x],yyout);
fwrite("','",1,3,yyout);
}
<MODE1>class=\"titleline\">[ ]\[dupe\][ ]{2}\[dead\][ ]<a[ ]href=\"[^\"]+ if(!z){
fwrite("[dupe] [dead]','",1,16,yyout);
z=5;for(x=43;x<yyleng;x++)putc(yytext[x],yyout);
fwrite("','",1,3,yyout);
}
<MODE1>class=\"titleline\">[ ]\[flagged\][ ]<a[ ]href=\"[^\"]+ if(!z){
fwrite("[flagged]','",1,12,yyout);
z=4;for(x=38;x<yyleng;x++)putc(yytext[x],yyout);
fwrite("','",1,3,yyout);
}
<MODE1>class=\"titleline\">[ ]\[dead\][ ]<a[ ]href=\"[^\"]+ if(!z){
fwrite("[dead]','",1,9,yyout);
z=3;for(x=35;x<yyleng;x++)putc(yytext[x],yyout);
fwrite("','",1,3,yyout);
}
<MODE1>class=\"titleline\">[ ]\[dupe\][ ]<a[ ]href=\"[^\"]+ if(!z){
fwrite("[dupe]','",1,9,yyout);
z=2;for(x=35;x<yyleng;x++)putc(yytext[x],yyout);
fwrite("','",1,3,yyout);
}
<MODE1>class=\"titleline\"><a[ ]href=\"[^\"]+ if(!z){
fwrite("[ok]','",1,7,yyout);
z=1;for(x=27;x<yyleng;x++)
putc(yytext[x],yyout);
fwrite("','",1,3,yyout);
}
- 1vuio0pswjnm7 2y agoNo need for printf function or text buffer.