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

📄 oaverilogparser.ypp

📁 openaccess与verilog互相转化时所用的源代码
💻 YPP
📖 第 1 页 / 共 5 页
字号:
 config_inst_clause             : YYINSTANCE config_inst_name                                 // See config_declaration callback                                 ;  config_inst_name               : topmodule_identifier                                  config_instance_identifier_list                                   {                                    deletePos(1);                                 }                                 // See config_declaration callback                                ;  config_instance_identifier_list  : /* empty */                                | config_instance_identifier_list '.'                                   instance_identifier                                 {                                    deletePos(3);                                 }                                 // See config_declaration callback                               ;  config_cell_clause             : YYCELL                                 | YYCELL library_identifier '.' cell_identifier                                  {                                    // See config_declaration callback                                    deletePos(2);                                    deletePos(4);                                 }                               ;  config_liblist_clause          : YYLIBLIST                                  '[' config_library_identifier_list ']'                                     // See config_declaration callback                               ;  config_library_identifier_list : /* empty */                                | config_library_identifier_list                                  library_identifier                                  {                                    // See config_declaration callback                                    deletePos(2);                                 }                               ;  config_use_clause              : YYUSE cell_identifier                                  {                                    deletePos(2);                                 }                               | YYUSE library_identifier '.' cell_identifier                                  {                                    deletePos(2);                                    deletePos(4);                                 }                               | YYUSE cell_identifier YYCONFIG                                  {                                    deletePos(2);                                 }                               | YYUSE library_identifier '.'                                   cell_identifier YYCONFIG                                  {                                    deletePos(2);                                    deletePos(4);                                 }                               ;  /* A.1.3 Module and primitive source text */  source_text                    : /* empty */                                | source_text description                                ;  description                    : module_declaration                                 | udp_declaration                                ;  module_declaration             : attribute_instance_list                                   module_keyword_module_identifier ';'                                  end_module_footer                                  {				    callback->endModule();                                    callback->setCurrentDesign(NULL);                                    deletePos(1);                                 }                               | attribute_instance_list                                   module_keyword_module_identifier ';'                                  module_item module_item_list                                   end_module_footer                                  {                                    callback->endModule();                                    callback->setCurrentDesign(NULL);                                    deletePos(1);                                 }                               | attribute_instance_list                                   module_keyword_module_identifier                                   list_of_ports ';'                                  attribute_instance_list                                 end_module_footer                                  {                                    callback->endModule($3);                                    callback->setCurrentDesign(NULL);                                    deletePos(1);                                    deletePos(3);                                    deletePos(5);                                 }                               | attribute_instance_list                                   module_keyword_module_identifier                                   module_parameter_port_list ';'                                  attribute_instance_list                                 end_module_footer                                  {                                    callback->endModule();                                    callback->setCurrentDesign(NULL);                                    deletePos(1);                                    deletePos(3);                                    deletePos(5);                                 }                               | attribute_instance_list                                   module_keyword_module_identifier                                   module_parameter_port_list ';'                                  module_item module_item_list                                   end_module_footer                                  {                                    callback->endModule();                                    callback->setCurrentDesign(NULL);                                    deletePos(1);                                 }                               | attribute_instance_list                                   module_keyword_module_identifier                                   list_of_ports ';'                                  module_item module_item_list                                   end_module_footer                                   {                                    callback->endModule($3);                                    callback->setCurrentDesign(NULL);                                    deletePos(1);                                    deletePos(3);                                 }                               | attribute_instance_list                                   module_keyword_module_identifier                                   module_parameter_port_list                                  list_of_port_declarations ';' 				 module_item_list                                 end_module_footer                                  {                                    ParamList	ports;                                                                        for (NameListIter portIter = $4->begin();                                         portIter != $4->end(); portIter++) {                                         ports.append(oaParam(**portIter, 							      **portIter));                                    }                                                                        callback->endModule(&ports);                                    callback->setCurrentDesign(NULL);                                    deletePos(1);                                    deletePos(4);                                 }                               | attribute_instance_list                                   module_keyword_module_identifier                                   module_parameter_port_list list_of_ports ';'                                  module_item module_item_list                                   end_module_footer                                  {                                   callback->endModule($4);                                   callback->setCurrentDesign(NULL);                                   deletePos(1);                                   deletePos(4);                                 }                               | attribute_instance_list                                   module_keyword_module_identifier                                   list_of_port_declarations ';'                                 module_item_list                                   end_module_footer                                   {                                    ParamList	ports;                                                                        for (NameListIter portIter = $3->begin();                                         portIter != $3->end(); portIter++) {                                         ports.append(oaParam(**portIter, 							      **portIter));                                    }                                                                        callback->endModule(&ports);                                    callback->setCurrentDesign(NULL);                                    deletePos(1);                                    deletePos(3);                                 }                               ; end_module_footer              : YYENDMODULE                                 {                                    delete currentMaster;                                    currentMaster = NULL;                                    delete currentParameters;                                    currentParameters = NULL;                                 } module_item_list               : /* empty */                                                                  | module_item_list module_item                                ; module_keyword_module_identifier : module_keyword module_identifier                                {                                    callback->beginModule(*$2);                                    deletePos(2);                               }                               ;module_keyword                 : YYMODULE                               | YYMACROMODULE                                                  // see beginmodule callback                               ;  /* A.1.4 Module parameters and ports */  module_parameter_port_list     : YYPOUNDLPAREN                                   YYPARAMETER list_of_param_assignments ')'                                 {                                    callback->paramDeclaration(*$3);                                    deletePos(3);                                 }                               | YYPOUNDLPAREN parameter_declaration                                 parameter_declaration_list ')'                                  {                                    $2->append(*$3);                                    callback->paramDeclaration(*$2);                                    deletePos(2);                                    deletePos(3);                                 }                               ; port_list                      : /* empty */                                  {                                    $$ = new ParamList;                                 }                               | port_list ',' port                                                             {                                    pushBackParamArray(*$1, *$3);                                    deletePos(3);                                 }                               // See port_list callback                               ;  list_of_ports                  : '(' port port_list ')'                                   {                                    // This is where the order of the ports                                    // is established.  We should record this                                    // order for later so we can create a                                    // structure that stores the order.                                    pushFrontParamArray(*$2, *$3);                                    callback->portDeclList(*$3);                                    deletePos(2);                                    $$ = $3;                                  }                               ;  port_declaration_list          : /* empty */                                                                    {                                    $$ = new NameList;                                 }                               | port_declaration_list port_declaration                                 {                                    $1->splice($1->end(), *$2);                                    $2->clear();                                    deletePos(2);                                 }                               ;                          list_of_port_declarations      : '(' ')'                                                                        {                                    $$ = new NameList;                                    callback->portDeclList(*$$);                                 }                               | '(' port_declaration                                       port_declaration_list ')'                                  {                                    $2->splice($2->end(), *$3);                                    $3->clear();                                                                        callback->portDeclList(*$2);                                    $$ = $2;                                    deletePos(3);                                 }                               ; 

⌨️ 快捷键说明

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