JS版开源词法分析器

一个基于DFA法的支持多语言扩展的JS版开源词法分析器,适用于代码编辑器(关键字高亮、符号高亮等)和词法分析器的学习与应用。支持多语言扩展,提供详细的源码分析文档和Web演示界面。

项目推荐- 项目地址:https://github.com/WGrape/lexer- 类别:JS- 项目后续更新计划:更多语言的词法分析支持与项目日常维护、制作JS生态中的编译器前端工具链- 项目描述 :一个基于DFA法的支持多语言扩展的JS版开源词法分析器 - 适用场景 :代码编辑器(关键字高亮、符号高亮等)、词法分析器的学习与应用 - 为需要语法分析的场景提供Token支持- 推荐理由: - DFA算法与语言解耦,支持多语言扩展 - 代码精简、详细的源码分析文档、另附有Web演示界面,适合学习与应用 - 提供DFA内部每一次状态流转时的信息,为调试与状态流转图的生成提供支持- 示例代码:js// 词法分析器let lexer = { // 有限状态自动机 deterministic finite automaton DFA: { result: { matchs: [], // 已匹配的字符队列 tokens: [], // 已生成的token列表 }, state: DFA_STATE_CONST.S_RESET, // 当前机器的状态 events: { flowtoNextState(ch, state) { lexer.DFA.resultChange.pushToMatchs(ch); lexer.DFA.state = state; }, flowtoResetState() { lexer.DFA.state = DFA_STATE_CONST.S_RESET; }, }, },};- 截图:(可选)gif/png/jpgimg<!--![show-v2](https://user-images.githubusercontent.com/35942268/131448716-71354572-f6ea-43d9-8a46-a70cf0afa321.gif)-->