|
KiCad PCB EDA Suite
|
Object to parser s-expression symbol library and schematic file formats. More...
#include <sch_io_kicad_sexpr_parser.h>
Classes | |
| struct | GROUP_INFO |
Public Member Functions | |
| SCH_IO_KICAD_SEXPR_PARSER (LINE_READER *aLineReader=nullptr, PROGRESS_REPORTER *aProgressReporter=nullptr, unsigned aLineCount=0, SCH_SHEET *aRootSheet=nullptr, bool aIsAppending=false) | |
| void | ParseLib (LIB_SYMBOL_MAP &aSymbolLibMap) |
| LIB_SYMBOL * | ParseSymbol (LIB_SYMBOL_MAP &aSymbolLibMap, int aFileVersion=SEXPR_SYMBOL_LIB_FILE_VERSION) |
| Parse internal LINE_READER object into symbols and return all found. | |
| SCH_ITEM * | ParseSymbolDrawItem () |
| void | ParseSchematic (SCH_SHEET *aSheet, bool aIsCopyablyOnly=false, int aFileVersion=SEXPR_SCHEMATIC_FILE_VERSION) |
| Parse the internal LINE_READER object into aSheet. | |
| int | GetParsedRequiredVersion () const |
| const std::vector< wxString > & | GetParseWarnings () const |
| Return any non-fatal parse warnings that occurred during parsing. | |
Private Attributes | |
| int | m_requiredVersion |
| Set to the symbol library file version required. | |
| wxString | m_generatorVersion |
| int | m_unit |
| The current unit being parsed. | |
| int | m_bodyStyle |
| The current body style being parsed. | |
| wxString | m_symbolName |
| The current symbol name. | |
| bool | m_appending |
| Appending load status. | |
| std::set< KIID > | m_uuids |
| PROGRESS_REPORTER * | m_progressReporter |
| const LINE_READER * | m_lineReader |
| unsigned | m_lastProgressLine |
| unsigned | m_lineCount |
| KIID | m_rootUuid |
| SCH_SHEET * | m_rootSheet |
| The rootsheet for full project loads or null for importing a schematic. | |
| int | m_maxError |
| Max deviation allowed when approximating bezier curves. | |
| std::vector< GROUP_INFO > | m_groupInfos |
| std::vector< wxString > | m_parseWarnings |
| Non-fatal warnings collected during parsing. | |
Object to parser s-expression symbol library and schematic file formats.
Definition at line 77 of file sch_io_kicad_sexpr_parser.h.
| SCH_IO_KICAD_SEXPR_PARSER::SCH_IO_KICAD_SEXPR_PARSER | ( | LINE_READER * | aLineReader = nullptr, |
| PROGRESS_REPORTER * | aProgressReporter = nullptr, | ||
| unsigned | aLineCount = 0, | ||
| SCH_SHEET * | aRootSheet = nullptr, | ||
| bool | aIsAppending = false ) |
Definition at line 76 of file sch_io_kicad_sexpr_parser.cpp.
References ARC_LOW_DEF_MM, IU_PER_MM, m_appending, m_bodyStyle, m_lastProgressLine, m_lineCount, m_lineReader, m_maxError, m_progressReporter, m_requiredVersion, m_rootSheet, m_unit, and schIUScale.
|
private |
Definition at line 95 of file sch_io_kicad_sexpr_parser.cpp.
References _, m_lastProgressLine, m_lineCount, m_lineReader, m_progressReporter, and THROW_IO_ERROR.
Referenced by ParseSchematic().
|
inline |
Definition at line 114 of file sch_io_kicad_sexpr_parser.h.
References m_requiredVersion.
Referenced by SCH_IO_KICAD_SEXPR_LIB_CACHE::Load().
|
inline |
Return any non-fatal parse warnings that occurred during parsing.
These are errors that were handled gracefully but should be reported to the user.
Definition at line 120 of file sch_io_kicad_sexpr_parser.h.
References m_parseWarnings.
Referenced by SCH_IO_KICAD_SEXPR_LIB_CACHE::Load().
|
private |
Definition at line 940 of file sch_io_kicad_sexpr_parser.cpp.
References _, T, and THROW_PARSE_ERROR.
Referenced by parseLibSymbol().
|
private |
Definition at line 129 of file sch_io_kicad_sexpr_parser.cpp.
References T.
Referenced by parseBusEntry(), parseGroup(), parseImage(), parseJunction(), parseLibSymbol(), parseLine(), parseNoConnect(), parsePinNames(), parsePinNumbers(), parseProperty(), parseSchArc(), parseSchBezier(), parseSchCircle(), ParseSchematic(), parseSchematicSymbol(), parseSchField(), parseSchPolyLine(), parseSchRectangle(), parseSchRuleArea(), parseSchTable(), parseSchText(), parseSchTextBoxContent(), parseSheet(), and parseSymbolPin().
|
private |
Definition at line 5185 of file sch_io_kicad_sexpr_parser.cpp.
References SCH_SCREEN::AddBusAlias(), ConvertToNewOverbarNotation(), m_requiredVersion, and T.
Referenced by ParseSchematic().
|
private |
Definition at line 4129 of file sch_io_kicad_sexpr_parser.cpp.
References DEFAULT, DEFAULT_LINE_WIDTH_MILS, parseBool(), parseInternalUnits(), parseKIID(), parseStroke(), parseXY(), schIUScale, T, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by ParseSchematic().
|
private |
Definition at line 777 of file sch_io_kicad_sexpr_parser.cpp.
References _, KIGFX::COLOR4D::a, KIGFX::COLOR4D::b, ConvertToNewOverbarNotation(), KIGFX::COLOR4D::g, 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, m_requiredVersion, parseDouble(), parseInt(), parseInternalUnits(), parseMaybeAbsentBool(), KIGFX::COLOR4D::r, EDA_TEXT::SetBoldFlag(), EDA_TEXT::SetHorizJustify(), EDA_TEXT::SetHyperlink(), EDA_TEXT::SetItalicFlag(), EDA_TEXT::SetLineSpacing(), EDA_TEXT::SetText(), EDA_TEXT::SetTextColor(), EDA_TEXT::SetTextSize(), EDA_TEXT::SetTextThickness(), EDA_TEXT::SetUnresolvedFontName(), EDA_TEXT::SetVertJustify(), EDA_TEXT::SetVisible(), T, THROW_PARSE_ERROR, COLOR4D::UNSPECIFIED, EDA_TEXT::ValidateHyperlink(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseProperty(), parseSchField(), parseSchSheetPin(), parseSchText(), parseSchTextBoxContent(), parseSymbolPin(), parseSymbolText(), and parseSymbolTextBox().
|
private |
Definition at line 718 of file sch_io_kicad_sexpr_parser.cpp.
References KIGFX::COLOR4D::a, KIGFX::COLOR4D::b, CROSS_HATCH, FILLED_SHAPE, FILLED_WITH_BG_BODYCOLOR, FILLED_WITH_COLOR, KIGFX::COLOR4D::g, HATCH, FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, NO_FILL, parseDouble(), parseInt(), KIGFX::COLOR4D::r, REVERSE_HATCH, T, and COLOR4D::UNSPECIFIED.
Referenced by parseSchArc(), parseSchBezier(), parseSchCircle(), parseSchPolyLine(), parseSchRectangle(), parseSchTextBoxContent(), parseSheet(), parseSymbolArc(), parseSymbolBezier(), parseSymbolCircle(), parseSymbolPolyLine(), parseSymbolRectangle(), and parseSymbolTextBox().
|
private |
Definition at line 5249 of file sch_io_kicad_sexpr_parser.cpp.
References _, SCH_IO_KICAD_SEXPR_PARSER::GROUP_INFO::libId, SCH_IO_KICAD_SEXPR_PARSER::GROUP_INFO::locked, m_groupInfos, name, SCH_IO_KICAD_SEXPR_PARSER::GROUP_INFO::name, LIB_ID::Parse(), parseBool(), parseGroupMembers(), parseKIID(), T, THROW_PARSE_ERROR, and SCH_IO_KICAD_SEXPR_PARSER::GROUP_INFO::uuid.
Referenced by ParseSchematic().
|
private |
Definition at line 5234 of file sch_io_kicad_sexpr_parser.cpp.
References SCH_IO_KICAD_SEXPR_PARSER::GROUP_INFO::memberUuids, and T.
Referenced by parseGroup().
|
private |
Definition at line 915 of file sch_io_kicad_sexpr_parser.cpp.
References _, m_requiredVersion, parseInt(), T, and THROW_PARSE_ERROR.
Referenced by ParseLib(), and ParseSchematic().
|
inlineprivate |
Definition at line 144 of file sch_io_kicad_sexpr_parser.h.
|
private |
Definition at line 3623 of file sch_io_kicad_sexpr_parser.cpp.
References _, REFERENCE_IMAGE::GetImage(), REFERENCE_IMAGE::GetImageScale(), BITMAP_BASE::GetPPI(), m_requiredVersion, parseBool(), parseDouble(), parseKIID(), parseXY(), REFERENCE_IMAGE::ReadImageFile(), scale, REFERENCE_IMAGE::SetImageScale(), T, and THROW_IO_ERROR.
Referenced by ParseSchematic().
|
inlineprivate |
Definition at line 150 of file sch_io_kicad_sexpr_parser.h.
Referenced by parseEDA_TEXT(), parseFill(), parseHeader(), parseInt(), parseJunction(), parseProperty(), parseSchematicSymbol(), parseSchField(), parseSchSymbolInstances(), parseSchTable(), parseSchTextBoxContent(), parseSymbolPin(), and parseTITLE_BLOCK().
|
inlineprivate |
Definition at line 155 of file sch_io_kicad_sexpr_parser.h.
References parseInt().
|
private |
Definition at line 685 of file sch_io_kicad_sexpr_parser.cpp.
References KiROUND(), parseDouble(), and schIUScale.
Referenced by parseBusEntry(), parseEDA_TEXT(), parseInternalUnits(), parseJunction(), parseMargins(), parsePinNames(), parseSchCircle(), parseSchTable(), parseSchText(), parseSheet(), parseSymbolArc(), parseSymbolCircle(), parseSymbolPin(), and parseXY().
|
private |
Definition at line 698 of file sch_io_kicad_sexpr_parser.cpp.
References KiROUND(), parseDouble(), and schIUScale.
|
inlineprivate |
Definition at line 165 of file sch_io_kicad_sexpr_parser.h.
References parseInternalUnits().
|
private |
Definition at line 4026 of file sch_io_kicad_sexpr_parser.cpp.
References KIGFX::COLOR4D::a, KIGFX::COLOR4D::b, KIGFX::COLOR4D::g, parseBool(), parseDouble(), parseInt(), parseInternalUnits(), parseKIID(), parseXY(), KIGFX::COLOR4D::r, and T.
Referenced by ParseSchematic().
|
private |
Definition at line 116 of file sch_io_kicad_sexpr_parser.cpp.
References m_uuids.
Referenced by parseBusEntry(), parseGroup(), parseImage(), parseJunction(), parseLine(), parseNoConnect(), ParseSchematic(), parseSchematicSymbol(), parseSchPolyLine(), parseSchSheetPin(), parseSchTable(), parseSchText(), and parseSheet().
| void SCH_IO_KICAD_SEXPR_PARSER::ParseLib | ( | LIB_SYMBOL_MAP & | aSymbolLibMap | ) |
Definition at line 178 of file sch_io_kicad_sexpr_parser.cpp.
References _, LIB_SYMBOL::GetName(), m_bodyStyle, m_generatorVersion, m_parseWarnings, m_requiredVersion, m_unit, parseHeader(), parseLibSymbol(), SEXPR_SYMBOL_LIB_FILE_VERSION, skipToBlockEnd(), T, and IO_ERROR::What().
Referenced by SCH_IO_KICAD_SEXPR_LIB_CACHE::Load().
|
private |
Definition at line 319 of file sch_io_kicad_sexpr_parser.cpp.
References _, DSN_EOF, DSN_LEFT, DSN_RIGHT, DSN_STRING, m_bodyStyle, m_parseWarnings, m_requiredVersion, m_symbolName, m_unit, name, NO_RECURSE, LIB_ID::Parse(), parseBodyStyles(), parseBool(), EMBEDDED_FILES_PARSER::ParseEmbedded(), parsePinNames(), parsePinNumbers(), parseProperty(), ParseSymbolDrawItem(), EDA_ITEM::SetParent(), T, THROW_PARSE_ERROR, and IO_ERROR::What().
Referenced by ParseLib(), ParseSchematic(), and ParseSymbol().
|
private |
Definition at line 4269 of file sch_io_kicad_sexpr_parser.cpp.
References DEFAULT, DEFAULT_LINE_WIDTH_MILS, LAYER_BUS, LAYER_NOTES, LAYER_WIRE, parseBool(), parseKIID(), parseStroke(), parseXY(), schIUScale, and T.
Referenced by ParseSchematic().
|
inlineprivate |
Definition at line 206 of file sch_io_kicad_sexpr_parser.h.
References parseInternalUnits().
Referenced by parseSchTextBoxContent(), and parseSymbolTextBox().
|
private |
Parses a boolean flag inside a list that existed before boolean normalization.
For example, this will handle both (legacy_teardrops) and (legacy_teardrops yes). Call this after parsing the T_legacy_teardrops, and aDefaultValue will be returned for the first case, or true will be returned for the second case.
| aDefaultValue | will be returned if the end of the list is encountered as the next token |
Definition at line 147 of file sch_io_kicad_sexpr_parser.cpp.
Referenced by parseEDA_TEXT(), parseProperty(), parseSchematicSymbol(), parseSchField(), parseSchText(), and parseSheet().
|
private |
Definition at line 4087 of file sch_io_kicad_sexpr_parser.cpp.
References parseBool(), parseKIID(), parseXY(), and T.
Referenced by ParseSchematic().
|
private |
Definition at line 2136 of file sch_io_kicad_sexpr_parser.cpp.
References _, PAGE_INFO::GetType(), m_requiredVersion, MAX_PAGE_SIZE_EESCHEMA_MM, MIN_PAGE_SIZE_MM, parseDouble(), PAGE_INFO::SetHeightMM(), PAGE_INFO::SetPortrait(), PAGE_INFO::SetType(), PAGE_INFO::SetWidthMM(), T, THROW_PARSE_ERROR, and User.
Referenced by ParseSchematic().
|
private |
(pin_names (offset 123) ; optional (hide yes/no) ; optional hide ; optional, pre-20241004 )
Definition at line 968 of file sch_io_kicad_sexpr_parser.cpp.
References parseBool(), parseInternalUnits(), and T.
Referenced by parseLibSymbol().
|
private |
(pin_numbers (hide yes/no) ; optional hide ; optional (pre-20241004) )
Definition at line 1016 of file sch_io_kicad_sexpr_parser.cpp.
References parseBool(), and T.
Referenced by parseLibSymbol().
|
private |
Definition at line 1059 of file sch_io_kicad_sexpr_parser.cpp.
References _, DEGREES_T, GetCanonicalFieldName(), m_requiredVersion, MANDATORY_FIELDS, name, parseBool(), parseDouble(), parseEDA_TEXT(), parseInt(), parseMaybeAbsentBool(), parseXY(), T, THROW_PARSE_ERROR, UnescapeString(), USER, and VALUE.
Referenced by parseLibSymbol().
|
private |
Definition at line 4343 of file sch_io_kicad_sexpr_parser.cpp.
References ARC, DEFAULT, DEFAULT_LINE_WIDTH_MILS, fixupSchFillMode(), FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, parseBool(), parseFill(), parseStroke(), parseXY(), schIUScale, and T.
Referenced by ParseSchematic().
|
private |
Definition at line 4618 of file sch_io_kicad_sexpr_parser.cpp.
References BEZIER, DEFAULT, DEFAULT_LINE_WIDTH_MILS, fixupSchFillMode(), FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, m_maxError, parseBool(), parseFill(), parseStroke(), parseXY(), schIUScale, and T.
Referenced by ParseSchematic().
|
private |
Definition at line 4414 of file sch_io_kicad_sexpr_parser.cpp.
References center, CIRCLE, circle(), DEFAULT, DEFAULT_LINE_WIDTH_MILS, fixupSchFillMode(), FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, parseBool(), parseFill(), parseInternalUnits(), parseStroke(), parseXY(), radius, schIUScale, and T.
Referenced by ParseSchematic().
| void SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic | ( | SCH_SHEET * | aSheet, |
| bool | aIsCopyablyOnly = false, | ||
| int | aFileVersion = SEXPR_SCHEMATIC_FILE_VERSION ) |
Parse the internal LINE_READER object into aSheet.
When aIsCopyableOnly is true, only schematic objects that are viewable on the canvas for copy and paste purposes are parsed. Other schematic content such as bus definitions or instance data will throw an IO_ERROR exception.
When aIsCopyableOnly is false, full schematic file parsing is performed.
| aSheet | The SCH_SHEET object to store the parsed schematic file. |
| aIsCopyableOnly | Load only the schematic objects that can be copied into aSheet if true. Otherwise, load the full schematic file format. |
| aFileVersion | The schematic file version to parser. Defaults to the schematic file being parsed when aIsCopyableOnly is false. |
Definition at line 2715 of file sch_io_kicad_sexpr_parser.cpp.
References _, SCH_SCREEN::AddLibSymbol(), SCH_SCREEN::Append(), checkpoint(), SHAPE_LINE_CHAIN::CPoint(), DSN_EOF, DSN_LEFT, DSN_RIGHT, SCH_SCREEN::FixupEmbeddedData(), Fontconfig(), SCHEMATIC::GetEmbeddedFiles(), EMBEDDED_FILES::GetFontFiles(), EDA_ITEM::GetParent(), EDA_SHAPE::GetPointCount(), EDA_SHAPE::GetPolyShape(), SCH_SHEET::GetScreen(), SCH_SHAPE::GetStroke(), SCH_SCREEN::GetUuid(), SCH_ITEM::IsLocked(), KI_FALLTHROUGH, LAYER_NOTES, m_generatorVersion, m_maxError, m_parseWarnings, m_requiredVersion, m_rootSheet, m_rootUuid, EDA_ITEM::m_Uuid, SCH_SCREEN::m_uuid, SHAPE_POLY_SET::Outline(), parseBool(), parseBusAlias(), parseBusEntry(), EMBEDDED_FILES_PARSER::ParseEmbedded(), parseGroup(), parseHeader(), parseImage(), parseJunction(), parseKIID(), parseLibSymbol(), parseLine(), parseNoConnect(), parsePAGE_INFO(), parseSchArc(), parseSchBezier(), parseSchCircle(), parseSchematicSymbol(), parseSchPolyLine(), parseSchRectangle(), parseSchRuleArea(), parseSchSheetInstances(), parseSchSymbolInstances(), parseSchTable(), parseSchText(), parseSchTextBox(), parseSheet(), parseTITLE_BLOCK(), Pgm(), resolveGroups(), SCH_SCREEN::Schematic(), EMBEDDED_FILES::SetAreFontsEmbedded(), SCH_LINE::SetEndPoint(), SCH_SCREEN::SetFileFormatVersionAtLoad(), SCH_SCREEN::SetLegacySymbolInstanceData(), SCH_ITEM::SetLocked(), SCH_SCREEN::SetPageSettings(), EDA_ITEM::SetParent(), SCH_LINE::SetStartPoint(), SCH_LINE::SetStroke(), SCH_SCREEN::SetTitleBlock(), SEXPR_SCHEMATIC_FILE_VERSION, T, THROW_PARSE_ERROR, SCH_SCREEN::UpdateLocalLibSymbolLinks(), and IO_ERROR::What().
Referenced by SCH_IO_KICAD_SEXPR::LoadContent(), SCH_IO_KICAD_SEXPR::loadFile(), and KI_TEST::LoadSheetSchematicContents().
|
private |
Definition at line 3118 of file sch_io_kicad_sexpr_parser.cpp.
References _, AUTOPLACE_AUTO, AUTOPLACE_NONE, SCH_FIELD::GetCanonicalName(), SCH_FIELD::GetId(), SCH_FIELD::GetName(), SCH_FIELD::GetText(), SCH_SYMBOL_VARIANT::InitializeAttributes(), SCH_FIELD::IsMandatory(), VARIANT::m_DNP, VARIANT::m_ExcludedFromBoard, VARIANT::m_ExcludedFromBOM, VARIANT::m_ExcludedFromPosFiles, VARIANT::m_ExcludedFromSim, VARIANT::m_Fields, VARIANT::m_Name, SCH_SYMBOL_INSTANCE::m_Path, SCH_SYMBOL_INSTANCE::m_ProjectName, SCH_SYMBOL_INSTANCE::m_Reference, m_requiredVersion, SCH_SYMBOL_INSTANCE::m_Unit, SCH_SYMBOL_INSTANCE::m_Variants, name, LIB_ID::Parse(), parseBool(), parseDouble(), parseInt(), parseKIID(), parseMaybeAbsentBool(), parseSchField(), parseXY(), REFERENCE, SIM_LEGACY_ENABLE_FIELD, SIM_LEGACY_ENABLE_FIELD_V7, SYM_MIRROR_X, SYM_MIRROR_Y, T, and THROW_PARSE_ERROR.
Referenced by ParseSchematic().
Definition at line 2292 of file sch_io_kicad_sexpr_parser.cpp.
References _, DEGREES_T, GetCanonicalFieldName(), GLOBALLABEL_MANDATORY_FIELDS, INTERSHEET_REFS, m_requiredVersion, MANDATORY_FIELDS, name, parseBool(), parseDouble(), parseEDA_TEXT(), parseInt(), parseMaybeAbsentBool(), parseXY(), SCH_GLOBAL_LABEL_T, SCH_SHEET_T, SCH_SYMBOL_T, SHEET_FILENAME, SHEET_MANDATORY_FIELDS, SHEET_NAME, SHEET_USER, T, THROW_PARSE_ERROR, EDA_ITEM::Type(), USER, and VALUE.
Referenced by parseSchematicSymbol(), parseSchText(), and parseSheet().
|
private |
Definition at line 4198 of file sch_io_kicad_sexpr_parser.cpp.
References DASH, DEFAULT, DEFAULT_LINE_WIDTH_MILS, fixupSchFillMode(), STROKE_PARAMS::GetLineStyle(), LAYER_NOTES, FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, m_requiredVersion, parseBool(), parseFill(), parseKIID(), parseStroke(), parseXY(), POLY, schIUScale, STROKE_PARAMS::SetLineStyle(), and T.
Referenced by ParseSchematic(), and parseSchRuleArea().
|
private |
Definition at line 4480 of file sch_io_kicad_sexpr_parser.cpp.
References DEFAULT, DEFAULT_LINE_WIDTH_MILS, fixupSchFillMode(), FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, parseBool(), parseDouble(), parseFill(), parseStroke(), parseXY(), RECTANGLE, schIUScale, and T.
Referenced by ParseSchematic().
|
private |
Definition at line 4546 of file sch_io_kicad_sexpr_parser.cpp.
References DEFAULT, DEFAULT_LINE_WIDTH_MILS, SHAPE_POLY_SET::Outline(), parseBool(), parseSchPolyLine(), schIUScale, SHAPE_LINE_CHAIN::SetClosed(), and T.
Referenced by ParseSchematic().
|
private |
Definition at line 2531 of file sch_io_kicad_sexpr_parser.cpp.
References SCH_SCREEN::GetFileFormatVersionAtLoad(), SCH_SHEET::GetScreen(), m_appending, SCH_SHEET_INSTANCE::m_PageNumber, SCH_SHEET_INSTANCE::m_Path, m_rootUuid, SCH_SCREEN::m_sheetInstances, SCH_SHEET_PATH::push_back(), BASE_SCREEN::SetContentModified(), SCH_SHEET_PATH::SetPageNumber(), and T.
Referenced by ParseSchematic().
|
private |
Definition at line 2445 of file sch_io_kicad_sexpr_parser.cpp.
References _, BOTTOM, L_BIDI, L_INPUT, L_OUTPUT, L_TRISTATE, L_UNSPECIFIED, LEFT, name, parseDouble(), parseEDA_TEXT(), parseKIID(), parseXY(), RIGHT, T, THROW_PARSE_ERROR, and TOP.
Referenced by parseSheet().
|
private |
Definition at line 2628 of file sch_io_kicad_sexpr_parser.cpp.
References m_appending, SCH_SYMBOL_INSTANCE::m_Footprint, SCH_SYMBOL_INSTANCE::m_Path, SCH_SYMBOL_INSTANCE::m_Reference, m_requiredVersion, m_rootUuid, SCH_SCREEN::m_symbolInstances, SCH_SYMBOL_INSTANCE::m_Unit, SCH_SYMBOL_INSTANCE::m_Value, NilUuid(), parseInt(), and T.
Referenced by ParseSchematic().
|
private |
Definition at line 5032 of file sch_io_kicad_sexpr_parser.cpp.
References _, DEFAULT, DEFAULT_LINE_WIDTH_MILS, parseBool(), parseInt(), parseInternalUnits(), parseKIID(), parseSchTableCell(), parseStroke(), schIUScale, T, table, and THROW_PARSE_ERROR.
Referenced by ParseSchematic().
|
private |
Definition at line 4883 of file sch_io_kicad_sexpr_parser.cpp.
References parseSchTextBoxContent().
Referenced by parseSchTable().
|
private |
Definition at line 4699 of file sch_io_kicad_sexpr_parser.cpp.
References AUTOPLACE_AUTO, AUTOPLACE_NONE, SPIN_STYLE::BOTTOM, DEGREES_T, F_DIAMOND, F_DOT, F_RECTANGLE, F_ROUND, SCH_GLOBALLABEL::GetField(), SCH_LABEL_BASE::GetFields(), SCH_FIELD::GetId(), INTERSHEET_REFS, SCH_FIELD::IsMandatory(), L_BIDI, L_INPUT, L_OUTPUT, L_TRISTATE, L_UNSPECIFIED, SPIN_STYLE::LEFT, parseBool(), parseDouble(), parseEDA_TEXT(), parseInternalUnits(), parseKIID(), parseMaybeAbsentBool(), parseSchField(), parseXY(), SPIN_STYLE::RIGHT, SCH_DIRECTIVE_LABEL_T, SCH_GLOBAL_LABEL_T, SCH_LABEL_T, SCH_TEXT_T, SCH_ITEM::SetFieldsAutoplaced(), SCH_DIRECTIVE_LABEL::SetPinLength(), SCH_LABEL_BASE::SetShape(), EDA_TEXT::SetTextPos(), EDA_TEXT::SetVisible(), T, text, and SPIN_STYLE::UP.
Referenced by ParseSchematic().
|
private |
Definition at line 4870 of file sch_io_kicad_sexpr_parser.cpp.
References parseSchTextBoxContent().
Referenced by ParseSchematic().
|
private |
Definition at line 4896 of file sch_io_kicad_sexpr_parser.cpp.
References DEFAULT, DEFAULT_LINE_WIDTH_MILS, DEGREES_T, end, fixupSchFillMode(), SCH_TEXTBOX::GetLegacyTextMargin(), left, FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, EDA_ITEM::m_Uuid, parseBool(), parseDouble(), parseEDA_TEXT(), parseFill(), parseInt(), parseMargins(), parseStroke(), parseXY(), right, schIUScale, EDA_SHAPE::SetEnd(), SCH_TEXTBOX::SetExcludedFromSim(), EDA_SHAPE::SetFillColor(), EDA_SHAPE::SetFillMode(), SCH_ITEM::SetLocked(), SCH_TEXTBOX::SetMarginBottom(), SCH_TEXTBOX::SetMarginLeft(), SCH_TEXTBOX::SetMarginRight(), SCH_TEXTBOX::SetMarginTop(), SCH_SHAPE::SetPosition(), SCH_SHAPE::SetStroke(), EDA_TEXT::SetText(), EDA_TEXT::SetTextAngle(), T, and top().
Referenced by parseSchTableCell(), and parseSchTextBox().
|
private |
Definition at line 3710 of file sch_io_kicad_sexpr_parser.cpp.
References _, AUTOPLACE_AUTO, AUTOPLACE_NONE, DEFAULT, DEFAULT_LINE_WIDTH_MILS, FindField(), STROKE_PARAMS::GetColor(), STROKE_PARAMS::GetWidth(), SCH_SHEET_VARIANT::InitializeAttributes(), FILL_PARAMS::m_Color, VARIANT::m_DNP, VARIANT::m_ExcludedFromBoard, VARIANT::m_ExcludedFromBOM, VARIANT::m_ExcludedFromPosFiles, VARIANT::m_ExcludedFromSim, VARIANT::m_Fields, VARIANT::m_Name, SCH_SHEET_INSTANCE::m_PageNumber, SCH_SHEET_INSTANCE::m_Path, SCH_SHEET_INSTANCE::m_ProjectName, m_requiredVersion, SCH_SHEET_INSTANCE::m_Variants, parseBool(), parseFill(), parseInternalUnits(), parseKIID(), parseMaybeAbsentBool(), parseSchField(), parseSchSheetPin(), parseStroke(), parseXY(), schIUScale, SCH_FIELD::setId(), SHEET_FILENAME, SHEET_NAME, T, THROW_PARSE_ERROR, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by ParseSchematic().
|
private |
Parse stroke definition aStroke.
| aStrokeDef | A reference to the STROKE_PARAMS structure to write to. |
Definition at line 708 of file sch_io_kicad_sexpr_parser.cpp.
References STROKE_PARAMS_PARSER::ParseStroke(), and schIUScale.
Referenced by parseBusEntry(), parseLine(), parseSchArc(), parseSchBezier(), parseSchCircle(), parseSchPolyLine(), parseSchRectangle(), parseSchTable(), parseSchTextBoxContent(), parseSheet(), parseSymbolArc(), parseSymbolBezier(), parseSymbolCircle(), parseSymbolPolyLine(), parseSymbolRectangle(), and parseSymbolTextBox().
| LIB_SYMBOL * SCH_IO_KICAD_SEXPR_PARSER::ParseSymbol | ( | LIB_SYMBOL_MAP & | aSymbolLibMap, |
| int | aFileVersion = SEXPR_SYMBOL_LIB_FILE_VERSION ) |
Parse internal LINE_READER object into symbols and return all found.
Definition at line 279 of file sch_io_kicad_sexpr_parser.cpp.
References _, LIB_SYMBOL::GetEmbeddedFiles(), m_requiredVersion, NO_RECURSE, parseLibSymbol(), LIB_SYMBOL::RunOnChildren(), THROW_PARSE_ERROR, and EMBEDDED_FILES::UpdateFontFiles().
Referenced by SCH_IO_KICAD_SEXPR::ParseLibSymbols().
|
private |
Definition at line 1256 of file sch_io_kicad_sexpr_parser.cpp.
References ANGLE_0, ANGLE_180, ANGLE_360, ANGLE_90, ARC, CalcArcCenter(), center, DEFAULT, DEFAULT_LINE_WIDTH_MILS, DEGREES_T, LAYER_DEVICE, m_bodyStyle, FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, m_requiredVersion, m_unit, EDA_ANGLE::Normalize(), parseDouble(), parseFill(), parseInternalUnits(), parseStroke(), parseXY(), schIUScale, and T.
Referenced by ParseSymbolDrawItem().
|
private |
Definition at line 1449 of file sch_io_kicad_sexpr_parser.cpp.
References BEZIER, DEFAULT, DEFAULT_LINE_WIDTH_MILS, LAYER_DEVICE, m_bodyStyle, FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, m_maxError, m_unit, parseFill(), parseStroke(), parseXY(), schIUScale, and T.
Referenced by ParseSymbolDrawItem().
|
private |
Definition at line 1530 of file sch_io_kicad_sexpr_parser.cpp.
References center, CIRCLE, circle(), DEFAULT, DEFAULT_LINE_WIDTH_MILS, LAYER_DEVICE, m_bodyStyle, FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, m_unit, parseFill(), parseInternalUnits(), parseStroke(), parseXY(), radius, schIUScale, and T.
Referenced by ParseSymbolDrawItem().
| SCH_ITEM * SCH_IO_KICAD_SEXPR_PARSER::ParseSymbolDrawItem | ( | ) |
Definition at line 666 of file sch_io_kicad_sexpr_parser.cpp.
References parseSymbolArc(), parseSymbolBezier(), parseSymbolCircle(), parseSymbolPin(), parseSymbolPolyLine(), parseSymbolRectangle(), parseSymbolText(), and parseSymbolTextBox().
Referenced by parseLibSymbol().
|
private |
Definition at line 1596 of file sch_io_kicad_sexpr_parser.cpp.
References _, CLOCK, CLOCK_LOW, ConvertToNewOverbarNotation(), FALLING_EDGE_CLOCK, INPUT_LOW, INVERTED, INVERTED_CLOCK, LINE, m_bodyStyle, SCH_PIN::ALT::m_Name, m_requiredVersion, SCH_PIN::ALT::m_Shape, SCH_PIN::ALT::m_Type, m_unit, NONLOGIC, OUTPUT_LOW, parseBool(), parseEDA_TEXT(), parseInt(), parseInternalUnits(), parseXY(), pin, PIN_DOWN, PIN_LEFT, PIN_RIGHT, PIN_UP, PT_BIDI, PT_INPUT, PT_NC, PT_NIC, PT_OPENCOLLECTOR, PT_OPENEMITTER, PT_OUTPUT, PT_PASSIVE, PT_POWER_IN, PT_POWER_OUT, PT_TRISTATE, PT_UNSPECIFIED, schIUScale, T, text, and THROW_PARSE_ERROR.
Referenced by ParseSymbolDrawItem().
|
private |
Definition at line 1820 of file sch_io_kicad_sexpr_parser.cpp.
References DEFAULT, DEFAULT_LINE_WIDTH_MILS, LAYER_DEVICE, m_bodyStyle, FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, m_unit, parseFill(), parseStroke(), parseXY(), POLY, schIUScale, and T.
Referenced by ParseSymbolDrawItem().
|
private |
Definition at line 1888 of file sch_io_kicad_sexpr_parser.cpp.
References DEFAULT, DEFAULT_LINE_WIDTH_MILS, LAYER_DEVICE, m_bodyStyle, FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, m_unit, parseDouble(), parseFill(), parseStroke(), parseXY(), RECTANGLE, schIUScale, and T.
Referenced by ParseSymbolDrawItem().
|
private |
Definition at line 1953 of file sch_io_kicad_sexpr_parser.cpp.
References _, LAYER_DEVICE, m_bodyStyle, m_unit, parseDouble(), parseEDA_TEXT(), parseXY(), T, TENTHS_OF_A_DEGREE_T, text, THROW_PARSE_ERROR, and USER.
Referenced by ParseSymbolDrawItem().
|
private |
Definition at line 2013 of file sch_io_kicad_sexpr_parser.cpp.
References _, DEFAULT, DEFAULT_LINE_WIDTH_MILS, DEGREES_T, end, LAYER_DEVICE, left, m_bodyStyle, FILL_PARAMS::m_Color, FILL_PARAMS::m_FillType, m_unit, parseDouble(), parseEDA_TEXT(), parseFill(), parseMargins(), parseStroke(), parseXY(), right, schIUScale, T, THROW_PARSE_ERROR, and top().
Referenced by ParseSymbolDrawItem().
|
private |
Definition at line 2188 of file sch_io_kicad_sexpr_parser.cpp.
References _, parseInt(), TITLE_BLOCK::SetComment(), TITLE_BLOCK::SetCompany(), TITLE_BLOCK::SetDate(), TITLE_BLOCK::SetRevision(), TITLE_BLOCK::SetTitle(), T, and THROW_PARSE_ERROR.
Referenced by ParseSchematic().
|
inlineprivate |
Definition at line 170 of file sch_io_kicad_sexpr_parser.h.
References parseInternalUnits(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by parseBusEntry(), parseImage(), parseJunction(), parseLine(), parseNoConnect(), parseProperty(), parseSchArc(), parseSchBezier(), parseSchCircle(), parseSchematicSymbol(), parseSchField(), parseSchPolyLine(), parseSchRectangle(), parseSchSheetPin(), parseSchText(), parseSchTextBoxContent(), parseSheet(), parseSymbolArc(), parseSymbolBezier(), parseSymbolCircle(), parseSymbolPin(), parseSymbolPolyLine(), parseSymbolRectangle(), parseSymbolText(), and parseSymbolTextBox().
|
private |
Definition at line 5333 of file sch_io_kicad_sexpr_parser.cpp.
References SCH_SCREEN::Append(), group, SCH_SCREEN::GroupsSanityCheck(), SCH_SCREEN::Items(), m_groupInfos, and SCH_GROUP_T.
Referenced by ParseSchematic().
|
private |
Skip tokens until we reach the end of the current S-expression block.
This is used for error recovery when parsing fails mid-symbol. The parser will consume tokens until the matching closing parenthesis is found, allowing parsing to continue with the next symbol.
| aDepth | The initial nesting depth (1 = inside one open paren) |
Definition at line 5394 of file sch_io_kicad_sexpr_parser.cpp.
References T.
Referenced by ParseLib().
|
private |
Appending load status.
Definition at line 279 of file sch_io_kicad_sexpr_parser.h.
Referenced by parseSchSheetInstances(), parseSchSymbolInstances(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
The current body style being parsed.
Definition at line 277 of file sch_io_kicad_sexpr_parser.h.
Referenced by ParseLib(), parseLibSymbol(), parseSymbolArc(), parseSymbolBezier(), parseSymbolCircle(), parseSymbolPin(), parseSymbolPolyLine(), parseSymbolRectangle(), parseSymbolText(), parseSymbolTextBox(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
Definition at line 275 of file sch_io_kicad_sexpr_parser.h.
Referenced by ParseLib(), and ParseSchematic().
|
private |
Definition at line 296 of file sch_io_kicad_sexpr_parser.h.
Referenced by parseGroup(), and resolveGroups().
|
private |
Definition at line 285 of file sch_io_kicad_sexpr_parser.h.
Referenced by checkpoint(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
Definition at line 286 of file sch_io_kicad_sexpr_parser.h.
Referenced by checkpoint(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
Definition at line 284 of file sch_io_kicad_sexpr_parser.h.
Referenced by checkpoint(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
Max deviation allowed when approximating bezier curves.
Definition at line 294 of file sch_io_kicad_sexpr_parser.h.
Referenced by parseSchBezier(), ParseSchematic(), parseSymbolBezier(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
Non-fatal warnings collected during parsing.
Definition at line 298 of file sch_io_kicad_sexpr_parser.h.
Referenced by GetParseWarnings(), ParseLib(), parseLibSymbol(), and ParseSchematic().
|
private |
Definition at line 283 of file sch_io_kicad_sexpr_parser.h.
Referenced by checkpoint(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
Set to the symbol library file version required.
Definition at line 274 of file sch_io_kicad_sexpr_parser.h.
Referenced by GetParsedRequiredVersion(), parseBusAlias(), parseEDA_TEXT(), parseHeader(), parseImage(), ParseLib(), parseLibSymbol(), parsePAGE_INFO(), parseProperty(), ParseSchematic(), parseSchematicSymbol(), parseSchField(), parseSchPolyLine(), parseSchSymbolInstances(), parseSheet(), ParseSymbol(), parseSymbolArc(), parseSymbolPin(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
The rootsheet for full project loads or null for importing a schematic.
Definition at line 291 of file sch_io_kicad_sexpr_parser.h.
Referenced by ParseSchematic(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
Definition at line 288 of file sch_io_kicad_sexpr_parser.h.
Referenced by ParseSchematic(), parseSchSheetInstances(), and parseSchSymbolInstances().
|
private |
The current symbol name.
Definition at line 278 of file sch_io_kicad_sexpr_parser.h.
Referenced by parseLibSymbol().
|
private |
The current unit being parsed.
Definition at line 276 of file sch_io_kicad_sexpr_parser.h.
Referenced by ParseLib(), parseLibSymbol(), parseSymbolArc(), parseSymbolBezier(), parseSymbolCircle(), parseSymbolPin(), parseSymbolPolyLine(), parseSymbolRectangle(), parseSymbolText(), parseSymbolTextBox(), and SCH_IO_KICAD_SEXPR_PARSER().
|
private |
Definition at line 281 of file sch_io_kicad_sexpr_parser.h.
Referenced by parseKIID().