l.l

来自「C语言的语法分析器」· L 代码 · 共 46 行

L
46
字号
%{

#include <stdio.h>
#include "y.tab.h"

%}

lower   [a-z]
letter	[A-Za-z]
digit	[0-9]
id	({letter}|_)({letter}|{digit}|_)*
number	-?{digit}+(\.{digit}+)?([E\e][+\-]?{digit}+)?
comment	\/\*(\*[^/]|[^*])*\*\/
chart \'(.|\\{lower})\'
string \"([^"]|\\\")*\"

%%

[ \t\v\n]+	;
{comment}	;

void		{ return (VOID); }
int		{ return (INT); }
char		{ return (CHAR); }
return		{ return (RETURN); }
if		{ return (IF); }
else		{ return (ELSE); }
while		{ return (WHILE); }

{id} 		{ return (ID); }

{number} 	{ return (NUMBER); }

{chart} 	{ return (CHART); }

{string} 	{ return (STRING); }

"<="|"<"|">="|">"|"=="|"!=" { return (RELOP); }

. 		{ return (yytext[0]); }

%%

yywrap()
{ return 1; }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?