@ry-krystal/kicad-converter
Version:
专业的KiCad符号文件与JSON互转工具
127 lines (126 loc) • 2.46 kB
TypeScript
/**
* 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;
}