install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/antlr4-dev" ~/.claude/skills/majiayu000-claude-skill-registry-antlr4-dev && rm -rf "$T"
manifest:
skills/data/antlr4-dev/SKILL.mdsource content
ANTLR4前端开发
🎯 垂直职责
单一职责: ANTLR4语法设计、词法/语法分析、AST构建、访问者模式
📦 核心能力
1. 语法文件开发
- 位置:
ep20/src/main/antlr4/org/teachfx/antlr4/ep20/parser/Cymbol.g4 - 语法结构: lexer规则 → parser规则 → AST构建
- 重新生成:
mvn generate-sources -pl ep20
2. AST节点实现
- 基类:
(位于ASTNode.java
)ep20/src/main/java/org/teachfx/antlr4/ep20/ast/ - 模式: 访问者模式
accept(ASTVisitor<T>) - 扩展: 创建新节点继承
/ExprNodeStmtNode
3. 访问者模式
// 新节点标准实现 public class NewStmtNode extends StmtNode { private final Type field; public NewStmtNode(Type field) { this.field = field; } @Override public <T> T accept(ASTVisitor<T> visitor) { return visitor.visitNewStmt(this); } }
🔗 关系图
→ ep-navigator (识别EP范围) ← compiler-dev (AST → IR转换)
🚀 快速开始
添加新语法特性
# 1. 编辑 Cymbol.g4 vim ep20/src/main/antlr4/.../parser/Cymbol.g4 # 2. 重新生成解析器 mvn generate-sources -pl ep20 # 3. 创建AST节点 vim ep20/src/main/java/.../ast/NewNode.java # 4. 更新AST构建器 vim ep20/src/main/java/.../pass/ast/CymbolASTBuilder.java # 5. 测试 mvn test -pl ep20 -Dtest="*ParserTest"
调试语法冲突
# 使用TestRig可视化语法树 java -cp "antlr-4.13.2-complete.jar:ep20/target/classes" \ org.antlr.v4.gui.TestRig Cymbol file -gui test.cymbol # 诊断冲突 mvn generate-sources -pl ep20 -Xantlr4.show-dfa
📚 Cymbol语法速查
| 类型 | 规则 | 示例 |
|---|---|---|
| 变量声明 | | |
| 函数定义 | | |
| 结构体 | | |
| 数组 | | |
| 控制流 | | |
🛠️ 常用命令
# 语法相关 mvn generate-sources -pl ep20 # 重新生成解析器 mvn test -pl ep20 -Dtest="*Lexer*" # 测试词法 mvn test -pl ep20 -Dtest="*Parser*" # 测试语法 # AST相关 mvn test -pl ep20 -Dtest="*AST*" # 测试AST构建 mvn test -pl ep20 -Dtest="*Visitor*" # 测试访问者 # 完整前端 mvn compile -pl ep20 && mvn test -pl ep20 # 编译并测试前端
⚠️ 常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 语法冲突 | 左递归/歧义 | 重构规则,使用语义谓词 |
| AST未生成 | 忘记运行generate-sources | |
| 访问者空指针 | 新节点未实现accept() | 添加 |
版本: v1.0 | 垂直职责: ANTLR4前端 | 2025-12-23