Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【自荐】一个支持多语言扩展的JS版开源词法分析器 #1868

Closed
WGrape opened this issue Aug 31, 2021 · 2 comments
Closed

【自荐】一个支持多语言扩展的JS版开源词法分析器 #1868

WGrape opened this issue Aug 31, 2021 · 2 comments

Comments

@WGrape
Copy link

WGrape commented Aug 31, 2021

项目推荐

  • 项目地址:https://github.com/WGrape/lexer

  • 类别:JS

  • 项目后续更新计划:更多语言的词法分析支持与项目日常维护、制作JS生态中的编译器前端工具链

  • 项目描述 :一个基于DFA法的支持多语言扩展的JS版开源词法分析器

    • 适用场景 :代码编辑器(关键字高亮、符号高亮等)、词法分析器的学习与应用
    • 为需要语法分析的场景提供Token支持
  • 推荐理由:

    • DFA算法与语言解耦,支持多语言扩展
    • 代码精简、详细的源码分析文档、另附有Web演示界面,适合学习与应用
    • 提供DFA内部每一次状态流转时的信息,为调试与状态流转图的生成提供支持
  • 示例代码:

// 词法分析器
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/jpg

img

@WGrape WGrape changed the title 【自荐】JS版开源词法分析器 【自荐】一个支持多语言扩展的JS版开源词法分析器 Sep 1, 2021
@521xueweihan
Copy link
Owner

您推荐的项目,已成功发布HelloGitHub 第 67 期,并把您添加到了贡献者列表中。

欢迎继续推荐如此优秀的项目、告诉其他小伙伴加入到 HelloGitHub 项目中,没有 star 本项目的请 star 一下。谢谢 🙏

@WGrape
Copy link
Author

WGrape commented Oct 30, 2021

感谢您的收录,已把HelloGithub项目添加至Lexer项目的鸣谢列表中。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants