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

📄 lexes.mll

📁 用ocaml编写的pascal编译程序
💻 MLL
字号:
{open Parser}
let letter=['a'-'z' 'A'-'Z']
let pdigit=['1'-'9']
let digit=['0'-'9']
let ident=letter(letter|'_'|digit)*
let number=pdigit(digit)*|'0'

rule token=parse
[' ''\t''\n']{token lexbuf}
|"true"     {TRUE}
|"false"    {FALSE}
|'+'        {ADD}
|'-'        {SUB}
|'*'        {MUL}
|'/'        {DIV}
|"<="       {LEQ}
|'<'        {LES}
|'>'        {GRT}
|">="       {GEQ}
|'='        {EQL}
|"<>"       {NEQ}
|"and"      {AND}
|"or"       {OR}
|"not"      {NOT}
|":="       {AFF}
|'('        {LPA}
|')'        {RPA}
|'['        {LCOR}
|']'        {RCOR}
|','        {VIRG}
|';'        {PVIRG}
|'.'        {PT}
|':'        {DPT}
|"if"       {IF}
|"then"     {THEN}
|"else"     {ELSE}
|"while"    {WHILE}
|"do"       {DO}
|"begin"    {BEGIN}
|"end"      {END}

|"integer"  {INTEGER}
|"boolean"  {BOOLEAN}
|"array"    {ARRAY}
|"of"       {OF}
|"var"      {VAR}
|"proc"     {PROC}
|"program"  {PROGRAM}
|ident      {IDENT(Lexing.lexeme lexbuf)}
|number     {NUMBER(int_of_string(Lexing.lexeme lexbuf))}

⌨️ 快捷键说明

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