⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 词法分析.l

📁 PL语言语法分析器
💻 L
字号:
%{
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int yylinenumber=1;                        /*标记当前分析行号*/
%}

INDENTIFIER [a-zA-Z_][a-zA-Z_0-9]*
INTEGER [1-9][0-9]*
SPACE   [ \t]+


/*词法规则*/

%%
"if"|"IF"     {return IF;}
"then"|"THEN"   {return THEN;}
"while"|"WHILE"  {return WHILE;}
"do"|"DO"  {return DO;}
"read"|"READ"  {return READ;}
"write"|"WRITE"  {return WRITE;}
"call"|"CALL"  {return CALL;}
"begin"|"BEGIN"  {return BEG;}
"end"|"END"  {return END;}
"const"|"CONST"  {return CONST;}
"var"|"VAR"  {return VAR;}
"procedure"|"PROCEDURE"  {return PROCEDURE;}
"odd"|"ODD"  {return ODD;}
","    {return COMMA;}
"."    {return DOT;}
"="    {return ASSIGN;}
":="      {return DASSIGN;}
"+"      {return ADD;}
"-"      {return MINUS;}
"*"      {return MULTIPLY;}
"/"      {return DIVIDE;}
"#"      {return JING;}
"<"      {return SMALL;}
">"      {return BIG;}
"<="     {return SM_EQ;}
">="     {return BI_EQ;}
";"      {return SEMICOLON;}
"("      {return LBRACKET;}
")"      {return RBRACKET;}

{INTEGER}|"0"   {return INTEGER;}
{INDENTIFIER}  {return INDENTIFIER;}             /* 标识符*/
"\n"    {yylinenumber++;}       /* 行数加一 */
{SPACE}   {}                     /* 空格 */
.        {return ERRORTOKEN;}     /* 其它的为非法输入 */

%%


int yywrap()
{
    return 1;
}

⌨️ 快捷键说明

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