一个自动剔除COMMENT的C++程序

来源:互联网 发布:中国和巴基斯坦 知乎 编辑:程序博客网 时间:2024/05/01 10:28

今天突然有人问我有没有写过自动去除标准C++源文件COMMENT 的程序.这让我一下想起当初面微软的时候现场写的1个程序,当初考虑的实在太不周全,导致直接被BS.如今我可以从容的写这个程序,不过在写完这个程序突然发现1个问题.原来这个貌似简单的程序有这么多的陷阱.

1.COMMENT 有两种形式"//","/*...*/".

对于"//"情况固然简单因为只要单行处理即可.

但是碰到"/*"情况即可分成多行:

/*ddddddd

fffffffff*/

2.这两种形式可能在字符串中显示如

string s = "abcd//";

string s = "/*ddddd*/";

3.即使显示在字符串中也可能出现如下形式:

string s = "/*/*/

               ////**/";

即是字符串连接的情况.

这些情况都将直接造成程序复杂性.

另外一种想法是按照编译器去检查COMMENT的方式,好久没翻阅编译原理的书了,对表达式的规约也许是个很不错的方法.得好好再学习了.另外,只能较笨挫的完成程序了事,学无止境啊.

 

原创粉丝点击