![]() |
KiCad PCB EDA Suite
|
Read a Pcbnew s-expression formatted LINE_READER object and returns the appropriate BOARD_ITEM object. More...
#include <pcb_parser.h>
Classes | |
struct | GROUP_INFO |
Public Member Functions | |
PCB_PARSER (LINE_READER *aReader=NULL) | |
LINE_READER * | SetLineReader (LINE_READER *aReader) |
Set aLineReader into the parser, and returns the previous one, if any. More... | |
void | SetBoard (BOARD *aBoard) |
BOARD_ITEM * | Parse () |
FOOTPRINT * | parseFOOTPRINT (wxArrayString *aInitialComments=0) |
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... | |
Private Types | |
typedef std::unordered_map< std::string, PCB_LAYER_ID > | LAYER_ID_MAP |
typedef std::unordered_map< std::string, LSET > | LSET_MAP |
typedef std::unordered_map< wxString, KIID > | KIID_MAP |
Private Member Functions | |
int | getNetCode (int aNetCode) |
< Convert net code using the mapping table if available, otherwise returns unchanged net code if < 0 or if is is out of range More... | |
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 | 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 () |
PCB_SHAPE * | parsePCB_SHAPE () |
PCB_TEXT * | parsePCB_TEXT () |
DIMENSION_BASE * | parseDIMENSION () |
FOOTPRINT * | parseFOOTPRINT_unchecked (wxArrayString *aInitialComments=0) |
FP_TEXT * | parseFP_TEXT () |
FP_SHAPE * | parseFP_SHAPE () |
PAD * | parsePAD (FOOTPRINT *aParent=NULL) |
bool | parsePAD_option (PAD *aPad) |
ARC * | parseARC () |
TRACK * | parseTRACK () |
VIA * | parseVIA () |
ZONE * | parseZONE (BOARD_ITEM_CONTAINER *aParent) |
PCB_TARGET * | parsePCB_TARGET () |
BOARD * | parseBOARD () |
void | parseGROUP (BOARD_ITEM *aParent) |
BOARD * | parseBOARD_unchecked () |
template<class T , class M > | |
T | 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... | |
wxPoint | parseXY () |
Parse a coordinate pair (xy X Y) in board units (mm). More... | |
void | parseXY (int *aX, int *aY) |
std::pair< wxString, wxString > | parseProperty () |
void | parseEDA_TEXT (EDA_TEXT *aText) |
Parse the common settings for any object derived from EDA_TEXT. More... | |
FP_3DMODEL * | parse3DModel () |
double | parseDouble () |
Parse the current token as an ASCII numeric string with possible leading whitespace into a double precision floating point number. More... | |
double | parseDouble (const char *aExpected) |
double | parseDouble (PCB_KEYS_T::T aToken) |
int | parseBoardUnits () |
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 | |
BOARD * | m_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_resetKIIDs |
reading into an existing board; reset UUIDs More... | |
KIID_MAP | m_resetKIIDMap |
bool | m_showLegacyZoneWarning |
std::vector< GROUP_INFO > | m_groupInfos |
Read a Pcbnew s-expression formatted LINE_READER object and returns the appropriate BOARD_ITEM object.
Definition at line 68 of file pcb_parser.h.
|
private |
Definition at line 356 of file pcb_parser.h.
|
private |
Definition at line 354 of file pcb_parser.h.
|
private |
Definition at line 355 of file pcb_parser.h.
|
inline |
Definition at line 71 of file pcb_parser.h.
References init().
|
private |
Create a mapping from the (short-lived) bug where layer names were translated.
aMap | string mapping from translated to English layer names. |
Definition at line 1340 of file pcb_parser.cpp.
|
private |
Definition at line 5067 of file pcb_parser.cpp.
|
inlineprivate |
< Convert net code using the mapping table if available, otherwise returns unchanged net code if < 0 or if is is out of range
Definition at line 130 of file pcb_parser.h.
References m_netCodes.
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 184 of file pcb_parser.cpp.
References _, and THROW_PARSE_ERROR.
Referenced by PCB_IO::DoLoad(), CLIPBOARD_IO::Load(), and PCB_IO::Parse().
|
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 61 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(), LSET::Name(), PCB_LAYER_ID_COUNT, StrPrintf(), and TO_UTF8.
Referenced by PCB_PARSER(), and SetBoard().
|
inline |
Return whether a version number, if any was parsed, was too recent.
Definition at line 116 of file pcb_parser.h.
References m_tooRecent.
Referenced by PCB_IO::DoLoad(), CLIPBOARD_IO::Load(), and PCB_IO::Parse().
|
private |
Parse the current token for the layer definition of a BOARD_ITEM object.
aMap | is the LAYER_{NUM|MSK}_MAP to use for the lookup. |
IO_ERROR | if the layer is not valid. |
PARSE_ERROR | if the layer syntax is incorrect. |
Definition at line 1524 of file pcb_parser.cpp.
References Rescue.
BOARD_ITEM * PCB_PARSER::Parse | ( | ) |
Definition at line 473 of file pcb_parser.cpp.
References _, NULL, and THROW_PARSE_ERROR.
Referenced by PCB_IO::DoLoad(), CLIPBOARD_IO::Load(), FP_CACHE::Load(), parse(), PCB_IO::Parse(), KI_TEST::ReadBoardItemFromFile(), and KI_TEST::ReadBoardItemFromStream().
|
private |
Definition at line 367 of file pcb_parser.cpp.
References FP_3DMODEL::m_Filename, FP_3DMODEL::m_Offset, FP_3DMODEL::m_Opacity, FP_3DMODEL::m_Rotation, FP_3DMODEL::m_Scale, FP_3DMODEL::m_Show, NULL, parseDouble(), FP_3DMODEL::VECTOR3D::x, FP_3DMODEL::VECTOR3D::y, and FP_3DMODEL::VECTOR3D::z.
|
private |
We continue to parse the status field but it is no longer written
Definition at line 4183 of file pcb_parser.cpp.
References _, Format(), NULL, parseHex(), parseInt(), and THROW_IO_ERROR.
|
private |
Definition at line 517 of file pcb_parser.cpp.
|
private |
Definition at line 533 of file pcb_parser.cpp.
References _, B_Cu, BULK_APPEND, Cmts_User, F_Cu, Format(), VIA::GetViaType(), VIA::LayerPair(), PCB_VIA_T, Rescue, VIA::SetLayerPair(), THROUGH, THROW_IO_ERROR, and THROW_PARSE_ERROR.
|
private |
Parse the layer definition of a BOARD_ITEM object.
IO_ERROR | if the layer is not valid. |
PARSE_ERROR | if the layer syntax is incorrect. |
Definition at line 1543 of file pcb_parser.cpp.
References UNDEFINED_LAYER.
|
private |
Parse the layers definition of a BOARD_ITEM object.
IO_ERROR | if any of the layers is not valid. |
PARSE_ERROR | if the layers syntax is incorrect. |
Definition at line 1558 of file pcb_parser.cpp.
|
private |
Definition at line 1144 of file pcb_parser.cpp.
References BOARD_STACKUP::Add(), BOARD_STACKUP_ITEM::AddDielectricPrms(), B_Cu, B_Mask, B_Paste, B_SilkS, BS_EDGE_CONNECTOR_BEVELLED, BS_EDGE_CONNECTOR_IN_USE, BS_EDGE_CONNECTOR_NONE, BS_ITEM_TYPE_COPPER, BS_ITEM_TYPE_DIELECTRIC, BS_ITEM_TYPE_SILKSCREEN, BS_ITEM_TYPE_SOLDERMASK, BS_ITEM_TYPE_SOLDERPASTE, BS_ITEM_TYPE_UNDEFINED, F_Cu, F_Mask, F_Paste, F_SilkS, BOARD_STACKUP::m_CastellatedPads, BOARD_STACKUP::m_EdgeConnectorConstraints, BOARD_STACKUP::m_EdgePlating, BOARD_STACKUP::m_FinishType, BOARD_STACKUP::m_HasDielectricConstrains, name, parseDouble(), BOARD_STACKUP_ITEM::SetBrdLayerId(), BOARD_STACKUP_ITEM::SetColor(), BOARD_STACKUP_ITEM::SetDielectricLayerId(), BOARD_STACKUP_ITEM::SetEpsilonR(), BOARD_STACKUP_ITEM::SetLossTangent(), BOARD_STACKUP_ITEM::SetMaterial(), BOARD_STACKUP_ITEM::SetThickness(), BOARD_STACKUP_ITEM::SetThicknessLocked(), BOARD_STACKUP_ITEM::SetTypeName(), and UNDEFINED_LAYER.
|
inlineprivate |
Definition at line 287 of file pcb_parser.h.
References IU_PER_MM, KiROUND(), and parseDouble().
Referenced by parseBoardUnits().
|
inlineprivate |
Definition at line 305 of file pcb_parser.h.
References IU_PER_MM, KiROUND(), and parseDouble().
|
inlineprivate |
Definition at line 319 of file pcb_parser.h.
References DSN::GetTokenText(), and parseBoardUnits().
|
private |
Definition at line 169 of file pcb_parser.cpp.
|
private |
Definition at line 1915 of file pcb_parser.cpp.
References LAYER_CLASS_COPPER, LAYER_CLASS_COURTYARD, LAYER_CLASS_EDGES, LAYER_CLASS_FAB, LAYER_CLASS_OTHERS, LAYER_CLASS_SILK, BOARD_DESIGN_SETTINGS::m_CopperEdgeClearance, BOARD_DESIGN_SETTINGS::m_DimensionPrecision, BOARD_DESIGN_SETTINGS::m_DimensionUnitsMode, BOARD_DESIGN_SETTINGS::m_LineThickness, and parseInt().
|
private |
Definition at line 1998 of file pcb_parser.cpp.
References BOARD_DESIGN_SETTINGS::m_TextItalic, BOARD_DESIGN_SETTINGS::m_TextSize, BOARD_DESIGN_SETTINGS::m_TextThickness, and BOARD_DESIGN_SETTINGS::m_TextUpright.
|
private |
Definition at line 2465 of file pcb_parser.cpp.
References FetchUnitsFromString(), EDA_TEXT::GetText(), EDA_TEXT::GetTextPos(), INCHES, EDA_ITEM::m_Uuid, NULL, parseInt(), PCB_DIM_ALIGNED_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, ALIGNED_DIMENSION::SetExtensionHeight(), ALIGNED_DIMENSION::SetHeight(), and ALIGNED_DIMENSION::UpdateHeight().
|
private |
Parse the current token as an ASCII numeric string with possible leading whitespace into a double precision floating point number.
IO_ERROR | if an error occurs attempting to convert the current token. |
Definition at line 139 of file pcb_parser.cpp.
References _, and THROW_IO_ERROR.
Referenced by parseBoardUnits(), and parseDouble().
|
inlineprivate |
Definition at line 276 of file pcb_parser.h.
References parseDouble().
|
inlineprivate |
Definition at line 282 of file pcb_parser.h.
References DSN::GetTokenText(), and parseDouble().
|
private |
Parse the common settings for any object derived from EDA_TEXT.
PARSE_ERROR | if the text syntax is not valid. |
Definition at line 255 of file pcb_parser.cpp.
References GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_BOTTOM, GR_TEXT_VJUSTIFY_TOP, IU_PER_MM, EDA_TEXT::SetBold(), EDA_TEXT::SetHorizJustify(), EDA_TEXT::SetItalic(), EDA_TEXT::SetMirrored(), EDA_TEXT::SetTextSize(), EDA_TEXT::SetTextThickness(), EDA_TEXT::SetVertJustify(), and EDA_TEXT::SetVisible().
FOOTPRINT * PCB_PARSER::parseFOOTPRINT | ( | wxArrayString * | aInitialComments = 0 | ) |
aInitialComments | may 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 2866 of file pcb_parser.cpp.
|
private |
Definition at line 2882 of file pcb_parser.cpp.
References _, APPEND, B_Cu, F_Cu, FP_BOARD_ONLY, FP_EXCLUDE_FROM_BOM, FP_EXCLUDE_FROM_POS_FILES, FP_SMD, FP_THROUGH_HOLE, PCB_SHAPE::GetAngle(), PAD::GetPos0(), EDA_TEXT::GetTextAngle(), FP_TEXT::GetType(), EDA_ITEM::m_Uuid, name, NULL, LIB_ID::Parse(), parseDouble(), parseHex(), parseInt(), RotatePoint(), FP_SHAPE::SetDrawCoord(), FP_TEXT::SetDrawCoord(), EDA_ITEM::SetParent(), PAD::SetPosition(), FP_TEXT::SetTextAngle(), SEXPR_BOARD_FILE_VERSION, FP_TEXT::TEXT_is_REFERENCE, FP_TEXT::TEXT_is_VALUE, and THROW_IO_ERROR.
|
private |
We continue to parse the status field but it is no longer written
Definition at line 3316 of file pcb_parser.cpp.
References DEFAULT_LINE_WIDTH, Edge_Cuts, Millimeter2iu(), NULL, parseDouble(), parseHex(), S_ARC, S_CIRCLE, S_CURVE, S_POLYGON, and S_RECT.
|
private |
Definition at line 3215 of file pcb_parser.cpp.
References _, Format(), NULL, parseDouble(), FP_TEXT::TEXT_is_REFERENCE, FP_TEXT::TEXT_is_VALUE, and THROW_IO_ERROR.
|
private |
Definition at line 890 of file pcb_parser.cpp.
|
private |
Definition at line 4126 of file pcb_parser.cpp.
References DSN_SYMBOL, PCB_PARSER::GROUP_INFO::memberUuids, PCB_PARSER::GROUP_INFO::name, PCB_PARSER::GROUP_INFO::parent, and PCB_PARSER::GROUP_INFO::uuid.
|
private |
Definition at line 849 of file pcb_parser.cpp.
References BOARD_FILE_HOST_VERSION, parseInt(), and SEXPR_BOARD_FILE_VERSION.
|
inlineprivate |
Definition at line 335 of file pcb_parser.h.
References NULL.
|
inlineprivate |
|
inlineprivate |
|
private |
Definition at line 1087 of file pcb_parser.cpp.
References LAYER::clear(), FROM_UTF8(), LAYER::m_name, LAYER::m_number, LAYER::m_type, LAYER::m_userName, LAYER::m_visible, name, LSET::Name(), parseInt(), and LAYER::ParseType().
|
private |
Definition at line 1390 of file pcb_parser.cpp.
References _, B_Cu, Format(), LT_UNDEFINED, LAYER::m_name, LAYER::m_number, LAYER::m_type, LAYER::m_visible, name, THROW_IO_ERROR, and THROW_PARSE_ERROR.
|
private |
Definition at line 2061 of file pcb_parser.cpp.
References _, and THROW_IO_ERROR.
|
private |
Definition at line 2035 of file pcb_parser.cpp.
References NETINFO_ITEM::GetNetCode(), name, parseInt(), and NETINFO_LIST::UNCONNECTED.
Definition at line 3574 of file pcb_parser.cpp.
References _, PCB_SHAPE::BuildPolyPointsList(), Format(), PCB_SHAPE::GetAngle(), PCB_SHAPE::GetArcStart(), PCB_SHAPE::GetBezControl1(), PCB_SHAPE::GetBezControl2(), PCB_SHAPE::GetCenter(), PCB_SHAPE::GetEnd(), PCB_SHAPE::GetRadius(), PCB_SHAPE::GetStart(), PCB_SHAPE::GetWidth(), PCB_SHAPE::IsFilled(), NULL, NETINFO_LIST::ORPHANED, PAD_ATTRIB_CONN, PAD_ATTRIB_NPTH, PAD_ATTRIB_PTH, PAD_ATTRIB_SMD, PAD_DRILL_SHAPE_OBLONG, PAD_PROP_BGA, PAD_PROP_CASTELLATED, PAD_PROP_FIDUCIAL_GLBL, PAD_PROP_FIDUCIAL_LOCAL, PAD_PROP_HEATSINK, PAD_PROP_NONE, PAD_PROP_TESTPOINT, PAD_SHAPE_CHAMFERED_RECT, PAD_SHAPE_CIRCLE, PAD_SHAPE_CUSTOM, PAD_SHAPE_OVAL, PAD_SHAPE_RECT, PAD_SHAPE_ROUNDRECT, PAD_SHAPE_TRAPEZOID, parseDouble(), parseInt(), RECT_CHAMFER_BOTTOM_LEFT, RECT_CHAMFER_BOTTOM_RIGHT, RECT_CHAMFER_TOP_LEFT, RECT_CHAMFER_TOP_RIGHT, and RECT_NO_CHAMFER.
|
private |
Definition at line 4052 of file pcb_parser.cpp.
References CUST_PAD_SHAPE_IN_ZONE_CONVEXHULL, CUST_PAD_SHAPE_IN_ZONE_OUTLINE, PAD_SHAPE_RECT, PAD::SetAnchorPadShape(), and PAD::SetCustomShapeInZoneOpt().
|
private |
Definition at line 923 of file pcb_parser.cpp.
References _, PAGE_INFO::Custom, Mm2mils(), parseDouble(), PAGE_INFO::SetHeightMils(), PAGE_INFO::SetPortrait(), PAGE_INFO::SetType(), PAGE_INFO::SetWidthMils(), and THROW_PARSE_ERROR.
|
private |
We continue to parse the status field but it is no longer written
Definition at line 2145 of file pcb_parser.cpp.
References DEFAULT_LINE_WIDTH, Edge_Cuts, Millimeter2iu(), NULL, parseDouble(), parseHex(), S_ARC, S_CIRCLE, S_CURVE, S_POLYGON, and S_RECT.
|
private |
Definition at line 5005 of file pcb_parser.cpp.
References NULL.
|
private |
Definition at line 2396 of file pcb_parser.cpp.
References NULL, and parseDouble().
|
private |
Definition at line 240 of file pcb_parser.cpp.
|
private |
Definition at line 1576 of file pcb_parser.cpp.
References GAL_SET::DefaultVisible(), BOARD_DESIGN_SETTINGS::GetDefaultZoneSettings(), LAYER_CLASS_COPPER, LAYER_CLASS_EDGES, LAYER_CLASS_SILK, BOARD_DESIGN_SETTINGS::m_AuxOrigin, BOARD_DESIGN_SETTINGS::m_BlindBuriedViaAllowed, BOARD_DESIGN_SETTINGS::m_DiffPairDimensionsList, BOARD_DESIGN_SETTINGS::m_GridOrigin, BOARD_DESIGN_SETTINGS::m_HoleToHoleMin, BOARD_DESIGN_SETTINGS::m_LineThickness, BOARD_DESIGN_SETTINGS::m_MaxError, BOARD_DESIGN_SETTINGS::m_MicroViasAllowed, BOARD_DESIGN_SETTINGS::m_MicroViasMinDrill, BOARD_DESIGN_SETTINGS::m_MicroViasMinSize, BOARD_DESIGN_SETTINGS::m_MinClearance, BOARD_DESIGN_SETTINGS::m_MinThroughDrill, BOARD_DESIGN_SETTINGS::m_Pad_Master, BOARD_DESIGN_SETTINGS::m_SolderMaskMargin, 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_ViasMinAnnulus, BOARD_DESIGN_SETTINGS::m_ViasMinSize, ZONE_SETTINGS::m_Zone_45_Only, ZONE_SETTINGS::m_ZoneClearance, BOARD_DESIGN_SETTINGS::m_ZoneFillVersion, MIN_VISIBILITY_MASK, PCB_PLOT_PARAMS::Parse(), parseDouble(), parseHex(), NETCLASS::SetClearance(), PAD::SetDrillSize(), PAD::SetSize(), NETCLASS::SetuViaDiameter(), NETCLASS::SetuViaDrill(), NETCLASS::SetViaDiameter(), and NETCLASS::SetViaDrill().
|
private |
Definition at line 979 of file pcb_parser.cpp.
References parseInt(), TITLE_BLOCK::SetComment(), TITLE_BLOCK::SetCompany(), TITLE_BLOCK::SetDate(), TITLE_BLOCK::SetRevision(), TITLE_BLOCK::SetTitle(), and THROW_PARSE_ERROR.
|
private |
We continue to parse the status field but it is no longer written
Definition at line 4260 of file pcb_parser.cpp.
References _, Format(), NULL, parseHex(), parseInt(), and THROW_IO_ERROR.
|
private |
We continue to parse the status field but it is no longer written
Definition at line 4331 of file pcb_parser.cpp.
References _, BLIND_BURIED, Format(), MICROVIA, NULL, parseHex(), parseInt(), and THROW_IO_ERROR.
|
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.
PARSE_ERROR | if the coordinate pair syntax is incorrect. |
Definition at line 208 of file pcb_parser.cpp.
|
private |
Definition at line 228 of file pcb_parser.cpp.
|
private |
Definition at line 4442 of file pcb_parser.cpp.