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

📄 diagram.y

📁 EM算法的改进
💻 Y
字号:
%{#include "diagram.h"#undef BITS		/* prevent conflict with yacc macro */%}%token NUMBER%token DONE%%line		: diagram DONE		{ return 0; }		;diagram		: mdiagram		| sdiagram		;mdiagram	: motif		| motif '-' diagram		;sdiagram	: spacer		| spacer '-' mdiagram		;motif		: '[' NUMBER ']'						{ order[norder++] = $2; }		| '<' NUMBER '>'					{ order[norder++] = $2; }		;spacer		: NUMBER		{ space[norder] = $1; }		;%%/* read an integer of single character from the buffer named "diagram" */int yylex() {  int c;  int is_number = 0;  int number = 0;  /* parse the token */  while (((c = diagram[dptr++]) != '\0') && isdigit(c)) {    number = 10*number + c-'0';    is_number = 1;    /*printf("dptr %d c %c\n", dptr, c);*/  }  /* return the token */  if (is_number) {    dptr--;			/* put back non-number terminator */    yylval = number;    /*printf("NUMBER: returning %d\n", number);*/    return NUMBER;  } else if (c == '\0') {    /*printf("DONE: returning %d\n", DONE);*/    return DONE;  } else {    /*printf("returning %d\n", c);*/    return c;  }}void yyerror(char *s){  printf("Error parsing block diagram:\n  %s\n", diagram);}

⌨️ 快捷键说明

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