新建 文本文档 (2).txt
来自「编译器,一个小型语言的词法分析器.完成词法分析等功能,识别出一个个单词.」· 文本 代码 · 共 60 行
TXT
60 行
//FILE:tiny.1
%{
#include "globals.h"
#include"util.h"
#include"scan.h'
char token string[MAXLEN+1];
%}
digit [0-9]
number {digit}+
letter [a-zA-Z]
identifier {letter|number}+
newline \n
whitespace [\t]+
%%
"IF" {return IF;}
"then" {return THEN;}
"else" {return ELSE;}
"end" {return END;}
"repeat" {return REPEAT;}
"until" {return UNTIL;}
"read" {return READ;}
"write" {return WRITE;}
":=" {return ASSIGN;}
"=" {return EQ;}
"<" {return LT;}
"+" {return PLUS;}
"*" {return TIMES;}
"-" {return MINUS;}
";" {return SEMI;}
"(" {return LPAREN;}
")" {return RPAREN;}
{number} {return NUM;}
{identifier} {return ID;}
{newline} {lineno++}
{whitespace} {/*skip whitespace*/}
"{ {char c;
do
{c=input();
if(c=='\n') lineno++;
}while(c!='}');
}
{return ERROR;}
%%
Token Type get Token(void)
{ static int firstTime=TRUE;
TokenType currentToken;
if(firstTime)
{firstTime=FALSE;
lineno++;
yyin=source;
yyout=listing;}
currentToken=yylex();
strncpy(tlkenString,yytex,MAXLEN);
if(TraceScan){
fprintf{ listing,"\t%d:",lineno);
printToken(currentToken,takenString);
}
return currentToken;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?