124 std::vector<std::reference_wrapper<const SIM_MODEL_PIN>> pins =
m_model.GetPins();
129 std::sort( pins.begin(), pins.end(),
132 return StrNumCmp( lhs.symbolPinNumber, rhs.symbolPinNumber, true ) < 0;
137 std::string symbolPinNumber(
pin.symbolPinNumber.ToUTF8() );
139 if( symbolPinNumber !=
"" )
144 result.append( fmt::format(
"{}={}", symbolPinNumber,
pin.modelPinName ) );
191 tao::pegtl::string_input<> in( aParams,
"Sim.Params field" );
192 std::unique_ptr<tao::pegtl::parse_tree::node> root;
204 catch(
const tao::pegtl::parse_error& e )
209 std::string paramName;
210 bool isPrimaryValueSet =
false;
212 for(
const auto& node : root->children )
216 paramName = node->string();
221 wxASSERT( paramName !=
"" );
225 if(
m_model.GetParam( 0 ).Matches( paramName ) )
226 isPrimaryValueSet =
true;
230 std::string str = node->string();
233 boost::replace_all( str,
"\\\"",
"\"" );
239 std::string token = node->string();
249 return !
m_model.HasPrimaryValue() ||
m_model.HasAutofill() || isPrimaryValueSet;
258 tao::pegtl::string_input<> in( aPins,
"Sim.Pins field" );
259 std::unique_ptr<tao::pegtl::parse_tree::node> root;
269 for(
const auto& node : root->children )
271 std::string symbolPinNumber = node->children.at( 0 )->string();
272 std::string modelPinName = node->children.at( 1 )->string();
274 m_model.AssignSymbolPinNumberToModelPin( modelPinName, symbolPinNumber );
277 catch(
const tao::pegtl::parse_error& e )
wxString result
Test unit parsing edge cases and error handling.