摘要: 在第三节中,我们说到Q/q 这一对操作符是用来保存和还原图形状态的,那个时候只有一个简单的概念,变换矩阵是图形状态的一员,那么什么是图形状态,以及有哪些图形状态呢?本节将要描述这部分的内容 图形状态 一个PDF应用程序维护内部数据结构称为图形状态,它保存了当前图形控制参数。这些参数定义在全局框架,在 阅读全文
posted @ 2024-09-18 11:23 masimaro 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 上一节,我们了解了PDF中cm操作符,它是定义变换矩阵的。同时也了解到re是创建一个矩阵的。上一节也说过,它用来构建一个路径,具体什么是路径,路径有什么作用呢?这些将在本节给出解释 图形操作符是用来在pdf中构建内容并输出到相关设备上进行显示的。pdf中我们能看到的内容几乎都是由图形操作构成的。PD 阅读全文
posted @ 2024-09-06 22:03 masimaro 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 之前我们了解了PDF文档的基本结构,并且展示了一个简单的hello world。这个hello world 虽然只在页面中显示一个hello world 文字,但是包含的内容却是不少。这次我们仍然以它为切入点,来了解PDF的坐标系统以及坐标变换的相关知识 图形学中二维图形变换 中学我们学习了平面直角 阅读全文
posted @ 2024-06-15 12:49 masimaro 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章我们介绍了一个PDF文档应该包含的最基本的结构,并且手写了一个最简单的 “Hello World” 的PDF文档。后面我们介绍新的PDF标准给出示例时将以这个文档为基础,而不再给出完整的文档示例,小伙伴想自己测试可以根据上一节的文档来进行配置。 对象 上一节我们看到一个个奇奇怪怪的元素,可 阅读全文
posted @ 2024-03-03 16:10 masimaro 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 已经很久没有写博客记录自己学到的一些东西了。但是在过去一年的时间中自己确实又学到了一些东西。一直攒着没有系统化成一篇篇的文章,所以今年的博客打算也是以去年学到的一系列内容为主。通过之前Vim系列教程的启发,我发现还是写一些系列文章对自己的帮助最大。它能最大化自己的学习成果,并强迫自己深入了解一些内容 阅读全文
posted @ 2024-01-28 22:07 masimaro 阅读(484) 评论(0) 推荐(4) 编辑
摘要: 在上一篇文章中,完成了对括号的支持,这样整个程序就可以解析普通的算术表达式了。但是在解析两个括号的过程中发现有大量的地方需要进行索引的回退操作,索引的操作应该保证能得到争取的token,这个步骤应该放在词法分析的阶段,如果在语法分析阶段还要考虑下层词法分析的过程,就显得有些复杂了。而且随着后续支持的 阅读全文
posted @ 2023-04-08 18:41 masimaro 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 在上一篇我们添加了对乘除法的支持,也介绍了BNF范式,并且针对当前的算术表达式写出了对应的范式,同时根据范式给出相应的代码实现。这篇我们将继续为算数表达式添加对括号的支持。 对应的BNF 范式 在上一篇我们给出了乘除法对应的范式 <expr>::=<term>{(PLUS|MINUS)<term>} 阅读全文
posted @ 2023-03-24 17:41 masimaro 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 在上一篇中,我们实现了对减法的支持,并且介绍了语法图。针对简单的语法进行描述,用语法图描述当然是没问题的。但是针对一些复杂的语法进行描述,如果每个部分都通过语法图来描述就显得有些繁琐了。这篇我们先介绍另一种描述语法的方式,并进一步介绍一些关于语法分析的知识。 BNF范式与上下文无关文法 巴科斯范式 阅读全文
posted @ 2023-03-22 16:43 masimaro 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 在上一篇我们实现了一个可以计算两个多位整数加减法的计算器。本章我们继续来给这个计算器添加功能,这次要给它添加可以连续计算多个整数相加减的功能。例如我们可以计算 1 + 2 + 3 这样的表达式。 语法图 在正式写代码之前让我们先来学习一下一些基本的理论知识。这次要介绍的理论是语法图。 什么是语法图呢 阅读全文
posted @ 2023-03-14 17:33 masimaro 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 上一篇我们实现了一个简单的加法计算器,并且了解了基本的词法分析、词法分析器的概念。本篇我们将要对之前实现的加法计算器进行扩展,我们为它添加以下几个功能 计算减法 能自动识别并跳过空白字符 不再局限于单个整数,而是能计算多位整数 提供一些工具函数 首先为了支持减法,我们需要重新定义一下TokenTyp 阅读全文
posted @ 2023-03-08 13:05 masimaro 阅读(92) 评论(0) 推荐(0) 编辑