首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
HarrisonXi_
掘友等级
Bilibili
iOS开发
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
赞
11
文章 11
沸点 0
赞
11
返回
|
搜索文章
文章
热门
最新
编译原理入门课:(五)解析ID型词法和函数调用语法
上一章词法分析的内容里我们介绍了解析数字的方法,当时还提到了对ID的解析,但是因为当时还用不到ID类型,所以就没有做对应的解析,这一章我们将会讲解下ID类型的解析方法。 ID类型通常用在变量名和函数名上,变量要应用的话至少还得实现赋值表达式,所以我们先用ID类型来尝试实现函数调…
编译原理入门课:(四)用词法解析处理多位数字和空白符
之前为了快速进入主题,我们约定了表达式里只会出现个位数的数字。现在是时候打破这个规则,支持多位数的数字了。为了支持这点,我们就需要接触一个新的步骤——词法分析。 词法分析就是把一个完整的语句拆分成一个个词(token),方便之后进行进一步的语法分析。 举个简单的例子:今天真热,…
编译原理入门课:(三)简单错误处理逻辑以及负数的解析
我们的解析器已经可以处理基本的加减乘除运算并支持括号了。但是随着功能越来越多,可能出现的错误也越来越多。不重视错误处理的话,碰到非法的表达式时会出现什么结果,我们完全是无法预料的。所以本章就打个岔,给解析器加上一套错误处理逻辑。这知识和编译原理关系不大,不感兴趣的朋友可以略过。…
编译原理入门课:(二)递归解析中怎么处理运算符优先级
今天要给我们的“计算器”加上乘、除和取模三种运算,并且加上对括号的优先级处理。 如果不是采用递归方式解析表达式的话,可以参考下调度场算法,这是一个利用队列和堆栈来解决计算优先级的经典算法。 用递归方式解析的话,只要深刻理解了上一章的知识,这一章的都是小意思,那么我们开始。 这里…
编译原理入门课:(一)用最简单的语法分析器解析加减法
今天就要开始正式写表达式解析器了,第一章的核心代码一共二十行都不到,包简单包学会,但是里面涉及的原理知识可能要花点时间讲一讲。 然后我们会采用递归加循环的方式来解析表达式,还玩不转递归的同学必须要先过递归这道坎。 我们学习语法分析先得从文法入手,文法是解析表达式的关键,一个优秀…
编译原理入门课:(前言)实现一个表达式解析计算器
首先要聊聊我为什么想要写一篇编译原理的入门课。熟悉我的人可能会知道,我喜欢把复杂难懂的东西拆解成简单易理解的东西,无论是在代码的设计上,还是在知识的分享上。另外我也是个实用主义者,写出来的代码光好看没有什么卵用,必须要有实际的用途,它才是有价值的代码。所以写这样一个系列的博客,…
字符串比较中NSNumericSearch选项的工作原理
里面提到的 [versionStrA compare:versionStrB options:NSNumericSearch] 的方案应该是最优雅的方案了。 但是不理解这个 NSNumericSearch 的具体工作原理就去盲目使用是危险的,今天我就来研究下它的具体工作原理。 …
EasyReact的简单试用及和RAC的对比
作为热爱响应式的程序猿,一定是要试用评测一下这传说中又快又好用的新框架的,事不宜迟我们开始。(虽然这框架已经开源一个月了🙄) 评测的具体方案是用我以前的 MvvmDemo 改造一下,旧 demo 的代码参照 GitHub。使用这个改造的方案,可以更方便的进行 EasyReac…
ObjC的BOOL为什么要用YES、NO而不建议用true、false?
可能有人告诉你 BOOL 是 signed char 类型的。放在以前,这个答案是对的,但是放在现在就不完全对了。接下来我来给大家一点点解释其中的细节。 作为 iPhone 开发者(🙄),可以近似的理解为在 64-bit 设备上 BOOL 实际是 bool 类型,在 32-b…
ObjC中的TypeEncodings
我们在 JSON <-> Dictionary <-> Model 中面临的一个很大的问题就是判断数据需要转换成什么样的类型。好在 ObjC 作为一款动态语言,利用 runtime 可以轻松解决这个问题。再配合转换器和 KVC,就可以轻松把我们解析好的值放进对应 Model 里…
下一页
个人成就
文章被点赞
372
文章被阅读
40,302
掘力值
1,314
关注了
2
关注者
581
收藏集
0
关注标签
1
加入于
2017-12-27