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

📄 gram.io

📁 把fortran语言编的程序转为c语言编的程序, 运行环境linux
💻 IO
字号:
  /*  Input/Output Statements */io:	  io1		{ endio(); }	;io1:	  iofmove ioctl	| iofmove unpar_fexpr		{ ioclause(IOSUNIT, $2); endioctl(); }	| iofmove SSTAR		{ ioclause(IOSUNIT, ENULL); endioctl(); }	| iofmove SPOWER		{ ioclause(IOSUNIT, IOSTDERR); endioctl(); }	| iofctl ioctl	| read ioctl		{ doio(CHNULL); }	| read infmt		{ doio(CHNULL); }	| read ioctl inlist		{ doio(revchain($3)); }	| read infmt SCOMMA inlist		{ doio(revchain($4)); }	| read ioctl SCOMMA inlist		{ doio(revchain($4)); }	| write ioctl		{ doio(CHNULL); }	| write ioctl outlist		{ doio(revchain($3)); }	| print		{ doio(CHNULL); }	| print SCOMMA outlist		{ doio(revchain($3)); }	;iofmove:   fmkwd end_spec in_ioctl	;fmkwd:	  SBACKSPACE		{ iostmt = IOBACKSPACE; }	| SREWIND		{ iostmt = IOREWIND; }	| SENDFILE		{ iostmt = IOENDFILE; }	;iofctl:  ctlkwd end_spec in_ioctl	;ctlkwd:	  SINQUIRE		{ iostmt = IOINQUIRE; }	| SOPEN		{ iostmt = IOOPEN; }	| SCLOSE		{ iostmt = IOCLOSE; }	;infmt:	  unpar_fexpr		{		ioclause(IOSUNIT, ENULL);		ioclause(IOSFMT, $1);		endioctl();		}	| SSTAR		{		ioclause(IOSUNIT, ENULL);		ioclause(IOSFMT, ENULL);		endioctl();		}	;ioctl:	  SLPAR fexpr SRPAR		{		  ioclause(IOSUNIT, $2);		  endioctl();		}	| SLPAR ctllist SRPAR		{ endioctl(); }	;ctllist:  ioclause	| ctllist SCOMMA ioclause	;ioclause:  fexpr		{ ioclause(IOSPOSITIONAL, $1); }	| SSTAR		{ ioclause(IOSPOSITIONAL, ENULL); }	| SPOWER		{ ioclause(IOSPOSITIONAL, IOSTDERR); }	| nameeq expr		{ ioclause($1, $2); }	| nameeq SSTAR		{ ioclause($1, ENULL); }	| nameeq SPOWER		{ ioclause($1, IOSTDERR); }	;nameeq:  SNAMEEQ		{ $$ = iocname(); }	;read:	  SREAD end_spec in_ioctl		{ iostmt = IOREAD; }	;write:	  SWRITE end_spec in_ioctl		{ iostmt = IOWRITE; }	;print:	  SPRINT end_spec fexpr in_ioctl		{		iostmt = IOWRITE;		ioclause(IOSUNIT, ENULL);		ioclause(IOSFMT, $3);		endioctl();		}	| SPRINT end_spec SSTAR in_ioctl		{		iostmt = IOWRITE;		ioclause(IOSUNIT, ENULL);		ioclause(IOSFMT, ENULL);		endioctl();		}	;inlist:	  inelt		{ $$ = mkchain((char *)$1, CHNULL); }	| inlist SCOMMA inelt		{ $$ = mkchain((char *)$3, $1); }	;inelt:	  lhs		{ $$ = (tagptr) $1; }	| SLPAR inlist SCOMMA dospec SRPAR		{ $$ = (tagptr) mkiodo($4,revchain($2)); }	;outlist:  uexpr		{ $$ = mkchain((char *)$1, CHNULL); }	| other		{ $$ = mkchain((char *)$1, CHNULL); }	| out2	;out2:	  uexpr SCOMMA uexpr		{ $$ = mkchain((char *)$3, mkchain((char *)$1, CHNULL) ); }	| uexpr SCOMMA other		{ $$ = mkchain((char *)$3, mkchain((char *)$1, CHNULL) ); }	| other SCOMMA uexpr		{ $$ = mkchain((char *)$3, mkchain((char *)$1, CHNULL) ); }	| other SCOMMA other		{ $$ = mkchain((char *)$3, mkchain((char *)$1, CHNULL) ); }	| out2  SCOMMA uexpr		{ $$ = mkchain((char *)$3, $1); }	| out2  SCOMMA other		{ $$ = mkchain((char *)$3, $1); }	;other:	  complex_const		{ $$ = (tagptr) $1; }	| SLPAR expr SRPAR		{ $$ = (tagptr) $2; }	| SLPAR uexpr SCOMMA dospec SRPAR		{ $$ = (tagptr) mkiodo($4, mkchain((char *)$2, CHNULL) ); }	| SLPAR other SCOMMA dospec SRPAR		{ $$ = (tagptr) mkiodo($4, mkchain((char *)$2, CHNULL) ); }	| SLPAR out2  SCOMMA dospec SRPAR		{ $$ = (tagptr) mkiodo($4, revchain($2)); }	;in_ioctl:		{ startioctl(); }	;

⌨️ 快捷键说明

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