128 std::vector<std::reference_wrapper<const SIM_MODEL_PIN>> pins =
m_model.GetPins();
133 std::sort( pins.begin(), pins.end(),
136 return StrNumCmp( lhs.symbolPinNumber, rhs.symbolPinNumber, true ) < 0;
141 std::string symbolPinNumber(
pin.symbolPinNumber.ToUTF8() );
143 if( symbolPinNumber !=
"" )
148 result.append( fmt::format(
"{}={}", symbolPinNumber,
pin.modelPinName ) );
195 tao::pegtl::string_input<> in( aParams,
"Sim.Params field" );
196 std::unique_ptr<tao::pegtl::parse_tree::node> root;
208 catch(
const tao::pegtl::parse_error& e )
213 std::string paramName;
214 bool isPrimaryValueSet =
false;
216 for(
const auto& node : root->children )
220 paramName = node->string();
227 wxASSERT( paramName !=
"" );
231 if(
m_model.GetParam( 0 ).Matches( paramName ) )
232 isPrimaryValueSet =
true;
236 std::string str = node->string();
239 boost::replace_all( str,
"\\\"",
"\"" );
245 std::string token = node->string();
255 return !
m_model.HasPrimaryValue() ||
m_model.HasAutofill() || isPrimaryValueSet;
264 tao::pegtl::string_input<> in( aPins,
"Sim.Pins field" );
265 std::unique_ptr<tao::pegtl::parse_tree::node> root;
275 for(
const auto& node : root->children )
277 std::string symbolPinNumber = node->children.at( 0 )->string();
278 std::string modelPinName = node->children.at( 1 )->string();
280 m_model.AssignSymbolPinNumberToModelPin( modelPinName, symbolPinNumber );
283 catch(
const tao::pegtl::parse_error& e )
wxString result
Test unit parsing edge cases and error handling.