something试听:格式化 C/C++/H/HPP/java ... 的程序文件

来源:百度文库 编辑:偶看新闻 时间:2024/05/05 19:04:41
格式化 C/C++/H/HPP/java ... 的程序文件 作者:林子深 文章来源:本站原创 点击数: 75 更新时间:2009-5-7 13:28:58

 

因为想读一下nmap的源代码,代码的内容虽好,可规范性可不敢恭维
所以就写了这个小程序,感觉不错,就拿来与大家分享一下
声明:本程序代码公开,您可以对其进行修改和再次发布,但请保留作者信息
* 作者:林子深 * 日期:2003-03-22 * 邮件:lzs@army.com

子程序:格式化代码返回值类型:文本型 参数:代码文本 数据类型:文本型
局部容器:文件号 数据类型:整数型
局部容器:循环容器 数据类型:整数型
局部容器:级别 数据类型:整数型
局部容器:存在空行 数据类型:整数型
局部容器:文本行 数据类型:文本型
局部容器:返回容器 数据类型:文本型

级别 = -1
文件号 = 打开内存文件 ()

如果真 (文件号 = 0)
返回 (“”)
如果真结束

代码文本 = 子文本替换 (代码文本, 字符 (9), , , , 真)
代码文本 = 子文本替换 (代码文本, “//”, #换行符 + “//”, , , 真)
代码文本 = 子文本替换 (代码文本, “/*”, #换行符 + “/*”, , , 真)
代码文本 = 子文本替换 (代码文本, “{” + #换行符, #换行符 + “{” + #换行符, , , 真)
代码文本 = 子文本替换 (代码文本, “}” + #换行符, #换行符 + “}” + #换行符, , , 真)

写出文本 (文件号, 代码文本)
移到文件首 (文件号)

判断循环首 (是否在文件尾 (文件号, 真) = 假)
文本行 = 删首尾空 (读入一行 (文件号))

    如果 (文本行 = “”)
    存在空行 = 存在空行 + 1
    否则 存在空行 = 0
    如果结束

    如果真 (取文本左边 (文本行, 1) = “{”)
    级别 = 级别 + 1
    如果真结束

    如果真 (存在空行 < 2)
    返回容器 = 返回容器 + 取重复文本 (级别, 字符 (9)) + 删首尾空 (文本行) + #换行符
    如果真结束

    如果真 (取文本左边 (文本行, 1) = “}”)
    级别 = 级别 - 1
    如果真结束

判断循环尾 ()

关闭文件 (文件号)

返回 (返回容器)