You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Doxygen解析Rhapsody生成的.cls文件提取校准参数?

用Doxygen解析Rhapsody .cls文件提取校准参数方案

核心思路

Doxygen默认不识别Rhapsody的.cls格式,因此需要通过预处理脚本将.cls中符合条件的内容转换为Doxygen可解析的伪代码结构,再让Doxygen处理生成文档,全程无需修改原始.cls文件。

步骤1:编写预处理脚本(Python示例)

脚本负责遍历.cls文件,筛选Attrs->Stereotypes->_name为"Calibration"且排除"RAM"类型的参数,提取参数名和对应描述,生成Doxygen兼容的注释结构。

import sys
import re

def parse_cls(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()

    output = []
    # 匹配类块:提取类名和对应描述
    class_blocks = re.finditer(
        r'IClass\s+- _name = "([^"]+)";\s+- _description = { IDescription\s+- _text = "([^"]+)";',
        content,
        re.DOTALL
    )

    for class_block in class_blocks:
        class_name = class_block.group(1)
        param_desc = class_block.group(2)
        # 匹配当前类下的校准参数
        param_blocks = re.finditer(
            r'IAttribute\s+- _name = "([^"]+)";\s+- Stereotypes = { IRPYRawContainer\s+- value = { IHandle\s+- _name = "Calibration";',
            content,
            re.DOTALL
        )

        doc_comment = f"/**\n * @class {class_name}\n * @brief {param_desc}\n"
        for param_block in param_blocks:
            param_name = param_block.group(1)
            # 排除RAM类型参数
            if 'RAM' not in param_block.group(0):
                doc_comment += f" * @param {param_name} 校准参数\n"
        doc_comment += " */\n"
        output.append(doc_comment)

    return '\n'.join(output)

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("使用方式: python cls_parser.py <目标.cls文件路径>")
        sys.exit(1)
    print(parse_cls(sys.argv[1]))

步骤2:配置Doxygen

修改Doxyfile配置文件,添加以下关键设置:

  • INPUT = 你的目标.cls文件路径:指定要处理的.cls文件
  • INPUT_FILTER = python3 你的脚本路径/cls_parser.py:让Doxygen调用脚本预处理.cls文件
  • FILE_PATTERNS = *.cls:告诉Doxygen识别.cls格式文件
  • 确保ENABLE_PREPROCESSING = YES(默认已开启)

步骤3:生成文档

运行Doxygen命令生成文档:

doxygen Doxyfile

生成的HTML文档中会展示筛选后的校准参数及其对应描述。


内容的提问来源于stack exchange,提问作者David Killy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 13:07:37