|
KiCad PCB EDA Suite
|
#include <ibis_parser.h>
Public Member Functions | |
| IbisParser (REPORTER *aReporter) | |
| bool | ParseFile (const std::string &aFileName) |
| Parse a file. | |
| virtual bool | Check () |
| Check if the data held by the object is valid. | |
| void | Report (const std::string &aMsg, SEVERITY aSeverity=RPT_SEVERITY_INFO) const |
| Print a message. | |
Public Attributes | |
| bool | m_parrot = true |
| long | m_lineCounter = 0 |
| char | m_commentChar = '|' |
| std::vector< char > | m_buffer |
| int | m_bufferIndex = 0 |
| int | m_lineOffset = 0 |
| int | m_lineIndex = 0 |
| int | m_lineLength = 0 |
| IbisFile | m_ibisFile |
| IbisComponent * | m_currentComponent = nullptr |
| IbisModelSelector * | m_currentModelSelector = nullptr |
| IbisModel * | m_currentModel = nullptr |
| IbisSubmodel * | m_currentSubmodel = nullptr |
| IbisPackageModel * | m_currentPackageModel = nullptr |
| std::shared_ptr< IBIS_MATRIX > | m_currentMatrix = nullptr |
| int | m_currentMatrixRow = 0 |
| int | m_currentMatrixCol = 0 |
| IVtable * | m_currentIVtable = nullptr |
| VTtable * | m_currentVTtable = nullptr |
| IbisWaveform * | m_currentWaveform = nullptr |
| IbisSeriesData * | m_currentSeriesData = nullptr |
| IbisMosfetEntry * | m_currentMosfetEntry = nullptr |
| REPORTER * | m_Reporter |
Static Protected Member Functions | |
| static std::string | doubleToString (double aNumber) |
| Convert a double to string using scientific notation. | |
Private Member Functions | |
| bool | compareIbisWord (const std::string &a, const std::string &b) |
| compare two strings without being case sensitive | |
| bool | parseHeader (std::string &aKeyword) |
| Parse a single keyword in the header context. | |
| bool | parseComponent (std::string &aKeyword) |
| Parse a single keyword in the component context. | |
| bool | parseModelSelector (std::string &aKeyword) |
| Parse a single keyword in the model selector context. | |
| bool | parseModel (std::string &aKeyword) |
| Parse a single keyword in the model context. | |
| IbisSeriesData * | currentSeriesData () |
| Active series data: [On]/[Off] sub-block when set, else m_series. | |
| bool | readSeriesMosfet () |
| Read one [Series MOSFET] line (Vds subparam or IV row). | |
| bool | parseSubmodel (std::string &aKeyword) |
| Parse a single keyword in the submodel context. | |
| bool | parsePackageModel (std::string &aKeyword) |
| Parse a single keyword in the package model context. | |
| bool | parsePackageModelModelData (std::string &aKeyword) |
| Parse a single keyword in the package model model data context. | |
| bool | parseAlgorithmicModel (std::string &aKeyword) |
| Parse a single keyword in the algorithmic model context. | |
| bool | parseDouble (double &aDest, std::string &aStr, bool aAllowModifiers=false) |
| Parse a double according to the ibis standard. | |
| bool | parseDvdt (dvdt &aDest, std::string &aStr) |
| Parse a dV/dt value according to the ibis standard. | |
| bool | onNewLine () |
| Parse the current line. | |
| bool | getNextLine () |
| Load the next line. | |
| void | printLine () |
| Print the current line. | |
| void | skipWhitespaces () |
| bool | checkEndofLine () |
| bool | isLineEmptyFromCursor () |
| std::string | getKeyword () |
| bool | readInt (int &aDest) |
| bool | readDouble (double &aDest) |
| bool | readWord (std::string &aDest) |
| bool | readDvdt (dvdt &aDest) |
| bool | readMatrixPinIndex (int &aDest) |
| bool | readMatrixType (std::shared_ptr< IBIS_MATRIX > &aDest) |
| bool | readMatrixBandwidth () |
| bool | readMatrixRow () |
| bool | readMatrixBandedOrFull () |
| bool | readMatrixSparse () |
| bool | readMatrixData () |
| bool | readRampdvdt (dvdtTypMinMax &aDest) |
| bool | readRamp () |
| bool | readModelSpec () |
| bool | readSubmodelSpec () |
| bool | readReceiverThresholds () |
| bool | readAlgorithmicModel () |
| bool | readAddSubmodel () |
| bool | readWaveform (IbisWaveform *aDest, IBIS_WAVEFORM_TYPE aType) |
| bool | readString (std::string &aDest) |
| bool | storeString (std::string &aDest, bool aMultiline) |
| bool | readTableLine (std::vector< std::string > &aDest) |
| bool | readNumericSubparam (const std::string &aSubparam, double &aDest) |
| bool | readIVtableEntry (IVtable &aTable) |
| bool | readVTtableEntry (VTtable &aTable) |
| bool | readTypMinMaxValue (TypMinMaxValue &aDest) |
| bool | readTypMinMaxValueSubparam (const std::string &aSubparam, TypMinMaxValue &aDest) |
| bool | readPackage () |
| bool | readPin () |
| bool | readPinMapping () |
| bool | readDiffPin () |
| bool | readSeriesPinMapping () |
| bool | readModelSelector () |
| bool | readModel () |
| bool | readSubmodel () |
| bool | readPackageModelPins () |
| bool | changeCommentChar () |
| Ibis can change the character used for comments. | |
| bool | changeContext (std::string &aKeyword) |
Private Attributes | |
| std::string * | m_continuingString = nullptr |
| IBIS_PARSER_CONTINUE | m_continue = IBIS_PARSER_CONTINUE::NONE |
| IBIS_PARSER_CONTEXT | m_context = IBIS_PARSER_CONTEXT::HEADER |
Definition at line 826 of file ibis_parser.h.
|
inline |
Definition at line 829 of file ibis_parser.h.
References IBIS_INPUT::IBIS_INPUT(), and m_ibisFile.
|
private |
Ibis can change the character used for comments.
Definition at line 1467 of file ibis_parser.cpp.
References _, m_buffer, m_commentChar, m_continue, m_lineIndex, m_lineOffset, NONE, IBIS_BASE::Report(), RPT_SEVERITY_ERROR, and skipWhitespaces().
Referenced by parseHeader().
|
private |
Definition at line 1550 of file ibis_parser.cpp.
References _, compareIbisWord(), COMPONENT, END, HEADER, m_context, m_continue, m_currentComponent, m_currentModel, m_currentModelSelector, m_currentMosfetEntry, m_currentPackageModel, m_currentSeriesData, m_currentSubmodel, m_ibisFile, IBIS_BASE::m_Reporter, MAX, MIN, MODEL, model, MODELSELECTOR, MS, NONE, PACKAGEMODEL, PACKAGEMODEL_MODELDATA, PM, IBIS_BASE::Report(), RPT_SEVERITY_ERROR, storeString(), SUBMODEL, and TYP.
Referenced by parseAlgorithmicModel(), parseComponent(), parseHeader(), parseModel(), parseModelSelector(), parsePackageModel(), parsePackageModelModelData(), and parseSubmodel().
|
inlinevirtualinherited |
Check if the data held by the object is valid.
Reimplemented in dvdtTypMinMax, IBIS_MATRIX, IbisComponent, IbisComponentPackage, IbisComponentPin, IbisHeader, IbisModel, IbisModelSelector, IbisPackageModel, IbisRamp, IbisSubmodel, IVtable, and TypMinMaxValue.
Definition at line 100 of file ibis_parser.h.
|
private |
Definition at line 1149 of file ibis_parser.cpp.
References _, m_lineIndex, m_lineLength, IBIS_BASE::Report(), RPT_SEVERITY_ERROR, and skipWhitespaces().
Referenced by storeString().
|
private |
compare two strings without being case sensitive
Ibis: "The content of the files is case sensitive, except for reserved words and keywords."
| a | string to compare |
| b | string to compare |
Definition at line 52 of file ibis_parser.cpp.
Referenced by changeContext(), parseAlgorithmicModel(), parseComponent(), parseHeader(), parseModel(), parsePackageModel(), parsePackageModelModelData(), parseSubmodel(), readMatrixType(), and readModel().
|
inlineprivate |
Active series data: [On]/[Off] sub-block when set, else m_series.
Definition at line 910 of file ibis_parser.h.
References m_currentModel, and m_currentSeriesData.
Referenced by parseModel(), and readSeriesMosfet().
|
staticprotectedinherited |
Convert a double to string using scientific notation.
| aNumber | Number |
Definition at line 281 of file ibis_parser.cpp.
Referenced by KIBIS_MODEL::generateSquareWave(), KIBIS_PIN::getKuKdOneWaveform(), KIBIS_PIN::getKuKdTwoWaveforms(), KIBIS_PIN::KuKdDriver(), IVtable::Spice(), KIBIS_MODEL::SpiceDie(), KIBIS_MODEL::SpiceSeriesDie(), KIBIS_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().
|
private |
Definition at line 1517 of file ibis_parser.cpp.
References m_buffer, m_lineIndex, m_lineLength, and m_lineOffset.
Referenced by onNewLine().
|
private |
Load the next line.
Definition at line 1290 of file ibis_parser.cpp.
References _, IBIS_MAX_LINE_LENGTH, m_buffer, m_bufferIndex, m_commentChar, m_lineCounter, m_lineIndex, m_lineLength, m_lineOffset, IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by ParseFile().
|
private |
Definition at line 1163 of file ibis_parser.cpp.
References cursor, m_buffer, m_lineIndex, m_lineLength, and m_lineOffset.
Referenced by readWaveform().
|
private |
Parse the current line.
Definition at line 3133 of file ibis_parser.cpp.
References _, ADD_SUBMODEL, ALGORITHMIC_MODEL, COMPONENT, COMPONENT_DIFFPIN, COMPONENT_PACKAGE, COMPONENT_PIN, COMPONENT_PINMAPPING, COMPONENT_SERIES_PIN_MAPPING, getKeyword(), HEADER, IV_TABLE, m_buffer, m_context, m_continue, m_continuingString, m_currentIVtable, m_currentVTtable, m_currentWaveform, m_lineIndex, m_lineLength, m_lineOffset, MATRIX, MODEL, MODEL_SPEC, MODELSELECTOR, NONE, PACKAGEMODEL, PACKAGEMODEL_MODELDATA, PACKAGEMODEL_PINS, parseAlgorithmicModel(), parseComponent(), parseHeader(), parseModel(), parseModelSelector(), parsePackageModel(), parsePackageModelModelData(), parseSubmodel(), RAMP, readAddSubmodel(), readAlgorithmicModel(), readDiffPin(), readIVtableEntry(), readMatrixData(), readModel(), readModelSelector(), readModelSpec(), readPackage(), readPackageModelPins(), readPin(), readPinMapping(), readRamp(), readReceiverThresholds(), readSeriesMosfet(), readSeriesPinMapping(), readString(), readSubmodel(), readSubmodelSpec(), readVTtableEntry(), readWaveform(), IBIS_BASE::Report(), RPT_SEVERITY_ERROR, RX_THRESHOLDS, SERIES_MOSFET, skipWhitespaces(), STRING, SUBMODEL, SUBMODEL_SPEC, VT_TABLE, and WAVEFORM.
Referenced by ParseFile().
|
private |
Parse a single keyword in the algorithmic model context.
| aKeyword | Keyword |
Definition at line 1820 of file ibis_parser.cpp.
References changeContext(), compareIbisWord(), m_context, m_continue, MODEL, and NONE.
Referenced by onNewLine().
|
private |
Parse a single keyword in the component context.
| aKeyword | Keyword |
Definition at line 2662 of file ibis_parser.cpp.
References changeContext(), compareIbisWord(), m_currentComponent, readDiffPin(), readPackage(), readPin(), readPinMapping(), readSeriesPinMapping(), and storeString().
Referenced by onNewLine().
|
private |
Parse a double according to the ibis standard.
| aDest | Where the double should be stored |
| aStr | The string to parse |
| aAllowModifiers | Allows modifiers ( p for pico, f for femto, k for kilo, ... ) |
Definition at line 1232 of file ibis_parser.cpp.
References NAN_INVALID, NAN_NA, result, and skipWhitespaces().
Referenced by parseDvdt(), readDouble(), readMatrixBandedOrFull(), readPackage(), and readPin().
|
private |
Parse a dV/dt value according to the ibis standard.
| aDest | Where the dV/dt value should be stored |
| aStr | The string to parse |
Definition at line 1174 of file ibis_parser.cpp.
References dvdt::m_dt, dvdt::m_dv, NAN_NA, and parseDouble().
Referenced by readDvdt().
| bool IbisParser::ParseFile | ( | const std::string & | aFileName | ) |
Parse a file.
This is the entry point to parse a file
| aFileName | input file name |
Definition at line 1067 of file ibis_parser.cpp.
References _, END, getNextLine(), m_buffer, m_bufferIndex, m_context, m_ibisFile, m_lineCounter, IbisSubmodelMode::m_name, m_parrot, model, onNewLine(), printLine(), IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by KIBIS::KIBIS().
|
private |
Parse a single keyword in the header context.
| aKeyword | Keyword |
Definition at line 2613 of file ibis_parser.cpp.
References changeCommentChar(), changeContext(), compareIbisWord(), m_ibisFile, readDouble(), and storeString().
Referenced by onNewLine().
|
private |
Parse a single keyword in the model context.
| aKeyword | Keyword |
Definition at line 1889 of file ibis_parser.cpp.
References ALGORITHMIC_MODEL, changeContext(), compareIbisWord(), currentSeriesData(), FALLING, m_context, m_continue, m_currentModel, m_currentMosfetEntry, m_currentSeriesData, readAddSubmodel(), readIVtableEntry(), readModelSpec(), readRamp(), readReceiverThresholds(), readSeriesMosfet(), readTypMinMaxValue(), readWaveform(), and RISING.
Referenced by onNewLine().
|
private |
Parse a single keyword in the model selector context.
| aKeyword | Keyword |
Definition at line 1680 of file ibis_parser.cpp.
References changeContext().
Referenced by onNewLine().
|
private |
Parse a single keyword in the package model context.
| aKeyword | Keyword |
Definition at line 2291 of file ibis_parser.cpp.
References changeContext(), compareIbisWord(), m_context, m_continue, m_currentPackageModel, NONE, PACKAGEMODEL_MODELDATA, readInt(), readPackageModelPins(), and storeString().
Referenced by onNewLine().
|
private |
Parse a single keyword in the package model model data context.
| aKeyword | Keyword |
Definition at line 2254 of file ibis_parser.cpp.
References changeContext(), compareIbisWord(), m_context, m_continue, m_currentPackageModel, NONE, PACKAGEMODEL, readMatrixBandwidth(), readMatrixRow(), and readMatrixType().
Referenced by onNewLine().
|
private |
Parse a single keyword in the submodel context.
| aKeyword | Keyword |
Definition at line 2013 of file ibis_parser.cpp.
References changeContext(), compareIbisWord(), FALLING, m_currentSubmodel, readIVtableEntry(), readRamp(), readSubmodelSpec(), readWaveform(), and RISING.
Referenced by onNewLine().
|
private |
Print the current line.
Definition at line 1336 of file ibis_parser.cpp.
References m_buffer, m_lineLength, and m_lineOffset.
Referenced by ParseFile().
|
private |
Definition at line 1837 of file ibis_parser.cpp.
References _, ADD_SUBMODEL, ALL, DRIVING, m_continue, m_currentModel, m_lineIndex, m_lineLength, name, NON_DRIVING, readWord(), IBIS_BASE::Report(), RPT_SEVERITY_WARNING, and skipWhitespaces().
Referenced by onNewLine(), and parseModel().
|
private |
Definition at line 1810 of file ibis_parser.cpp.
Referenced by onNewLine().
|
private |
Definition at line 2921 of file ibis_parser.cpp.
References _, COMPONENT_DIFFPIN, m_continue, m_currentComponent, m_lineIndex, IBIS_BASE::m_Reporter, NONE, IbisDiffPinEntry::pinA, IbisDiffPinEntry::pinB, readWord(), IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by onNewLine(), and parseComponent().
|
private |
Definition at line 1344 of file ibis_parser.cpp.
References _, parseDouble(), readWord(), IBIS_BASE::Report(), and RPT_SEVERITY_WARNING.
Referenced by parseHeader(), readIVtableEntry(), readMatrixSparse(), readNumericSubparam(), readTypMinMaxValue(), and readVTtableEntry().
|
private |
Definition at line 1207 of file ibis_parser.cpp.
References _, parseDvdt(), readWord(), IBIS_BASE::Report(), and RPT_SEVERITY_WARNING.
Referenced by readRampdvdt().
|
private |
Definition at line 1366 of file ibis_parser.cpp.
References _, NAN_INVALID, NAN_NA, readWord(), IBIS_BASE::Report(), result, and RPT_SEVERITY_WARNING.
Referenced by parsePackageModel(), and readMatrixBandwidth().
|
private |
Definition at line 2994 of file ibis_parser.cpp.
References IVtableEntry::I, IV_TABLE, m_continue, m_currentIVtable, IVtable::m_entries, m_lineIndex, m_lineLength, IBIS_BASE::m_Reporter, readDouble(), readTypMinMaxValue(), skipWhitespaces(), and IVtableEntry::V.
Referenced by onNewLine(), parseModel(), parseSubmodel(), and readSeriesMosfet().
|
private |
Definition at line 2175 of file ibis_parser.cpp.
References _, index, m_currentMatrix, m_currentMatrixCol, m_currentMatrixRow, parseDouble(), readTableLine(), IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by readMatrixData().
|
private |
Definition at line 2123 of file ibis_parser.cpp.
References _, BANDED, m_currentMatrix, m_currentPackageModel, readInt(), IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by parsePackageModelModelData().
|
private |
Definition at line 2227 of file ibis_parser.cpp.
References BANDED, FULL, m_currentMatrix, readMatrixBandedOrFull(), readMatrixSparse(), SPARSE, and UNDEFINED.
Referenced by onNewLine().
|
private |
Definition at line 2055 of file ibis_parser.cpp.
References _, m_currentPackageModel, pin, readWord(), and IBIS_BASE::Report().
Referenced by readMatrixRow(), and readMatrixSparse().
|
private |
Definition at line 2150 of file ibis_parser.cpp.
References _, FULL, index, m_continue, m_currentMatrix, m_currentMatrixCol, m_currentMatrixRow, MATRIX, readMatrixPinIndex(), IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by parsePackageModelModelData().
|
private |
Definition at line 2203 of file ibis_parser.cpp.
References _, index, m_currentMatrix, m_currentMatrixRow, readDouble(), readMatrixPinIndex(), IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by readMatrixData().
|
private |
Definition at line 2076 of file ibis_parser.cpp.
References _, BANDED, compareIbisWord(), FULL, m_continue, m_currentMatrix, m_currentMatrixCol, m_currentMatrixRow, m_currentPackageModel, NONE, readWord(), IBIS_BASE::Report(), RPT_SEVERITY_ERROR, RPT_SEVERITY_WARNING, SPARSE, and UNDEFINED.
Referenced by parsePackageModelModelData().
|
private |
Definition at line 2418 of file ibis_parser.cpp.
References _, ACTIVE_HIGH, ACTIVE_LOW, compareIbisWord(), INPUT_ECL, INPUT_STD, INVERTING, IO, IO_ECL, IO_OPEN_DRAIN, IO_OPEN_SINK, IO_OPEN_SOURCE, m_continue, m_currentModel, MODEL, NON_INVERTING, OPEN_DRAIN, OPEN_SINK, OPEN_SOURCE, OUTPUT, OUTPUT_ECL, readNumericSubparam(), readTypMinMaxValueSubparam(), readWord(), IBIS_BASE::Report(), RPT_SEVERITY_ERROR, SERIES, SERIES_SWITCH, TERMINATOR, THREE_STATE, and THREE_STATE_ECL.
Referenced by onNewLine().
|
private |
Definition at line 2318 of file ibis_parser.cpp.
References m_currentModelSelector, model, readString(), and readWord().
Referenced by onNewLine().
|
private |
Definition at line 1782 of file ibis_parser.cpp.
References m_continue, and MODEL_SPEC.
Referenced by onNewLine(), and parseModel().
|
private |
Definition at line 2333 of file ibis_parser.cpp.
References m_buffer, m_lineIndex, m_lineLength, m_lineOffset, readDouble(), and skipWhitespaces().
Referenced by readModel(), readRamp(), readSeriesMosfet(), and readWaveform().
|
private |
Definition at line 2729 of file ibis_parser.cpp.
References _, COMPONENT_PACKAGE, L, m_continue, m_currentComponent, MAX, MIN, NONE, parseDouble(), readTableLine(), IBIS_BASE::Report(), RPT_SEVERITY_ERROR, TYP, and TypMinMaxValue::value.
Referenced by onNewLine(), and parseComponent().
|
private |
Definition at line 2044 of file ibis_parser.cpp.
References m_continue, m_currentPackageModel, PACKAGEMODEL_PINS, and readWord().
Referenced by onNewLine(), and parsePackageModel().
|
private |
Definition at line 2778 of file ibis_parser.cpp.
References _, COMPONENT_PIN, m_continue, m_currentComponent, m_lineIndex, IBIS_BASE::m_Reporter, parseDouble(), pin, readTableLine(), IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by onNewLine(), and parseComponent().
|
private |
Definition at line 2875 of file ibis_parser.cpp.
References _, COMPONENT_PINMAPPING, m_continue, m_currentComponent, IbisComponentPinMapping::m_extRef, IbisComponentPinMapping::m_GNDClampRef, IbisComponentPinMapping::m_PDref, IbisComponentPinMapping::m_pinName, IbisComponentPinMapping::m_POWERClampRef, IbisComponentPinMapping::m_PUref, IBIS_BASE::m_Reporter, NONE, readTableLine(), IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by onNewLine(), and parseComponent().
|
private |
Definition at line 1702 of file ibis_parser.cpp.
References _, m_context, m_continue, m_currentModel, m_currentSubmodel, IbisRamp::m_falling, IbisRamp::m_rising, IbisRamp::m_Rload, MODEL, RAMP, readNumericSubparam(), readRampdvdt(), readWord(), IBIS_BASE::Report(), RPT_SEVERITY_ERROR, and SUBMODEL.
Referenced by onNewLine(), parseModel(), and parseSubmodel().
|
private |
Definition at line 1691 of file ibis_parser.cpp.
References MAX, MIN, readDvdt(), TYP, and dvdtTypMinMax::value.
Referenced by readRamp().
|
private |
Definition at line 1796 of file ibis_parser.cpp.
References m_continue, and RX_THRESHOLDS.
Referenced by onNewLine(), and parseModel().
|
private |
Read one [Series MOSFET] line (Vds subparam or IV row).
Definition at line 1747 of file ibis_parser.cpp.
References _, currentSeriesData(), m_continue, m_currentIVtable, m_currentMosfetEntry, IBIS_BASE::m_Reporter, IbisSeriesData::m_seriesMosfet, readIVtableEntry(), readNumericSubparam(), IBIS_BASE::Report(), RPT_SEVERITY_ERROR, and SERIES_MOSFET.
Referenced by onNewLine(), and parseModel().
|
private |
Definition at line 2954 of file ibis_parser.cpp.
References _, COMPONENT_SERIES_PIN_MAPPING, m_continue, m_currentComponent, IbisComponentSeriesPinMapping::m_functionTableGroup, IbisComponentSeriesPinMapping::m_modelName, IbisComponentSeriesPinMapping::m_pin1, IbisComponentSeriesPinMapping::m_pin2, IBIS_BASE::m_Reporter, NONE, readTableLine(), IBIS_BASE::Report(), and RPT_SEVERITY_WARNING.
Referenced by onNewLine(), and parseComponent().
|
private |
Definition at line 1426 of file ibis_parser.cpp.
References m_buffer, m_lineIndex, m_lineLength, and m_lineOffset.
Referenced by onNewLine(), readModelSelector(), and storeString().
|
private |
Definition at line 2569 of file ibis_parser.cpp.
References _, BUS_HOLD, DYNAMIC_CLAMP, FALL_BACK, m_currentSubmodel, readWord(), IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.
Referenced by onNewLine().
|
private |
Definition at line 1983 of file ibis_parser.cpp.
References _, m_continue, m_currentSubmodel, readTypMinMaxValue(), readWord(), IBIS_BASE::Report(), RPT_SEVERITY_ERROR, skipWhitespaces(), and SUBMODEL_SPEC.
Referenced by onNewLine(), and parseSubmodel().
|
private |
Definition at line 2708 of file ibis_parser.cpp.
References m_buffer, m_lineIndex, m_lineLength, and m_lineOffset.
Referenced by readMatrixBandedOrFull(), readPackage(), readPin(), readPinMapping(), and readSeriesPinMapping().
|
private |
Definition at line 2373 of file ibis_parser.cpp.
References _, MAX, MIN, readDouble(), IBIS_BASE::Report(), RPT_SEVERITY_ERROR, skipWhitespaces(), strValue(), TYP, and TypMinMaxValue::value.
Referenced by parseModel(), readIVtableEntry(), readSubmodelSpec(), readTypMinMaxValueSubparam(), and readVTtableEntry().
|
private |
Definition at line 2393 of file ibis_parser.cpp.
References m_buffer, m_lineIndex, m_lineLength, m_lineOffset, and readTypMinMaxValue().
Referenced by readModel().
|
private |
Definition at line 3018 of file ibis_parser.cpp.
References IV_TABLE, m_continue, m_currentVTtable, VTtable::m_entries, m_lineIndex, m_lineLength, IBIS_BASE::m_Reporter, readDouble(), readTypMinMaxValue(), skipWhitespaces(), VTtableEntry::t, and VTtableEntry::V.
Referenced by onNewLine(), and readWaveform().
|
private |
Definition at line 3041 of file ibis_parser.cpp.
References _, FALLING, isLineEmptyFromCursor(), IbisWaveform::m_C_fixture, m_context, m_continue, m_currentModel, m_currentSubmodel, m_currentWaveform, IbisWaveform::m_L_fixture, IbisWaveform::m_R_fixture, IBIS_BASE::m_Reporter, IbisWaveform::m_type, IbisWaveform::m_V_fixture, IbisWaveform::m_V_fixture_max, IbisWaveform::m_V_fixture_min, MODEL, readNumericSubparam(), readVTtableEntry(), IBIS_BASE::Report(), RISING, RPT_SEVERITY_ERROR, SUBMODEL, and WAVEFORM.
Referenced by onNewLine(), parseModel(), and parseSubmodel().
|
private |
Definition at line 1410 of file ibis_parser.cpp.
References end, m_buffer, m_lineIndex, m_lineLength, m_lineOffset, and skipWhitespaces().
Referenced by readAddSubmodel(), readDiffPin(), readDouble(), readDvdt(), readInt(), readMatrixPinIndex(), readMatrixType(), readModel(), readModelSelector(), readPackageModelPins(), readRamp(), readSubmodel(), and readSubmodelSpec().
|
inlineinherited |
Print a message.
Call m_Reporter->Report if m_Reporter exists.
| aMsg | Message |
| aSeverity | Message sevirity |
Definition at line 70 of file ibis_parser.h.
References m_Reporter, and RPT_SEVERITY_INFO.
Referenced by BOOST_AUTO_TEST_CASE(), IbisParser::changeCommentChar(), IbisParser::changeContext(), IBIS_MATRIX::Check(), IbisComponent::Check(), IbisComponentPackage::Check(), IbisComponentPin::Check(), IbisHeader::Check(), IbisModel::Check(), IbisPackageModel::Check(), IbisRamp::Check(), IbisSubmodel::Check(), IVtable::Check(), KIBIS_WAVEFORM_PRBS::Check(), KIBIS_WAVEFORM_PRBS::Check(), KIBIS_WAVEFORM_RECTANGULAR::Check(), KIBIS_WAVEFORM_RECTANGULAR::Check(), IbisParser::checkEndofLine(), KIBIS_PIN::getKuKdFromFile(), KIBIS_PIN::getKuKdOneWaveform(), KIBIS_PIN::getKuKdTwoWaveforms(), IbisParser::getNextLine(), IVtable::InterpolatedI(), KIBIS_PIN::KuKdDriver(), IbisParser::onNewLine(), IbisParser::ParseFile(), IbisParser::readAddSubmodel(), IbisParser::readDiffPin(), IbisParser::readDouble(), IbisParser::readDvdt(), IbisParser::readInt(), IbisParser::readMatrixBandedOrFull(), IbisParser::readMatrixBandwidth(), IbisParser::readMatrixPinIndex(), IbisParser::readMatrixRow(), IbisParser::readMatrixSparse(), IbisParser::readMatrixType(), IbisParser::readModel(), IbisParser::readPackage(), IbisParser::readPin(), IbisParser::readPinMapping(), IbisParser::readRamp(), IbisParser::readSeriesMosfet(), IbisParser::readSeriesPinMapping(), IbisParser::readSubmodel(), IbisParser::readSubmodelSpec(), IbisParser::readTypMinMaxValue(), IbisParser::readWaveform(), KIBIS_MODEL::TrimWaveform(), KIBIS_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().
|
private |
Definition at line 1142 of file ibis_parser.cpp.
References m_buffer, m_lineIndex, m_lineLength, and m_lineOffset.
Referenced by changeCommentChar(), checkEndofLine(), onNewLine(), parseDouble(), readAddSubmodel(), readIVtableEntry(), readNumericSubparam(), readSubmodelSpec(), readTypMinMaxValue(), readVTtableEntry(), readWord(), and storeString().
|
private |
Definition at line 1451 of file ibis_parser.cpp.
References checkEndofLine(), m_continue, m_continuingString, NONE, readString(), skipWhitespaces(), and STRING.
Referenced by changeContext(), parseComponent(), parseHeader(), and parsePackageModel().
| std::vector<char> IbisParser::m_buffer |
Definition at line 838 of file ibis_parser.h.
Referenced by changeCommentChar(), getKeyword(), getNextLine(), isLineEmptyFromCursor(), onNewLine(), ParseFile(), printLine(), readNumericSubparam(), readString(), readTableLine(), readTypMinMaxValueSubparam(), readWord(), and skipWhitespaces().
| int IbisParser::m_bufferIndex = 0 |
Definition at line 839 of file ibis_parser.h.
Referenced by getNextLine(), and ParseFile().
| char IbisParser::m_commentChar = '|' |
Definition at line 837 of file ibis_parser.h.
Referenced by changeCommentChar(), and getNextLine().
|
private |
Definition at line 1031 of file ibis_parser.h.
Referenced by changeContext(), onNewLine(), parseAlgorithmicModel(), ParseFile(), parseModel(), parsePackageModel(), parsePackageModelModelData(), readRamp(), and readWaveform().
|
private |
Definition at line 1030 of file ibis_parser.h.
Referenced by changeCommentChar(), changeContext(), onNewLine(), parseAlgorithmicModel(), parseModel(), parsePackageModel(), parsePackageModelModelData(), readAddSubmodel(), readDiffPin(), readIVtableEntry(), readMatrixRow(), readMatrixType(), readModel(), readModelSpec(), readPackage(), readPackageModelPins(), readPin(), readPinMapping(), readRamp(), readReceiverThresholds(), readSeriesMosfet(), readSeriesPinMapping(), readSubmodelSpec(), readVTtableEntry(), readWaveform(), and storeString().
|
private |
Definition at line 869 of file ibis_parser.h.
Referenced by onNewLine(), and storeString().
| IbisComponent* IbisParser::m_currentComponent = nullptr |
Definition at line 845 of file ibis_parser.h.
Referenced by changeContext(), parseComponent(), readDiffPin(), readPackage(), readPin(), readPinMapping(), and readSeriesPinMapping().
| IVtable* IbisParser::m_currentIVtable = nullptr |
Definition at line 853 of file ibis_parser.h.
Referenced by onNewLine(), readIVtableEntry(), and readSeriesMosfet().
| std::shared_ptr<IBIS_MATRIX> IbisParser::m_currentMatrix = nullptr |
Definition at line 850 of file ibis_parser.h.
Referenced by readMatrixBandedOrFull(), readMatrixBandwidth(), readMatrixData(), readMatrixRow(), readMatrixSparse(), and readMatrixType().
| int IbisParser::m_currentMatrixCol = 0 |
Definition at line 852 of file ibis_parser.h.
Referenced by readMatrixBandedOrFull(), readMatrixRow(), and readMatrixType().
| int IbisParser::m_currentMatrixRow = 0 |
Definition at line 851 of file ibis_parser.h.
Referenced by readMatrixBandedOrFull(), readMatrixRow(), readMatrixSparse(), and readMatrixType().
| IbisModel* IbisParser::m_currentModel = nullptr |
Definition at line 847 of file ibis_parser.h.
Referenced by changeContext(), currentSeriesData(), parseModel(), readAddSubmodel(), readModel(), readRamp(), and readWaveform().
| IbisModelSelector* IbisParser::m_currentModelSelector = nullptr |
Definition at line 846 of file ibis_parser.h.
Referenced by changeContext(), and readModelSelector().
| IbisMosfetEntry* IbisParser::m_currentMosfetEntry = nullptr |
Definition at line 857 of file ibis_parser.h.
Referenced by changeContext(), parseModel(), and readSeriesMosfet().
| IbisPackageModel* IbisParser::m_currentPackageModel = nullptr |
Definition at line 849 of file ibis_parser.h.
Referenced by changeContext(), parsePackageModel(), parsePackageModelModelData(), readMatrixBandwidth(), readMatrixPinIndex(), readMatrixType(), and readPackageModelPins().
| IbisSeriesData* IbisParser::m_currentSeriesData = nullptr |
Definition at line 856 of file ibis_parser.h.
Referenced by changeContext(), currentSeriesData(), and parseModel().
| IbisSubmodel* IbisParser::m_currentSubmodel = nullptr |
Definition at line 848 of file ibis_parser.h.
Referenced by changeContext(), parseSubmodel(), readRamp(), readSubmodel(), readSubmodelSpec(), and readWaveform().
| VTtable* IbisParser::m_currentVTtable = nullptr |
Definition at line 854 of file ibis_parser.h.
Referenced by onNewLine(), and readVTtableEntry().
| IbisWaveform* IbisParser::m_currentWaveform = nullptr |
Definition at line 855 of file ibis_parser.h.
Referenced by onNewLine(), and readWaveform().
| IbisFile IbisParser::m_ibisFile |
Definition at line 844 of file ibis_parser.h.
Referenced by changeContext(), IbisParser(), KIBIS_FILE::Init(), KIBIS::KIBIS(), KIBIS_MODEL::KIBIS_MODEL(), KIBIS_PIN::KIBIS_PIN(), ParseFile(), and parseHeader().
| long IbisParser::m_lineCounter = 0 |
Definition at line 836 of file ibis_parser.h.
Referenced by getNextLine(), and ParseFile().
| int IbisParser::m_lineIndex = 0 |
Definition at line 841 of file ibis_parser.h.
Referenced by changeCommentChar(), checkEndofLine(), getKeyword(), getNextLine(), isLineEmptyFromCursor(), onNewLine(), readAddSubmodel(), readDiffPin(), readIVtableEntry(), readNumericSubparam(), readPin(), readString(), readTableLine(), readTypMinMaxValueSubparam(), readVTtableEntry(), readWord(), and skipWhitespaces().
| int IbisParser::m_lineLength = 0 |
Definition at line 842 of file ibis_parser.h.
Referenced by checkEndofLine(), getKeyword(), getNextLine(), isLineEmptyFromCursor(), onNewLine(), printLine(), readAddSubmodel(), readIVtableEntry(), readNumericSubparam(), readString(), readTableLine(), readTypMinMaxValueSubparam(), readVTtableEntry(), readWord(), and skipWhitespaces().
| int IbisParser::m_lineOffset = 0 |
Definition at line 840 of file ibis_parser.h.
Referenced by changeCommentChar(), getKeyword(), getNextLine(), isLineEmptyFromCursor(), onNewLine(), printLine(), readNumericSubparam(), readString(), readTableLine(), readTypMinMaxValueSubparam(), readWord(), and skipWhitespaces().
| bool IbisParser::m_parrot = true |
Definition at line 834 of file ibis_parser.h.
Referenced by KIBIS::KIBIS(), and ParseFile().
|
inherited |
Definition at line 77 of file ibis_parser.h.
Referenced by BOOST_AUTO_TEST_CASE(), IbisParser::changeContext(), IBIS_BASE(), SPICE_GENERATOR_IBIS::IbisDevice(), KIBIS::KIBIS(), KIBIS_BASE::KIBIS_BASE(), KIBIS_MODEL::KIBIS_MODEL(), KIBIS_PIN::KIBIS_PIN(), KIBIS_SUBMODEL::KIBIS_SUBMODEL(), IbisParser::readDiffPin(), IbisParser::readIVtableEntry(), IbisParser::readPin(), IbisParser::readPinMapping(), IbisParser::readSeriesMosfet(), IbisParser::readSeriesPinMapping(), IbisParser::readVTtableEntry(), IbisParser::readWaveform(), Report(), and KIBIS_MODEL::TrimWaveform().