【编译原理】符合LL(1)的括号平衡文法

文法

Start  → ( Content )
Content → id Content | ( Content ) Content | ε
非终结符 FIRST集 FOLLOW集
Start ( $
Content id, (, ε )
产生式 SELECT集
Start → ( Content ) (
Content → id Content id
Content → ( Content ) Content (
Content → ε )
预测分析表 id ( ) $
Start Start → ( Content )
Content Content → id Content Content → ( Content ) Content Content → ε

支持案例

(id(id))((id)id)(((id)))(id(id(id)))

扩展

如果需要括号之间容纳其他终结符id',只需要新增产生式Content -> id' Content,然后First(Content)新增id'Select(Content -> id' Content) = {id'}即可

Start  → ( Content )
Content → id Content | id' Content | ( Content ) Content | ε
posted @   laditor  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示