UNPKG

@ry-krystal/kicad-converter

Version:

专业的KiCad符号文件与JSON互转工具

127 lines (126 loc) 2.46 kB
/** * KiCad文件解析器 - 核心版本 * 负责将KiCad S表达式格式解析为结构化数据 */ import { KiCadSymbolLib } from './types.js'; /** S表达式节点 */ export interface SExprNode { type: 'atom' | 'list'; value?: string | number; children?: SExprNode[]; } /** * KiCad解析器类 */ export declare class KiCadParser { /** * 解析KiCad符号库文件内容 * @param content KiCad文件内容 * @returns 解析结果 */ parse(content: string): KiCadSymbolLib; /** * 预处理文本内容 */ private preprocess; /** * 词法分析 - 将文本分解为token */ private tokenize; /** * 语法分析 - 构建S表达式AST */ private parseTokens; /** * 尝试解析数字 */ private parseNumber; /** * 解析字符串(移除引号) */ private parseString; /** * 将AST转换为符号库数据结构 */ private convertToSymbolLib; /** * 递归收集所有符号节点(包括嵌套的) */ private collectSymbolNodes; /** * 解析符号组(主符号+符号单元) */ private parseSymbolGroup; /** * 解析符号 */ private parseSymbol; /** * 解析属性 */ private parseProperty; /** * 解析位置信息 */ private parsePosition; /** * 解析文本效果 */ private parseEffects; /** * 解析字体信息 */ private parseFont; /** * 解析对齐方式 */ private parseJustify; /** * 解析引脚定义 */ private parsePin; /** * 解析引脚文本(名称或编号) */ private parsePinText; /** * 解析图形元素 */ private parseGraphic; /** * 解析矩形图形 */ private parseRectangle; /** * 解析圆形图形 */ private parseCircle; /** * 解析多边形图形 */ private parsePolyline; /** * 解析文本图形 */ private parseTextGraphic; /** * 解析通用图形(未知类型) */ private parseGenericGraphic; /** * 解析描边样式 */ private parseStroke; /** * 解析填充样式 */ private parseFill; /** * 解析点集合 */ private parsePoints; /** * 获取节点值 */ private getNodeValue; }