📄 scan.l
字号:
%{
#include <iostream.h>
#include "RT.h"
#include "gram.tab.h"
%}
ws [ \t]+
comment #[^\n]*
id [a-zA-Z][a-zA-Z0-9]*
nl [\r\n]
int "-"?[0-9]+
dubl "-"?[0-9]+"."[0-9]+
%%
{ws} ;
{comment} ;
{dubl} { yylval.dbl = strtod((const char *)yytext, NULL);
return DBLCONST;
}
{int} { yylval.number = atoi((const char *)yytext);
return INTCONST;
}
"(" |
")" |
"," |
"<" |
">" |
"&" |
"~" |
"=" { return yytext[0]; }
"<>" { return opNE; }
"<=" { return opLE; }
">=" { return opGE; }
create { return CREATE; }
open { return OPEN; }
close { return CLOSE; }
drop { return DROP; }
insert { return INSERT; }
delete { return DELETE; }
select { return SELECT; }
debug { return DEBUG; }
dump { return DUMP; }
help { return HELP; }
from { return FROM; }
and { return AND; }
or { return OR; }
not { return NOT; }
where { return WHERE; }
quit { return QUIT; }
{id} { yylval.string = strdup((const char *)yytext); return ID; }
{nl} { return NL; }
<<EOF>> { yyterminate(); }
. { cerr << "Lexical error in input string: invalid character\n";
return ERROR; }
%%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -