• LUA5.3的BNF范式学习笔记


     BNF巴科斯范式 {A} 表示 0 或多个 A , [A] 表示一个可选的 A 
     
    chunk ::= block
    block ::= {stat} [retstat]
    stat ::= ‘;’ |
    varlist ‘=’ explist | --变量列表=表达式列表
    functioncall |
    label |
    break |
    goto Name |
    do block end |
    while exp do block end |
    repeat block until exp |
    if exp then block {elseif exp then block} [else block] end |
    for Name ‘=’ exp ‘,’ exp [‘,’ exp] do block end |
    for namelist in explist do block end |
    function funcname funcbody |
    local function Name funcbody |
    local namelist [‘=’ explist]
     
    varlist ::= var {‘,’ var} 变量列表是一个或多个 var
    var ::= Name | prefixexp ‘[’ exp ‘]’ | prefixexp ‘.’ Name
    VAR是Name 或者前缀表达式[表达式]或者前缀表达式.Name
    prefixexp ::= var | functioncall | ‘(’ exp ‘)’
    prefixexp 前缀表达式:变量 或者 函数调用 或者(表达式)
    functioncall ::= prefixexp args | prefixexp ‘:’ Name args
    前缀表达式 参数 或者 前缀表达式:变量 参数
    args ::= ‘(’ [explist] ‘)’ | tableconstructor | LiteralString
    参数 (表达式列表) 或 表的构造式 或 字符串
    refixe xp前缀表达式
    exp ::= nil | false | true | Numeral | LiteralString | ‘...’ | functiondef | prefixexp | tableconstructor | exp binop exp | unop exp
    表达式=空或false或ture或数字或字符串或...或函数定义或前缀表达式
    或表构造或 表达式二元操作符表达式 或 一元操作符表达式
    label ::= ‘::’ Name ‘::’ 纯标记用于goto
     
     
    Lua 中的 NAME名字 (也被称为 标识符) 可以是由非数字打头的任意字母下划线和数字构成的字符串。 标识符可用于对变量、表的域、以及标签命名。
    下列 关键字 是保留的,不可用于名字:
    and break do else elseif end false for function goto if in local nil not or repeat return then true until while
    Lua 语言对大小写敏感: and 是一个保留字,但 And 与 AND 则是两个不同的有效名字。 作为一个约定,程序应避免创建以下划线加一个或多个大写字母构成的名字 (例如 _VERSION)。
    下列字符串是另外一些符记:
    + - * / % ^ # & ~ | << >> // == ~= <= >= < > = ( ) { } [ ] :: ; : , . .. ...
     
     
    后记,事实上,还有优先级等等细节。这个只是一个简单的语法检测。
     
  • 相关阅读:
    【Cloud Foundry】Could Foundry学习(二)——核心组件分析
    POJ 1789-Truck History
    设置静态IP
    oracle切割字符串后以单列多行展示
    SQL server语句练习
    hdu 3308 LCIS(线段树)
    HDU 1556 Color the Ball 线段树 题解
    CSipSimple最新版本号
    奢侈品行业-新手专题-亿邦动力网
    单身潮_百度百科
  • 原文地址:https://www.cnblogs.com/facingwaller/p/6208156.html
Copyright © 2020-2023  润新知