Skip to content

Commit

Permalink
fix: update grammer to address recent changes, LingDong-/wenyan-lang#35
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed Dec 18, 2019
1 parent 552b150 commit f6b8def
Show file tree
Hide file tree
Showing 8 changed files with 113 additions and 10 deletions.
77 changes: 77 additions & 0 deletions examples/divination.wy
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
吾有一術。名之曰「听天由命」。欲行是術。必先得一數。曰「a」。乃行是術曰。
乃得 Math.floor(Math.random()*a);
是謂「听天由命」之術也。

吾有一術。名之曰「春秋古筮法」。欲行是術。必先得一數。曰「现余策」。乃行是術曰。
吾有一數。曰零。名之曰「左余策」。
吾有一數。曰零。名之曰「左剩策」。
吾有一數。曰零。名之曰「右余策」。
吾有一數。曰零。名之曰「右剩策」。

減「现余策」以一。名之曰「现余策」。批曰。

減「现余策」以一。
昔之「现余策」者。今其是矣。
施「听天由命」於「现余策」。
昔之「左余策」者。今其是矣。
加「现余策」以一。
昔之「现余策」者。今其是矣。
加「左余策」以一。
昔之「左余策」者。今其是矣。

減「现余策」以「左余策」。
昔之「右余策」者。今其是矣。=
批曰。「「分而为二以象两」」

除「左余策」以四。所餘幾何。批曰。「「揲之以四象四时」」
昔之「左剩策」者。今其是矣。
若「左剩策」等於零者。
昔之「左剩策」者。今四是矣。
云云。
除「右余策」以四。所餘幾何。
昔之「右剩策」者。今其是矣。
若「右剩策」等於零者。
昔之「右剩策」者。今四是矣。
云云。

減「现余策」以「左剩策」。
昔之「现余策」者。今其是矣。
減「现余策」以「右剩策」。
昔之「现余策」者。今其是矣。
乃得 「现余策」。

是謂「春秋古筮法」之術也。

吾有一列。名之曰「爻基」。
吾有一數。曰六。名之曰「甲」。
恆為是。
若「甲」等於零者。乃止。云云。
吾有一數。曰五十。名之曰「余策」。批曰。「「大衍之数五十」」
減「余策」以一。昔之「余策」者。今其是矣。批曰。「「其用四十有九」」
為是三遍。批曰。「「三变成一爻」」
施「春秋古筮法」於「余策」
昔之「余策」者。今其是矣。
云云。
充「爻基」以「余策」。
減「甲」以一。
昔之「甲」者。今其是矣。
云云。

昔之「甲」者。今六是矣。
吾有一數。曰零。名之曰「判據」。
恆為是。
若「甲」等於零者。乃止。云云。

夫「爻基」之「甲」。除其以四。
除其以二。所餘幾何。
昔之「判據」者。今其是矣。

若「判據」等於零者。
吾有一言。曰「"-- --"」。書之。
若非
吾有一言。曰「"-----"」。書之。
云云。

減「甲」以一。
昔之「甲」者。今其是矣。
云云。
22 changes: 22 additions & 0 deletions examples/fibonacci2.wy
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
吾有一術。名之曰「斐氏列」。

欲行是術。必先得一數。曰「因」。乃行是術曰。
有數零。名之曰「頭」。
有數一。名之曰「尾」。
有數一。名之曰「計」。
有數零。名之曰「果」。

若「因」等於零者。昔之「果」者。今「因」是矣云云。
若「因」等於一者。昔之「果」者。今「因」是矣云云。

恆為是。若「計」不小於「因」者乃止也。
加「頭」以「尾」。昔之「果」者。今其是矣。
昔之「頭」者。今「尾」是矣。
昔之「尾」者。今「果」是矣。
加「計」以一。昔之「計」者。今其是矣。
云云。

乃得「果」
是謂「斐氏列」之術也。

施「斐氏列」於十。書之。
4 changes: 2 additions & 2 deletions examples/fizzbuzz.wy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
有數一。名之曰「戊」。恆為是。

除「戊」以三。所餘幾何。變其。名之曰「三餘」。
除「戊」以五。所餘幾何。變其。名之曰「五餘」。

Expand All @@ -13,4 +13,4 @@
云云。

若「戊」等於一百者乃止也。
加一以「戊」。昔之「戊」者。今其是矣云云。
加一以「戊」。昔之「戊」者。今其是矣云云。
2 changes: 1 addition & 1 deletion examples/hanoi.wy
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,4 @@

有數四。名之曰「盤數」
施「漢諾塔」於「盤數」。於一。於二。於三。名之曰「史」。
施「畫塔法」於「盤數」。於「史」。
施「畫塔法」於「盤數」。於「史」。
2 changes: 1 addition & 1 deletion examples/misc.wy
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
是謂「異或」之術也。

吾有一術。名之曰「快排」。欲行是術。必先得一列。曰「甲」。乃行是術曰。
若「甲」之長弗大於一者
若「甲」之長不大於一者
乃得「甲」
也。
吾有三列。名之曰「首」。曰「頷」。曰「尾」。
Expand Down
2 changes: 1 addition & 1 deletion examples/quicksort.wy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
吾有一術。名之曰「快排」。欲行是術。必先得一列。曰「甲」。乃行是術曰。
若「甲」之長弗大於一者
若「甲」之長不大於一者
乃得「甲」
也。
吾有三列。名之曰「首」。曰「頷」。曰「尾」。
Expand Down
2 changes: 1 addition & 1 deletion examples/sieve.wy
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
有數二。名之曰「戌」。恆為是。若「戌」等於「甲半」者乃止也。

乘「戊」以「戌」。名之曰「合」
若「合」弗大於「甲」者。
若「合」不大於「甲」者。
昔之「掩」之「合」者。今陰是矣。
若非乃止也。
加一以「戌」。昔之「戌」者。今其是矣云云。
Expand Down
12 changes: 8 additions & 4 deletions syntaxes/wenyan.tmGrammar.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,19 @@
},
{
"name": "keyword.control",
"match": "若非|若|者"
"match": "若非|若|者|夫"
},
{
"name": "keyword.control",
"match": "乃得|乃歸空無|是謂|之術也|必先得|是術曰|乃行是術曰|欲行是術|也|云云|凡|中之|恆為是|為是|遍|乃止"
},
{
"name": "keyword.operator",
"match": "等於|弗等於|弗大於|弗小於|大於|小於|加|減|乘|除|中有陽乎|中無陰乎|變|所餘幾何|以|於|之長|之|充|銜|其餘"
"match": "等於|不等於|不大於|不小於|大於|小於"
},
{
"name": "keyword.operator",
"match": "加|減|乘|除|中有陽乎|中無陰乎|變|所餘幾何|以|於|之長|之|充|銜|其餘"
},
{
"name": "keyword.operator",
Expand All @@ -67,8 +71,8 @@
},
"comments": {
"name": "comment.line",
"begin": "批曰。「「",
"end": "」」",
"begin": "注曰|疏曰|批曰",
"end": "$",
"patterns": [
{
"name": "constant.character",
Expand Down

0 comments on commit f6b8def

Please sign in to comment.