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, BOARD *aAppendToMe, std::function< bool(wxString, int, wxString, wxString)> aQueryUserCallback, PROGRESS_REPORTER *aProgressReporter=nullptr, unsigned aLineCount=0) | |
BOARD_ITEM * | Parse () |
FOOTPRINT * | parseFOOTPRINT (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... | |
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 |
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) |
< Convert net code using the mapping table if available, otherwise returns unchanged net code if < 0 or if it's 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 | 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_SHAPE * | parsePCB_SHAPE (BOARD_ITEM *aParent) |
PCB_TEXT * | parsePCB_TEXT (BOARD_ITEM *aParent) |
PCB_BITMAP * | parsePCB_BITMAP (BOARD_ITEM *aParent) |
PCB_TEXTBOX * | parsePCB_TEXTBOX (BOARD_ITEM *aParent) |
PCB_DIMENSION_BASE * | parseDIMENSION (BOARD_ITEM *aParent) |
FOOTPRINT * | parseFOOTPRINT_unchecked (wxArrayString *aInitialComments=nullptr) |
PAD * | parsePAD (FOOTPRINT *aParent=nullptr) |
bool | parsePAD_option (PAD *aPad) |
PCB_ARC * | parseARC () |
PCB_TRACK * | parsePCB_TRACK () |
PCB_VIA * | parsePCB_VIA () |
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... | |
VECTOR2I | 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 | 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_3DMODEL * | parse3DModel () |
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 | |
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_appendToExisting |
reading into an existing board; reset UUIDs More... | |
KIID_MAP | m_resetKIIDMap |
bool | m_showLegacySegmentZoneWarning |
bool | m_showLegacy5ZoneWarning |
PROGRESS_REPORTER * | m_progressReporter |
optional; may be nullptr More... | |
TIME_PT | m_lastProgressTime |
for progress reporting More... | |
unsigned | m_lineCount |
for progress reporting More... | |
std::vector< GROUP_INFO > | m_groupInfos |
std::function< bool(wxString aTitle, int aIcon, wxString aMsg, wxString aAction)> | m_queryUserCallback |
Read a Pcbnew s-expression formatted LINE_READER object and returns the appropriate BOARD_ITEM object.
Definition at line 73 of file pcb_parser.h.
|
private |
The type of the time stamps.
Definition at line 332 of file pcb_parser.h.
|
private |
The type of progress bar timeout.
Definition at line 326 of file pcb_parser.h.
|
private |
Definition at line 324 of file pcb_parser.h.
|
private |
Definition at line 325 of file pcb_parser.h.
|
private |
Definition at line 335 of file pcb_parser.h.
|
private |
The clock used for the timestamp (guaranteed to be monotonic).
Definition at line 329 of file pcb_parser.h.
|
inline |
Definition at line 76 of file pcb_parser.h.
References init().
|
private |
Definition at line 122 of file pcb_parser.cpp.
References delta, PROGRESS_REPORTER::KeepRefreshing(), m_lastProgressTime, m_lineCount, m_progressReporter, PROGRESS_REPORTER::SetCurrentProgress(), and THROW_IO_ERROR.
Referenced by parseBOARD_unchecked().
|
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 1650 of file pcb_parser.cpp.
Referenced by parseLayers().
|
private |
Definition at line 5736 of file pcb_parser.cpp.
References m_appendToExisting, and m_resetKIIDMap.
Referenced by parseARC(), parseDIMENSION(), parseFOOTPRINT_unchecked(), parseGROUP(), parsePAD(), parsePCB_SHAPE(), parsePCB_TARGET(), parsePCB_TEXT(), parsePCB_TEXTBOX(), parsePCB_TRACK(), parsePCB_VIA(), and parseZONE().
|
inlineprivate |
< Convert net code using the mapping table if available, otherwise returns unchanged net code if < 0 or if it's out of range
Definition at line 119 of file pcb_parser.h.
References m_netCodes.
Referenced by parseARC(), parsePAD(), parsePCB_TRACK(), parsePCB_VIA(), and parseZONE().
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 227 of file pcb_parser.cpp.
References _, m_requiredVersion, and THROW_PARSE_ERROR.
Referenced by PCB_PLUGIN::DoLoad(), CLIPBOARD_IO::Load(), PCB_PLUGIN::Parse(), parseBOARD(), and parseFOOTPRINT().
|
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 76 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().
|
inline |
Return whether a version number, if any was parsed, was too recent.
Definition at line 105 of file pcb_parser.h.
References m_tooRecent.
Referenced by PCB_PLUGIN::DoLoad(), CLIPBOARD_IO::Load(), and PCB_PLUGIN::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 1832 of file pcb_parser.cpp.
References m_undefinedLayers, and Rescue.
BOARD_ITEM * PCB_PARSER::Parse | ( | ) |
Definition at line 743 of file pcb_parser.cpp.
References _, m_board, m_groupInfos, parseBOARD(), parseFOOTPRINT(), resolveGroups(), BOARD_ITEM::SetLocked(), and THROW_PARSE_ERROR.
Referenced by PCB_PLUGIN::DoLoad(), FP_CACHE::Load(), CLIPBOARD_IO::Load(), PCB_PLUGIN::Parse(), parse(), and KI_TEST::ReadBoardItemFromStream().
|
private |
Definition at line 637 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, parseDouble(), VECTOR3< T >::x, VECTOR3< T >::y, and VECTOR3< T >::z.
Referenced by parseFOOTPRINT_unchecked().
|
private |
Definition at line 4721 of file pcb_parser.cpp.
References _, CurStrToKIID(), getNetCode(), m_board, parseBoardItemLayer(), parseBoardUnits(), parseHex(), parseInt(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseBOARD_unchecked().
|
private |
Definition at line 793 of file pcb_parser.cpp.
References GetRequiredVersion(), m_tooRecent, and parseBOARD_unchecked().
Referenced by Parse().
|
private |
Definition at line 809 of file pcb_parser.cpp.
References _, BOARD::Add(), B_Cu, BOARD_FILE_HOST_VERSION, checkpoint(), Cmts_User, BOARD::Drawings(), F_Cu, BOARD::FinalizeBulkAdd(), BOARD::Footprints(), BOARD::GetLayerName(), m_board, BOARD::m_LegacyNetclassesLoaded, m_queryUserCallback, m_requiredVersion, m_undefinedLayers, parseARC(), parseDIMENSION(), parseFOOTPRINT(), parseGeneralSection(), parseGROUP(), parseHeader(), parseLayers(), parseNETCLASS(), parseNETINFO_ITEM(), parsePAGE_INFO(), parsePCB_BITMAP(), parsePCB_SHAPE(), parsePCB_TARGET(), parsePCB_TEXT(), parsePCB_TEXTBOX(), parsePCB_TRACK(), parsePCB_VIA(), parseProperty(), parseSetup(), parseTITLE_BLOCK(), parseZONE(), PCB_VIA_T, Pgm(), Rescue, BOARD::SetGenerator(), BOARD::SetProperties(), THROW_IO_ERROR, THROW_PARSE_ERROR, BOARD::Tracks(), via, and BOARD::Zones().
Referenced by parseBOARD().
|
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 1851 of file pcb_parser.cpp.
References m_layerIndices, and UNDEFINED_LAYER.
Referenced by parseARC(), parseDIMENSION(), parseFOOTPRINT_unchecked(), parsePCB_BITMAP(), parsePCB_SHAPE(), parsePCB_TARGET(), parsePCB_TEXT(), parsePCB_TEXTBOX(), parsePCB_TRACK(), and parseZONE().
|
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 1866 of file pcb_parser.cpp.
References m_layerMasks.
Referenced by parsePAD(), and parseZONE().
|
private |
Definition at line 1429 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, color, DEFAULT_SOLDERMASK_OPACITY, F_Cu, F_Mask, F_Paste, F_SilkS, BOARD::GetDesignSettings(), BOARD::GetLayerID(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), BOARD_STACKUP_ITEM::GetType(), m_board, BOARD_STACKUP::m_CastellatedPads, BOARD_STACKUP::m_EdgeConnectorConstraints, BOARD_STACKUP::m_EdgePlating, BOARD_STACKUP::m_FinishType, BOARD_STACKUP::m_HasDielectricConstrains, BOARD_DESIGN_SETTINGS::m_HasStackup, m_requiredVersion, name, parseBoardUnits(), 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(), skipCurrent(), and UNDEFINED_LAYER.
Referenced by parseSetup().
|
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 177 of file pcb_parser.cpp.
References EDA_IU_SCALE::IU_PER_MM, KiROUND(), parseDouble(), and pcbIUScale.
Referenced by parseARC(), parseBoardStackup(), parseBoardUnits(), parseDefaults(), parseDefaultTextDims(), parseDIMENSION(), parseEDA_TEXT(), parseFOOTPRINT_unchecked(), parseGeneralSection(), parseNETCLASS(), parseOutlinePoints(), parsePAD(), parsePCB_BITMAP(), parsePCB_SHAPE(), parsePCB_TARGET(), parsePCB_TEXT(), parsePCB_TEXTBOX(), parsePCB_TRACK(), parsePCB_VIA(), parseSetup(), parseTEARDROP_PARAMETERS(), parseXY(), and parseZONE().
|
private |
Definition at line 197 of file pcb_parser.cpp.
References EDA_IU_SCALE::IU_PER_MM, KiROUND(), parseDouble(), and pcbIUScale.
|
inlineprivate |
Definition at line 289 of file pcb_parser.h.
References parseBoardUnits().
|
private |
Definition at line 212 of file pcb_parser.cpp.
Referenced by parseSetup(), and parseZONE().
|
private |
Definition at line 2263 of file pcb_parser.cpp.
References LAYER_CLASS_COPPER, LAYER_CLASS_COURTYARD, LAYER_CLASS_EDGES, LAYER_CLASS_FAB, LAYER_CLASS_OTHERS, LAYER_CLASS_SILK, m_board, BOARD_DESIGN_SETTINGS::m_CopperEdgeClearance, BOARD_DESIGN_SETTINGS::m_DimensionPrecision, BOARD_DESIGN_SETTINGS::m_DimensionUnitsMode, BOARD::m_LegacyCopperEdgeClearanceLoaded, BOARD_DESIGN_SETTINGS::m_LineThickness, parseBoardUnits(), parseDefaultTextDims(), and parseInt().
Referenced by parseSetup().
|
private |
Definition at line 2347 of file pcb_parser.cpp.
References BOARD_DESIGN_SETTINGS::m_TextItalic, BOARD_DESIGN_SETTINGS::m_TextSize, BOARD_DESIGN_SETTINGS::m_TextThickness, BOARD_DESIGN_SETTINGS::m_TextUpright, parseBoardUnits(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseDefaults().
|
private |
Definition at line 3260 of file pcb_parser.cpp.
References CurStrToKIID(), EDA_UNIT_UTILS::FetchUnitsFromString(), locked, m_board, ortho, parseBoardItemLayer(), parseBoardUnits(), parseInt(), parsePCB_TEXT(), parseXY(), PCB_DIM_ALIGNED_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_DIM_ALIGNED::SetExtensionHeight(), PCB_DIM_ALIGNED::SetHeight(), PCB_DIM_RADIAL::SetLeaderLength(), PCB_DIM_LEADER::SetTextBorder(), text, PCB_DIM_ALIGNED::UpdateHeight(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseBOARD_unchecked(), and parseFOOTPRINT_unchecked().
|
private |
Parse the common settings for any object derived from EDA_TEXT.
PARSE_ERROR | if the text syntax is not valid. |
Definition at line 446 of file pcb_parser.cpp.
References ConvertToNewOverbarNotation(), KIFONT::FONT::GetFont(), EDA_TEXT::GetText(), GR_TEXT_H_ALIGN_CENTER, GR_TEXT_H_ALIGN_LEFT, GR_TEXT_H_ALIGN_RIGHT, GR_TEXT_V_ALIGN_BOTTOM, GR_TEXT_V_ALIGN_CENTER, GR_TEXT_V_ALIGN_TOP, EDA_TEXT::IsBold(), EDA_TEXT::IsItalic(), EDA_IU_SCALE::IU_PER_MM, m_requiredVersion, parseBoardUnits(), parseDouble(), pcbIUScale, EDA_TEXT::SetBold(), EDA_TEXT::SetFont(), EDA_TEXT::SetHorizJustify(), EDA_TEXT::SetItalic(), EDA_TEXT::SetLineSpacing(), EDA_TEXT::SetMirrored(), EDA_TEXT::SetText(), EDA_TEXT::SetTextSize(), EDA_TEXT::SetTextThickness(), EDA_TEXT::SetVertJustify(), EDA_TEXT::SetVisible(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parsePCB_TEXT(), and parsePCB_TEXTBOX().
FOOTPRINT * PCB_PARSER::parseFOOTPRINT | ( | wxArrayString * | aInitialComments = nullptr | ) |
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 3681 of file pcb_parser.cpp.
References GetRequiredVersion(), m_tooRecent, and parseFOOTPRINT_unchecked().
Referenced by Parse(), and parseBOARD_unchecked().
|
private |
Definition at line 3697 of file pcb_parser.cpp.
References _, B_Cu, CurStrToKIID(), DEGREES_T, Edge_Cuts, F_Cu, FP_ALLOW_MISSING_COURTYARD, FP_ALLOW_SOLDERMASK_BRIDGES, FP_BOARD_ONLY, FP_DNP, FP_EXCLUDE_FROM_BOM, FP_EXCLUDE_FROM_POS_FILES, FP_SMD, FP_THROUGH_HOLE, image, LEGACY_NET_TIES, m_board, m_layerIndices, m_requiredVersion, m_tooRecent, Margin, name, pad, LIB_ID::Parse(), parse3DModel(), parseBoardItemLayer(), parseBoardUnits(), parseDIMENSION(), parseDouble(), parseGROUP(), parseHex(), parseInt(), parsePAD(), parsePCB_BITMAP(), parsePCB_SHAPE(), parsePCB_TEXT(), parsePCB_TEXTBOX(), parseProperty(), parseZONE(), SEXPR_BOARD_FILE_VERSION, text, PCB_TEXT::TEXT_is_REFERENCE, PCB_TEXT::TEXT_is_VALUE, THROW_IO_ERROR, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseFOOTPRINT().
|
private |
Definition at line 1168 of file pcb_parser.cpp.
References BOARD::GetDesignSettings(), m_board, parseBoardUnits(), BOARD_DESIGN_SETTINGS::SetBoardThickness(), and BOARD::SetLegacyTeardrops().
Referenced by parseBOARD_unchecked().
|
private |
Definition at line 4671 of file pcb_parser.cpp.
References CurStrToKIID(), PCB_PARSER::GROUP_INFO::locked, m_groupInfos, PCB_PARSER::GROUP_INFO::memberUuids, PCB_PARSER::GROUP_INFO::name, PCB_PARSER::GROUP_INFO::parent, and PCB_PARSER::GROUP_INFO::uuid.
Referenced by parseBOARD_unchecked(), and parseFOOTPRINT_unchecked().
|
private |
Definition at line 1142 of file pcb_parser.cpp.
References m_board, m_requiredVersion, m_tooRecent, parseInt(), BOARD::SetFileFormatVersionAtLoad(), and SEXPR_BOARD_FILE_VERSION.
Referenced by parseBOARD_unchecked().
|
inlineprivate |
Definition at line 305 of file pcb_parser.h.
Referenced by parseARC(), parseFOOTPRINT_unchecked(), parsePCB_SHAPE(), parsePCB_TRACK(), parsePCB_VIA(), and parseSetup().
|
inlineprivate |
Definition at line 294 of file pcb_parser.h.
Referenced by parseARC(), parseDefaults(), parseDIMENSION(), parseFOOTPRINT_unchecked(), parseHeader(), parseInt(), parseLayer(), parseNETINFO_ITEM(), parsePAD(), parsePCB_TRACK(), parsePCB_VIA(), parseTEARDROP_PARAMETERS(), parseTITLE_BLOCK(), and parseZONE().
|
inlineprivate |
Definition at line 299 of file pcb_parser.h.
References parseInt().
|
private |
Definition at line 1372 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().
Referenced by parseLayers().
|
private |
Definition at line 1700 of file pcb_parser.cpp.
References _, B_Cu, createOldLayerMapping(), LT_UNDEFINED, m_board, m_layerIndices, m_layerMasks, BOARD::m_LegacyVisibleLayers, LAYER::m_name, LAYER::m_number, LAYER::m_type, LAYER::m_visible, name, parseLayer(), BOARD::SetCopperLayerCount(), BOARD::SetEnabledLayers(), BOARD::SetLayerDescr(), THROW_IO_ERROR, and THROW_PARSE_ERROR.
Referenced by parseBOARD_unchecked().
|
private |
Definition at line 2415 of file pcb_parser.cpp.
References _, ConvertToNewOverbarNotation(), CTX_NETCLASS, BOARD::GetDesignSettings(), m_board, BOARD_DESIGN_SETTINGS::m_NetSettings, m_requiredVersion, parseBoardUnits(), and THROW_IO_ERROR.
Referenced by parseBOARD_unchecked().
|
private |
Definition at line 2384 of file pcb_parser.cpp.
References BOARD::Add(), ConvertToNewOverbarNotation(), BOARD::FindNet(), NETINFO_ITEM::GetNetCode(), m_board, m_requiredVersion, name, parseInt(), pushValueIntoMap(), and NETINFO_LIST::UNCONNECTED.
Referenced by parseBOARD_unchecked().
|
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
aPoly | polygon container to add points and arcs |
Definition at line 271 of file pcb_parser.cpp.
References SHAPE_LINE_CHAIN::Append(), parseBoardUnits(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parsePCB_SHAPE(), parsePCB_TEXTBOX(), parseRenderCache(), and parseZONE().
Definition at line 4076 of file pcb_parser.cpp.
References _, LSET::AllCuMask(), ANGLE_45, ANGLE_90, B_Cu, ConvertToNewOverbarNotation(), CurStrToKIID(), DEGREES_T, delta, BOARD::FindNet(), EDA_SHAPE::GetArcAngle(), EDA_SHAPE::GetBezierC1(), EDA_SHAPE::GetBezierC2(), PCB_SHAPE::GetCenter(), EDA_SHAPE::GetEnd(), getNetCode(), NETINFO_ITEM::GetNetname(), EDA_SHAPE::GetPolyShape(), EDA_SHAPE::GetRadius(), EDA_SHAPE::GetStart(), EDA_SHAPE::GetWidth(), EDA_SHAPE::IsFilled(), m_board, m_layerIndices, m_requiredVersion, EDA_IU_SCALE::mmToIU(), NETINFO_LIST::ORPHANED, pad, PAD_DRILL_SHAPE_OBLONG, parseBoardItemLayersAsMask(), parseBoardUnits(), parseDouble(), parseInt(), parsePAD_option(), parsePCB_SHAPE(), parseTEARDROP_PARAMETERS(), pcbIUScale, RECT_CHAMFER_BOTTOM_LEFT, RECT_CHAMFER_BOTTOM_RIGHT, RECT_CHAMFER_TOP_LEFT, RECT_CHAMFER_TOP_RIGHT, RECT_NO_CHAMFER, LSET::Seq(), VECTOR2< T >::x, VECTOR2< T >::y, ZLO_FORCE_FLASHED, and ZLO_FORCE_NO_ZONE_CONNECTION.
Referenced by parseFOOTPRINT_unchecked().
|
private |
Definition at line 4599 of file pcb_parser.cpp.
References CUST_PAD_SHAPE_IN_ZONE_CONVEXHULL, CUST_PAD_SHAPE_IN_ZONE_OUTLINE, PAD::SetAnchorPadShape(), and PAD::SetCustomShapeInZoneOpt().
Referenced by parsePAD().
|
private |
Definition at line 1206 of file pcb_parser.cpp.
References _, PAGE_INFO::Custom, m_board, m_requiredVersion, MAX_PAGE_SIZE_PCBNEW_MILS, MIN_PAGE_SIZE_MILS, EDA_UNIT_UTILS::Mm2mils(), parseDouble(), PAGE_INFO::SetHeightMils(), BOARD::SetPageSettings(), PAGE_INFO::SetPortrait(), PAGE_INFO::SetType(), PAGE_INFO::SetWidthMils(), and THROW_PARSE_ERROR.
Referenced by parseBOARD_unchecked().
|
private |
Definition at line 2919 of file pcb_parser.cpp.
References image, parseBoardItemLayer(), parseBoardUnits(), parseDouble(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseBOARD_unchecked(), and parseFOOTPRINT_unchecked().
|
private |
Definition at line 2522 of file pcb_parser.cpp.
References CurStrToKIID(), DEFAULT_LINE_WIDTH, DEGREES_T, Edge_Cuts, STROKE_PARAMS::GetWidth(), EDA_IU_SCALE::IU_PER_MM, LEGACY_ARC_FORMATTING, m_requiredVersion, EDA_IU_SCALE::mmToIU(), parseBoardItemLayer(), parseBoardUnits(), parseDouble(), parseHex(), parseOutlinePoints(), STROKE_PARAMS_PARSER::ParseStroke(), parseXY(), PCB_FOOTPRINT_T, pcbIUScale, STROKE_PARAMS::SetWidth(), EDA_ITEM::Type(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseBOARD_unchecked(), parseFOOTPRINT_unchecked(), and parsePAD().
|
private |
Definition at line 5674 of file pcb_parser.cpp.
References CurStrToKIID(), parseBoardItemLayer(), parseBoardUnits(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseBOARD_unchecked().
|
private |
Definition at line 2997 of file pcb_parser.cpp.
References _, CurStrToKIID(), DEGREES_T, DSN_NUMBER, DSN_RIGHT, FOOTPRINT::GetOrientation(), FOOTPRINT::GetPosition(), parseBoardItemLayer(), parseBoardUnits(), parseDouble(), parseEDA_TEXT(), parseRenderCache(), text, PCB_TEXT::TEXT_is_DIVERS, PCB_TEXT::TEXT_is_REFERENCE, PCB_TEXT::TEXT_is_VALUE, THROW_IO_ERROR, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseBOARD_unchecked(), parseDIMENSION(), and parseFOOTPRINT_unchecked().
|
private |
Definition at line 3144 of file pcb_parser.cpp.
References CurStrToKIID(), DEGREES_T, DSN_NUMBER, EDA_IU_SCALE::IU_PER_MM, parseBoardItemLayer(), parseBoardUnits(), parseDouble(), parseEDA_TEXT(), parseOutlinePoints(), parseRenderCache(), STROKE_PARAMS_PARSER::ParseStroke(), and pcbIUScale.
Referenced by parseBOARD_unchecked(), and parseFOOTPRINT_unchecked().
|
private |
Definition at line 4806 of file pcb_parser.cpp.
References _, CurStrToKIID(), getNetCode(), m_board, parseBoardItemLayer(), parseBoardUnits(), parseHex(), parseInt(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseBOARD_unchecked().
|
private |
Definition at line 4885 of file pcb_parser.cpp.
References _, LSET::AllCuMask(), B_Cu, CurStrToKIID(), getNetCode(), m_board, m_layerIndices, parseBoardUnits(), parseHex(), parseInt(), parseTEARDROP_PARAMETERS(), LSET::Seq(), via, VECTOR2< T >::x, VECTOR2< T >::y, ZLO_FORCE_FLASHED, and ZLO_FORCE_NO_ZONE_CONNECTION.
Referenced by parseBOARD_unchecked().
|
private |
Definition at line 368 of file pcb_parser.cpp.
Referenced by parseBOARD_unchecked(), and parseFOOTPRINT_unchecked().
|
private |
Parse the render cache for any object derived from EDA_TEXT.
PARSE_ERROR | if the text syntax is not valid. |
Definition at line 587 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(), and parsePCB_TEXTBOX().
|
private |
Definition at line 1883 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, m_queryUserCallback, m_showLegacy5ZoneWarning, 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(), Pgm(), GAL_SET::set(), BOARD_DESIGN_SETTINGS::SetAuxOrigin(), BOARD_DESIGN_SETTINGS::SetGridOrigin(), BOARD::SetPlotOptions(), THROW_IO_ERROR, via, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseBOARD_unchecked().
|
private |
Definition at line 383 of file pcb_parser.cpp.
References TEARDROP_PARAMETERS::m_AllowUseTwoTracks, TEARDROP_PARAMETERS::m_BestLengthRatio, TEARDROP_PARAMETERS::m_BestWidthRatio, TEARDROP_PARAMETERS::m_CurveSegCount, TEARDROP_PARAMETERS::m_Enabled, TEARDROP_PARAMETERS::m_TdMaxLen, TEARDROP_PARAMETERS::m_TdMaxWidth, TEARDROP_PARAMETERS::m_TdOnPadsInZones, TEARDROP_PARAMETERS::m_WidthtoSizeFilterRatio, parseBoardUnits(), parseDouble(), and parseInt().
Referenced by parsePAD(), and parsePCB_VIA().
|
private |
Definition at line 1264 of file pcb_parser.cpp.
References m_board, parseInt(), TITLE_BLOCK::SetComment(), TITLE_BLOCK::SetCompany(), TITLE_BLOCK::SetDate(), TITLE_BLOCK::SetRevision(), TITLE_BLOCK::SetTitle(), BOARD::SetTitleBlock(), and THROW_PARSE_ERROR.
Referenced by parseBOARD_unchecked().
|
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 251 of file pcb_parser.cpp.
References parseBoardUnits(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseDIMENSION(), parsePCB_SHAPE(), parseXY(), and parseZONE().
|
private |
Definition at line 356 of file pcb_parser.cpp.
References parseXY(), VECTOR2< T >::x, and VECTOR2< T >::y.
|
private |
Definition at line 5029 of file pcb_parser.cpp.
References _, BOARD::Add(), CANDIDATE, CurStrToKIID(), DEGREES_T, BOARD::FindNet(), ZONE::GetDefaultHatchPitch(), NETINFO_ITEM::GetNetCode(), getNetCode(), BOARD::GetNetCount(), ignore_unused(), SHAPE_POLY_SET::IsEmpty(), EDA_IU_SCALE::IU_PER_MM, m_board, m_queryUserCallback, m_requiredVersion, m_showLegacy5ZoneWarning, m_showLegacySegmentZoneWarning, SHAPE_POLY_SET::NewOutline(), SHAPE_POLY_SET::Outline(), parseBoardItemLayer(), parseBoardItemLayersAsMask(), parseBoardUnits(), parseBool(), parseDouble(), parseInt(), parseOutlinePoints(), parseXY(), pcbIUScale, Pgm(), pushValueIntoMap(), SHAPE_LINE_CHAIN::SetClosed(), BOARD::SetLegacyTeardrops(), EDA_ITEM::SetModified(), NETINFO_ITEM::SetNetCode(), ZONE_SETTINGS::SMOOTHING_CHAMFER, ZONE_SETTINGS::SMOOTHING_FILLET, ZONE_SETTINGS::SMOOTHING_NONE, THROW_IO_ERROR, and NETINFO_LIST::UNCONNECTED.
Referenced by parseBOARD_unchecked(), and parseFOOTPRINT_unchecked().
|
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.
aIndex | is the index ( expected >=0 )of the location to use in m_netCodes. |
aValue | is the netcode value to map. |
Definition at line 165 of file pcb_parser.cpp.
References m_netCodes.
Referenced by parseNETINFO_ITEM(), and parseZONE().
|
private |
Called after parsing a footprint definition or board to build the group membership lists.
Definition at line 1062 of file pcb_parser.cpp.
References FOOTPRINT::Add(), KIID::AsString(), BOARD_ITEM::GetParentFootprint(), group, BOARD::GroupsSanityCheck(), m_appendToExisting, m_board, m_groupInfos, m_resetKIIDMap, EDA_ITEM::m_Uuid, NOT_USED, PCB_FOOTPRINT_T, and EDA_ITEM::Type().
Referenced by Parse().
|
private |
Skip the current token level, i.e search for the RIGHT parenthesis which closes the current description.
Definition at line 144 of file pcb_parser.cpp.
Referenced by parseBoardStackup().
|
private |
reading into an existing board; reset UUIDs
if resetting UUIDs, record new ones to update groups with.
Definition at line 344 of file pcb_parser.h.
Referenced by CurStrToKIID(), parseSetup(), and resolveGroups().
|
private |
Definition at line 337 of file pcb_parser.h.
Referenced by Parse(), parseARC(), parseBOARD_unchecked(), parseBoardStackup(), parseDefaults(), parseDIMENSION(), parseFOOTPRINT_unchecked(), parseGeneralSection(), parseHeader(), parseLayers(), parseNETCLASS(), parseNETINFO_ITEM(), parsePAD(), parsePAGE_INFO(), parsePCB_TRACK(), parsePCB_VIA(), parseSetup(), parseTITLE_BLOCK(), parseZONE(), and resolveGroups().
|
private |
Definition at line 369 of file pcb_parser.h.
Referenced by Parse(), parseGROUP(), and resolveGroups().
|
private |
|
private |
map layer name to it's index
Definition at line 338 of file pcb_parser.h.
Referenced by init(), parseBoardItemLayer(), parseFOOTPRINT_unchecked(), parseLayers(), parsePAD(), and parsePCB_VIA().
|
private |
map layer names to their masks
Definition at line 339 of file pcb_parser.h.
Referenced by init(), parseBoardItemLayersAsMask(), and parseLayers().
|
private |
|
private |
net codes mapping for boards being loaded
Definition at line 341 of file pcb_parser.h.
Referenced by getNetCode(), and pushValueIntoMap().
|
private |
|
private |
Definition at line 371 of file pcb_parser.h.
Referenced by parseBOARD_unchecked(), parseSetup(), and parseZONE().
|
private |
set to the KiCad format version this board requires
Definition at line 343 of file pcb_parser.h.
Referenced by GetRequiredVersion(), init(), parseBOARD_unchecked(), parseBoardStackup(), parseEDA_TEXT(), parseFOOTPRINT_unchecked(), parseHeader(), parseNETCLASS(), parseNETINFO_ITEM(), parsePAD(), parsePAGE_INFO(), parsePCB_SHAPE(), and parseZONE().
|
private |
Definition at line 347 of file pcb_parser.h.
Referenced by CurStrToKIID(), init(), and resolveGroups().
|
private |
Definition at line 350 of file pcb_parser.h.
Referenced by init(), parseSetup(), and parseZONE().
|
private |
Definition at line 349 of file pcb_parser.h.
Referenced by init(), and parseZONE().
|
private |
true if version parses as later than supported
Definition at line 342 of file pcb_parser.h.
Referenced by init(), IsTooRecent(), parseBOARD(), parseFOOTPRINT(), parseFOOTPRINT_unchecked(), and parseHeader().
|
private |
set of layers not defined in layers section
Definition at line 340 of file pcb_parser.h.
Referenced by lookUpLayer(), and parseBOARD_unchecked().