小练状态机------分析CPP文件代码行数

问题: 分析一个CPP文件中空格行数,纯代码行数,纯注释行数,代码和注释混合行数,总代码行数。

 

一开始写时,我用了相当混乱的状态标识方法,导致条理不清,很多情况没有考虑到。后来Jumping老人家略花几个小时(小于3小时),华丽丽地敲出了一份标准状态机代码。参考了下,顺便也学了下状态机的基本用法。今天敲完后,总结了几点,状态机的框架和状态模式差不多,为了避免多个switch-case的用法,而采用多态根据输入的条件轮转各种状态。所以状态机的重点还在于分析状态上,因问题不同而不同,也就没有统一的模板。

 

以下代码以这么个思路进行的。

1,空格行 isCode = false, isComment = false;

2,混合行 isCode = true, isComment = true;

3,代码行 非"//", "/*", " ", "/r"

4,注释行 除了"/""打头

 

 

 最后:

本来这个问题早在几个月前就要处理了,到了最近分析html的内容的时候,发现,flex在这方面并不强大,久没碰c之类的底层工具,生疏得无法即时解决问题本身,phython,很好的工具,工具到用时方知不会。这时候,发现自己会的东西,并不是最好的能解决问题的。用flex解决这些问题,犹如隔鞋抓痒,不痛快,不彻底。所以空闲时,还是多练练一些底层工具,没有太多的封装,外加很好的思路,轻装上阵,所向无敌,挺好,挺好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值