自己动手设计代码编辑器——(五)分析源代码

因为之前的设计不合理,就重新开了工程。花了几天时间,重做的进度赶上之前的了


今天来说说分析源代码


源码分析中会用到的其它东西,之前都介绍过了。

接下来看UParser这个类中最后的函数GetNextCut,是用来把源码分析为UCodeCut集合的。其中包括关键字设别,变量设别等等


开始

UCodeCut cut = new UCodeCut();
List<byte> cutData = new List<byte>();
byte b;
UCutType currType = UCutType.None; // 状态机的状态

bool inString = false; // 是否解析字符串

if (EndOfCode == true)
{
cut.CutType = UCutType.End;
return cut;
}


开头就是定义一些变量,并且判断分析是否结束

cut用于保存分析玩的CodeCut

cutData是cut中的具体数据

currType是当前状态机的状态

接下来是状态机的循环

while (!EndOfCode)
{
b = GetNextByte();
cutData.Add(b);
...
...
}

然后是状态机的入口

#region UCutType.None
                    if (currType == UCutType.None)
                    {
                        if (b == UConfig.Space)
                        {
                            currType = UCutType.Space;
                            continue;
                        }

                        if (b == UConfig.Tab)
                        {
                            currType = UCutType.Tab;
                            break;
                        }

                     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值