今天突然有人问我有没有写过自动去除标准C++源文件COMMENT 的程序.这让我一下想起当初面微软的时候现场写的1个程序,当初考虑的实在太不周全,导致直接被BS.如今我可以从容的写这个程序,不过在写完这个程序突然发现1个问题.原来这个貌似简单的程序有这么多的陷阱.
1.COMMENT 有两种形式"//","/*...*/".
对于"//"情况固然简单因为只要单行处理即可.
但是碰到"/*"情况即可分成多行:
/*ddddddd
fffffffff*/
2.这两种形式可能在字符串中显示如
string s = "abcd//";
string s = "/*ddddd*/";
3.即使显示在字符串中也可能出现如下形式:
string s = "/*/*/
**/";
即是字符串连接的情况.
这些情况都将直接造成程序复杂性.
另外一种想法是按照编译器去检查COMMENT的方式,好久没翻阅编译原理的书了,对表达式的规约也许是个很不错的方法.得好好再学习了.另外,只能较笨挫的完成程序了事,学无止境啊.