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

📄 eqn.y

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 Y
字号:
%term	CONTIG QTEXT SPACE THIN TAB%term	MATRIX LCOL CCOL RCOL COL ABOVE%term	MARK LINEUP%term	SUM INT PROD UNION INTER%term	DEFINE TDEFINE NDEFINE DELIM GSIZE GFONT INCLUDE SPACE IFDEF%term	DOTEQ DOTEN%right	FROM TO%left	OVER SQRT%right	SUP SUB%right	SIZE FONT ROMAN ITALIC BOLD FAT%right	UP DOWN BACK FWD%left	LEFT RIGHT%right	DOT DOTDOT HAT TILDE BAR LOWBAR HIGHBAR UNDER VEC DYAD UTILDE%{#include "e.h"int	yylex(void);%}%%stuff	: eqn 		{ putout($1); }	| error		{ ERROR "syntax error" WARNING; }	/* should be SYNTAX */	|		{ eqnreg = 0; }	;eqn	: box	| eqn box	{ eqnbox($1, $2, 0); }	| eqn lineupbox	{ eqnbox($1, $2, 1); }	| LINEUP	{ lineup(0); }	;lineupbox: LINEUP box	{ $$ = $2; lineup(1); }	;sbox	: SUP box	%prec SUP	{ $$ = $2; }	|		%prec SUP	{ $$ = 0; }	;tbox	: TO box	%prec TO	{ $$ = $2; }	|		%prec FROM	{ $$ = 0; }	;box	: '{' eqn '}'	{ $$ = $2; }	| QTEXT		{ text(QTEXT, (char *) $1); }	| CONTIG	{ text(CONTIG, (char *) $1); }	| SPACE		{ text(SPACE, (char *) 0); }	| THIN		{ text(THIN, (char *) 0); }	| TAB		{ text(TAB, (char *) 0); }	| SUM		{ funny(SUM); }	| PROD		{ funny(PROD); }	| UNION		{ funny(UNION); }	| INTER		{ funny(INTER); } 	| box OVER box			{ boverb($1, $3); }	| MARK box			{ mark($2); }	| size box	%prec SIZE	{ size($1, $2); }	| font box	%prec FONT	{ font($1, $2); }	| FAT box			{ fatbox($2); }	| SQRT box			{ sqrt($2); }	| box SUB {ps -= deltaps;} box sbox	%prec SUB	{ subsup($1, $4, $5); }	| box SUP {ps -= deltaps;} box		%prec SUP	{ subsup($1, 0, $4); }	| int SUB {ps -= deltaps;} box sbox	%prec SUB	{ integral($1, $4, $5); }	| int SUP {ps -= deltaps;} box		%prec SUP	{ integral($1, 0, $4); }	| int					{ integral($1, 0, 0); }	| box FROM {ps -= deltaps;} box tbox	%prec FROM	{ fromto($1, $4, $5); }	| box TO {ps -= deltaps;} box		%prec TO	{ fromto($1, 0, $4); }	| left eqn right			{ paren($1, $2, $3); }	| left eqn 				{ paren($1, $2, 0); }	| box diacrit			{ diacrit($1, $2); }	| fwd box	%prec UP	{ move(FWD, $1, $2); }	| up box	%prec UP	{ move(UP, $1, $2); }	| back box	%prec UP	{ move(BACK, $1, $2); }	| down box	%prec UP	{ move(DOWN, $1, $2); }	| column			{ pile($1); ct = $1; }	| MATRIX {$$=ct;} '{' collist '}'	{ matrix($2); ct = $2; }	;int	: INT		{ setintegral(); }	;fwd	: FWD text	{ $$ = atoi((char *) $1); } ;up	: UP text	{ $$ = atoi((char *) $1); } ;back	: BACK text	{ $$ = atoi((char *) $1); } ;down	: DOWN text	{ $$ = atoi((char *) $1); } ;diacrit	: HAT		{ $$ = HAT; }	| VEC		{ $$ = VEC; }	| DYAD		{ $$ = DYAD; }	| BAR		{ $$ = BAR; }	| LOWBAR	{ $$ = LOWBAR; }	| HIGHBAR	{ $$ = HIGHBAR; }	| UNDER		{ $$ = UNDER; }	/* underbar */	| DOT		{ $$ = DOT; }	| TILDE		{ $$ = TILDE; }	| UTILDE	{ $$ = UTILDE; }	| DOTDOT	{ $$ = DOTDOT; } /* umlaut = double dot */	;left	: LEFT text	{ $$ = ((char *)$2)[0]; }	| LEFT '{'	{ $$ = '{'; }	;right	: RIGHT text	{ $$ = ((char *)$2)[0]; }	| RIGHT '}'	{ $$ = '}'; }	;collist	: column	| collist column	;column	: col '{' list '}'				{ column($1, DEFGAP); }	| col text {$$=atoi((char*)$2);} '{' list '}'	{ column($1, $3); }	;col	: LCOL		{ $$ = startcol(LCOL); }	| CCOL		{ $$ = startcol(CCOL); }	| RCOL		{ $$ = startcol(RCOL); }	| COL		{ $$ = startcol(COL); }	;list	: eqn			{ lp[ct++] = $1; }	| list ABOVE eqn	{ lp[ct++] = $3; }	;size	: SIZE text	{ $$ = ps; setsize((char *) $2); }	;font    : ROMAN         { static char R[]="R"; setfont(R); }        | ITALIC        { static char I[]="I"; setfont(I); }        | BOLD          { static char B[]="B"; setfont(B); }        | FONT text     { setfont((char *)$2); }        ;text	: CONTIG	| QTEXT	;%%

⌨️ 快捷键说明

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