31#ifndef SCH_IO_KICAD_SEXPR_PARSER_H_ 
   32#define SCH_IO_KICAD_SEXPR_PARSER_H_ 
   36#include <schematic_lexer.h> 
   82                      SCH_SHEET* aRootSheet = 
nullptr, 
bool aIsAppending = 
false );
 
  135    void parseHeader( TSCHEMATIC_T::T aHeaderType, 
int aFileVersion );
 
  140        return strtol( CurText(), 
nullptr, 16 );
 
 
  145        return (
int)strtol( CurText(), 
nullptr, 10 );
 
 
  150        NeedNUMBER( aExpected );
 
 
 
A color representation with 4 components: red, green, blue, alpha.
 
A mix-in class (via multiple inheritance) that handles texts such as labels, parts,...
 
Simple container to manage fill parameters.
 
A logical library item identifier and consists of various portions much like a URI.
 
Define a library symbol object.
 
An abstract class from which implementation specific LINE_READERs may be derived to read single lines...
 
Describe the page size and margins of a paper page on which to eventually print or plot.
 
A progress reporter interface for use in multi-threaded environments.
 
Object to handle a bitmap image that can be inserted in a schematic.
 
Class for a wire to bus entry.
 
SCH_ITEM * ParseSymbolDrawItem()
 
SCH_SHAPE * parseSymbolPolyLine()
 
SCH_TABLE * parseSchTable()
 
bool m_appending
Appending load status.
 
unsigned m_lastProgressLine
 
SCH_FIELD * parseSchField(SCH_ITEM *aParent)
 
SCH_SHAPE * parseSchCircle()
 
SCH_TEXT * parseSchText()
 
SCH_TABLECELL * parseSchTableCell()
 
void parseSchSymbolInstances(SCH_SCREEN *aScreen)
 
void parsePinNumbers(std::unique_ptr< LIB_SYMBOL > &aSymbol)
 
LIB_SYMBOL * parseLibSymbol(LIB_SYMBOL_MAP &aSymbolLibMap)
 
SCH_RULE_AREA * parseSchRuleArea()
 
int parseInternalUnits(TSCHEMATIC_T::T aToken)
 
SCH_ITEM * parseSymbolText()
 
PROGRESS_REPORTER * m_progressReporter
 
void parseFill(FILL_PARAMS &aFill)
 
SCH_TEXTBOX * parseSymbolTextBox()
 
void parseBusAlias(SCH_SCREEN *aScreen)
 
void parseTITLE_BLOCK(TITLE_BLOCK &aTitleBlock)
 
void parseGroupMembers(GROUP_INFO &aGroupInfo)
 
void parseStroke(STROKE_PARAMS &aStroke)
Parse stroke definition aStroke.
 
int m_unit
The current unit being parsed.
 
SCH_SHAPE * parseSymbolBezier()
 
void parseEDA_TEXT(EDA_TEXT *aText, bool aConvertOverbarSyntax, bool aEnforceMinTextSize=true)
 
int GetParsedRequiredVersion() const
 
SCH_TEXTBOX * parseSchTextBox()
 
void resolveGroups(SCH_SCREEN *aParent)
 
SCH_SHEET * m_rootSheet
The rootsheet for full project loads or null for importing a schematic.
 
SCH_SHAPE * parseSchArc()
 
SCH_SHAPE * parseSchPolyLine()
 
SCH_BITMAP * parseImage()
 
SCH_SHAPE * parseSymbolCircle()
 
wxString m_generatorVersion
 
void ParseLib(LIB_SYMBOL_MAP &aSymbolLibMap)
 
SCH_PIN * parseSymbolPin()
 
std::vector< GROUP_INFO > m_groupInfos
 
void parseHeader(TSCHEMATIC_T::T aHeaderType, int aFileVersion)
 
void parseBodyStyles(std::unique_ptr< LIB_SYMBOL > &aSymbol)
 
void parseMargins(int &aLeft, int &aTop, int &aRight, int &aBottom)
 
wxString m_symbolName
The current symbol name.
 
VECTOR2I parseXY(bool aInvertY=false)
 
SCH_SHAPE * parseSymbolRectangle()
 
void parsePinNames(std::unique_ptr< LIB_SYMBOL > &aSymbol)
 
SCH_SHAPE * parseSchBezier()
 
SCH_JUNCTION * parseJunction()
 
void ParseSchematic(SCH_SHEET *aSheet, bool aIsCopyablyOnly=false, int aFileVersion=SEXPR_SCHEMATIC_FILE_VERSION)
Parse the internal LINE_READER object into aSheet.
 
SCH_SHEET_PIN * parseSchSheetPin(SCH_SHEET *aSheet)
 
int m_bodyStyle
The current body style being parsed.
 
SCH_NO_CONNECT * parseNoConnect()
 
SCH_SHAPE * parseSymbolArc()
 
SCH_BUS_WIRE_ENTRY * parseBusEntry()
 
SCH_SHAPE * parseSchRectangle()
 
SCH_FIELD * parseProperty(std::unique_ptr< LIB_SYMBOL > &aSymbol)
 
SCH_SYMBOL * parseSchematicSymbol()
 
void parseSchTextBoxContent(SCH_TEXTBOX *aTextBox)
 
bool parseMaybeAbsentBool(bool aDefaultValue)
Parses a boolean flag inside a list that existed before boolean normalization.
 
void parsePAGE_INFO(PAGE_INFO &aPageInfo)
 
int m_requiredVersion
Set to the symbol library file version required.
 
int m_maxError
Max deviation allowed when approximating bezier curves.
 
const LINE_READER * m_lineReader
 
int parseInt(const char *aExpected)
 
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.
 
void parseSchSheetInstances(SCH_SHEET *aRootSheet, SCH_SCREEN *aScreen)
 
SCH_IO_KICAD_SEXPR_PARSER(LINE_READER *aLineReader=nullptr, PROGRESS_REPORTER *aProgressReporter=nullptr, unsigned aLineCount=0, SCH_SHEET *aRootSheet=nullptr, bool aIsAppending=false)
 
Base class for any item which can be embedded within the SCHEMATIC container class,...
 
Segment description base class to describe items which have 2 end points (track, wire,...
 
Define a sheet pin (label) used in sheets to create hierarchical schematics.
 
Sheet symbol placed in a schematic, and is the entry point for a sub schematic.
 
Simple container to manage line stroke parameters.
 
Hold the information shown in the lower right corner of a plot, printout, or editing view.
 
#define SEXPR_SYMBOL_LIB_FILE_VERSION
This file contains the file format version information for the s-expression schematic and symbol libr...
 
#define SEXPR_SCHEMATIC_FILE_VERSION
Schematic file version.
 
std::vector< KIID > memberUuids
 
virtual ~GROUP_INFO()=default
 
std::map< wxString, LIB_SYMBOL *, LibSymbolMapSort > LIB_SYMBOL_MAP
 
VECTOR2< int32_t > VECTOR2I