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

📄 verilog-lex

📁 將Verilog設計轉成VHDL設計的程式
💻
字号:
%{#include <string.h>#include "../classes/List.h"#include "../classes/IODecl.h"#include "../classes/Module.h"#include "../classes/Util.h"#include "../classes/BitVec.h"#include "verilog-y.tab.h"extern int yylineno;extern YYSTYPE yylval;void yy_char_ptr(char *string);%}Space       [\n\r\t\b ]Alpha       [a-zA-Z]AlphaU      [a-zA-Z_]AlphaNum    [a-zA-Z0-9]AlphaNumU   [a-zA-Z0-9_]Digit       [0-9]DigitU      [0-9_]Number      {Digit}{DigitU}*Decimal     ({Number})?'[dD]{Number}Octal       ({Number})?'[oO][0-7xXzZ?][0-7xXzZ?_]*Hexa	    ({Number})?'[hH][0-9a-fA-FxXzZ?][0-9a-fA-FxXzZ?_]*Binary      ({Number})?'[bB][01xXzZ?][01xXzZ?_]*%%{Space}+		{ continue; }"/*"(.|\n)*"*/"       	{ continue; }"//"[^\n]*\n 	   	{ continue; }">="               	{ return VL_GEQ;  }"=<"               	{ return VL_LEQ;  }"&&"               	{ return VL_LOGAND;    }"||"               	{ return VL_LOGOR;     }"==="              	{ return VL_CASEEQUALITY;  }"=="               	{ return VL_LOGEQUALITY;   }"!=="              	{ return VL_CASEINEQUALITY; }"!="               	{ return VL_LOGINEQUALITY; }"^~"               	{ return VL_LOGXNOR; }"~^"               	{ return VL_LOGXNOR; }"~&"               	{ return VL_LOGNAND;      }"~|"               	{ return VL_LOGNOR;       }"<<"               	{ return VL_LSHIFT;      }">>"               	{ return VL_RSHIFT;      }"?:"               	{ return VL_CONDITIONAL; }\"[^"]*\"          	{ return VL_STRING; }always             	{ return VL_ALWAYS; }"*>"               	{ return VL_ALLPATH; }and                	{ return VL_AND; }assign             	{ return VL_ASSIGN; }begin              	{ return VL_BEGIN; }buf                	{ return VL_BUF; }bufif0             	{ return VL_BUFIF0; }bufif1             	{ return VL_BUFIF1; }case               	{ return VL_CASE; }casex              	{ return VL_CASEX; }casez              	{ return VL_CASEZ; }cmos               	{ return VL_CMOS; }deassign           	{ return VL_DEASSIGN; }default            	{ return VL_DEFAULT; }defparam           	{ return VL_DEFPARAM; }disable            	{ return VL_DISABLE; }edge               	{ return VL_EDGE; }else               	{ return VL_ELSE; }end                	{ return VL_END; }endcase            	{ return VL_ENDCASE; }endfunction        	{ return VL_ENDFUNCTION; }endmodule          	{ return VL_ENDMODULE; }endprimitive       	{ return VL_ENDPRIMITIVE; }endspecify         	{ return VL_ENDSPECIFY; }endtask            	{ return VL_ENDTASK; }event              	{ return VL_EVENT; }for                	{ return VL_FOR; }forever            	{ return VL_FOREVER; }fork               	{ return VL_FORK; }function           	{ return VL_FUNCTION; }highz0             	{ return VL_HIGHZ0; }highz1             	{ return VL_HIGHZ1; }if                 	{ return VL_IF; }initial            	{ return VL_INITIAL; }inout              	{ return VL_INOUT; }input             	{ return VL_INPUT; }integer            	{ return VL_INTEGER; }join               	{ return VL_JOIN; }large              	{ return VL_LARGE; }"=>"               	{ return VL_LEADTO; }macromodule        	{ return VL_MACROMODULE; }medium             	{ return VL_MEDIUM; }module             	{ return VL_MODULE; }"<="               	{ return VL_NBASSIGN;  }nand              	{ return VL_NAND; }negedge           	{ return VL_NEGEDGE; }nmos              	{ return VL_NMOS; }nor               	{ return VL_NOR; }not             	{ return VL_NOT; }notif0			{ return VL_NOTIF0; }notif1             	{ return VL_NOTIF1; }or                 	{ return VL_OR; }output             	{ return VL_OUTPUT; }parameter          	{ return VL_PARAMETER; }pmos               	{ return VL_PMOS; }posedge            	{ return VL_POSEDGE; }primitive          	{ return VL_PRIMITIVE; }pull0              	{ return VL_PULL0; }pull1              	{ return VL_PULL1; }pulldown           	{ return VL_PULLDOWN; }pullup             	{ return VL_PULLUP; }rcmos              	{ return VL_RCMOS; }real               	{ return VL_REAL; }reg                	{ return VL_REG; }repeat             	{ return VL_REPEAT; }"->"               	{ return VL_RIGHTARROW; }rnmos              	{ return VL_RNMOS; }rpmos              	{ return VL_RPMOS; }rtran              	{ return VL_RTRAN; }rtranif0           	{ return VL_RTRANIF0; }rtranif1           	{ return VL_RTRANIF1; }scalered           	{ return VL_SCALARED; }small              	{ return VL_SMALL; }specify            	{ return VL_SPECIFY; }specparam          	{ return VL_SPECPARAM; }strong0            	{ return VL_STRONG0; }strong1            	{ return VL_STRONG1; }supply0            	{ return VL_SUPPLY0; }supply1            	{ return VL_SUPPLY1; }swire              	{ return VL_SWIRE; }task               	{ return VL_TASK; }time               	{ return VL_TIME; }tran               	{ return VL_TRAN; }tranif0            	{ return VL_TRANIF0; }tranif1            	{ return VL_TRANIF1; }tri                	{ return VL_TRI; }tri0               	{ return VL_TRI0; }tri1               	{ return VL_TRI1; }triand             	{ return VL_TRIAND; }trior              	{ return VL_TRIOR; }vectored           	{ return VL_VECTORED; }wait               	{ return VL_WAIT; }wand               	{ return VL_WAND; }weak0              	{ return VL_WEAK0; }weak1              	{ return VL_WEAK1; }while              	{ return VL_WHILE; }wire               	{ return VL_WIRE; }wor                	{ return VL_WOR; }xnor               	{ return VL_XNOR; }xor                	{ return VL_XOR; }{AlphaU}{AlphaNumU}* 	{ 				yy_char_ptr(yytext);				return VL_ID; 			}{Number}*\.{Number}+ 	{ 			  	yy_char_ptr(clean(yytext));			  	return VL_RNUMBER; 			}{Number}+\.{Number}* 	{ 				yy_char_ptr(clean(yytext));				return VL_RNUMBER; 			}{Number}             	{ 				yy_char_ptr(clean(yytext));				return VL_INUMBER; 			}{Binary}		{ 				yylval.char_ptr=binary(yytext);				return VL_BNUMBER; 			}{Decimal}		{ 				yylval.char_ptr=decimal(yytext);				return VL_DNUMBER; 			}	{Octal}			{ 				yylval.char_ptr=octal(yytext);				return VL_ONUMBER; 			}{Hexa}			{ 				yylval.char_ptr=hexa(yytext);				return VL_HNUMBER; 			}.			{ return yytext[0]; }%%void yy_char_ptr(char *string){	yylval.char_ptr=(char*)calloc(strlen(string)+1,sizeof(char));	strcpy(yylval.char_ptr,string);	yylval.char_ptr[strlen(string)]='\0';}

⌨️ 快捷键说明

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