操作符规约关系表
查表之前,带标签的调用 〇于〇曰〇 按 〇于〇、第二个起的类型实参 〇又以〇 按 〇以〇、以“者也”收尾的签名 〇乃〇者也 与构造器 〇立〇者也 按 〇乃〇也、〇立〇也 查找;左右两侧都作此映射。
按源码次序逐条匹配,第一条命中生效;* 匹配任意完整操作符名,〇 为表达式槽。表中没有的组合按文末的后备规则决定。
卦曰〇(提案 00030)比所有中缀都紧:它作左操作符时对任何右操作符都左规约(第 1 条),所以 卦曰「名」 可以直接作调用的实参、列表的项;它出现在右边时是前缀,直接移入栈。
〇且〇、〇或〇 是短路的爻运算(提案 00022),只与彼此有关系:或 比 且 松,同级右结合;与其他中缀操作符混写须加括号,否则报“未定义优先级关系”。〇或有〇则〇 是 鉴 的后续分支:遇到它时前一分支体一律先收束,只有 鉴〇而〇 右规约,内层 鉴 照旧收下其后的分支;它的分支体向右延伸到下一个 或有、也、, 或右括号。
| 序 | 左操作符 | 右操作符 | 决定 |
|---|---|---|---|
| 1 | 卦曰〇 |
* |
左规约 |
| 2 | 〇,〇 |
〇,〇 |
右规约 |
| 3 | 〇,〇 |
* |
右规约 |
| 4 | * |
〇,〇 |
左规约 |
| 5 | 〇【〇】 |
* |
左规约 |
| 6 | 〇【】 |
* |
左规约 |
| 7 | 〇【〇,】 |
* |
左规约 |
| 8 | * |
〇【〇】 |
右规约 |
| 9 | * |
〇【】 |
右规约 |
| 10 | * |
〇【〇,】 |
右规约 |
| 11 | 〇且〇 |
〇且〇 |
右规约 |
| 12 | 〇且〇 |
〇或〇 |
左规约 |
| 13 | 〇或〇 |
〇且〇 |
右规约 |
| 14 | 鉴〇而〇 |
〇或有〇则〇 |
右规约 |
| 15 | * |
〇或有〇则〇 |
左规约 |
| 16 | 〇或有〇则〇 |
* |
右为语句级中缀时左规约,否则右规约 |
| 17 | 〇于〇 |
〇于〇 |
左规约 |
| 18 | 〇之〇 |
〇之〇 |
左规约 |
| 19 | 〇之〇 |
〇于〇 |
左规约 |
| 20 | 〇于〇 |
〇之〇 |
右规约 |
| 21 | 〇之〇 |
〇接〇 |
左规约 |
| 22 | 〇接〇 |
〇之〇 |
右规约 |
| 23 | 〇之〇 |
〇而后〇 |
左规约 |
| 24 | 〇而后〇 |
〇之〇 |
右规约 |
| 25 | 〇之〇 |
〇以〇 |
左规约 |
| 26 | 〇中〇 |
〇中〇 |
左规约 |
| 27 | 〇以〇 |
〇以〇 |
左规约 |
| 28 | 〇以〇 |
〇于〇 |
左规约 |
| 29 | 〇于〇 |
〇而后〇 |
左规约 |
| 30 | 〇而后〇 |
〇而后〇 |
右规约 |
| 31 | 〇而后〇 |
〇于〇 |
右规约 |
| 32 | 〇属〇 |
〇于〇 |
右规约 |
| 33 | 〇属〇 |
〇之〇 |
右规约 |
| 34 | 〇属〇 |
〇以〇 |
右规约 |
| 35 | 〇属〇 |
〇合〇 |
右规约 |
| 36 | 〇属〇 |
〇中〇 |
右规约 |
| 37 | 〇合〇 |
〇于〇 |
右规约 |
| 38 | 〇接〇 |
〇接〇 |
右规约 |
| 39 | 〇与〇 |
〇与〇 |
右规约 |
| 40 | 〇合〇 |
〇合〇 |
右规约 |
| 41 | 〇或〇 |
〇或〇 |
右规约 |
| 42 | 〇于〇 |
〇接〇 |
右规约 |
| 43 | 〇接〇 |
〇于〇 |
左规约 |
| 44 | 〇于〇 |
〇与〇 |
左规约 |
| 45 | 〇与〇 |
〇于〇 |
右规约 |
| 46 | 〇中〇 |
〇于〇 |
左规约 |
| 47 | 〇于〇 |
〇中〇 |
右规约 |
| 48 | 〇中〇 |
〇与〇 |
左规约 |
表中没有的组合依次按下列后备规则决定:
- 右边是语句级中缀(
〇者〇也、〇即〇也、〇乃〇也、〇立〇也)而左边不是:左规约,语句级中缀最后收束。 - 右边是类型标注
〇属〇,左边是别的中缀:左规约,标注管住它左边的整个式子。 - 右边是
〇而后〇、左边是中缀:左规约;左边是〇而后〇、右边是中缀:右规约。而后最松,同级右结合。 - 算术与比较的中缀(加、减、乘、除以、大于、小于、等于、不等于)与
〇之〇、〇中〇相遇时,之、中先规约。 非〇后面直接接算术比较中缀或于、以、与、合、接、且、或、而后时没有关系,须加括号。- 左边是前缀写法(不以
〇开头)、右边是中缀:右规约。 - 其余组合没有关系,报“未定义优先级关系”。
本表从 雅言符集。豫 的「雅言规约关系」提取。