在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用antlr4-dev
星标34
分支5
更新时间2026年1月10日 07:28
ANTLR4前端开发专家,专注于词法/语法分析、AST构建、访问者模式。
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
ANTLR4前端开发专家,专注于词法/语法分析、AST构建、访问者模式。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
技术图书写作专家,基于三层Prompt架构(系统级→章节模板→实例提示词)生成《AI Context Engineer 视角下的现代编译器实战》书籍章节。
编译器后端开发专家,专注于IR、CFG、SSA、数据流分析和优化Pass。
EP项目导航专家,提供21个EP的依赖路由、快速定位和跨EP对比。
Git提交专家,规范化提交信息和分主题提交。
测试开发专家,基于JUnit 5 + AssertJ + Mockito + JaCoCo。
虚拟机开发专家,专注于字节码、指令、栈帧、内存管理和垃圾回收。
| name | antlr4-dev |
| description | ANTLR4前端开发专家,专注于词法/语法分析、AST构建、访问者模式。 |
| version | v1.0 |
| tags | ["antlr4","frontend","lexer","parser","ast"] |
| allowed-tools | mcp__serena__search_for_pattern, mcp__serena__find_symbol, Read, Bash |
| requires-skills | ["ep-navigator"] |
单一职责: ANTLR4语法设计、词法/语法分析、AST构建、访问者模式
ep20/src/main/antlr4/org/teachfx/antlr4/ep20/parser/Cymbol.g4mvn generate-sources -pl ep20ASTNode.java (位于 ep20/src/main/java/org/teachfx/antlr4/ep20/ast/)accept(ASTVisitor<T>)ExprNode / StmtNode// 新节点标准实现
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
| 类型 | 规则 | 示例 |
|---|---|---|
| 变量声明 | declaration | int x; |
| 函数定义 | functionDef | int add(int a, int b) { ... } |
| 结构体 | structDef | struct Point { int x; int y; } |
| 数组 | type '[' expr? ']' | int[10] arr; |
| 控制流 | ifStmt / whileStmt | if (x > 0) { ... } |
# 语法相关
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 | mvn generate-sources -pl ep20 |
| 访问者空指针 | 新节点未实现accept() | 添加 accept(ASTVisitor<T>) |
版本: v1.0 | 垂直职责: ANTLR4前端 | 2025-12-23