grammar-well 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/typings.d.ts +2 -0
- package/build/utility/monarch.js +21 -14
- package/build/utility/monarch.js.map +1 -1
- package/package.json +1 -1
- package/src/compiler/gwell.gwell +4 -0
- package/src/typings.ts +2 -0
- package/src/utility/monarch.ts +19 -10
package/build/typings.d.ts
CHANGED
package/build/utility/monarch.js
CHANGED
|
@@ -13,20 +13,27 @@ function CreateMonarchTokenizer(lexer) {
|
|
|
13
13
|
tokenizer[name].push({ include: i });
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
else
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
16
|
+
else {
|
|
17
|
+
const action = { token: rule.highlight || 'source' };
|
|
18
|
+
if ('pop' in rule) {
|
|
19
|
+
action.next = '@pop';
|
|
20
|
+
}
|
|
21
|
+
else if ('goto' in rule) {
|
|
22
|
+
action.next = '@' + rule.goto;
|
|
23
|
+
}
|
|
24
|
+
else if ('set' in rule) {
|
|
25
|
+
action.switchTo = '@' + rule.set;
|
|
26
|
+
}
|
|
27
|
+
else if ('inset' in rule) {
|
|
28
|
+
action.next = '@push';
|
|
29
|
+
}
|
|
30
|
+
if ('embed' in rule) {
|
|
31
|
+
action.nextEmbedded = rule.embed;
|
|
32
|
+
}
|
|
33
|
+
else if ('unembed' in rule) {
|
|
34
|
+
action.nextEmbedded = '@pop';
|
|
35
|
+
}
|
|
36
|
+
tokenizer[name].push([TransformWhen(rule.when), action]);
|
|
30
37
|
}
|
|
31
38
|
}
|
|
32
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monarch.js","sourceRoot":"","sources":["../../src/utility/monarch.ts"],"names":[],"mappings":";;;AAEA,SAAgB,sBAAsB,CAAC,KAAkB;IACrD,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,QAAQ,IAAI,IAAI,EAAE;gBAClB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;oBACzB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;iBACvC;aACJ;iBAAM
|
|
1
|
+
{"version":3,"file":"monarch.js","sourceRoot":"","sources":["../../src/utility/monarch.ts"],"names":[],"mappings":";;;AAEA,SAAgB,sBAAsB,CAAC,KAAkB;IACrD,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,QAAQ,IAAI,IAAI,EAAE;gBAClB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;oBACzB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;iBACvC;aACJ;iBAAM;gBACH,MAAM,MAAM,GAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;gBAC1D,IAAI,KAAK,IAAI,IAAI,EAAE;oBACf,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;iBACxB;qBAAM,IAAI,MAAM,IAAI,IAAI,EAAE;oBACvB,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;iBACjC;qBAAM,IAAI,KAAK,IAAI,IAAI,EAAE;oBACtB,MAAM,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;iBACpC;qBAAM,IAAI,OAAO,IAAI,IAAI,EAAE;oBACxB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;iBACzB;gBAED,IAAI,OAAO,IAAI,IAAI,EAAE;oBACjB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;iBACpC;qBAAM,IAAI,SAAS,IAAI,IAAI,EAAE;oBAC1B,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;iBAChC;gBAED,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;aAC3D;SACJ;KACJ;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAlCD,wDAkCC;AAED,SAAS,aAAa,CAAC,GAAG;IACtB,OAAO,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,WAAW,CAAC,MAAM;IACvB,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;AAC1D,CAAC"}
|
package/package.json
CHANGED
package/src/compiler/gwell.gwell
CHANGED
|
@@ -165,6 +165,8 @@ grammar: {{
|
|
|
165
165
|
| K_POP _ L_COLON _ T_INTEGER : {{ { pop: parseInt($4) } }}
|
|
166
166
|
| K_POP _ L_COLON _ K_ALL : {{ { pop: "all" } }}
|
|
167
167
|
| K_HIGHLIGHT _ L_COLON _ T_STRING : {{ { highlight: $4 } }}
|
|
168
|
+
| K_EMBED _ L_COLON _ T_STRING : {{ { embed: $4 } }}
|
|
169
|
+
| K_UNEMBED : {{ { unembed: true } }}
|
|
168
170
|
| K_INSET : {{ { inset: 1 } }}
|
|
169
171
|
| K_INSET _ L_COLON _ T_INTEGER : {{ { inset: parseInt($4) } }}
|
|
170
172
|
| K_SET _ L_COLON _ T_WORD : {{ { set: $4 } }}
|
|
@@ -262,6 +264,8 @@ grammar: {{
|
|
|
262
264
|
K_WHEN -> "when"
|
|
263
265
|
K_POP -> "pop"
|
|
264
266
|
K_HIGHLIGHT -> "highlight"
|
|
267
|
+
K_EMBED -> "embed"
|
|
268
|
+
K_UNEMBED -> "unembed"
|
|
265
269
|
K_INSET -> "inset"
|
|
266
270
|
K_SET -> "set"
|
|
267
271
|
K_GOTO -> "goto"
|
package/src/typings.ts
CHANGED
package/src/utility/monarch.ts
CHANGED
|
@@ -11,16 +11,25 @@ export function CreateMonarchTokenizer(lexer: LexerConfig) {
|
|
|
11
11
|
for (const i of rule.import) {
|
|
12
12
|
tokenizer[name].push({ include: i })
|
|
13
13
|
}
|
|
14
|
-
} else
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
} else {
|
|
15
|
+
const action: any = { token: rule.highlight || 'source' };
|
|
16
|
+
if ('pop' in rule) {
|
|
17
|
+
action.next = '@pop';
|
|
18
|
+
} else if ('goto' in rule) {
|
|
19
|
+
action.next = '@' + rule.goto;
|
|
20
|
+
} else if ('set' in rule) {
|
|
21
|
+
action.switchTo = '@' + rule.set;
|
|
22
|
+
} else if ('inset' in rule) {
|
|
23
|
+
action.next = '@push';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if ('embed' in rule) {
|
|
27
|
+
action.nextEmbedded = rule.embed;
|
|
28
|
+
} else if ('unembed' in rule) {
|
|
29
|
+
action.nextEmbedded = '@pop';
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
tokenizer[name].push([TransformWhen(rule.when), action])
|
|
24
33
|
}
|
|
25
34
|
}
|
|
26
35
|
}
|