侧边栏壁纸
  • 累计撰写 781 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

语法分析

Dettan
2021-07-10 / 0 评论 / 0 点赞 / 89 阅读 / 2,496 字
温馨提示:
本文最后更新于 2022-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
token ⇒ 语法分析树

first
get right first
right equal
follow
foreach
get next

区分终结符和非终结符,终结符 都用字符串存, 非终结符用英文,终极符用 _... 表示




exports.define = [
    '<函数定义>-><修饰词闭包> <类型> <变量> ( <参数声明> ) { <函数块> }',
    '<修饰词闭包>-><修饰词> <修饰词闭包>|@','<修饰词>->public|private|protected',
    '<类型>->int <取地址>|char <取地址>|boolean <取地址>|void <取地址>',
    '<取地址>-><星号> <取地址>|@',
    '<星号>->*',
    '<变量>-><标志符> <数组下标>',
    '<标志符>->id',
    '<数组下标>->[ <因式> ]|@',
    '<因式>->( <表达式> )|<变量>|<数字>',
    '<数字>->digit',
    '<表达式>-><因子> <项>',
    '<因子>-><因式> <因式递归>',
    '<因式递归>->* <因式> <因式递归>|/ <因式> <因式递归>|@',
    '<项>->+ <因子> <项>|- <因子> <项>|@',
    '<参数声明>-><声明> <声明闭包>|@',
    '<声明>-><修饰词闭包> <类型> <变量> <赋初值>',
    '<赋初值>->= <右值>|@',
    '<右值>-><表达式>|{ <多个数据> }',
    '<多个数据>-><数字> <数字闭包>',
    '<数字闭包>->, <数字> <数字闭包>|@',
    '<声明闭包>->, <声明> <声明闭包>|@',
    '<函数块>-><声明语句闭包> <函数块闭包>',
    '<声明语句闭包>-><声明语句> <声明语句闭包>|@',
    '<声明语句>-><声明> ;',
    '<函数块闭包>-><赋值函数> <函数块闭包>|<for循环> <函数块闭包>|<条件语句> <函数块闭包>|<函数返回> <函数块闭包>|@',
    '<赋值函数>-><变量> <赋值或函数调用>',
    '<赋值或函数调用>->= <右值> ;|( <参数列表> ) ;',
    '<参数列表>-><参数> <参数闭包>',
    '<参数闭包>->, <参数> <参数闭包>|@',
    '<参数>-><标志符>|<数字>|<字符串>',
    '<字符串>->string',
    '<for循环>->for ( <赋值函数> <逻辑表达式> ; <后缀表达式> ) { <函数块> }',
    '<逻辑表达式>-><表达式> <逻辑运算符> <表达式>',
    '<逻辑运算符>-><|>|==|!=',
    '<后缀表达式>-><变量> <后缀运算符>',
    '<后缀运算符>->++|--',
    '<条件语句>->if ( <逻辑表达式> ) { <函数块> } <否则语句>',
    '<否则语句>->else { <函数块> }|@',
    '<函数返回>->return <因式> ;'
];
分析 加减乘除的, 优先级高的深度深












0

评论区