存档

2017 年 05 月 - 1 文章

模板引擎实现(一)词法分析

如果你想实现模版引擎、编译器前端、文本解析器(比如 Markdown )或想要了解它们的实现原理,请一定不要错过本系列的文章 :grin: 模板引擎实现(一)词法分析 另外,* 本系列的文章面向的是撸起袖子就开干的朋友,所以不会介绍基础理论,比如 DFA/NFA,算法复杂度等(确切的说是没法介绍理论,因为作者能力有限 :joy:)* 在使用到的术语/定义方面作者是认真查过资料并再三斟酌的,不会出现胡编乱造,请放心理解和使用 :white_check_mark:* 本系列文章的对应项目是 freemarker.go(FreeMarker 的 golang 实现),欢迎大家关注点赞 :star2: 本文介绍了词法分析的基本概念,主要参考 golang 的 text/template/parse 包源码进行解析。 词法分析 将面向源码的字符流转成 token 流的过程是词法分析。用“流”来描述主要说明了处理过程是有序连续的。比如读取源码文件时是一个字符一个字符读取的,生成的 token 也是一个接一个的。 当我们在源码中看到 scanner、lex/le....

More...