@lokascript/semantic 1.0.0
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/LICENSE +21 -0
- package/README.md +686 -0
- package/dist/browser-ar.ar.global.js +2 -0
- package/dist/browser-core.core.global.js +2 -0
- package/dist/browser-de.de.global.js +2 -0
- package/dist/browser-east-asian.east-asian.global.js +2 -0
- package/dist/browser-en-tr.en-tr.global.js +2 -0
- package/dist/browser-en.en.global.js +2 -0
- package/dist/browser-es-en.es-en.global.js +2 -0
- package/dist/browser-es.es.global.js +2 -0
- package/dist/browser-fr.fr.global.js +2 -0
- package/dist/browser-id.id.global.js +2 -0
- package/dist/browser-ja.ja.global.js +2 -0
- package/dist/browser-ko.ko.global.js +2 -0
- package/dist/browser-lazy.lazy.global.js +2 -0
- package/dist/browser-priority.priority.global.js +2 -0
- package/dist/browser-pt.pt.global.js +2 -0
- package/dist/browser-qu.qu.global.js +2 -0
- package/dist/browser-sw.sw.global.js +2 -0
- package/dist/browser-tr.tr.global.js +2 -0
- package/dist/browser-western.western.global.js +2 -0
- package/dist/browser-zh.zh.global.js +2 -0
- package/dist/browser.global.js +3 -0
- package/dist/browser.global.js.map +1 -0
- package/dist/index.cjs +35051 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3426 -0
- package/dist/index.d.ts +3426 -0
- package/dist/index.js +34890 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/ar.d.ts +78 -0
- package/dist/languages/ar.js +1622 -0
- package/dist/languages/ar.js.map +1 -0
- package/dist/languages/de.d.ts +38 -0
- package/dist/languages/de.js +1168 -0
- package/dist/languages/de.js.map +1 -0
- package/dist/languages/en.d.ts +44 -0
- package/dist/languages/en.js +3491 -0
- package/dist/languages/en.js.map +1 -0
- package/dist/languages/es.d.ts +52 -0
- package/dist/languages/es.js +1493 -0
- package/dist/languages/es.js.map +1 -0
- package/dist/languages/fr.d.ts +37 -0
- package/dist/languages/fr.js +1159 -0
- package/dist/languages/fr.js.map +1 -0
- package/dist/languages/id.d.ts +35 -0
- package/dist/languages/id.js +1152 -0
- package/dist/languages/id.js.map +1 -0
- package/dist/languages/ja.d.ts +53 -0
- package/dist/languages/ja.js +1430 -0
- package/dist/languages/ja.js.map +1 -0
- package/dist/languages/ko.d.ts +51 -0
- package/dist/languages/ko.js +1729 -0
- package/dist/languages/ko.js.map +1 -0
- package/dist/languages/pt.d.ts +37 -0
- package/dist/languages/pt.js +1127 -0
- package/dist/languages/pt.js.map +1 -0
- package/dist/languages/qu.d.ts +36 -0
- package/dist/languages/qu.js +1143 -0
- package/dist/languages/qu.js.map +1 -0
- package/dist/languages/sw.d.ts +35 -0
- package/dist/languages/sw.js +1147 -0
- package/dist/languages/sw.js.map +1 -0
- package/dist/languages/tr.d.ts +45 -0
- package/dist/languages/tr.js +1529 -0
- package/dist/languages/tr.js.map +1 -0
- package/dist/languages/zh.d.ts +58 -0
- package/dist/languages/zh.js +1257 -0
- package/dist/languages/zh.js.map +1 -0
- package/dist/types-C4dcj53L.d.ts +600 -0
- package/package.json +202 -0
- package/src/__test-utils__/index.ts +7 -0
- package/src/__test-utils__/test-helpers.ts +8 -0
- package/src/__types__/test-helpers.ts +122 -0
- package/src/analysis/index.ts +479 -0
- package/src/ast-builder/command-mappers.ts +1133 -0
- package/src/ast-builder/expression-parser/index.ts +41 -0
- package/src/ast-builder/expression-parser/parser.ts +563 -0
- package/src/ast-builder/expression-parser/tokenizer.ts +394 -0
- package/src/ast-builder/expression-parser/types.ts +208 -0
- package/src/ast-builder/index.ts +536 -0
- package/src/ast-builder/value-converters.ts +172 -0
- package/src/bridge.ts +275 -0
- package/src/browser-ar.ts +162 -0
- package/src/browser-core.ts +231 -0
- package/src/browser-de.ts +162 -0
- package/src/browser-east-asian.ts +173 -0
- package/src/browser-en-tr.ts +165 -0
- package/src/browser-en.ts +157 -0
- package/src/browser-es-en.ts +200 -0
- package/src/browser-es.ts +170 -0
- package/src/browser-fr.ts +162 -0
- package/src/browser-id.ts +162 -0
- package/src/browser-ja.ts +162 -0
- package/src/browser-ko.ts +162 -0
- package/src/browser-lazy.ts +189 -0
- package/src/browser-priority.ts +214 -0
- package/src/browser-pt.ts +162 -0
- package/src/browser-qu.ts +162 -0
- package/src/browser-sw.ts +162 -0
- package/src/browser-tr.ts +162 -0
- package/src/browser-western.ts +181 -0
- package/src/browser-zh.ts +162 -0
- package/src/browser.ts +268 -0
- package/src/cache/index.ts +14 -0
- package/src/cache/semantic-cache.ts +344 -0
- package/src/core-bridge.ts +372 -0
- package/src/explicit/converter.ts +258 -0
- package/src/explicit/index.ts +18 -0
- package/src/explicit/parser.ts +236 -0
- package/src/explicit/renderer.ts +424 -0
- package/src/generators/command-schemas.ts +1636 -0
- package/src/generators/event-handler-generator.ts +109 -0
- package/src/generators/index.ts +117 -0
- package/src/generators/language-profiles.ts +139 -0
- package/src/generators/pattern-generator.ts +537 -0
- package/src/generators/profiles/arabic.ts +131 -0
- package/src/generators/profiles/bengali.ts +132 -0
- package/src/generators/profiles/chinese.ts +124 -0
- package/src/generators/profiles/english.ts +113 -0
- package/src/generators/profiles/french.ts +125 -0
- package/src/generators/profiles/german.ts +126 -0
- package/src/generators/profiles/hindi.ts +146 -0
- package/src/generators/profiles/index.ts +46 -0
- package/src/generators/profiles/indonesian.ts +125 -0
- package/src/generators/profiles/italian.ts +139 -0
- package/src/generators/profiles/japanese.ts +149 -0
- package/src/generators/profiles/korean.ts +127 -0
- package/src/generators/profiles/marker-templates.ts +288 -0
- package/src/generators/profiles/ms.ts +130 -0
- package/src/generators/profiles/polish.ts +249 -0
- package/src/generators/profiles/portuguese.ts +115 -0
- package/src/generators/profiles/quechua.ts +113 -0
- package/src/generators/profiles/russian.ts +260 -0
- package/src/generators/profiles/spanish.ts +130 -0
- package/src/generators/profiles/swahili.ts +129 -0
- package/src/generators/profiles/thai.ts +132 -0
- package/src/generators/profiles/tl.ts +128 -0
- package/src/generators/profiles/turkish.ts +124 -0
- package/src/generators/profiles/types.ts +165 -0
- package/src/generators/profiles/ukrainian.ts +270 -0
- package/src/generators/profiles/vietnamese.ts +133 -0
- package/src/generators/schema-error-codes.ts +160 -0
- package/src/generators/schema-validator.ts +391 -0
- package/src/index.ts +429 -0
- package/src/language-building-schema.ts +3170 -0
- package/src/language-loader.ts +394 -0
- package/src/languages/_all.ts +65 -0
- package/src/languages/ar.ts +15 -0
- package/src/languages/bn.ts +16 -0
- package/src/languages/de.ts +15 -0
- package/src/languages/en.ts +29 -0
- package/src/languages/es.ts +15 -0
- package/src/languages/fr.ts +15 -0
- package/src/languages/hi.ts +26 -0
- package/src/languages/id.ts +15 -0
- package/src/languages/index.ts +18 -0
- package/src/languages/it.ts +15 -0
- package/src/languages/ja.ts +15 -0
- package/src/languages/ko.ts +15 -0
- package/src/languages/ms.ts +16 -0
- package/src/languages/pl.ts +18 -0
- package/src/languages/pt.ts +15 -0
- package/src/languages/qu.ts +15 -0
- package/src/languages/ru.ts +26 -0
- package/src/languages/sw.ts +15 -0
- package/src/languages/th.ts +16 -0
- package/src/languages/tl.ts +16 -0
- package/src/languages/tr.ts +15 -0
- package/src/languages/uk.ts +26 -0
- package/src/languages/vi.ts +16 -0
- package/src/languages/zh.ts +15 -0
- package/src/parser/index.ts +15 -0
- package/src/parser/pattern-matcher.ts +1181 -0
- package/src/parser/semantic-parser.ts +573 -0
- package/src/parser/utils/index.ts +35 -0
- package/src/parser/utils/marker-resolution.ts +111 -0
- package/src/parser/utils/possessive-keywords.ts +43 -0
- package/src/parser/utils/role-positioning.ts +70 -0
- package/src/parser/utils/type-validation.ts +134 -0
- package/src/patterns/add/ar.ts +71 -0
- package/src/patterns/add/bn.ts +70 -0
- package/src/patterns/add/hi.ts +69 -0
- package/src/patterns/add/index.ts +87 -0
- package/src/patterns/add/it.ts +61 -0
- package/src/patterns/add/ja.ts +93 -0
- package/src/patterns/add/ko.ts +74 -0
- package/src/patterns/add/ms.ts +30 -0
- package/src/patterns/add/pl.ts +62 -0
- package/src/patterns/add/ru.ts +62 -0
- package/src/patterns/add/th.ts +49 -0
- package/src/patterns/add/tl.ts +30 -0
- package/src/patterns/add/tr.ts +71 -0
- package/src/patterns/add/uk.ts +62 -0
- package/src/patterns/add/vi.ts +61 -0
- package/src/patterns/add/zh.ts +71 -0
- package/src/patterns/builders.ts +207 -0
- package/src/patterns/decrement/bn.ts +70 -0
- package/src/patterns/decrement/de.ts +42 -0
- package/src/patterns/decrement/hi.ts +68 -0
- package/src/patterns/decrement/index.ts +79 -0
- package/src/patterns/decrement/it.ts +69 -0
- package/src/patterns/decrement/ms.ts +30 -0
- package/src/patterns/decrement/pl.ts +58 -0
- package/src/patterns/decrement/ru.ts +58 -0
- package/src/patterns/decrement/th.ts +49 -0
- package/src/patterns/decrement/tl.ts +30 -0
- package/src/patterns/decrement/tr.ts +48 -0
- package/src/patterns/decrement/uk.ts +58 -0
- package/src/patterns/decrement/vi.ts +61 -0
- package/src/patterns/decrement/zh.ts +32 -0
- package/src/patterns/en.ts +302 -0
- package/src/patterns/event-handler/ar.ts +151 -0
- package/src/patterns/event-handler/bn.ts +72 -0
- package/src/patterns/event-handler/de.ts +117 -0
- package/src/patterns/event-handler/en.ts +117 -0
- package/src/patterns/event-handler/es.ts +136 -0
- package/src/patterns/event-handler/fr.ts +117 -0
- package/src/patterns/event-handler/hi.ts +64 -0
- package/src/patterns/event-handler/id.ts +117 -0
- package/src/patterns/event-handler/index.ts +119 -0
- package/src/patterns/event-handler/it.ts +54 -0
- package/src/patterns/event-handler/ja.ts +118 -0
- package/src/patterns/event-handler/ko.ts +133 -0
- package/src/patterns/event-handler/ms.ts +30 -0
- package/src/patterns/event-handler/pl.ts +62 -0
- package/src/patterns/event-handler/pt.ts +117 -0
- package/src/patterns/event-handler/qu.ts +66 -0
- package/src/patterns/event-handler/ru.ts +62 -0
- package/src/patterns/event-handler/shared.ts +270 -0
- package/src/patterns/event-handler/sw.ts +117 -0
- package/src/patterns/event-handler/th.ts +53 -0
- package/src/patterns/event-handler/tl.ts +30 -0
- package/src/patterns/event-handler/tr.ts +170 -0
- package/src/patterns/event-handler/uk.ts +62 -0
- package/src/patterns/event-handler/vi.ts +61 -0
- package/src/patterns/event-handler/zh.ts +150 -0
- package/src/patterns/get/ar.ts +49 -0
- package/src/patterns/get/bn.ts +47 -0
- package/src/patterns/get/de.ts +32 -0
- package/src/patterns/get/hi.ts +52 -0
- package/src/patterns/get/index.ts +83 -0
- package/src/patterns/get/it.ts +56 -0
- package/src/patterns/get/ja.ts +53 -0
- package/src/patterns/get/ko.ts +53 -0
- package/src/patterns/get/ms.ts +30 -0
- package/src/patterns/get/pl.ts +57 -0
- package/src/patterns/get/ru.ts +57 -0
- package/src/patterns/get/th.ts +29 -0
- package/src/patterns/get/tl.ts +30 -0
- package/src/patterns/get/uk.ts +57 -0
- package/src/patterns/get/vi.ts +48 -0
- package/src/patterns/grammar-transformed/index.ts +39 -0
- package/src/patterns/grammar-transformed/ja.ts +1713 -0
- package/src/patterns/grammar-transformed/ko.ts +1311 -0
- package/src/patterns/grammar-transformed/tr.ts +1067 -0
- package/src/patterns/hide/ar.ts +67 -0
- package/src/patterns/hide/bn.ts +47 -0
- package/src/patterns/hide/de.ts +36 -0
- package/src/patterns/hide/hi.ts +61 -0
- package/src/patterns/hide/index.ts +91 -0
- package/src/patterns/hide/it.ts +56 -0
- package/src/patterns/hide/ja.ts +69 -0
- package/src/patterns/hide/ko.ts +69 -0
- package/src/patterns/hide/ms.ts +30 -0
- package/src/patterns/hide/pl.ts +57 -0
- package/src/patterns/hide/ru.ts +57 -0
- package/src/patterns/hide/th.ts +29 -0
- package/src/patterns/hide/tl.ts +30 -0
- package/src/patterns/hide/tr.ts +65 -0
- package/src/patterns/hide/uk.ts +57 -0
- package/src/patterns/hide/vi.ts +56 -0
- package/src/patterns/hide/zh.ts +68 -0
- package/src/patterns/increment/bn.ts +70 -0
- package/src/patterns/increment/de.ts +36 -0
- package/src/patterns/increment/hi.ts +68 -0
- package/src/patterns/increment/index.ts +79 -0
- package/src/patterns/increment/it.ts +69 -0
- package/src/patterns/increment/ms.ts +30 -0
- package/src/patterns/increment/pl.ts +58 -0
- package/src/patterns/increment/ru.ts +58 -0
- package/src/patterns/increment/th.ts +49 -0
- package/src/patterns/increment/tl.ts +30 -0
- package/src/patterns/increment/tr.ts +52 -0
- package/src/patterns/increment/uk.ts +58 -0
- package/src/patterns/increment/vi.ts +61 -0
- package/src/patterns/increment/zh.ts +32 -0
- package/src/patterns/index.ts +84 -0
- package/src/patterns/languages/en/control-flow.ts +93 -0
- package/src/patterns/languages/en/fetch.ts +62 -0
- package/src/patterns/languages/en/index.ts +42 -0
- package/src/patterns/languages/en/repeat.ts +67 -0
- package/src/patterns/languages/en/set.ts +48 -0
- package/src/patterns/languages/en/swap.ts +38 -0
- package/src/patterns/languages/en/temporal.ts +57 -0
- package/src/patterns/put/ar.ts +74 -0
- package/src/patterns/put/bn.ts +53 -0
- package/src/patterns/put/en.ts +74 -0
- package/src/patterns/put/es.ts +74 -0
- package/src/patterns/put/hi.ts +69 -0
- package/src/patterns/put/id.ts +96 -0
- package/src/patterns/put/index.ts +99 -0
- package/src/patterns/put/it.ts +56 -0
- package/src/patterns/put/ja.ts +75 -0
- package/src/patterns/put/ko.ts +67 -0
- package/src/patterns/put/ms.ts +30 -0
- package/src/patterns/put/pl.ts +81 -0
- package/src/patterns/put/ru.ts +85 -0
- package/src/patterns/put/th.ts +32 -0
- package/src/patterns/put/tl.ts +30 -0
- package/src/patterns/put/tr.ts +67 -0
- package/src/patterns/put/uk.ts +85 -0
- package/src/patterns/put/vi.ts +72 -0
- package/src/patterns/put/zh.ts +62 -0
- package/src/patterns/registry.ts +163 -0
- package/src/patterns/remove/ar.ts +71 -0
- package/src/patterns/remove/bn.ts +68 -0
- package/src/patterns/remove/hi.ts +69 -0
- package/src/patterns/remove/index.ts +87 -0
- package/src/patterns/remove/it.ts +69 -0
- package/src/patterns/remove/ja.ts +74 -0
- package/src/patterns/remove/ko.ts +78 -0
- package/src/patterns/remove/ms.ts +30 -0
- package/src/patterns/remove/pl.ts +62 -0
- package/src/patterns/remove/ru.ts +62 -0
- package/src/patterns/remove/th.ts +49 -0
- package/src/patterns/remove/tl.ts +30 -0
- package/src/patterns/remove/tr.ts +78 -0
- package/src/patterns/remove/uk.ts +62 -0
- package/src/patterns/remove/vi.ts +61 -0
- package/src/patterns/remove/zh.ts +72 -0
- package/src/patterns/set/ar.ts +84 -0
- package/src/patterns/set/bn.ts +53 -0
- package/src/patterns/set/de.ts +84 -0
- package/src/patterns/set/es.ts +92 -0
- package/src/patterns/set/fr.ts +88 -0
- package/src/patterns/set/hi.ts +56 -0
- package/src/patterns/set/id.ts +84 -0
- package/src/patterns/set/index.ts +107 -0
- package/src/patterns/set/it.ts +56 -0
- package/src/patterns/set/ja.ts +86 -0
- package/src/patterns/set/ko.ts +85 -0
- package/src/patterns/set/ms.ts +30 -0
- package/src/patterns/set/pl.ts +57 -0
- package/src/patterns/set/pt.ts +84 -0
- package/src/patterns/set/ru.ts +57 -0
- package/src/patterns/set/th.ts +31 -0
- package/src/patterns/set/tl.ts +30 -0
- package/src/patterns/set/tr.ts +107 -0
- package/src/patterns/set/uk.ts +57 -0
- package/src/patterns/set/vi.ts +53 -0
- package/src/patterns/set/zh.ts +84 -0
- package/src/patterns/show/ar.ts +67 -0
- package/src/patterns/show/bn.ts +47 -0
- package/src/patterns/show/de.ts +32 -0
- package/src/patterns/show/fr.ts +32 -0
- package/src/patterns/show/hi.ts +61 -0
- package/src/patterns/show/index.ts +95 -0
- package/src/patterns/show/it.ts +56 -0
- package/src/patterns/show/ja.ts +69 -0
- package/src/patterns/show/ko.ts +73 -0
- package/src/patterns/show/ms.ts +30 -0
- package/src/patterns/show/pl.ts +57 -0
- package/src/patterns/show/ru.ts +57 -0
- package/src/patterns/show/th.ts +29 -0
- package/src/patterns/show/tl.ts +30 -0
- package/src/patterns/show/tr.ts +65 -0
- package/src/patterns/show/uk.ts +57 -0
- package/src/patterns/show/vi.ts +56 -0
- package/src/patterns/show/zh.ts +68 -0
- package/src/patterns/take/ar.ts +51 -0
- package/src/patterns/take/index.ts +31 -0
- package/src/patterns/toggle/ar.ts +61 -0
- package/src/patterns/toggle/bn.ts +70 -0
- package/src/patterns/toggle/en.ts +61 -0
- package/src/patterns/toggle/es.ts +61 -0
- package/src/patterns/toggle/hi.ts +80 -0
- package/src/patterns/toggle/index.ts +95 -0
- package/src/patterns/toggle/it.ts +69 -0
- package/src/patterns/toggle/ja.ts +156 -0
- package/src/patterns/toggle/ko.ts +113 -0
- package/src/patterns/toggle/ms.ts +30 -0
- package/src/patterns/toggle/pl.ts +62 -0
- package/src/patterns/toggle/ru.ts +62 -0
- package/src/patterns/toggle/th.ts +50 -0
- package/src/patterns/toggle/tl.ts +30 -0
- package/src/patterns/toggle/tr.ts +88 -0
- package/src/patterns/toggle/uk.ts +62 -0
- package/src/patterns/toggle/vi.ts +61 -0
- package/src/patterns/toggle/zh.ts +99 -0
- package/src/public-api.ts +286 -0
- package/src/registry.ts +441 -0
- package/src/tokenizers/arabic.ts +723 -0
- package/src/tokenizers/base.ts +1300 -0
- package/src/tokenizers/bengali.ts +289 -0
- package/src/tokenizers/chinese.ts +481 -0
- package/src/tokenizers/english.ts +416 -0
- package/src/tokenizers/french.ts +326 -0
- package/src/tokenizers/german.ts +324 -0
- package/src/tokenizers/hindi.ts +319 -0
- package/src/tokenizers/index.ts +127 -0
- package/src/tokenizers/indonesian.ts +306 -0
- package/src/tokenizers/italian.ts +458 -0
- package/src/tokenizers/japanese.ts +447 -0
- package/src/tokenizers/korean.ts +642 -0
- package/src/tokenizers/morphology/arabic-normalizer.ts +242 -0
- package/src/tokenizers/morphology/french-normalizer.ts +268 -0
- package/src/tokenizers/morphology/german-normalizer.ts +256 -0
- package/src/tokenizers/morphology/index.ts +46 -0
- package/src/tokenizers/morphology/italian-normalizer.ts +329 -0
- package/src/tokenizers/morphology/japanese-normalizer.ts +288 -0
- package/src/tokenizers/morphology/korean-normalizer.ts +428 -0
- package/src/tokenizers/morphology/polish-normalizer.ts +264 -0
- package/src/tokenizers/morphology/portuguese-normalizer.ts +310 -0
- package/src/tokenizers/morphology/spanish-normalizer.ts +327 -0
- package/src/tokenizers/morphology/turkish-normalizer.ts +412 -0
- package/src/tokenizers/morphology/types.ts +211 -0
- package/src/tokenizers/ms.ts +198 -0
- package/src/tokenizers/polish.ts +354 -0
- package/src/tokenizers/portuguese.ts +304 -0
- package/src/tokenizers/quechua.ts +339 -0
- package/src/tokenizers/russian.ts +375 -0
- package/src/tokenizers/spanish.ts +403 -0
- package/src/tokenizers/swahili.ts +303 -0
- package/src/tokenizers/thai.ts +236 -0
- package/src/tokenizers/tl.ts +198 -0
- package/src/tokenizers/turkish.ts +411 -0
- package/src/tokenizers/ukrainian.ts +369 -0
- package/src/tokenizers/vietnamese.ts +410 -0
- package/src/types/grammar-types.ts +617 -0
- package/src/types/unified-profile.ts +267 -0
- package/src/types.ts +709 -0
- package/src/utils/confidence-calculator.ts +147 -0
- package/src/validators/command-validator.ts +380 -0
- package/src/validators/index.ts +15 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chinese Add Patterns
|
|
3
|
+
*
|
|
4
|
+
* Hand-crafted patterns for "add" command.
|
|
5
|
+
* Chinese uses SVO order: 给 {target} 添加 {patient}
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { LanguagePattern } from '../../types';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Get Chinese add patterns.
|
|
12
|
+
*/
|
|
13
|
+
export function getAddPatternsZh(): LanguagePattern[] {
|
|
14
|
+
return [
|
|
15
|
+
{
|
|
16
|
+
id: 'add-zh-full',
|
|
17
|
+
language: 'zh',
|
|
18
|
+
command: 'add',
|
|
19
|
+
priority: 100,
|
|
20
|
+
template: {
|
|
21
|
+
format: '给 {destination} 添加 {patient}',
|
|
22
|
+
tokens: [
|
|
23
|
+
{ type: 'literal', value: '给', alternatives: ['為', '为'] },
|
|
24
|
+
{ type: 'role', role: 'destination' },
|
|
25
|
+
{ type: 'literal', value: '添加', alternatives: ['加', '增加', '加上'] },
|
|
26
|
+
{ type: 'role', role: 'patient' },
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
extraction: {
|
|
30
|
+
destination: { position: 1 },
|
|
31
|
+
patient: { position: 3 },
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: 'add-zh-simple',
|
|
36
|
+
language: 'zh',
|
|
37
|
+
command: 'add',
|
|
38
|
+
priority: 90,
|
|
39
|
+
template: {
|
|
40
|
+
format: '添加 {patient}',
|
|
41
|
+
tokens: [
|
|
42
|
+
{ type: 'literal', value: '添加', alternatives: ['加', '增加'] },
|
|
43
|
+
{ type: 'role', role: 'patient' },
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
extraction: {
|
|
47
|
+
patient: { position: 1 },
|
|
48
|
+
destination: { default: { type: 'reference', value: 'me' } },
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'add-zh-ba',
|
|
53
|
+
language: 'zh',
|
|
54
|
+
command: 'add',
|
|
55
|
+
priority: 95,
|
|
56
|
+
template: {
|
|
57
|
+
format: '把 {patient} 添加到 {destination}',
|
|
58
|
+
tokens: [
|
|
59
|
+
{ type: 'literal', value: '把' },
|
|
60
|
+
{ type: 'role', role: 'patient' },
|
|
61
|
+
{ type: 'literal', value: '添加到', alternatives: ['加到', '增加到'] },
|
|
62
|
+
{ type: 'role', role: 'destination' },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
extraction: {
|
|
66
|
+
patient: { position: 1 },
|
|
67
|
+
destination: { marker: '添加到', markerAlternatives: ['加到', '增加到'] },
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
];
|
|
71
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Builders
|
|
3
|
+
*
|
|
4
|
+
* Functions for building and generating patterns for specific languages.
|
|
5
|
+
* Uses a registry-based approach for maintainability and extensibility.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { LanguagePattern } from '../types';
|
|
9
|
+
|
|
10
|
+
// Import from subdirectories for tree-shaking
|
|
11
|
+
import { getTogglePatternsForLanguage } from './toggle/index';
|
|
12
|
+
import { getTakePatternsForLanguage } from './take/index';
|
|
13
|
+
import { getPutPatternsForLanguage } from './put/index';
|
|
14
|
+
import { getEventHandlerPatternsForLanguage } from './event-handler/index';
|
|
15
|
+
import { getGrammarTransformedPatternsForLanguage } from './grammar-transformed/index';
|
|
16
|
+
|
|
17
|
+
// Import multilingual command patterns
|
|
18
|
+
import { getAddPatternsForLanguage } from './add/index';
|
|
19
|
+
import { getRemovePatternsForLanguage } from './remove/index';
|
|
20
|
+
import { getShowPatternsForLanguage } from './show/index';
|
|
21
|
+
import { getHidePatternsForLanguage } from './hide/index';
|
|
22
|
+
import { getSetPatternsForLanguage } from './set/index';
|
|
23
|
+
import { getGetPatternsForLanguage } from './get/index';
|
|
24
|
+
import { getIncrementPatternsForLanguage } from './increment/index';
|
|
25
|
+
import { getDecrementPatternsForLanguage } from './decrement/index';
|
|
26
|
+
|
|
27
|
+
// Import English-only patterns
|
|
28
|
+
import { getEnglishOnlyPatterns } from './languages/en';
|
|
29
|
+
|
|
30
|
+
// Import generator directly (not from barrel)
|
|
31
|
+
import { generatePatternsForLanguage } from '../generators/pattern-generator';
|
|
32
|
+
|
|
33
|
+
// Import registry functions for lazy loading support
|
|
34
|
+
import { getRegisteredLanguages, tryGetProfile } from '../registry';
|
|
35
|
+
|
|
36
|
+
// =============================================================================
|
|
37
|
+
// Pattern Loader Registry
|
|
38
|
+
// =============================================================================
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Type for pattern loader functions.
|
|
42
|
+
* Each loader returns patterns for a specific command/category for a given language.
|
|
43
|
+
*/
|
|
44
|
+
type PatternLoader = (language: string) => LanguagePattern[];
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Registry of all pattern loaders.
|
|
48
|
+
* This replaces individual push() calls with a unified registry approach.
|
|
49
|
+
* Order matters: hand-crafted patterns should come before generated patterns.
|
|
50
|
+
*/
|
|
51
|
+
const PATTERN_LOADERS: PatternLoader[] = [
|
|
52
|
+
// Hand-crafted core patterns
|
|
53
|
+
getTogglePatternsForLanguage,
|
|
54
|
+
getTakePatternsForLanguage,
|
|
55
|
+
getPutPatternsForLanguage,
|
|
56
|
+
getEventHandlerPatternsForLanguage,
|
|
57
|
+
|
|
58
|
+
// Multilingual command patterns
|
|
59
|
+
getAddPatternsForLanguage,
|
|
60
|
+
getRemovePatternsForLanguage,
|
|
61
|
+
getShowPatternsForLanguage,
|
|
62
|
+
getHidePatternsForLanguage,
|
|
63
|
+
getSetPatternsForLanguage,
|
|
64
|
+
getGetPatternsForLanguage,
|
|
65
|
+
getIncrementPatternsForLanguage,
|
|
66
|
+
getDecrementPatternsForLanguage,
|
|
67
|
+
|
|
68
|
+
// Grammar-transformed patterns (for SOV/VSO grammar output)
|
|
69
|
+
getGrammarTransformedPatternsForLanguage,
|
|
70
|
+
];
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Register a custom pattern loader.
|
|
74
|
+
* Useful for plugins or extensions that add new command patterns.
|
|
75
|
+
*/
|
|
76
|
+
export function registerPatternLoader(loader: PatternLoader): void {
|
|
77
|
+
PATTERN_LOADERS.push(loader);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Get the current pattern loaders (for testing/introspection).
|
|
82
|
+
*/
|
|
83
|
+
export function getPatternLoaders(): readonly PatternLoader[] {
|
|
84
|
+
return PATTERN_LOADERS;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Lazy cache for generated patterns PER LANGUAGE
|
|
88
|
+
// Using per-language cache instead of global cache to support lazy loading
|
|
89
|
+
// where languages are registered one at a time
|
|
90
|
+
const _generatedPatternsPerLanguage = new Map<string, LanguagePattern[]>();
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Get all generated patterns (lazy loaded).
|
|
94
|
+
* @deprecated Use getGeneratedPatternsForLanguage() for lazy loading support.
|
|
95
|
+
*/
|
|
96
|
+
export function getGeneratedPatterns(): LanguagePattern[] {
|
|
97
|
+
// For backwards compatibility, generate for all currently registered languages
|
|
98
|
+
const allPatterns: LanguagePattern[] = [];
|
|
99
|
+
for (const lang of getRegisteredLanguages()) {
|
|
100
|
+
allPatterns.push(...getGeneratedPatternsForLanguage(lang));
|
|
101
|
+
}
|
|
102
|
+
return allPatterns;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Get generated patterns for a specific language.
|
|
107
|
+
* This supports lazy loading scenarios where languages are registered one at a time.
|
|
108
|
+
*/
|
|
109
|
+
export function getGeneratedPatternsForLanguage(language: string): LanguagePattern[] {
|
|
110
|
+
// Check per-language cache first
|
|
111
|
+
const cached = _generatedPatternsPerLanguage.get(language);
|
|
112
|
+
if (cached) {
|
|
113
|
+
return cached;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Get profile from registry
|
|
117
|
+
const profile = tryGetProfile(language);
|
|
118
|
+
if (!profile) {
|
|
119
|
+
return [];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Generate patterns for this language
|
|
123
|
+
const patterns = generatePatternsForLanguage(profile);
|
|
124
|
+
_generatedPatternsPerLanguage.set(language, patterns);
|
|
125
|
+
return patterns;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Clear the generated patterns cache for a language (useful for testing).
|
|
130
|
+
*/
|
|
131
|
+
export function clearGeneratedPatternsCache(language?: string): void {
|
|
132
|
+
if (language) {
|
|
133
|
+
_generatedPatternsPerLanguage.delete(language);
|
|
134
|
+
} else {
|
|
135
|
+
_generatedPatternsPerLanguage.clear();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// =============================================================================
|
|
140
|
+
// Lazy Pattern Building
|
|
141
|
+
// =============================================================================
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Build patterns for a specific language.
|
|
145
|
+
* This is the core function for tree-shakeable pattern loading.
|
|
146
|
+
* Uses the PATTERN_LOADERS registry for maintainability.
|
|
147
|
+
*/
|
|
148
|
+
export function buildPatternsForLanguage(language: string): LanguagePattern[] {
|
|
149
|
+
// Collect patterns from all registered loaders
|
|
150
|
+
const patterns = PATTERN_LOADERS.flatMap(loader => loader(language));
|
|
151
|
+
|
|
152
|
+
// Add English-only hand-crafted patterns
|
|
153
|
+
if (language === 'en') {
|
|
154
|
+
patterns.push(...getEnglishOnlyPatterns());
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Add generated patterns for this language (per-language cache supports lazy loading)
|
|
158
|
+
patterns.push(...getGeneratedPatternsForLanguage(language));
|
|
159
|
+
|
|
160
|
+
return patterns;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Languages with hand-crafted patterns
|
|
164
|
+
const handcraftedLanguages = [
|
|
165
|
+
'en',
|
|
166
|
+
'ja',
|
|
167
|
+
'ar',
|
|
168
|
+
'es',
|
|
169
|
+
'ko',
|
|
170
|
+
'zh',
|
|
171
|
+
'tr',
|
|
172
|
+
'pt',
|
|
173
|
+
'fr',
|
|
174
|
+
'de',
|
|
175
|
+
'id',
|
|
176
|
+
'qu',
|
|
177
|
+
'sw',
|
|
178
|
+
'it',
|
|
179
|
+
'vi',
|
|
180
|
+
'pl',
|
|
181
|
+
'ru',
|
|
182
|
+
'uk',
|
|
183
|
+
'hi',
|
|
184
|
+
'bn',
|
|
185
|
+
'th',
|
|
186
|
+
'ms',
|
|
187
|
+
'tl',
|
|
188
|
+
];
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Build patterns for all languages.
|
|
192
|
+
* @deprecated Use getPatternsForLanguage() for tree-shaking.
|
|
193
|
+
*/
|
|
194
|
+
export function buildAllPatterns(): LanguagePattern[] {
|
|
195
|
+
const all: LanguagePattern[] = [];
|
|
196
|
+
for (const lang of handcraftedLanguages) {
|
|
197
|
+
all.push(...buildPatternsForLanguage(lang));
|
|
198
|
+
}
|
|
199
|
+
return all;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Get list of all supported languages.
|
|
204
|
+
*/
|
|
205
|
+
export function getHandcraftedLanguages(): readonly string[] {
|
|
206
|
+
return handcraftedLanguages;
|
|
207
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bengali Decrement Patterns
|
|
3
|
+
*
|
|
4
|
+
* Patterns for parsing "decrement" command in Bengali.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { LanguagePattern } from '../../types';
|
|
8
|
+
|
|
9
|
+
export function getDecrementPatternsBn(): LanguagePattern[] {
|
|
10
|
+
return [
|
|
11
|
+
// Full pattern: :counter কে হ্রাস করুন
|
|
12
|
+
{
|
|
13
|
+
id: 'decrement-bn-full',
|
|
14
|
+
language: 'bn',
|
|
15
|
+
command: 'decrement',
|
|
16
|
+
priority: 100,
|
|
17
|
+
template: {
|
|
18
|
+
format: '{patient} কে হ্রাস করুন',
|
|
19
|
+
tokens: [
|
|
20
|
+
{ type: 'role', role: 'patient' },
|
|
21
|
+
{ type: 'literal', value: 'কে' },
|
|
22
|
+
{ type: 'literal', value: 'হ্রাস', alternatives: ['কমান'] },
|
|
23
|
+
{ type: 'literal', value: 'করুন' },
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
extraction: {
|
|
27
|
+
patient: { position: 0 },
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
// With quantity: :counter কে 5 দিয়ে হ্রাস করুন
|
|
31
|
+
{
|
|
32
|
+
id: 'decrement-bn-with-quantity',
|
|
33
|
+
language: 'bn',
|
|
34
|
+
command: 'decrement',
|
|
35
|
+
priority: 95,
|
|
36
|
+
template: {
|
|
37
|
+
format: '{patient} কে {quantity} দিয়ে হ্রাস করুন',
|
|
38
|
+
tokens: [
|
|
39
|
+
{ type: 'role', role: 'patient' },
|
|
40
|
+
{ type: 'literal', value: 'কে' },
|
|
41
|
+
{ type: 'role', role: 'quantity' },
|
|
42
|
+
{ type: 'literal', value: 'দিয়ে' },
|
|
43
|
+
{ type: 'literal', value: 'হ্রাস', alternatives: ['কমান'] },
|
|
44
|
+
{ type: 'literal', value: 'করুন' },
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
extraction: {
|
|
48
|
+
patient: { position: 0 },
|
|
49
|
+
quantity: { marker: 'দিয়ে', position: 2 },
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
// Simple pattern: হ্রাস :counter
|
|
53
|
+
{
|
|
54
|
+
id: 'decrement-bn-simple',
|
|
55
|
+
language: 'bn',
|
|
56
|
+
command: 'decrement',
|
|
57
|
+
priority: 90,
|
|
58
|
+
template: {
|
|
59
|
+
format: 'হ্রাস {patient}',
|
|
60
|
+
tokens: [
|
|
61
|
+
{ type: 'literal', value: 'হ্রাস', alternatives: ['কমান'] },
|
|
62
|
+
{ type: 'role', role: 'patient' },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
extraction: {
|
|
66
|
+
patient: { position: 1 },
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* German Decrement Patterns
|
|
3
|
+
*
|
|
4
|
+
* Hand-crafted patterns for "decrement" command.
|
|
5
|
+
* German: verringere zähler
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { LanguagePattern } from '../../types';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Get German decrement patterns.
|
|
12
|
+
*/
|
|
13
|
+
export function getDecrementPatternsDe(): LanguagePattern[] {
|
|
14
|
+
return [
|
|
15
|
+
{
|
|
16
|
+
id: 'decrement-de-full',
|
|
17
|
+
language: 'de',
|
|
18
|
+
command: 'decrement',
|
|
19
|
+
priority: 100,
|
|
20
|
+
template: {
|
|
21
|
+
format: 'verringere {patient}',
|
|
22
|
+
tokens: [
|
|
23
|
+
{
|
|
24
|
+
type: 'literal',
|
|
25
|
+
value: 'verringere',
|
|
26
|
+
alternatives: [
|
|
27
|
+
'verringern',
|
|
28
|
+
'dekrementiere',
|
|
29
|
+
'dekrementieren',
|
|
30
|
+
'reduziere',
|
|
31
|
+
'decrement',
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
{ type: 'role', role: 'patient', expectedTypes: ['selector', 'reference', 'expression'] },
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
extraction: {
|
|
38
|
+
patient: { position: 1 },
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hindi Decrement Patterns
|
|
3
|
+
*
|
|
4
|
+
* Patterns for parsing "decrement" command in Hindi.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { LanguagePattern } from '../../types';
|
|
8
|
+
|
|
9
|
+
export function getDecrementPatternsHi(): LanguagePattern[] {
|
|
10
|
+
return [
|
|
11
|
+
// Full pattern: :counter को घटाएं
|
|
12
|
+
{
|
|
13
|
+
id: 'decrement-hi-full',
|
|
14
|
+
language: 'hi',
|
|
15
|
+
command: 'decrement',
|
|
16
|
+
priority: 100,
|
|
17
|
+
template: {
|
|
18
|
+
format: '{patient} को घटाएं',
|
|
19
|
+
tokens: [
|
|
20
|
+
{ type: 'role', role: 'patient' },
|
|
21
|
+
{ type: 'literal', value: 'को' },
|
|
22
|
+
{ type: 'literal', value: 'घटाएं', alternatives: ['घटा'] },
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
extraction: {
|
|
26
|
+
patient: { position: 0 },
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
// With quantity: :counter को 5 से घटाएं
|
|
30
|
+
{
|
|
31
|
+
id: 'decrement-hi-with-quantity',
|
|
32
|
+
language: 'hi',
|
|
33
|
+
command: 'decrement',
|
|
34
|
+
priority: 95,
|
|
35
|
+
template: {
|
|
36
|
+
format: '{patient} को {quantity} से घटाएं',
|
|
37
|
+
tokens: [
|
|
38
|
+
{ type: 'role', role: 'patient' },
|
|
39
|
+
{ type: 'literal', value: 'को' },
|
|
40
|
+
{ type: 'role', role: 'quantity' },
|
|
41
|
+
{ type: 'literal', value: 'से' },
|
|
42
|
+
{ type: 'literal', value: 'घटाएं', alternatives: ['घटा'] },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
extraction: {
|
|
46
|
+
patient: { position: 0 },
|
|
47
|
+
quantity: { marker: 'से', position: 2 },
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
// Simple pattern: घटाएं :counter
|
|
51
|
+
{
|
|
52
|
+
id: 'decrement-hi-simple',
|
|
53
|
+
language: 'hi',
|
|
54
|
+
command: 'decrement',
|
|
55
|
+
priority: 90,
|
|
56
|
+
template: {
|
|
57
|
+
format: 'घटाएं {patient}',
|
|
58
|
+
tokens: [
|
|
59
|
+
{ type: 'literal', value: 'घटाएं', alternatives: ['घटा'] },
|
|
60
|
+
{ type: 'role', role: 'patient' },
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
extraction: {
|
|
64
|
+
patient: { position: 1 },
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decrement Command Patterns
|
|
3
|
+
*
|
|
4
|
+
* Hand-crafted patterns for "decrement" command across languages.
|
|
5
|
+
*
|
|
6
|
+
* @generated This file is auto-generated. Do not edit manually.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import type { LanguagePattern } from '../../types';
|
|
10
|
+
|
|
11
|
+
import { getDecrementPatternsBn } from './bn';
|
|
12
|
+
import { getDecrementPatternsDe } from './de';
|
|
13
|
+
import { getDecrementPatternsHi } from './hi';
|
|
14
|
+
import { getDecrementPatternsIt } from './it';
|
|
15
|
+
import { getDecrementPatternsMs } from './ms';
|
|
16
|
+
import { getDecrementPatternsPl } from './pl';
|
|
17
|
+
import { getDecrementPatternsRu } from './ru';
|
|
18
|
+
import { getDecrementPatternsTh } from './th';
|
|
19
|
+
import { getDecrementPatternsTl } from './tl';
|
|
20
|
+
import { getDecrementPatternsTr } from './tr';
|
|
21
|
+
import { getDecrementPatternsUk } from './uk';
|
|
22
|
+
import { getDecrementPatternsVi } from './vi';
|
|
23
|
+
import { getDecrementPatternsZh } from './zh';
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Get decrement patterns for a specific language.
|
|
27
|
+
*/
|
|
28
|
+
export function getDecrementPatternsForLanguage(language: string): LanguagePattern[] {
|
|
29
|
+
switch (language) {
|
|
30
|
+
case 'bn':
|
|
31
|
+
return getDecrementPatternsBn();
|
|
32
|
+
case 'de':
|
|
33
|
+
return getDecrementPatternsDe();
|
|
34
|
+
case 'hi':
|
|
35
|
+
return getDecrementPatternsHi();
|
|
36
|
+
case 'it':
|
|
37
|
+
return getDecrementPatternsIt();
|
|
38
|
+
case 'ms':
|
|
39
|
+
return getDecrementPatternsMs();
|
|
40
|
+
case 'pl':
|
|
41
|
+
return getDecrementPatternsPl();
|
|
42
|
+
case 'ru':
|
|
43
|
+
return getDecrementPatternsRu();
|
|
44
|
+
case 'th':
|
|
45
|
+
return getDecrementPatternsTh();
|
|
46
|
+
case 'tl':
|
|
47
|
+
return getDecrementPatternsTl();
|
|
48
|
+
case 'tr':
|
|
49
|
+
return getDecrementPatternsTr();
|
|
50
|
+
case 'uk':
|
|
51
|
+
return getDecrementPatternsUk();
|
|
52
|
+
case 'vi':
|
|
53
|
+
return getDecrementPatternsVi();
|
|
54
|
+
case 'zh':
|
|
55
|
+
return getDecrementPatternsZh();
|
|
56
|
+
default:
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Re-export language-specific getters for tree-shaking
|
|
62
|
+
export { getDecrementPatternsBn } from './bn';
|
|
63
|
+
export { getDecrementPatternsDe } from './de';
|
|
64
|
+
export { getDecrementPatternsHi } from './hi';
|
|
65
|
+
export { getDecrementPatternsIt } from './it';
|
|
66
|
+
export { getDecrementPatternsMs } from './ms';
|
|
67
|
+
export { getDecrementPatternsPl } from './pl';
|
|
68
|
+
export { getDecrementPatternsRu } from './ru';
|
|
69
|
+
export { getDecrementPatternsTh } from './th';
|
|
70
|
+
export { getDecrementPatternsTl } from './tl';
|
|
71
|
+
export { getDecrementPatternsTr } from './tr';
|
|
72
|
+
export { getDecrementPatternsUk } from './uk';
|
|
73
|
+
export { getDecrementPatternsVi } from './vi';
|
|
74
|
+
export { getDecrementPatternsZh } from './zh';
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Languages that have hand-crafted decrement patterns.
|
|
78
|
+
*/
|
|
79
|
+
export const decrementPatternLanguages = ['bn', 'de', 'hi', 'it', 'ms', 'pl', 'ru', 'th', 'tl', 'tr', 'uk', 'vi', 'zh'];
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Italian Decrement Patterns
|
|
3
|
+
*
|
|
4
|
+
* Tree-shakeable: Only included when Italian is imported.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { LanguagePattern } from '../../types';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Get Italian decrement patterns.
|
|
11
|
+
*/
|
|
12
|
+
export function getDecrementPatternsIt(): LanguagePattern[] {
|
|
13
|
+
return [
|
|
14
|
+
{
|
|
15
|
+
id: 'decrement-it-full',
|
|
16
|
+
language: 'it',
|
|
17
|
+
command: 'decrement',
|
|
18
|
+
priority: 100,
|
|
19
|
+
template: {
|
|
20
|
+
format: 'decrementare {patient} di {quantity}',
|
|
21
|
+
tokens: [
|
|
22
|
+
{
|
|
23
|
+
type: 'literal',
|
|
24
|
+
value: 'decrementare',
|
|
25
|
+
alternatives: ['decrementa', 'diminuire', 'decrement'],
|
|
26
|
+
},
|
|
27
|
+
{ type: 'role', role: 'patient' },
|
|
28
|
+
{
|
|
29
|
+
type: 'group',
|
|
30
|
+
optional: true,
|
|
31
|
+
tokens: [
|
|
32
|
+
{ type: 'literal', value: 'di', alternatives: ['per'] },
|
|
33
|
+
{ type: 'role', role: 'quantity' },
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
extraction: {
|
|
39
|
+
patient: { position: 1 },
|
|
40
|
+
quantity: {
|
|
41
|
+
marker: 'di',
|
|
42
|
+
markerAlternatives: ['per'],
|
|
43
|
+
default: { type: 'literal', value: '1' },
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: 'decrement-it-simple',
|
|
49
|
+
language: 'it',
|
|
50
|
+
command: 'decrement',
|
|
51
|
+
priority: 90,
|
|
52
|
+
template: {
|
|
53
|
+
format: 'decrementare {patient}',
|
|
54
|
+
tokens: [
|
|
55
|
+
{
|
|
56
|
+
type: 'literal',
|
|
57
|
+
value: 'decrementare',
|
|
58
|
+
alternatives: ['decrementa', 'diminuire', 'decrement'],
|
|
59
|
+
},
|
|
60
|
+
{ type: 'role', role: 'patient' },
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
extraction: {
|
|
64
|
+
patient: { position: 1 },
|
|
65
|
+
quantity: { default: { type: 'literal', value: '1' } },
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Malay Decrement Patterns
|
|
3
|
+
*
|
|
4
|
+
* Patterns for parsing "decrement" command in Malay.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { LanguagePattern } from '../../types';
|
|
8
|
+
|
|
9
|
+
export function getDecrementPatternsMs(): LanguagePattern[] {
|
|
10
|
+
return [
|
|
11
|
+
// TODO: Add patterns for decrement
|
|
12
|
+
// Example:
|
|
13
|
+
// {
|
|
14
|
+
// id: 'decrement-ms-simple',
|
|
15
|
+
// language: 'ms',
|
|
16
|
+
// command: 'decrement',
|
|
17
|
+
// priority: 100,
|
|
18
|
+
// template: {
|
|
19
|
+
// format: 'TODO {patient}',
|
|
20
|
+
// tokens: [
|
|
21
|
+
// { type: 'literal', value: 'TODO' },
|
|
22
|
+
// { type: 'role', role: 'patient' },
|
|
23
|
+
// ],
|
|
24
|
+
// },
|
|
25
|
+
// extraction: {
|
|
26
|
+
// patient: { position: 1 },
|
|
27
|
+
// },
|
|
28
|
+
// },
|
|
29
|
+
];
|
|
30
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polish Decrement Patterns
|
|
3
|
+
*
|
|
4
|
+
* Tree-shakeable: Only included when Polish is imported.
|
|
5
|
+
* Polish uses imperative verb forms for commands.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { LanguagePattern } from '../../types';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Get Polish decrement patterns.
|
|
12
|
+
*/
|
|
13
|
+
export function getDecrementPatternsPl(): LanguagePattern[] {
|
|
14
|
+
return [
|
|
15
|
+
{
|
|
16
|
+
id: 'decrement-pl-full',
|
|
17
|
+
language: 'pl',
|
|
18
|
+
command: 'decrement',
|
|
19
|
+
priority: 100,
|
|
20
|
+
template: {
|
|
21
|
+
format: 'zmniejsz {patient} o {quantity}',
|
|
22
|
+
tokens: [
|
|
23
|
+
{ type: 'literal', value: 'zmniejsz', alternatives: ['obniż', 'obniz'] },
|
|
24
|
+
{ type: 'role', role: 'patient' },
|
|
25
|
+
{
|
|
26
|
+
type: 'group',
|
|
27
|
+
optional: true,
|
|
28
|
+
tokens: [
|
|
29
|
+
{ type: 'literal', value: 'o' },
|
|
30
|
+
{ type: 'role', role: 'quantity' },
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
extraction: {
|
|
36
|
+
patient: { position: 1 },
|
|
37
|
+
quantity: { marker: 'o', default: { type: 'literal', value: 1 } },
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: 'decrement-pl-simple',
|
|
42
|
+
language: 'pl',
|
|
43
|
+
command: 'decrement',
|
|
44
|
+
priority: 90,
|
|
45
|
+
template: {
|
|
46
|
+
format: 'zmniejsz {patient}',
|
|
47
|
+
tokens: [
|
|
48
|
+
{ type: 'literal', value: 'zmniejsz', alternatives: ['obniż', 'obniz'] },
|
|
49
|
+
{ type: 'role', role: 'patient' },
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
extraction: {
|
|
53
|
+
patient: { position: 1 },
|
|
54
|
+
quantity: { default: { type: 'literal', value: 1 } },
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
}
|