| 863 | } |
| 864 | |
| 865 | bool CompileClass::compile_class_parameters_(const FileContent* fC, NodeId id) { |
| 866 | /* |
| 867 | n<all_c> u<1> t<StringConst> p<16> s<14> l<3> |
| 868 | n<uvm_port_base> u<2> t<StringConst> p<12> s<8> l<7> |
| 869 | n<IF> u<3> t<StringConst> p<6> s<5> l<7> |
| 870 | n<uvm_void> u<4> t<StringConst> p<5> l<7> |
| 871 | n<> u<5> t<Data_type> p<6> c<4> l<7> |
| 872 | n<> u<6> t<List_of_type_assignments> p<7> c<3> l<7> |
| 873 | n<> u<7> t<Parameter_port_declaration> p<8> c<6> l<7> |
| 874 | n<> u<8> t<Parameter_port_list> p<12> c<7> s<10> l<7> |
| 875 | n<IF> u<9> t<StringConst> p<10> l<7> |
| 876 | n<> u<10> t<Class_type> p<12> c<9> s<11> l<7> |
| 877 | n<> u<11> t<Endclass> p<12> l<8> |
| 878 | n<> u<12> t<Class_declaration> p<13> c<2> l<7> |
| 879 | |
| 880 | or |
| 881 | |
| 882 | n<T1> u<3> t<StringConst> p<9> s<5> l<18> |
| 883 | n<> u<4> t<IntegerAtomType_Int> p<5> l<18> |
| 884 | n<> u<5> t<Data_type> p<9> c<4> s<6> l<18> |
| 885 | n<T2> u<6> t<StringConst> p<9> s<8> l<18> |
| 886 | n<T1> u<7> t<StringConst> p<8> l<18> |
| 887 | n<> u<8> t<Data_type> p<9> c<7> l<18> |
| 888 | n<> u<9> t<List_of_type_assignments> p<10> c<3> l<18> |
| 889 | n<> u<10> t<Parameter_port_declaration> p<11> c<9> l<18> |
| 890 | n<> u<11> t<Parameter_port_list> p<31> c<10> s<20> l<18> |
| 891 | |
| 892 | */ |
| 893 | UHDM::class_defn* defn = m_class->getUhdmDefinition(); |
| 894 | |
| 895 | if (fC->sl_collect(id, VObjectType::paVIRTUAL)) { |
| 896 | defn->VpiVirtual(true); |
| 897 | } |
| 898 | |
| 899 | NodeId paramList = fC->sl_collect(id, VObjectType::paParameter_port_list); |
| 900 | if (paramList) { |
| 901 | NodeId parameter_port_declaration = fC->Child(paramList); |
| 902 | while (parameter_port_declaration) { |
| 903 | NodeId list_of_type_assignments = fC->Child(parameter_port_declaration); |
| 904 | NodeId type = fC->Child(list_of_type_assignments); |
| 905 | if (fC->Type(list_of_type_assignments) == |
| 906 | VObjectType::paList_of_type_assignments || |
| 907 | fC->Type(list_of_type_assignments) == VObjectType::paTYPE) { |
| 908 | // Type param |
| 909 | m_helper.compileParameterDeclaration( |
| 910 | m_class, fC, list_of_type_assignments, m_compileDesign, Reduce::No, |
| 911 | false, nullptr, false, false); |
| 912 | } else if (fC->Type(type) == VObjectType::paTYPE) { |
| 913 | // Handled in compile_parameter_declaration_ |
| 914 | } else { |
| 915 | // Regular param |
| 916 | m_helper.compileParameterDeclaration( |
| 917 | m_class, fC, parameter_port_declaration, m_compileDesign, |
| 918 | Reduce::No, false, nullptr, false, false); |
| 919 | } |
| 920 | parameter_port_declaration = fC->Sibling(parameter_port_declaration); |
| 921 | } |
| 922 | } |
nothing calls this directly
no test coverage detected