KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PCB_PARSER Class Reference

Read a Pcbnew s-expression formatted LINE_READER object and returns the appropriate BOARD_ITEM object. More...

#include <pcb_parser.h>

Inheritance diagram for PCB_PARSER:

Classes

struct  GENERATOR_INFO
 Convert net code using the mapping table if available, otherwise returns unchanged net code if < 0 or if it's out of range. More...
 
struct  GROUP_INFO
 

Public Member Functions

 PCB_PARSER (LINE_READER *aReader, BOARD *aAppendToMe, std::function< bool(wxString, int, wxString, wxString)> aQueryUserCallback, PROGRESS_REPORTER *aProgressReporter=nullptr, unsigned aLineCount=0)
 
BOARD_ITEMParse ()
 
FOOTPRINTparseFOOTPRINT (wxArrayString *aInitialComments=nullptr)
 
bool IsTooRecent ()
 Return whether a version number, if any was parsed, was too recent. More...
 
wxString GetRequiredVersion ()
 Return a string representing the version of KiCad required to open this file. More...
 
bool IsValidBoardHeader ()
 Partially parse the input and check if it matches expected header. More...
 

Private Types

typedef std::unordered_map< std::string, PCB_LAYER_IDLAYER_ID_MAP
 
typedef std::unordered_map< std::string, LSETLSET_MAP
 
typedef std::unordered_map< wxString, KIIDKIID_MAP
 The type of progress bar timeout. More...
 
using TIMEOUT = std::chrono::milliseconds
 The clock used for the timestamp (guaranteed to be monotonic). More...
 
using CLOCK = std::chrono::steady_clock
 The type of the time stamps. More...
 
using TIME_PT = std::chrono::time_point< CLOCK >
 

Private Member Functions

int getNetCode (int aNetCode)
 
void pushValueIntoMap (int aIndex, int aValue)
 Add aValue value in netcode mapping (m_netCodes) at aIndex. More...
 
void init ()
 Clear and re-establish m_layerMap with the default layer names. More...
 
void checkpoint ()
 
void createOldLayerMapping (std::unordered_map< std::string, std::string > &aMap)
 Create a mapping from the (short-lived) bug where layer names were translated. More...
 
void skipCurrent ()
 Skip the current token level, i.e search for the RIGHT parenthesis which closes the current description. More...
 
void parseHeader ()
 
void parseGeneralSection ()
 
void parsePAGE_INFO ()
 
void parseTITLE_BLOCK ()
 
void parseLayers ()
 
void parseLayer (LAYER *aLayer)
 
void parseBoardStackup ()
 
void parseSetup ()
 
void parseDefaults (BOARD_DESIGN_SETTINGS &aSettings)
 
void parseDefaultTextDims (BOARD_DESIGN_SETTINGS &aSettings, int aLayer)
 
void parseNETINFO_ITEM ()
 
void parseNETCLASS ()
 
void parseTEARDROP_PARAMETERS (TEARDROP_PARAMETERS *tdParams)
 
PCB_SHAPEparsePCB_SHAPE (BOARD_ITEM *aParent)
 
PCB_TEXTparsePCB_TEXT (BOARD_ITEM *aParent)
 
void parsePCB_TEXT_effects (PCB_TEXT *aText)
 
PCB_REFERENCE_IMAGEparsePCB_REFERENCE_IMAGE (BOARD_ITEM *aParent)
 
PCB_TEXTBOXparsePCB_TEXTBOX (BOARD_ITEM *aParent)
 
PCB_DIMENSION_BASEparseDIMENSION (BOARD_ITEM *aParent)
 
FOOTPRINTparseFOOTPRINT_unchecked (wxArrayString *aInitialComments=nullptr)
 
PADparsePAD (FOOTPRINT *aParent=nullptr)
 
bool parsePAD_option (PAD *aPad)
 
PCB_ARCparseARC ()
 
PCB_TRACKparsePCB_TRACK ()
 
PCB_VIAparsePCB_VIA ()
 
ZONEparseZONE (BOARD_ITEM_CONTAINER *aParent)
 
PCB_TARGETparsePCB_TARGET ()
 
BOARDparseBOARD ()
 
void parseGROUP_members (GROUP_INFO &aGroupInfo)
 
void parseGROUP (BOARD_ITEM *aParent)
 
void parseGENERATOR (BOARD_ITEM *aParent)
 
BOARDparseBOARD_unchecked ()
 
template<class T , class M >
lookUpLayer (const M &aMap)
 Parse the current token for the layer definition of a BOARD_ITEM object. More...
 
PCB_LAYER_ID parseBoardItemLayer ()
 Parse the layer definition of a BOARD_ITEM object. More...
 
LSET parseBoardItemLayersAsMask ()
 Parse the layers definition of a BOARD_ITEM object. More...
 
VECTOR2I parseXY ()
 Parse a coordinate pair (xy X Y) in board units (mm). More...
 
void parseXY (int *aX, int *aY)
 
std::pair< wxString, wxString > parseBoardProperty ()
 
void parseOutlinePoints (SHAPE_LINE_CHAIN &aPoly)
 Parses possible outline points and stores them into aPoly. More...
 
void parseEDA_TEXT (EDA_TEXT *aText)
 Parse the common settings for any object derived from EDA_TEXT. More...
 
void parseRenderCache (EDA_TEXT *text)
 Parse the render cache for any object derived from EDA_TEXT. More...
 
FP_3DMODELparse3DModel ()
 
int parseBoardUnits ()
 Parse the current token as an ASCII numeric string with possible leading whitespace into a double precision floating point number. More...
 
int parseBoardUnits (const char *aExpected)
 
int parseBoardUnits (PCB_KEYS_T::T aToken)
 
int parseInt ()
 
int parseInt (const char *aExpected)
 
long parseHex ()
 
bool parseBool ()
 
KIID CurStrToKIID ()
 
void resolveGroups (BOARD_ITEM *aParent)
 Called after parsing a footprint definition or board to build the group membership lists. More...
 

Private Attributes

BOARDm_board
 
LAYER_ID_MAP m_layerIndices
 map layer name to it's index More...
 
LSET_MAP m_layerMasks
 map layer names to their masks More...
 
std::set< wxString > m_undefinedLayers
 set of layers not defined in layers section More...
 
std::vector< int > m_netCodes
 net codes mapping for boards being loaded More...
 
bool m_tooRecent
 true if version parses as later than supported More...
 
int m_requiredVersion
 set to the KiCad format version this board requires More...
 
bool m_appendToExisting
 reading into an existing board; reset UUIDs More...
 
KIID_MAP m_resetKIIDMap
 
bool m_showLegacySegmentZoneWarning
 
bool m_showLegacy5ZoneWarning
 
PROGRESS_REPORTERm_progressReporter
 optional; may be nullptr More...
 
TIME_PT m_lastProgressTime
 for progress reporting More...
 
unsigned m_lineCount
 for progress reporting More...
 
std::vector< GROUP_INFOm_groupInfos
 
std::vector< GENERATOR_INFOm_generatorInfos
 
std::function< bool(wxString aTitle, int aIcon, wxString aMsg, wxString aAction)> m_queryUserCallback
 

Detailed Description

Read a Pcbnew s-expression formatted LINE_READER object and returns the appropriate BOARD_ITEM object.

Definition at line 74 of file pcb_parser.h.

Member Typedef Documentation

◆ CLOCK

using PCB_PARSER::CLOCK = std::chrono::steady_clock
private

The type of the time stamps.

Definition at line 365 of file pcb_parser.h.

◆ KIID_MAP

typedef std::unordered_map< wxString, KIID > PCB_PARSER::KIID_MAP
private

The type of progress bar timeout.

Definition at line 359 of file pcb_parser.h.

◆ LAYER_ID_MAP

typedef std::unordered_map< std::string, PCB_LAYER_ID > PCB_PARSER::LAYER_ID_MAP
private

Definition at line 357 of file pcb_parser.h.

◆ LSET_MAP

typedef std::unordered_map< std::string, LSET > PCB_PARSER::LSET_MAP
private

Definition at line 358 of file pcb_parser.h.

◆ TIME_PT

using PCB_PARSER::TIME_PT = std::chrono::time_point<CLOCK>
private

Definition at line 368 of file pcb_parser.h.

◆ TIMEOUT

using PCB_PARSER::TIMEOUT = std::chrono::milliseconds
private

The clock used for the timestamp (guaranteed to be monotonic).

Definition at line 362 of file pcb_parser.h.

Constructor & Destructor Documentation

◆ PCB_PARSER()

PCB_PARSER::PCB_PARSER ( LINE_READER aReader,
BOARD aAppendToMe,
std::function< bool(wxString, int, wxString, wxString)>  aQueryUserCallback,
PROGRESS_REPORTER aProgressReporter = nullptr,
unsigned  aLineCount = 0 
)
inline

Definition at line 77 of file pcb_parser.h.

References init().

Member Function Documentation

◆ checkpoint()

◆ createOldLayerMapping()

void PCB_PARSER::createOldLayerMapping ( std::unordered_map< std::string, std::string > &  aMap)
private

Create a mapping from the (short-lived) bug where layer names were translated.

Todo:
Remove this once we support custom layer names.
Parameters
aMapstring mapping from translated to English layer names.

Definition at line 1705 of file pcb_parser.cpp.

Referenced by parseLayers().

◆ CurStrToKIID()

◆ getNetCode()

int PCB_PARSER::getNetCode ( int  aNetCode)
inlineprivate

Definition at line 149 of file pcb_parser.h.

References m_netCodes.

Referenced by parseARC(), parsePAD(), parsePCB_SHAPE(), parsePCB_TRACK(), parsePCB_VIA(), and parseZONE().

◆ GetRequiredVersion()

wxString PCB_PARSER::GetRequiredVersion ( )

Return a string representing the version of KiCad required to open this file.

Not particularly meaningful if IsTooRecent() returns false.

Definition at line 231 of file pcb_parser.cpp.

References _, m_requiredVersion, and THROW_PARSE_ERROR.

Referenced by PCB_PLUGIN::DoLoad(), CLIPBOARD_IO::LoadBoard(), PCB_PLUGIN::Parse(), parseBOARD(), and parseFOOTPRINT().

◆ init()

void PCB_PARSER::init ( )
private

Clear and re-establish m_layerMap with the default layer names.

m_layerMap will have some of its entries overwritten whenever a (new) board is encountered.

Definition at line 87 of file pcb_parser.cpp.

References LSET::AllCuMask(), B_Adhes, B_CrtYd, B_Cu, B_Fab, B_Mask, B_Paste, B_SilkS, F_Adhes, F_CrtYd, F_Cu, F_Fab, F_Mask, F_Paste, F_SilkS, In15_Cu, LSET::InternalCuMask(), m_layerIndices, m_layerMasks, m_requiredVersion, m_resetKIIDMap, m_showLegacy5ZoneWarning, m_showLegacySegmentZoneWarning, m_tooRecent, LSET::Name(), PCB_LAYER_ID_COUNT, StrPrintf(), and TO_UTF8.

Referenced by PCB_PARSER().

◆ IsTooRecent()

bool PCB_PARSER::IsTooRecent ( )
inline

Return whether a version number, if any was parsed, was too recent.

Definition at line 106 of file pcb_parser.h.

References m_tooRecent.

Referenced by PCB_PLUGIN::DoLoad(), CLIPBOARD_IO::LoadBoard(), and PCB_PLUGIN::Parse().

◆ IsValidBoardHeader()

bool PCB_PARSER::IsValidBoardHeader ( )

Partially parse the input and check if it matches expected header.

Returns
true if expected header matches

Definition at line 747 of file pcb_parser.cpp.

References m_groupInfos.

Referenced by PCB_PLUGIN::CanReadBoard().

◆ lookUpLayer()

template<class T , class M >
T PCB_PARSER::lookUpLayer ( const M &  aMap)
private

Parse the current token for the layer definition of a BOARD_ITEM object.

Parameters
aMapis the LAYER_{NUM|MSK}_MAP to use for the lookup.
Returns
The result of the parsed BOARD_ITEM layer or set designator.
Exceptions
IO_ERRORif the layer is not valid.
PARSE_ERRORif the layer syntax is incorrect.

Definition at line 1887 of file pcb_parser.cpp.

References m_undefinedLayers, and Rescue.

◆ Parse()

◆ parse3DModel()

◆ parseARC()

PCB_ARC * PCB_PARSER::parseARC ( )
private

◆ parseBOARD()

BOARD * PCB_PARSER::parseBOARD ( )
private

Definition at line 817 of file pcb_parser.cpp.

References GetRequiredVersion(), m_tooRecent, and parseBOARD_unchecked().

Referenced by Parse().

◆ parseBOARD_unchecked()

◆ parseBoardItemLayer()

PCB_LAYER_ID PCB_PARSER::parseBoardItemLayer ( )
private

Parse the layer definition of a BOARD_ITEM object.

Returns
The index the parsed BOARD_ITEM layer.
Exceptions
IO_ERRORif the layer is not valid.
PARSE_ERRORif the layer syntax is incorrect.

Definition at line 1906 of file pcb_parser.cpp.

References m_layerIndices, and UNDEFINED_LAYER.

Referenced by parseARC(), parseDIMENSION(), parseFOOTPRINT_unchecked(), parseGENERATOR(), parsePCB_REFERENCE_IMAGE(), parsePCB_SHAPE(), parsePCB_TARGET(), parsePCB_TEXT_effects(), parsePCB_TEXTBOX(), parsePCB_TRACK(), and parseZONE().

◆ parseBoardItemLayersAsMask()

LSET PCB_PARSER::parseBoardItemLayersAsMask ( )
private

Parse the layers definition of a BOARD_ITEM object.

Returns
The mask of layers the parsed BOARD_ITEM is on.
Exceptions
IO_ERRORif any of the layers is not valid.
PARSE_ERRORif the layers syntax is incorrect.

Definition at line 1921 of file pcb_parser.cpp.

References m_layerMasks.

Referenced by parsePAD(), and parseZONE().

◆ parseBoardProperty()

std::pair< wxString, wxString > PCB_PARSER::parseBoardProperty ( )
private

Definition at line 372 of file pcb_parser.cpp.

Referenced by parseBOARD_unchecked().

◆ parseBoardStackup()

◆ parseBoardUnits() [1/3]

int PCB_PARSER::parseBoardUnits ( )
private

Parse the current token as an ASCII numeric string with possible leading whitespace into a double precision floating point number.

Returns
The result of the parsed token.
Exceptions
IO_ERRORif an error occurs attempting to convert the current token.

Definition at line 188 of file pcb_parser.cpp.

References INT_LIMIT, EDA_IU_SCALE::IU_PER_MM, KiROUND(), parseDouble(), and pcbIUScale.

Referenced by parseARC(), parseBoardStackup(), parseBoardUnits(), parseDefaults(), parseDefaultTextDims(), parseDIMENSION(), parseEDA_TEXT(), parseFOOTPRINT_unchecked(), parseGeneralSection(), parseGENERATOR(), parseNETCLASS(), parseOutlinePoints(), parsePAD(), parsePCB_REFERENCE_IMAGE(), parsePCB_SHAPE(), parsePCB_TARGET(), parsePCB_TEXT_effects(), parsePCB_TEXTBOX(), parsePCB_TRACK(), parsePCB_VIA(), parseSetup(), parseTEARDROP_PARAMETERS(), parseXY(), and parseZONE().

◆ parseBoardUnits() [2/3]

int PCB_PARSER::parseBoardUnits ( const char *  aExpected)
private

Definition at line 205 of file pcb_parser.cpp.

References INT_LIMIT, EDA_IU_SCALE::IU_PER_MM, KiROUND(), parseDouble(), and pcbIUScale.

◆ parseBoardUnits() [3/3]

int PCB_PARSER::parseBoardUnits ( PCB_KEYS_T::T  aToken)
inlineprivate

Definition at line 322 of file pcb_parser.h.

References parseBoardUnits().

◆ parseBool()

bool PCB_PARSER::parseBool ( )
private

Definition at line 216 of file pcb_parser.cpp.

Referenced by parsePCB_TEXTBOX(), parseSetup(), and parseZONE().

◆ parseDefaults()

◆ parseDefaultTextDims()

◆ parseDIMENSION()

◆ parseEDA_TEXT()

◆ parseFOOTPRINT()

FOOTPRINT * PCB_PARSER::parseFOOTPRINT ( wxArrayString *  aInitialComments = nullptr)
Parameters
aInitialCommentsmay be a pointer to a heap allocated initial comment block or NULL. If not NULL, then caller has given ownership of a wxArrayString to this function and care must be taken to delete it even on exception.

Definition at line 3745 of file pcb_parser.cpp.

References GetRequiredVersion(), m_tooRecent, and parseFOOTPRINT_unchecked().

Referenced by Parse(), and parseBOARD_unchecked().

◆ parseFOOTPRINT_unchecked()

◆ parseGeneralSection()

void PCB_PARSER::parseGeneralSection ( )
private

◆ parseGENERATOR()

◆ parseGROUP()

◆ parseGROUP_members()

void PCB_PARSER::parseGROUP_members ( GROUP_INFO aGroupInfo)
private

Definition at line 4830 of file pcb_parser.cpp.

References PCB_PARSER::GROUP_INFO::memberUuids.

Referenced by parseGENERATOR(), and parseGROUP().

◆ parseHeader()

void PCB_PARSER::parseHeader ( )
private

◆ parseHex()

long PCB_PARSER::parseHex ( )
inlineprivate

◆ parseInt() [1/2]

◆ parseInt() [2/2]

int PCB_PARSER::parseInt ( const char *  aExpected)
inlineprivate

Definition at line 332 of file pcb_parser.h.

References parseInt().

◆ parseLayer()

void PCB_PARSER::parseLayer ( LAYER aLayer)
private

◆ parseLayers()

◆ parseNETCLASS()

◆ parseNETINFO_ITEM()

◆ parseOutlinePoints()

void PCB_PARSER::parseOutlinePoints ( SHAPE_LINE_CHAIN aPoly)
private

Parses possible outline points and stores them into aPoly.

This accepts points for DRAWSEGMENT polygons, EDGEMODULE polygons and ZONE_CONTAINER polygons. Points and arcs are added to the most recent outline

Parameters
aPolypolygon container to add points and arcs

Definition at line 275 of file pcb_parser.cpp.

References SHAPE_LINE_CHAIN::Append(), parseBoardUnits(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by parseGENERATOR(), parsePCB_SHAPE(), parsePCB_TEXTBOX(), parseRenderCache(), and parseZONE().

◆ parsePAD()

◆ parsePAD_option()

bool PCB_PARSER::parsePAD_option ( PAD aPad)
private

◆ parsePAGE_INFO()

◆ parsePCB_REFERENCE_IMAGE()

PCB_REFERENCE_IMAGE * PCB_PARSER::parsePCB_REFERENCE_IMAGE ( BOARD_ITEM aParent)
private

◆ parsePCB_SHAPE()

◆ parsePCB_TARGET()

PCB_TARGET * PCB_PARSER::parsePCB_TARGET ( )
private

◆ parsePCB_TEXT()

PCB_TEXT * PCB_PARSER::parsePCB_TEXT ( BOARD_ITEM aParent)
private

◆ parsePCB_TEXT_effects()

◆ parsePCB_TEXTBOX()

◆ parsePCB_TRACK()

PCB_TRACK * PCB_PARSER::parsePCB_TRACK ( )
private

◆ parsePCB_VIA()

◆ parseRenderCache()

void PCB_PARSER::parseRenderCache ( EDA_TEXT text)
private

Parse the render cache for any object derived from EDA_TEXT.

Parameters
aTextA pointer to the EDA_TEXT object to save the parsed settings into.
Exceptions
PARSE_ERRORif the text syntax is not valid.

Definition at line 591 of file pcb_parser.cpp.

References SHAPE_POLY_SET::AddHole(), SHAPE_POLY_SET::AddOutline(), DEGREES_T, From_UTF8(), SHAPE_POLY_SET::OutlineCount(), parseDouble(), parseOutlinePoints(), SHAPE_LINE_CHAIN::SetClosed(), and text.

Referenced by parsePCB_TEXT_effects(), and parsePCB_TEXTBOX().

◆ parseSetup()

void PCB_PARSER::parseSetup ( )
private

Definition at line 1938 of file pcb_parser.cpp.

References alg::contains(), GAL_SET::DefaultVisible(), BOARD_DESIGN_SETTINGS::GetDefaultZoneSettings(), BOARD::GetDesignSettings(), LAYER_CLASS_COPPER, LAYER_CLASS_EDGES, LAYER_CLASS_SILK, BOARD_DESIGN_SETTINGS::m_AllowSoldermaskBridgesInFPs, m_appendToExisting, m_board, BOARD_DESIGN_SETTINGS::m_DiffPairDimensionsList, BOARD_DESIGN_SETTINGS::m_HoleToHoleMin, BOARD::m_LegacyDesignSettingsLoaded, BOARD::m_LegacyVisibleItems, BOARD_DESIGN_SETTINGS::m_LineThickness, BOARD_DESIGN_SETTINGS::m_MaxError, BOARD_DESIGN_SETTINGS::m_MicroViasMinDrill, BOARD_DESIGN_SETTINGS::m_MicroViasMinSize, BOARD_DESIGN_SETTINGS::m_MinClearance, BOARD_DESIGN_SETTINGS::m_MinThroughDrill, BOARD_DESIGN_SETTINGS::m_NetSettings, BOARD_DESIGN_SETTINGS::m_Pad_Master, BOARD_DESIGN_SETTINGS::m_SolderMaskExpansion, BOARD_DESIGN_SETTINGS::m_SolderMaskMinWidth, BOARD_DESIGN_SETTINGS::m_SolderPasteMargin, BOARD_DESIGN_SETTINGS::m_SolderPasteMarginRatio, BOARD_DESIGN_SETTINGS::m_TextSize, BOARD_DESIGN_SETTINGS::m_TextThickness, BOARD_DESIGN_SETTINGS::m_TrackMinWidth, BOARD_DESIGN_SETTINGS::m_TrackWidthList, BOARD_DESIGN_SETTINGS::m_ViasDimensionsList, BOARD_DESIGN_SETTINGS::m_ViasMinAnnularWidth, BOARD_DESIGN_SETTINGS::m_ViasMinSize, ZONE_SETTINGS::m_ZoneClearance, MIN_VISIBILITY_MASK, PCB_PLOT_PARAMS::Parse(), parseBoardStackup(), parseBoardUnits(), parseBool(), parseDefaults(), parseDouble(), parseHex(), GAL_SET::set(), BOARD_DESIGN_SETTINGS::SetAuxOrigin(), BOARD_DESIGN_SETTINGS::SetGridOrigin(), BOARD::SetPlotOptions(), via, VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by parseBOARD_unchecked().

◆ parseTEARDROP_PARAMETERS()

◆ parseTITLE_BLOCK()

◆ parseXY() [1/2]

VECTOR2I PCB_PARSER::parseXY ( )
private

Parse a coordinate pair (xy X Y) in board units (mm).

The parser checks if the previous token was T_LEFT and parses the remainder of the token syntax. This is used when parsing a list of coordinate points. This way the parser can be used in either case.

Returns
A wxPoint object containing the coordinate pair.
Exceptions
PARSE_ERRORif the coordinate pair syntax is incorrect.

Definition at line 255 of file pcb_parser.cpp.

References parseBoardUnits(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by parseDIMENSION(), parsePCB_SHAPE(), parseXY(), and parseZONE().

◆ parseXY() [2/2]

void PCB_PARSER::parseXY ( int *  aX,
int *  aY 
)
private

Definition at line 360 of file pcb_parser.cpp.

References parseXY(), VECTOR2< T >::x, and VECTOR2< T >::y.

◆ parseZONE()

◆ pushValueIntoMap()

void PCB_PARSER::pushValueIntoMap ( int  aIndex,
int  aValue 
)
private

Add aValue value in netcode mapping (m_netCodes) at aIndex.

Ensure there is room in m_netCodes for that, and add room if needed.

Parameters
aIndexis the index ( expected >=0 )of the location to use in m_netCodes.
aValueis the netcode value to map.

Definition at line 176 of file pcb_parser.cpp.

References m_netCodes.

Referenced by parseNETINFO_ITEM(), and parseZONE().

◆ resolveGroups()

◆ skipCurrent()

void PCB_PARSER::skipCurrent ( )
private

Skip the current token level, i.e search for the RIGHT parenthesis which closes the current description.

Definition at line 155 of file pcb_parser.cpp.

Referenced by parseBoardStackup().

Member Data Documentation

◆ m_appendToExisting

bool PCB_PARSER::m_appendToExisting
private

reading into an existing board; reset UUIDs

if resetting UUIDs, record new ones to update groups with.

Definition at line 377 of file pcb_parser.h.

Referenced by CurStrToKIID(), parseSetup(), and resolveGroups().

◆ m_board

◆ m_generatorInfos

std::vector<GENERATOR_INFO> PCB_PARSER::m_generatorInfos
private

Definition at line 390 of file pcb_parser.h.

Referenced by parseGENERATOR(), and resolveGroups().

◆ m_groupInfos

std::vector<GROUP_INFO> PCB_PARSER::m_groupInfos
private

Definition at line 389 of file pcb_parser.h.

Referenced by IsValidBoardHeader(), Parse(), parseGROUP(), and resolveGroups().

◆ m_lastProgressTime

TIME_PT PCB_PARSER::m_lastProgressTime
private

for progress reporting

Definition at line 386 of file pcb_parser.h.

Referenced by checkpoint().

◆ m_layerIndices

LAYER_ID_MAP PCB_PARSER::m_layerIndices
private

map layer name to it's index

Definition at line 371 of file pcb_parser.h.

Referenced by init(), parseBoardItemLayer(), parseFOOTPRINT_unchecked(), parseLayers(), parsePAD(), and parsePCB_VIA().

◆ m_layerMasks

LSET_MAP PCB_PARSER::m_layerMasks
private

map layer names to their masks

Definition at line 372 of file pcb_parser.h.

Referenced by init(), parseBoardItemLayersAsMask(), and parseLayers().

◆ m_lineCount

unsigned PCB_PARSER::m_lineCount
private

for progress reporting

Definition at line 387 of file pcb_parser.h.

Referenced by checkpoint().

◆ m_netCodes

std::vector<int> PCB_PARSER::m_netCodes
private

net codes mapping for boards being loaded

Definition at line 374 of file pcb_parser.h.

Referenced by getNetCode(), and pushValueIntoMap().

◆ m_progressReporter

PROGRESS_REPORTER* PCB_PARSER::m_progressReporter
private

optional; may be nullptr

Definition at line 385 of file pcb_parser.h.

Referenced by checkpoint().

◆ m_queryUserCallback

std::function<bool( wxString aTitle, int aIcon, wxString aMsg, wxString aAction )> PCB_PARSER::m_queryUserCallback
private

Definition at line 392 of file pcb_parser.h.

Referenced by parseBOARD_unchecked().

◆ m_requiredVersion

int PCB_PARSER::m_requiredVersion
private

◆ m_resetKIIDMap

KIID_MAP PCB_PARSER::m_resetKIIDMap
private

Definition at line 380 of file pcb_parser.h.

Referenced by CurStrToKIID(), init(), and resolveGroups().

◆ m_showLegacy5ZoneWarning

bool PCB_PARSER::m_showLegacy5ZoneWarning
private

Definition at line 383 of file pcb_parser.h.

Referenced by init(), and parseZONE().

◆ m_showLegacySegmentZoneWarning

bool PCB_PARSER::m_showLegacySegmentZoneWarning
private

Definition at line 382 of file pcb_parser.h.

Referenced by init(), and parseZONE().

◆ m_tooRecent

bool PCB_PARSER::m_tooRecent
private

true if version parses as later than supported

Definition at line 375 of file pcb_parser.h.

Referenced by init(), IsTooRecent(), parseBOARD(), parseFOOTPRINT(), parseFOOTPRINT_unchecked(), and parseHeader().

◆ m_undefinedLayers

std::set<wxString> PCB_PARSER::m_undefinedLayers
private

set of layers not defined in layers section

Definition at line 373 of file pcb_parser.h.

Referenced by lookUpLayer(), and parseBOARD_unchecked().


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