词法分析器生成器Skill LexerGenerator

词法分析器生成器是一种用于创建和实现词法分析器的专业技能,支持基于DFA、表驱动和手写递归等多种方法。该技能能够根据正则表达式规范自动生成词法分析器,实现最大匹配分词,处理Unicode字符,支持IDE集成和错误恢复。关键词:词法分析器,编译器前端,正则表达式,DFA,表驱动,词法分析,编程语言,语法分析,分词器,词法生成。

架构设计 0 次安装 0 次浏览 更新于 2/25/2026

名称: 词法分析器生成器 描述: 使用基于DFA、表驱动和递归方法生成和手写词法分析器的专业技能 类别: 编译器前端 允许工具:

  • 读取
  • 写入
  • 编辑
  • 全局搜索
  • 文本搜索
  • Bash

词法分析器生成器技能

概述

使用多种方法(包括基于DFA的词法分析器、表驱动词法分析器和手写递归词法分析器)生成和手写词法分析器的专业技能。

能力

  • 根据正则表达式规范生成词法分析器
  • 实现最大匹配分词
  • 处理Unicode字符类和规范化
  • 实现高效关键字识别(字典树、完美哈希)
  • 支持增量/可恢复词法分析(用于IDE集成)
  • 生成词法分析器表和状态机
  • 处理词法分析器模式和上下文(例如字符串插值)
  • 实现跳过到下一个有效标记的错误恢复策略

目标流程

  • lexer-implementation.js
  • language-grammar-design.js
  • lsp-server-implementation.js
  • repl-development.js

依赖项

  • Flex类生成器
  • RE2/Hyperscan库

使用指南

  1. 标记定义:首先定义完整的标记集及其正则表达式模式
  2. 最大匹配:始终实现最大匹配以处理模糊标记边界
  3. Unicode支持:从一开始就考虑Unicode规范化形式和字符类
  4. 错误恢复:实现跳过到下一个有效标记的策略以实现稳健的错误处理
  5. 性能:对于大型标记集使用表驱动方法,对于简单词法分析器使用手写方法

输出模式

{
  "type": "object",
  "properties": {
    "tokens": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "pattern": { "type": "string" },
          "priority": { "type": "integer" }
        }
      }
    },
    "lexerType": {
      "type": "string",
      "enum": ["dfa", "table-driven", "hand-written"]
    },
    "generatedFiles": {
      "type": "array",
      "items": { "type": "string" }
    }
  }
}