Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将EBNF语法转换为PEG

将EBNF语法转换为PEG
EN

Stack Overflow用户
提问于 2018-10-29 13:12:01
回答 1查看 984关注 0票数 4

我有一个EBNF语法,并希望将它转换为PEG (https://github.com/anatoo/PHPPEG):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
query = { word | wildcard }
word = ( [apostrophe] ( letter { alpha } ) ) |, ”
letter = ” a ” | ... | ” z ” |A| ... |Z ”
alpha = letter |0| ... |9 ”
apostrophe = ” ’ ”
wildcard =?|*| synonyms | multiset | optionset
synonyms =~ ” word
multiset ={ ” word { word }} ”
optionset =[ ” word { word }]

有人能解释如何从一个转换到另一个,或者如果有什么地方我可以读到它吗?

谢谢!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
• the question mark (?), which matches exactly one word;
• the asterisk (*), which matches any sequence of words;
• the tilde sign in front of a word (<word>), which matches any of the word’s synonyms;
• the multiset operator ({<words>}), which matches any ordering of the enumerated words; and,
• the optionset operator ([<words>]), which matches any one word from a list of options.
EN

回答 1

Stack Overflow用户

发布于 2018-11-05 05:27:21

有几个Peg实现,然后所有这些都为Peg选择的一般约定添加了一些内容,它们是:

  • 操作符"*“、"+”和"?“具有与正则表达式相同的含义;
  • 替代方案实际上是优先级选择,它们使用"/“运算符来表示这种差异;
  • 操作人员"&“和"!”指定正的和负的零长度前瞻性(即它们不提前“当前”指针);

在EBNF中,重复用"{ }“表示,在Peg中用"*”操作符表示,意思是主题的零或多次重复。例如,您的第一个语法规则可以在假设的Peg实现中表示如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
query = (word / wildcard)* 

EBNF“”操作符与Peg的"?“有相同的含义。运算符,意味着主题是可选的。这是您的第二个规则,因为它可以转换为Peg:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
word = (apostrophe?  letter alpha*) / ","

最后,几个Peg实现允许在语法中直接使用正则表达式。看看您的第三条规则是如何在这样的Peg中表示的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
letter = [a-zA-Z]

对于您正在使用的语言和特定的Peg实现,可能会有一些变化,但我希望这些指导方针能为您指明正确的方向。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53053899

复制
相关文章
如何修复WordPress内容更新和发布失败错误
如果您的WordPress网站在您尝试进行更改时返回诸如“更新失败”或“发布失败”之类的错误消息,那么结果不仅令人沮丧,而且还会阻止访问者访问他们需要的内容。
青梅煮码
2023/01/14
5.5K0
如何修复WordPress内容更新和发布失败错误
WordPress 版本更新
WordPress 是一个内容管理系统 (WCM),即它是一种以最佳方式组织创建、存储和展示 Web 内容的整个过程的工具。WordPress 作为一种改进工具开始了它的旅程,以增强日常写作的常规排版。但它被视为一种博客工具,当我们进入今年最后一个季度时,WordPress 成为最常用的 WCM 系统,而且不仅在博客社区中也是如此。
海拥
2023/01/01
2.7K0
WordPress 版本更新
如何修复WordPress更新失败/发布失败错误,您可能已掉线
WordPress CMS是一个完全开源的工具,对用户免费,但是,由于插件等原因,有时会出现一些奇怪的错误消息,这些WordPress错误可能会影响网站的效果,也可能会给网站带来意想不到的后果。
晓得博客
2021/04/07
8K0
错误——持续更新
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/48551789
用户1451823
2018/09/13
1.8K0
错误——持续更新
WordPress更新文章 显示最近更新时间
子比主题为了防止更新后失效 请在目录内新建func.php 文件 插入上方代码即可
残浔
2023/05/11
6740
wordpress 5.8更新,支持webp
  wordpress 5.8刚刚发布更新,支持webp格式的图片上传,如下图所示。WebP 是一种现代图像格式,可为网络上的图像提供改进的无损和有损压缩。WebP 图像比它们的 JPEG 或 PNG 等效图像平均小 30% 左右,从而使网站速度更快,使用的带宽更少。
ytkah
2021/07/23
2.2K0
WordPress 发布 4.0.1 安全更新,强烈建议更新
WordPress 4.0.1 发布,这是一个非常关键的安全修复版本,强烈建议每位用户都升级到最新版本!
Denis
2023/04/15
4330
ubuntu更新源出现错误
有的小伙伴出现了残留源错误,有的人说重装,有的人说改sourcelist,这些方法诚然好使,但都是高射炮打蚊子:小题大作。 现在来说解决方法: 先选右下九个点
全栈程序员站长
2022/08/27
1.3K0
ubuntu更新源出现错误
如何禁用WordPress升级更新通知
WordPress 提供的更新通知对于了解新的可用更新和跟踪站点上的自动更新很有用。但是也有像子凡我这样希望禁用它们以减少 WordPress 仪表板或电子邮件收件箱中的混乱情况。或者,这可能是因为你使用不同的方式来管理更新,从而使通知变得多余。当然子凡我只是因为当 WordPress 核心有升级时,普通的作者编辑人员后台也有提示,这就造成了不需要的通知,所以最直接的方式就是除了管理员其它用户没必要看到 WordPress 的升级更新通知。
张子凡
2023/01/09
1.8K0
如何禁用WordPress升级更新通知
WordPress 技巧:禁止插件更新提醒
这个技巧会阻止 WordPress 检查插件是否有有更新,这个技巧对于给客户建的网站非常有帮助,因为很可能你已经修改了插件,插件的更新将会让整个网站不能正常运行。
Denis
2023/04/15
4750
实用WordPress插件收集(更新中)
wordpress里面的页面的显示顺序是无法控制的。你无法控制某个页面排在前面或者排在后面。 而有时候,我们又确实需要控制某些页面的显示顺序,那么就可以用My Page Order这个wordpress插件了。
星哥玩云
2022/06/11
4720
WordPress 网站怎么关闭自动更新和更新提示
WordPress 网站怎么关闭自动更新和更新提示?之前不是因为 WordPressP 自动更新导致主题无法正常使用,首页出现“空白模板:索引”。原文:《WordPress 自动更新后出现“空白模板:索引”的解决方法》但是我操作之后发现首页依然是“空白模板”,第一反应会不会是系统又自动更新了。故有此教程。
主机教程网2bcd.com
2022/10/17
1.2K0
禁用WordPress致命错误(WSOD)处理
WordPress 5.2内置了一个新功能,当检测到插件或主题发生错误时,自动发送邮件通知网站管理员,即使在后端完全无法访问的情况下(例如发生所谓的“白屏死机”),管理员仍然有机会登录并对此问题采取措施。
可定
2020/04/20
6020
[已解决]如何修复另一个更新正在进行中WordPress升级错误
在使用WordPress建站时,是否遇到过 WordPress 网站当前正在进行另一个更新的错误?此错误会阻止您更新 WordPress 版本,没有正在进行的核心、主题或插件的更新,重新启动更新过程也会导致出现相同的通知,显然是有某种 WordPress 更新锁阻止更新初始化。在本文中,我们晓得博客将向您展示如何修复另一个更新正在进行中WordPress升级错误。
晓得博客
2021/08/12
3.7K0
WordPress 手动升级更新方法
魏艾斯博客有个 wordpress 站很久没有更新版本了,每次 WordPress 升级都会对已发行问题进行安全修复,所以还是尽量的升级到最新版本。前几天上去看了一下最新版本 4.73,点击现在更新后,页面提示:请重试。然后就在这里反复循环了。试过了很多办法比如删除数据库中的版本更新锁定命令行也无效,干脆就手动更新吧。 WordPress 的主题和插件众多,如果你用的主题是比较简单的那还好说,我们不考虑这方面的情况而盲目设置自动升级,很容易导致升级之后出现错误,严重的会导致网站页面变空白、不兼容等问题。所以
魏艾斯博客www.vpsss.net
2018/06/01
4.7K0
点击加载更多

相似问题

自定义javascript确认框

11

angularjs自定义确认框

72

自定义警报/确认框

21

使用TypeScript自定义确认框

10

自定义确认对话框

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文