|
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 |
| 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. | |
| 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 | 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 750 of file ibis_parser.h.
|
inline |
Definition at line 753 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 1387 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 1470 of file ibis_parser.cpp.
References _, compareIbisWord(), COMPONENT, END, HEADER, m_context, m_continue, m_currentComponent, m_currentModel, m_currentModelSelector, m_currentPackageModel, 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 98 of file ibis_parser.h.
|
private |
Definition at line 1069 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().
|
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_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().
|
private |
Definition at line 1437 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 1210 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 1083 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 2942 of file ibis_parser.cpp.
References _, ADD_SUBMODEL, ALGORITHMIC_MODEL, COMPONENT, COMPONENT_DIFFPIN, COMPONENT_PACKAGE, COMPONENT_PIN, COMPONENT_PINMAPPING, 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(), readString(), readSubmodel(), readSubmodelSpec(), readVTtableEntry(), readWaveform(), IBIS_BASE::Report(), RPT_SEVERITY_ERROR, RX_THRESHOLDS, 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 1703 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 2515 of file ibis_parser.cpp.
References changeContext(), compareIbisWord(), m_currentComponent, readDiffPin(), readPackage(), readPin(), readPinMapping(), 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 1152 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 1094 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 987 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 2466 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 1772 of file ibis_parser.cpp.
References ALGORITHMIC_MODEL, changeContext(), compareIbisWord(), FALLING, m_context, m_continue, m_currentModel, readAddSubmodel(), readIVtableEntry(), readModelSpec(), readRamp(), readReceiverThresholds(), readTypMinMaxValue(), readWaveform(), and RISING.
Referenced by onNewLine().
|
private |
Parse a single keyword in the model selector context.
| aKeyword | Keyword |
Definition at line 1598 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 2144 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 2107 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 1866 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 1256 of file ibis_parser.cpp.
References m_buffer, m_lineLength, and m_lineOffset.
Referenced by ParseFile().
|
private |
Definition at line 1720 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 1693 of file ibis_parser.cpp.
Referenced by onNewLine().
|
private |
Definition at line 2770 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 1264 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 1127 of file ibis_parser.cpp.
References _, parseDvdt(), readWord(), IBIS_BASE::Report(), and RPT_SEVERITY_WARNING.
Referenced by readRampdvdt().
|
private |
Definition at line 1286 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 2803 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(), and parseSubmodel().
|
private |
Definition at line 2028 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 1976 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 2080 of file ibis_parser.cpp.
References BANDED, FULL, m_currentMatrix, readMatrixBandedOrFull(), readMatrixSparse(), SPARSE, and UNDEFINED.
Referenced by onNewLine().
|
private |
Definition at line 1908 of file ibis_parser.cpp.
References _, m_currentPackageModel, pin, readWord(), and IBIS_BASE::Report().
Referenced by readMatrixRow(), and readMatrixSparse().
|
private |
Definition at line 2003 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 2056 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 1929 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 2271 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 2171 of file ibis_parser.cpp.
References m_currentModelSelector, model, readString(), and readWord().
Referenced by onNewLine().
|
private |
Definition at line 1665 of file ibis_parser.cpp.
References m_continue, and MODEL_SPEC.
Referenced by onNewLine(), and parseModel().
|
private |
Definition at line 2186 of file ibis_parser.cpp.
References m_buffer, m_lineIndex, m_lineLength, m_lineOffset, readDouble(), and skipWhitespaces().
Referenced by readModel(), readRamp(), and readWaveform().
|
private |
Definition at line 2578 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 1897 of file ibis_parser.cpp.
References m_continue, m_currentPackageModel, PACKAGEMODEL_PINS, and readWord().
Referenced by onNewLine(), and parsePackageModel().
|
private |
Definition at line 2627 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 2724 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 1620 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 1609 of file ibis_parser.cpp.
References MAX, MIN, readDvdt(), TYP, and dvdtTypMinMax::value.
Referenced by readRamp().
|
private |
Definition at line 1679 of file ibis_parser.cpp.
References m_continue, and RX_THRESHOLDS.
Referenced by onNewLine(), and parseModel().
|
private |
Definition at line 1346 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 2422 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 1836 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 2557 of file ibis_parser.cpp.
References m_buffer, m_lineIndex, m_lineLength, and m_lineOffset.
Referenced by readMatrixBandedOrFull(), readPackage(), readPin(), and readPinMapping().
|
private |
Definition at line 2226 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 2246 of file ibis_parser.cpp.
References m_buffer, m_lineIndex, m_lineLength, m_lineOffset, and readTypMinMaxValue().
Referenced by readModel().
|
private |
Definition at line 2827 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 2850 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 1330 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 68 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::readSubmodel(), IbisParser::readSubmodelSpec(), IbisParser::readTypMinMaxValue(), IbisParser::readWaveform(), KIBIS_MODEL::TrimWaveform(), KIBIS_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().
|
private |
Definition at line 1062 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 1371 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 762 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 763 of file ibis_parser.h.
Referenced by getNextLine(), and ParseFile().
| char IbisParser::m_commentChar = '|' |
Definition at line 761 of file ibis_parser.h.
Referenced by changeCommentChar(), and getNextLine().
|
private |
Definition at line 940 of file ibis_parser.h.
Referenced by changeContext(), onNewLine(), parseAlgorithmicModel(), ParseFile(), parseModel(), parsePackageModel(), parsePackageModelModelData(), readRamp(), and readWaveform().
|
private |
Definition at line 939 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(), readSubmodelSpec(), readVTtableEntry(), readWaveform(), and storeString().
|
private |
Definition at line 791 of file ibis_parser.h.
Referenced by onNewLine(), and storeString().
| IbisComponent* IbisParser::m_currentComponent = nullptr |
Definition at line 769 of file ibis_parser.h.
Referenced by changeContext(), parseComponent(), readDiffPin(), readPackage(), readPin(), and readPinMapping().
| IVtable* IbisParser::m_currentIVtable = nullptr |
Definition at line 777 of file ibis_parser.h.
Referenced by onNewLine(), and readIVtableEntry().
| std::shared_ptr<IBIS_MATRIX> IbisParser::m_currentMatrix = nullptr |
Definition at line 774 of file ibis_parser.h.
Referenced by readMatrixBandedOrFull(), readMatrixBandwidth(), readMatrixData(), readMatrixRow(), readMatrixSparse(), and readMatrixType().
| int IbisParser::m_currentMatrixCol = 0 |
Definition at line 776 of file ibis_parser.h.
Referenced by readMatrixBandedOrFull(), readMatrixRow(), and readMatrixType().
| int IbisParser::m_currentMatrixRow = 0 |
Definition at line 775 of file ibis_parser.h.
Referenced by readMatrixBandedOrFull(), readMatrixRow(), readMatrixSparse(), and readMatrixType().
| IbisModel* IbisParser::m_currentModel = nullptr |
Definition at line 771 of file ibis_parser.h.
Referenced by changeContext(), parseModel(), readAddSubmodel(), readModel(), readRamp(), and readWaveform().
| IbisModelSelector* IbisParser::m_currentModelSelector = nullptr |
Definition at line 770 of file ibis_parser.h.
Referenced by changeContext(), and readModelSelector().
| IbisPackageModel* IbisParser::m_currentPackageModel = nullptr |
Definition at line 773 of file ibis_parser.h.
Referenced by changeContext(), parsePackageModel(), parsePackageModelModelData(), readMatrixBandwidth(), readMatrixPinIndex(), readMatrixType(), and readPackageModelPins().
| IbisSubmodel* IbisParser::m_currentSubmodel = nullptr |
Definition at line 772 of file ibis_parser.h.
Referenced by changeContext(), parseSubmodel(), readRamp(), readSubmodel(), readSubmodelSpec(), and readWaveform().
| VTtable* IbisParser::m_currentVTtable = nullptr |
Definition at line 778 of file ibis_parser.h.
Referenced by onNewLine(), and readVTtableEntry().
| IbisWaveform* IbisParser::m_currentWaveform = nullptr |
Definition at line 779 of file ibis_parser.h.
Referenced by onNewLine(), and readWaveform().
| IbisFile IbisParser::m_ibisFile |
Definition at line 768 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 760 of file ibis_parser.h.
Referenced by getNextLine(), and ParseFile().
| int IbisParser::m_lineIndex = 0 |
Definition at line 765 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 766 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 764 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 758 of file ibis_parser.h.
Referenced by KIBIS::KIBIS(), and ParseFile().
|
inherited |
Definition at line 75 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::readVTtableEntry(), IbisParser::readWaveform(), Report(), and KIBIS_MODEL::TrimWaveform().