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

📄 vparselex.l

📁 Verilog Parser in Perl
💻 L
📖 第 1 页 / 共 3 页
字号:
  "cell"		{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config  "config"		{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config  "design"		{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config  "endconfig"		{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config  "incdir"		{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config  "include"		{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config  "instance"		{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config  "liblist"		{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config  "library"		{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config  "use"			{ FL; VALTEXT; CALLBACK(keywordCb); return ygenKEYWORD; } // config}  /* Verilog 2005 */<V05,S05>{  /*     Keywords */  "uwire"		{ FL; VALTEXT; CALLBACK(keywordCb); return yWIRE; }}  /* System Verilog 2005 */<S05>{  /*     System Tasks */  "$root"		{ FL; VALTEXT; CALLBACK(keywordCb); return yD_ROOT; }  "$unit"		{ FL; VALTEXT; CALLBACK(keywordCb); return yD_UNIT; }  /*     Keywords */  "alias"		{ FL; VALTEXT; CALLBACK(keywordCb); return yALIAS; }  "always_comb"		{ FL; VALTEXT; CALLBACK(keywordCb); return yALWAYS; }  "always_ff"		{ FL; VALTEXT; CALLBACK(keywordCb); return yALWAYS; }  "always_latch"	{ FL; VALTEXT; CALLBACK(keywordCb); return yALWAYS; }  "assert"		{ FL; VALTEXT; CALLBACK(keywordCb); return yASSERT; }  "assume"		{ FL; VALTEXT; CALLBACK(keywordCb); return yASSUME; }  "before"		{ FL; VALTEXT; CALLBACK(keywordCb); return yBEFORE; }  "bind"		{ FL; VALTEXT; CALLBACK(keywordCb); return yBIND; }  "bins"		{ FL; VALTEXT; CALLBACK(keywordCb); return yBINS; }  "binsof"		{ FL; VALTEXT; CALLBACK(keywordCb); return yBINSOF; }  "bit"			{ FL; VALTEXT; CALLBACK(keywordCb); return yBIT; }  "break"		{ FL; VALTEXT; CALLBACK(keywordCb); return yBREAK; }  "byte"		{ FL; VALTEXT; CALLBACK(keywordCb); return yBYTE; }  "chandle"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCHANDLE; }  "class"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCLASS; }  "clocking"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCLOCKING; }  "const"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCONST; }  "constraint"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCONSTRAINT; }  "context"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCONTEXT; }  "continue"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCONTINUE; }  "cover"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCOVER; }  "covergroup"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCOVERGROUP; }  "coverpoint"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCOVERPOINT; }  "cross"		{ FL; VALTEXT; CALLBACK(keywordCb); return yCROSS; }  "dist"		{ FL; VALTEXT; CALLBACK(keywordCb); return yDIST; }  "do"			{ FL; VALTEXT; CALLBACK(keywordCb); return yDO; }  "endclass"		{ FL; VALTEXT; CALLBACK(keywordCb); return yENDCLASS; }  "endclocking"		{ FL; VALTEXT; CALLBACK(keywordCb); return yENDCLOCKING; }  "endgroup"		{ FL; VALTEXT; CALLBACK(keywordCb); return yENDGROUP; }  "endinterface"	{ FL; VALTEXT; CALLBACK(keywordCb); return yENDINTERFACE; }  "endpackage"		{ FL; VALTEXT; CALLBACK(keywordCb); return yENDPACKAGE; }  "endprogram"		{ FL; VALTEXT; CALLBACK(keywordCb); return yENDPROGRAM; }  "endproperty"		{ FL; VALTEXT; CALLBACK(keywordCb); return yENDPROPERTY; }  "endsequence"		{ FL; VALTEXT; CALLBACK(keywordCb); return yENDSEQUENCE; }  "enum"		{ FL; VALTEXT; CALLBACK(keywordCb); return yENUM; }  "expect"		{ FL; VALTEXT; CALLBACK(keywordCb); return yEXPECT; }  "export"		{ FL; VALTEXT; CALLBACK(keywordCb); return yEXPORT; }  "extends"		{ FL; VALTEXT; CALLBACK(keywordCb); return yEXTENDS; }  "extern"		{ FL; VALTEXT; CALLBACK(keywordCb); return yEXTERN; }  "final"		{ FL; VALTEXT; CALLBACK(keywordCb); return yFINAL; }  "first_match"		{ FL; VALTEXT; CALLBACK(keywordCb); return yFIRST_MATCH; }  "foreach"		{ FL; VALTEXT; CALLBACK(keywordCb); return yFOREACH; }  "forkjoin"		{ FL; VALTEXT; CALLBACK(keywordCb); return yFORKJOIN; }  "iff"			{ FL; VALTEXT; CALLBACK(keywordCb); return yIFF; }  "ignore_bins"		{ FL; VALTEXT; CALLBACK(keywordCb); return yIGNORE_BINS; }  "illegal_bins"	{ FL; VALTEXT; CALLBACK(keywordCb); return yILLEGAL_BINS; }  "import"		{ FL; VALTEXT; CALLBACK(keywordCb); return yIMPORT; }  "inside"		{ FL; VALTEXT; CALLBACK(keywordCb); return yINSIDE; }  "int"			{ FL; VALTEXT; CALLBACK(keywordCb); return yINT; }  "interface"		{ FL; VALTEXT; CALLBACK(keywordCb); return yINTERFACE; }  "intersect"		{ FL; VALTEXT; CALLBACK(keywordCb); return yINTERSECT; }  "join_any"		{ FL; VALTEXT; CALLBACK(keywordCb); return yJOIN; }  "join_none"		{ FL; VALTEXT; CALLBACK(keywordCb); return yJOIN; }  "local"		{ FL; VALTEXT; CALLBACK(keywordCb); return yLOCAL; }  "logic"		{ FL; VALTEXT; CALLBACK(keywordCb); return yLOGIC; }  "longint"		{ FL; VALTEXT; CALLBACK(keywordCb); return yLONGINT; }  "matches"		{ FL; VALTEXT; CALLBACK(keywordCb); return yMATCHES; }  "modport"		{ FL; VALTEXT; CALLBACK(keywordCb); return yMODPORT; }  "new"			{ FL; VALTEXT; CALLBACK(keywordCb); return yNEW; }  "null"		{ FL; VALTEXT; CALLBACK(keywordCb); return yNULL; }  "package"		{ FL; VALTEXT; CALLBACK(keywordCb); return yPACKAGE; }  "packed"		{ FL; VALTEXT; CALLBACK(keywordCb); return yPACKED; }  "priority"		{ FL; VALTEXT; CALLBACK(keywordCb); return yPRIORITY; }  "program"		{ FL; VALTEXT; CALLBACK(keywordCb); return yPROGRAM; }  "property"		{ FL; VALTEXT; CALLBACK(keywordCb); return yPROPERTY; }  "protected"		{ FL; VALTEXT; CALLBACK(keywordCb); return yPROTECTED; }  "pure"		{ FL; VALTEXT; CALLBACK(keywordCb); return yPURE; }  "rand"		{ FL; VALTEXT; CALLBACK(keywordCb); return yRAND; }  "randc"		{ FL; VALTEXT; CALLBACK(keywordCb); return yRANDC; }  "randcase"		{ FL; VALTEXT; CALLBACK(keywordCb); return yRANDCASE; }  "randomize"		{ FL; VALTEXT; CALLBACK(keywordCb); return yRANDOMIZE; }  "randsequence"	{ FL; VALTEXT; CALLBACK(keywordCb); return yRANDSEQUENCE; }  "ref"			{ FL; VALTEXT; CALLBACK(keywordCb); return yREF; }  "return"		{ FL; VALTEXT; CALLBACK(keywordCb); return yRETURN; }  "sequence"		{ FL; VALTEXT; CALLBACK(keywordCb); return ySEQUENCE; }  "shortint"		{ FL; VALTEXT; CALLBACK(keywordCb); return ySHORTINT; }  "shortreal"		{ FL; VALTEXT; CALLBACK(keywordCb); return ySHORTREAL; }  "solve"		{ FL; VALTEXT; CALLBACK(keywordCb); return ySOLVE; }  "static"		{ FL; VALTEXT; CALLBACK(keywordCb); return ySTATIC; }  "string"		{ FL; VALTEXT; CALLBACK(keywordCb); return ySTRING; }  "struct"		{ FL; VALTEXT; CALLBACK(keywordCb); return ySTRUCT; }  "super"		{ FL; VALTEXT; CALLBACK(keywordCb); return ySUPER; }  "tagged"		{ FL; VALTEXT; CALLBACK(keywordCb); return yTAGGED; }  "this"		{ FL; VALTEXT; CALLBACK(keywordCb); return yTHIS; }  "throughout"		{ FL; VALTEXT; CALLBACK(keywordCb); return yTHROUGHOUT; }  "timeprecision"	{ FL; VALTEXT; CALLBACK(keywordCb); return yTIMEPRECISION; }  "timeunit"		{ FL; VALTEXT; CALLBACK(keywordCb); return yTIMEUNIT; }  "type"		{ FL; VALTEXT; CALLBACK(keywordCb); return yTYPE; }  "typedef"		{ FL; VALTEXT; CALLBACK(keywordCb); return yTYPEDEF; }  "union"		{ FL; VALTEXT; CALLBACK(keywordCb); return yUNION; }  "unique"		{ FL; VALTEXT; CALLBACK(keywordCb); return yUNIQUE; }  "var"			{ FL; VALTEXT; CALLBACK(keywordCb); return yVAR; }  "virtual"		{ FL; VALTEXT; CALLBACK(keywordCb); return yVIRTUAL; }  "void"		{ FL; VALTEXT; CALLBACK(keywordCb); return yVOID; }  "wait_order"		{ FL; VALTEXT; CALLBACK(keywordCb); return yWAIT_ORDER; }  "wildcard"		{ FL; VALTEXT; CALLBACK(keywordCb); return yWILDCARD; }  "with"		{ FL; VALTEXT; CALLBACK(keywordCb); return yWITH; }  "within"		{ FL; VALTEXT; CALLBACK(keywordCb); return yWITHIN; }}  /* Default PLI rule */<V95,V01,V05,S05>{    "$"[a-zA-Z_$][a-zA-Z0-9_$]*	{ FL; VALTEXT; CALLBACK(sysfuncCb); return ygenSYSCALL; }}  /************************************************************************/  /* Single character operator thingies */<V95,V01,V05,S05>{  "!"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "#"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "$"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "%"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "&"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "("			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  ")"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "*"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "+"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  ","			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "-"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "."			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "/"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  ":"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  ";"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "<"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "="			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  ">"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "?"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "@"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "["			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "]"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "^"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "{"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "|"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "}"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }  "~"			{ FL; VALTEXT; CALLBACK(operatorCb); return yytext[0]; }}  /************************************************************************/  /* Operators and multi-character symbols */<V95,V01,V05,S05>{  "&&"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_ANDAND; }  "||"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_OROR; }  "<="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_LTE; }  ">="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_GTE; }  "<<"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_SLEFT; }  ">>"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_SRIGHT; }  "=="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_EQUAL; }  "!="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_NOTEQUAL; }  "==="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_CASEEQUAL; }  "!=="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_CASENOTEQUAL; }  "^~"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_XNOR; }  "~^"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_XNOR; }  "~&"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_NAND; }  "~|"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_NOR; }  "->"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_MINUSGT; }  "=>"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_EQGT; }  "*>"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_ASTGT; }  "&&&"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_ANDANDAND; }}  /* Verilog 2001 Operators */<V01,V05,S05>{  "<<<"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_SLEFT; }  ">>>"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_SSRIGHT; }  "**"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_POW; }  "+:"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_PLUSCOLON; }  "-:"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_MINUSCOLON; }  ".*"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_DOTSTAR; }}  /* SystemVerilog Operators */<S05>{  "'"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_TICK; }  "'{"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_TICKBRA; }  "==?"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_WILDEQUAL; }  "!=?"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_WILDNOTEQUAL; }  "++"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_PLUSPLUS; }  "--"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_MINUSMINUS; }  "+="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_PLUSEQ; }  "-="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_MINUSEQ; }  "*="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_TIMESEQ; }  "/="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_DIVEQ; }  "%="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_MODEQ; }  "&="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_ANDEQ; }  "|="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_OREQ; }  "^="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_XOREQ; }  "<<="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_SLEFTEQ; }  ">>="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_SRIGHTEQ; }  "<<<="		{ FL; VALTEXT; CALLBACK(operatorCb); return yP_SLEFTEQ; }  ">>>="		{ FL; VALTEXT; CALLBACK(operatorCb); return yP_SSRIGHTEQ; }  "->>"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_MINUSGTGT; }  "##"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_POUNDPOUND; }  "@@"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_ATAT; }  "::"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_COLONCOLON; }  ":="			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_COLONEQ; }  ":/"[^\/\*]		{ FL; VALTEXT; CALLBACK(operatorCb); return yP_COLONDIV; }  /* : then comment is not ":/" */  "|->"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_ORMINUSGT; }  "|=>"			{ FL; VALTEXT; CALLBACK(operatorCb); return yP_OREQGT; }

⌨️ 快捷键说明

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