fix for the previous fix xd
This commit is contained in:
parent
d68db68e6c
commit
20151339b2
1 changed files with 31 additions and 8 deletions
39
l2/3.lex
39
l2/3.lex
|
@ -2,6 +2,7 @@
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
bool leave_docs = false;
|
bool leave_docs = false;
|
||||||
|
bool in_docs = false;
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%x SINGLE_LINE
|
%x SINGLE_LINE
|
||||||
|
@ -19,32 +20,54 @@
|
||||||
<STRING>. { ECHO; }
|
<STRING>. { ECHO; }
|
||||||
|
|
||||||
<INITIAL>"///"|"//!" {
|
<INITIAL>"///"|"//!" {
|
||||||
|
in_docs = true;
|
||||||
if (leave_docs) {
|
if (leave_docs) {
|
||||||
ECHO;
|
ECHO;
|
||||||
} else {
|
|
||||||
BEGIN(SINGLE_LINE);
|
|
||||||
}
|
}
|
||||||
|
BEGIN(SINGLE_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
<INITIAL>"/**/" { putchar(' '); }
|
<INITIAL>"/**/" { putchar(' '); }
|
||||||
|
|
||||||
<INITIAL>"/**"|"/*!" {
|
<INITIAL>"/**"|"/*!" {
|
||||||
|
in_docs = true;
|
||||||
if (leave_docs) {
|
if (leave_docs) {
|
||||||
ECHO;
|
ECHO;
|
||||||
} else {
|
|
||||||
BEGIN(MULTI_LINE);
|
|
||||||
}
|
}
|
||||||
|
BEGIN(MULTI_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
<INITIAL>"//" { BEGIN(SINGLE_LINE); }
|
<INITIAL>"//" { BEGIN(SINGLE_LINE); }
|
||||||
<INITIAL>. { ECHO; }
|
<INITIAL>. { ECHO; }
|
||||||
<SINGLE_LINE>"\\\n" { }
|
<SINGLE_LINE>"\\\n" { }
|
||||||
<SINGLE_LINE>\n { BEGIN(INITIAL); }
|
<SINGLE_LINE>\n {
|
||||||
<SINGLE_LINE>. { }
|
if (leave_docs && in_docs) {
|
||||||
|
ECHO;
|
||||||
|
in_docs = false;
|
||||||
|
}
|
||||||
|
BEGIN(INITIAL);
|
||||||
|
}
|
||||||
|
<SINGLE_LINE>. {
|
||||||
|
if (leave_docs && in_docs) {
|
||||||
|
ECHO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
<INITIAL>"/*" { BEGIN(MULTI_LINE); }
|
<INITIAL>"/*" { BEGIN(MULTI_LINE); }
|
||||||
<MULTI_LINE>"*/" { putchar(' '); BEGIN(INITIAL); }
|
<MULTI_LINE>"*/" {
|
||||||
<MULTI_LINE>. { }
|
if (leave_docs && in_docs) {
|
||||||
|
ECHO;
|
||||||
|
in_docs = false;
|
||||||
|
} else {
|
||||||
|
putchar(' ');
|
||||||
|
}
|
||||||
|
BEGIN(INITIAL);
|
||||||
|
}
|
||||||
|
<MULTI_LINE>. {
|
||||||
|
if (leave_docs && in_docs) {
|
||||||
|
ECHO;
|
||||||
|
}
|
||||||
|
}
|
||||||
%%
|
%%
|
||||||
|
|
||||||
// single line comment
|
// single line comment
|
||||||
|
|
Loading…
Reference in a new issue