📄 lab3.l
字号:
%{
#include "lab3.h"
#include "lab3.tab.h"
lineno = 1;
%}
/* name definition */
delim [ \t]
ws {delim}+
letter [A-Za-z]
digit [0-9]
id {letter}({letter}|{digit})*
number {digit}+
char_const '(.|\\n|\\t)'
string \"(.)*\"
comment (\/\*([^*]|\n|(\*+([^*/]|\n)))*\*+\/)|(\/\/[^\n]*)
%%
"\n" { lineno++; }
{comment} {
int i;
for (i = 0; yytext[i] != '\0'; i++) {
if (yytext[i] == '\n') {
lineno++;
}
}
}
{ws} { /* do nothing and return nothing */ }
"__cdecl" { return (CDECL); }
"__stdcall" { return (STDCALL); }
"char" { return (CHAR); }
"else" { return (ELSE); }
"if" { return (IF); }
"int" { return (INT); }
"return" { return (RETURN); }
"void" { return (VOID); }
"while" { return (WHILE); }
{id} {
yylval.id = InsertID(yytext);
return (ID);
}
{number} {
yylval.id = InsertID(yytext);
return (NUM);
}
{char_const} {
yylval.id = InsertID(yytext);
return (CHAR_LITERAL);
}
{string} {
yylval.id = InsertID(yytext);
return (STRING_LITERAL);
}
"..." { return (ELLIPSIS); }
"!=" {
strcpy(yylval.op, yytext);
return (NE);
}
"<" {
strcpy(yylval.op, yytext);
return (LT);
}
"<=" {
strcpy(yylval.op, yytext);
return (LE);
}
"==" {
strcpy(yylval.op, yytext);
return (EQ);
}
">" {
strcpy(yylval.op, yytext);
return (GT);
}
">=" {
strcpy(yylval.op, yytext);
return (GE);
}
";" { return (';'); }
"{" { return ('{'); }
"}" { return ('}'); }
"," { return (','); }
"=" { return ('='); }
"(" { return ('('); }
")" { return (')'); }
"[" { return ('['); }
"]" { return (']'); }
"+" { return ('+'); }
"-" { return ('-'); }
"*" { return ('*'); }
"/" { return ('/'); }
"%" { return ('%'); }
. { yyerror("unknown character"); }
%%
int yywrap()
{
return (1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -