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

📄 scan.l

📁 请在解压时看说明文档 内有详细说明
💻 L
字号:
%{#include <stdio.h>#include "y.tab.h"void count();void prword();int stack[200];int size = 0;%}digit [0-9]+float [+-]?[0-9]*\.[0-9]+([eE][+-]?[0-9]+)? id  [a-zA-Z][a-zA-Z0-9]*math  >|>=|==|<>|<|<=%%program {count();return PROGRAM;}begins {count();return BEGINS;}end {count();return END;}const {count();return CONST;}";" {count();return ';';}boolean {count();return BOOLEAN;}true {count();return TRUE;}false {count();return FALSE;}int {count();return INT;}float {count();return FLOAT;}array {count();return ARRAY;}"[" {count();return '[';}"]" {count();return ']';}"," {count();return ',';}":=" {count();return ASSIGN;}"(" {count();return '(';}")" {count();return ')';}"=" {count();return '=';}if {count();return IF;}then {count();return THEN;}else {count();return ELSE;}while {count();return WHILE;}do {count();return DO;}repeat {count();return REPEAT;}until {count();return UNTIL;}for {count();return FOR;}to {count();return TO;}read {count();return READ;}write {count();return WRITE;}return {count();return RETURN;}"+" {count();return '+';}"-" {count();return '-';}"*" {count();return '*';}"/" {count();return '/';}{math} {count();return MATH;}and {count();return AND;}or {count();return OR;}not {count();return NOT;}{digit} {count();return ICON;}{float} {count();return FCON;}{id} {count();return ID;}":" {count();return ':';}[ \t\v\n\f]	{ count(); }.			%%yywrap(){	return(1);}comment(){	char c, c1;loop:	while ((c = input()) != '*' && c != 0)		putchar(c);	if ((c1 = input()) != '/' && c != 0)	{		unput(c1);		goto loop;	}	if (c != 0)		putchar(c1);}int column = 0;void count(){	int i;	for (i = 0; yytext[i] != '\0'; i++)		if (yytext[i] == '\n')			column = 0;		else if (yytext[i] == '\t')			column += 8 - (column % 8);		else			column++;	ECHO;}void prword(int wd){	switch(wd) 	{		case 201:printf("program  ");break;		case 202:printf("begins ");break;		case 203:printf("end ");break;		case 204:printf("const ");break;		case 205:printf("; ");break;		case 206:printf("boolean ");break;		case 207:printf("true ");break;		case 208:printf("flase ");break;		case 209:printf("int ");break;		case 210:printf("float");break;		case 211:printf("array ");break;		case 212:printf("[ ");break;		case 213:printf("] ");break;		case 214:printf(", ");break;		case 215:printf(":= ");break;		case 216:printf("( ");break;		case 217:printf(") ");break;		case 218:printf("= ");break;		case 219:printf("if ");break;		case 220:printf("then ");break;		case 221:printf("else ");break;		case 222:printf("while ");break;		case 223:printf("do ");break;		case 224:printf("repeat ");break;		case 225:printf("until ");break;		case 226:printf("for ");break;		case 227:printf("to ");break;		case 228:printf("read ");break;		case 229:printf("write ");break;		case 230:printf("return ");break;		case 231:printf("+ ");break;		case 232:printf("- ");break;		case 233:printf("* ");break;		case 234:printf("/ ");break;		case 235:printf("math ");break;		case 236:printf("and ");break;		case 237:printf("or ");break;		case 238:printf("not ");break;		case 239:printf("icon ");break;		case 240:printf("fcon ");break;		case 241:printf("id ");break;		case 242:printf(": ");break;		case 243:printf("declaration ");break;		case 244:printf("condef ");break;		case 245:printf("constv ");break;		case 246:printf("vardec ");break;		case 247:printf("type ");break;		case 248:printf("idtable ");break;		case 249:printf("arraytable ");break;		case 250:printf("dimension ");break;		case 251:printf("funcdec ");break;		case 252:printf("procdec ");break;		case 253:printf("funcdef ");break;		case 254:printf("procdef ");break;		case 255:printf("parat ");break;		case 256:printf("sentences ");break;		case 257:printf("sentence ");break;		case 258:printf("vartable ");break;		case 259:printf("exptable ");break;		case 260:printf("exp ");break;		case 261:printf("var ");break;		case 262:printf("func ");break;		case 263:printf("procc ");break;		case 264:printf("para ");break;			}} 

⌨️ 快捷键说明

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