KiCad PCB EDA Suite
PARSE_ERROR Struct Reference

A filename or source description, a problem input line, a line number, a byte offset, and an error message which contains the caller's report and his call site information: CPP source file, function, and line number. More...

#include <ki_exception.h>

Inheritance diagram for PARSE_ERROR:
IO_ERROR FUTURE_FORMAT_ERROR

Public Member Functions

 PARSE_ERROR (const wxString &aProblem, const char *aThrowersFile, const char *aThrowersFunction, int aThrowersLineNumber, const wxString &aSource, const char *aInputLine, int aLineNumber, int aByteIndex)
 Normally called via the macro THROW_PARSE_ERROR so that FILE, FUNCTION, and LINE can be captured from the call site. More...
 
void init (const wxString &aProblem, const char *aThrowersFile, const char *aThrowersFunction, int aThrowersLineNumber, const wxString &aSource, const char *aInputLine, int aLineNumber, int aByteIndex)
 
 ~PARSE_ERROR () throw ()
 
const wxString ParseProblem ()
 
void init (const wxString &aProblem, const char *aThrowersFile, const char *aThrowersFunction, int aThrowersLineNumber)
 
virtual const wxString Problem () const
 what was the problem? More...
 
virtual const wxString Where () const
 where did the Problem() occur? More...
 
virtual const wxString What () const
 A composite of Problem() and Where() More...
 

Public Attributes

int lineNumber
 at which line number, 1 based index. More...
 
int byteIndex
 at which byte offset within the line, 1 based index More...
 
std::string inputLine
 problem line of input [say, from a LINE_READER]. More...
 

Protected Member Functions

 PARSE_ERROR ()
 

Protected Attributes

wxString parseProblem
 
wxString problem
 
wxString where
 

Detailed Description

A filename or source description, a problem input line, a line number, a byte offset, and an error message which contains the caller's report and his call site information: CPP source file, function, and line number.

Author
Dick Hollenbeck

Definition at line 118 of file ki_exception.h.

Constructor & Destructor Documentation

◆ PARSE_ERROR() [1/2]

PARSE_ERROR::PARSE_ERROR ( const wxString &  aProblem,
const char *  aThrowersFile,
const char *  aThrowersFunction,
int  aThrowersLineNumber,
const wxString &  aSource,
const char *  aInputLine,
int  aLineNumber,
int  aByteIndex 
)
inline

Normally called via the macro THROW_PARSE_ERROR so that FILE, FUNCTION, and LINE can be captured from the call site.

Definition at line 133 of file ki_exception.h.

136 :
137 IO_ERROR()
138 {
139 init( aProblem, aThrowersFile, aThrowersFunction, aThrowersLineNumber,
140 aSource, aInputLine, aLineNumber, aByteIndex );
141 }
void init(const wxString &aProblem, const char *aThrowersFile, const char *aThrowersFunction, int aThrowersLineNumber, const wxString &aSource, const char *aInputLine, int aLineNumber, int aByteIndex)
Definition: exceptions.cpp:69

References init().

◆ ~PARSE_ERROR()

PARSE_ERROR::~PARSE_ERROR ( )
throw (
)
inline

Definition at line 148 of file ki_exception.h.

148{}

◆ PARSE_ERROR() [2/2]

PARSE_ERROR::PARSE_ERROR ( )
inlineprotected

Definition at line 153 of file ki_exception.h.

153 :
154 IO_ERROR(),
155 lineNumber( 0 ),
156 byteIndex( 0 )
157 {}
int lineNumber
at which line number, 1 based index.
Definition: ki_exception.h:120
int byteIndex
at which byte offset within the line, 1 based index
Definition: ki_exception.h:121

Member Function Documentation

◆ init() [1/2]

void IO_ERROR::init ( const wxString &  aProblem,
const char *  aThrowersFile,
const char *  aThrowersFunction,
int  aThrowersLineNumber 
)
inherited

Definition at line 53 of file exceptions.cpp.

55{
56 problem = aProblem;
57
58 // The throwers filename is a full filename, depending on Kicad source location.
59 // a short filename will be printed (it is better for user, the full filename has no meaning).
60 wxString srcname = aThrowersFile;
61
62 where.Printf( _( "from %s : %s() line %d" ),
63 srcname.AfterLast( '/' ),
64 wxString( aThrowersFunction ),
65 aThrowersLineNumber );
66}
wxString problem
Definition: ki_exception.h:106
wxString where
Definition: ki_exception.h:107
#define _(s)

References _, IO_ERROR::problem, and IO_ERROR::where.

Referenced by IO_ERROR::IO_ERROR().

◆ init() [2/2]

void PARSE_ERROR::init ( const wxString &  aProblem,
const char *  aThrowersFile,
const char *  aThrowersFunction,
int  aThrowersLineNumber,
const wxString &  aSource,
const char *  aInputLine,
int  aLineNumber,
int  aByteIndex 
)

Definition at line 69 of file exceptions.cpp.

73{
74 parseProblem = aProblem;
75
76 problem.Printf( _( "%s in '%s', line %d, offset %d." ),
77 aProblem,
78 aSource,
79 aLineNumber,
80 aByteIndex );
81
82 inputLine = aInputLine;
83 lineNumber = aLineNumber;
84 byteIndex = aByteIndex;
85
86 // The throwers filename is a full filename, depending on Kicad source location.
87 // a short filename will be printed (it is better for user, the full filename has no meaning).
88 wxString srcname = aThrowersFile;
89
90 where.Printf( _( "from %s : %s() line:%d" ),
91 srcname.AfterLast( '/' ),
92 wxString( aThrowersFunction ),
93 aThrowersLineNumber );
94}
wxString parseProblem
Definition: ki_exception.h:160
std::string inputLine
problem line of input [say, from a LINE_READER].
Definition: ki_exception.h:127

References _, byteIndex, inputLine, lineNumber, parseProblem, IO_ERROR::problem, and IO_ERROR::where.

Referenced by PARSE_ERROR().

◆ ParseProblem()

const wxString PARSE_ERROR::ParseProblem ( )
inline

Definition at line 150 of file ki_exception.h.

150{ return parseProblem; }

References parseProblem.

Referenced by PANEL_SETUP_RULES::OnCompile().

◆ Problem()

◆ What()

const wxString IO_ERROR::What ( ) const
virtualinherited

A composite of Problem() and Where()

Definition at line 30 of file exceptions.cpp.

31{
32#ifdef DEBUG
33 return wxString( wxS( "IO_ERROR: " ) ) + Problem() + wxS("\n\n" ) + Where();
34#else
35 return Problem();
36#endif
37}
virtual const wxString Problem() const
what was the problem?
Definition: exceptions.cpp:46
virtual const wxString Where() const
where did the Problem() occur?
Definition: exceptions.cpp:40

References IO_ERROR::Problem(), and IO_ERROR::Where().

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_TREE_MODEL_ADAPTER::AddLibrary(), SYMBOL_EDIT_FRAME::addLibTableEntry(), PCB_CONTROL::AppendBoard(), PL_EDIT_TOOL::Copy(), SIM_MODEL::Create(), SCH_EDIT_FRAME::CreateArchiveLibrary(), SCH_PLOTTER::createDXFFiles(), SCH_PLOTTER::createHPGLFiles(), SIM_LIB_MGR::CreateModel(), PCB_BASE_EDIT_FRAME::createNewLibrary(), SCH_PLOTTER::createPDFFile(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), SCH_PLOTTER::createPSFiles(), SCH_PLOTTER::createSVGFiles(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), SYMBOL_PREVIEW_WIDGET::DisplaySymbol(), DS_DATA_MODEL_FILEIO::DS_DATA_MODEL_FILEIO(), DS_DATA_MODEL_STRINGIO::DS_DATA_MODEL_STRINGIO(), PCB_EDIT_FRAME::Export_IDF3(), FOOTPRINT_EDIT_FRAME::ExportFootprint(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), PCB_EDIT_FRAME::ExportSpecctraFile(), SYMBOL_EDIT_FRAME::ExportSymbol(), SCH_EDITOR_CONTROL::ExportSymbolsToLibrary(), PCB_EDIT_FRAME::FetchNetlistFromSchematic(), EAGLE_PLUGIN::FootprintEnumerate(), GPCB_PLUGIN::FootprintEnumerate(), PCB_PLUGIN::FootprintEnumerate(), LEGACY_PLUGIN::FootprintEnumerate(), FOOTPRINT_INFO_GENERATOR::GenerateHtml(), SYMBOL_LIBRARY_MANAGER::GetAlias(), SYMBOL_LIBRARY_MANAGER::GetBufferedSymbol(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), SYMBOL_LIBRARY_MANAGER::GetLibrary(), SYMBOL_LIBRARY_MANAGER::getOriginalSymbols(), SCH_EDIT_FRAME::importFile(), FOOTPRINT_EDIT_FRAME::ImportFootprint(), PCB_EDIT_FRAME::ImportSpecctraSession(), SYMBOL_EDIT_FRAME::ImportSymbol(), InvokePcbLibTableEditor(), InvokeSchEditSymbolLibTable(), GPCB_FPL_CACHE::Load(), FP_CACHE::Load(), PNS_LOG_FILE::Load(), SYMBOL_LIBS::LoadAllLibraries(), DS_DATA_MODEL::LoadDrawingSheet(), SCH::IFACE::loadGlobalLibTable(), PCB::IFACE::loadGlobalLibTable(), SCH_SEXPR_PLUGIN::loadHierarchy(), SCH_LEGACY_PLUGIN::loadHierarchy(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbol(), SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib(), main(), DIALOG_BOARD_SETUP::onAuxiliaryAction(), APP_SINGLE_TOP::OnInit(), APP_TEST::OnInit(), CV::IFACE::OnKifaceStart(), APP_SINGLE_TOP::OnRun(), APP_KICAD::OnRun(), APP_KICAD_CLI::OnRun(), APP_TEST::OnRun(), DIALOG_SHEET_PROPERTIES::onSheetFilenameChanged(), DIALOG_SIM_MODEL< T_symbol, T_field >::onTypeChoice(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), SYMBOL_GRID_TRICKS::paste_text(), FP_GRID_TRICKS::paste_text(), PROJECT::PcbFootprintLibs(), KIWAY::Player(), DIALOG_CHOOSE_SYMBOL::PopulateFootprintSelector(), PANEL_REGULATOR::ReadDataFile(), SPICE_LIBRARY_PARSER::readElement(), CVPCB_MAINFRAME::readNetListAndFpFiles(), PCB_EDIT_FRAME::ReadNetlistFromFile(), CVPCB_MAINFRAME::readSchematicNetlist(), FOOTPRINT_EDITOR_CONTROL::RenameFootprint(), SYMBOL_EDIT_FRAME::replaceLibTableEntry(), PCB_EDIT_FRAME::RunEeschema(), SYMBOL_LIBRARY_MANAGER::LIB_BUFFER::SaveBuffer(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), FOOTPRINT_EDIT_FRAME::SaveLibraryAs(), PCB_EDIT_FRAME::SavePcbCopy(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::saveSchematicFile(), SCH_BASE_FRAME::saveSymbolLibTables(), SchGetLibSymbol(), SIM_LIB_MGR::SetLibrary(), DS_DATA_MODEL::SetPageLayout(), DIALOG_CHOOSE_SYMBOL::ShowFootprintFor(), KICAD_MANAGER_CONTROL::ShowPlayer(), DIALOG_EDIT_SYMBOLS_LIBID::TransferDataFromWindow(), DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG::TransferDataFromWindow(), DIALOG_GLOBAL_FP_LIB_TABLE_CONFIG::TransferDataFromWindow(), SCH_SCREEN::UpdateSymbolLinks(), PANEL_SYM_LIB_TABLE::verifyTables(), SYMBOL_ASYNC_LOADER::worker(), WriteDRCReport(), NETLIST_EXPORTER_KICAD::WriteNetlist(), and SYMBOL_LIB_TABLE_RESCUER::WriteRescueLibrary().

◆ Where()

const wxString IO_ERROR::Where ( ) const
virtualinherited

where did the Problem() occur?

Definition at line 40 of file exceptions.cpp.

41{
42 return where;
43}

References IO_ERROR::where.

Referenced by PCB_EDIT_FRAME::FetchNetlistFromSchematic(), and IO_ERROR::What().

Member Data Documentation

◆ byteIndex

int PARSE_ERROR::byteIndex

at which byte offset within the line, 1 based index

Definition at line 121 of file ki_exception.h.

Referenced by FUTURE_FORMAT_ERROR::FUTURE_FORMAT_ERROR(), init(), and PANEL_SETUP_RULES::OnCompile().

◆ inputLine

std::string PARSE_ERROR::inputLine

problem line of input [say, from a LINE_READER].

this is brought up in original byte format rather than wxString form, in case there was a problem with the encoding, in which case converting to wxString is not reliable in this context.

Definition at line 127 of file ki_exception.h.

Referenced by FUTURE_FORMAT_ERROR::FUTURE_FORMAT_ERROR(), and init().

◆ lineNumber

int PARSE_ERROR::lineNumber

at which line number, 1 based index.

Definition at line 120 of file ki_exception.h.

Referenced by FUTURE_FORMAT_ERROR::FUTURE_FORMAT_ERROR(), init(), and PANEL_SETUP_RULES::OnCompile().

◆ parseProblem

wxString PARSE_ERROR::parseProblem
protected

Definition at line 160 of file ki_exception.h.

Referenced by init(), and ParseProblem().

◆ problem

wxString IO_ERROR::problem
protectedinherited

◆ where

wxString IO_ERROR::where
protectedinherited

Definition at line 107 of file ki_exception.h.

Referenced by IO_ERROR::init(), init(), and IO_ERROR::Where().


The documentation for this struct was generated from the following files: