从一个语法的异构结构看lua语言的BNF

Posted 言自时代

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从一个语法的异构结构看lua语言的BNF相关的知识,希望对你有一定的参考价值。

最近在做 code review,发现了一处原以为语法有问题的代码,但语法检查的插件却并没有给出错误提示。这段代码是个简单的table定义,里面定义一些常量,没有特殊功能逻辑,简单来说,类似下面这样:


-- 这是原先的样子
local t = {
    A = 1,
    B = 2;
    C = 3
}


其实一开始我并没注意原先代码的异样,但在review同事提交的代码时,看到帮我把分号改为了逗号,这整整齐齐的代码不禁让我内心小小地跌宕了一下。


-- 同事修改后类似下面这样
local t = {
    A = 1,
    B = 2,
    C = 3,
}


“原先代码在语法上好像不太正常?但那段代码都已经在线上运行了那么久,要出问题也应该早出问题了呀?!况且语法检查插件也没有判定错误,虽然lua语句可以用分号分隔或者换行符分隔,但table里面还是没有见过同时用两种分隔符的情况的,但总之目前没有什么bug,应该说明语法是没问题的!

以上是关于从一个语法的异构结构看lua语言的BNF的主要内容,如果未能解决你的问题,请参考以下文章

华为云UGO:醒醒!你的异构数据库迁移难题有救了

BNF

一种基于结构信息检索文档的思路(html,pdf,html,xml,doc,ppt,这样的异构文档应该如何检索呢?)

一种基于结构信息检索文档的思路(html,pdf,html,xml,doc,ppt,这样的异构文档应该如何检索呢?)

Lua脚本语言——进阶语法

模型数据库中的异构类型