@lokascript/framework 6.3.0 → 7.1.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/CHANGELOG.md +104 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/languages/ar.cjs +7 -0
- package/dist/languages/ar.cjs.map +1 -0
- package/dist/languages/ar.d.ts +49 -0
- package/dist/languages/ar.d.ts.map +1 -0
- package/dist/languages/ar.js +7 -0
- package/dist/languages/ar.js.map +1 -0
- package/dist/languages/bn.cjs +7 -0
- package/dist/languages/bn.cjs.map +1 -0
- package/dist/languages/bn.d.ts +58 -0
- package/dist/languages/bn.d.ts.map +1 -0
- package/dist/languages/bn.js +7 -0
- package/dist/languages/bn.js.map +1 -0
- package/dist/languages/chunks/chunk-2Y3XXFQO.cjs +47 -0
- package/dist/languages/chunks/chunk-2Y3XXFQO.cjs.map +1 -0
- package/dist/languages/chunks/chunk-7JFC6YCG.cjs +38 -0
- package/dist/languages/chunks/chunk-7JFC6YCG.cjs.map +1 -0
- package/dist/languages/chunks/chunk-7M7D3AZV.js +36 -0
- package/dist/languages/chunks/chunk-7M7D3AZV.js.map +1 -0
- package/dist/languages/chunks/chunk-BLWOTGS4.cjs +33 -0
- package/dist/languages/chunks/chunk-BLWOTGS4.cjs.map +1 -0
- package/dist/languages/chunks/chunk-BNU64ZWY.cjs +33 -0
- package/dist/languages/chunks/chunk-BNU64ZWY.cjs.map +1 -0
- package/dist/languages/chunks/chunk-CCC73SLG.js +33 -0
- package/dist/languages/chunks/chunk-CCC73SLG.js.map +1 -0
- package/dist/languages/chunks/chunk-CEZSJJBE.js +35 -0
- package/dist/languages/chunks/chunk-CEZSJJBE.js.map +1 -0
- package/dist/languages/chunks/chunk-CJPWN3UM.cjs +33 -0
- package/dist/languages/chunks/chunk-CJPWN3UM.cjs.map +1 -0
- package/dist/languages/chunks/chunk-CZUFBVAP.cjs +36 -0
- package/dist/languages/chunks/chunk-CZUFBVAP.cjs.map +1 -0
- package/dist/languages/chunks/chunk-DFQ7CZ43.js +32 -0
- package/dist/languages/chunks/chunk-DFQ7CZ43.js.map +1 -0
- package/dist/languages/chunks/chunk-DZIG3L3C.js +33 -0
- package/dist/languages/chunks/chunk-DZIG3L3C.js.map +1 -0
- package/dist/languages/chunks/chunk-EEEJDKZH.cjs +41 -0
- package/dist/languages/chunks/chunk-EEEJDKZH.cjs.map +1 -0
- package/dist/languages/chunks/chunk-EH3CS6QF.cjs +39 -0
- package/dist/languages/chunks/chunk-EH3CS6QF.cjs.map +1 -0
- package/dist/languages/chunks/chunk-EQVZR5WU.js +36 -0
- package/dist/languages/chunks/chunk-EQVZR5WU.js.map +1 -0
- package/dist/languages/chunks/chunk-EY2I2PZI.cjs +42 -0
- package/dist/languages/chunks/chunk-EY2I2PZI.cjs.map +1 -0
- package/dist/languages/chunks/chunk-FDD6SCYE.js +38 -0
- package/dist/languages/chunks/chunk-FDD6SCYE.js.map +1 -0
- package/dist/languages/chunks/chunk-FDL3DCUR.cjs +38 -0
- package/dist/languages/chunks/chunk-FDL3DCUR.cjs.map +1 -0
- package/dist/languages/chunks/chunk-FQZEBNEC.js +32 -0
- package/dist/languages/chunks/chunk-FQZEBNEC.js.map +1 -0
- package/dist/languages/chunks/chunk-FXKGDEEF.js +32 -0
- package/dist/languages/chunks/chunk-FXKGDEEF.js.map +1 -0
- package/dist/languages/chunks/chunk-G727KC5F.js +34 -0
- package/dist/languages/chunks/chunk-G727KC5F.js.map +1 -0
- package/dist/languages/chunks/chunk-HRTBXKAS.js +34 -0
- package/dist/languages/chunks/chunk-HRTBXKAS.js.map +1 -0
- package/dist/languages/chunks/chunk-HTWLJAXE.cjs +34 -0
- package/dist/languages/chunks/chunk-HTWLJAXE.cjs.map +1 -0
- package/dist/languages/chunks/chunk-IG2BHTIU.js +50 -0
- package/dist/languages/chunks/chunk-IG2BHTIU.js.map +1 -0
- package/dist/languages/chunks/chunk-JJGECSB7.js +44 -0
- package/dist/languages/chunks/chunk-JJGECSB7.js.map +1 -0
- package/dist/languages/chunks/chunk-KPGJSWSP.js +32 -0
- package/dist/languages/chunks/chunk-KPGJSWSP.js.map +1 -0
- package/dist/languages/chunks/chunk-LGZCHKVL.cjs +50 -0
- package/dist/languages/chunks/chunk-LGZCHKVL.cjs.map +1 -0
- package/dist/languages/chunks/chunk-LMRNA2XQ.cjs +35 -0
- package/dist/languages/chunks/chunk-LMRNA2XQ.cjs.map +1 -0
- package/dist/languages/chunks/chunk-NS4L6RCJ.js +42 -0
- package/dist/languages/chunks/chunk-NS4L6RCJ.js.map +1 -0
- package/dist/languages/chunks/chunk-OGVDC4MV.js +33 -0
- package/dist/languages/chunks/chunk-OGVDC4MV.js.map +1 -0
- package/dist/languages/chunks/chunk-OOI6MH2H.js +47 -0
- package/dist/languages/chunks/chunk-OOI6MH2H.js.map +1 -0
- package/dist/languages/chunks/chunk-OSHTQPFA.js +35 -0
- package/dist/languages/chunks/chunk-OSHTQPFA.js.map +1 -0
- package/dist/languages/chunks/chunk-P2ONCOPE.js +33 -0
- package/dist/languages/chunks/chunk-P2ONCOPE.js.map +1 -0
- package/dist/languages/chunks/chunk-PC4BLDMN.js +41 -0
- package/dist/languages/chunks/chunk-PC4BLDMN.js.map +1 -0
- package/dist/languages/chunks/chunk-Q7Z57FEP.js +39 -0
- package/dist/languages/chunks/chunk-Q7Z57FEP.js.map +1 -0
- package/dist/languages/chunks/chunk-SFDLZDQC.cjs +36 -0
- package/dist/languages/chunks/chunk-SFDLZDQC.cjs.map +1 -0
- package/dist/languages/chunks/chunk-SLSZETLO.js +39 -0
- package/dist/languages/chunks/chunk-SLSZETLO.js.map +1 -0
- package/dist/languages/chunks/chunk-T5QEXBP6.cjs +39 -0
- package/dist/languages/chunks/chunk-T5QEXBP6.cjs.map +1 -0
- package/dist/languages/chunks/chunk-TM54B2L7.cjs +34 -0
- package/dist/languages/chunks/chunk-TM54B2L7.cjs.map +1 -0
- package/dist/languages/chunks/chunk-UYYD7BWL.cjs +32 -0
- package/dist/languages/chunks/chunk-UYYD7BWL.cjs.map +1 -0
- package/dist/languages/chunks/chunk-V3EPOWJS.cjs +32 -0
- package/dist/languages/chunks/chunk-V3EPOWJS.cjs.map +1 -0
- package/dist/languages/chunks/chunk-W4Y2BHDV.cjs +33 -0
- package/dist/languages/chunks/chunk-W4Y2BHDV.cjs.map +1 -0
- package/dist/languages/chunks/chunk-W7UIUU64.cjs +32 -0
- package/dist/languages/chunks/chunk-W7UIUU64.cjs.map +1 -0
- package/dist/languages/chunks/chunk-WOTY3GYE.cjs +44 -0
- package/dist/languages/chunks/chunk-WOTY3GYE.cjs.map +1 -0
- package/dist/languages/chunks/chunk-WYH4M6NK.js +78 -0
- package/dist/languages/chunks/chunk-WYH4M6NK.js.map +1 -0
- package/dist/languages/chunks/chunk-XFSNOEMB.cjs +32 -0
- package/dist/languages/chunks/chunk-XFSNOEMB.cjs.map +1 -0
- package/dist/languages/chunks/chunk-XHHTLZRZ.cjs +78 -0
- package/dist/languages/chunks/chunk-XHHTLZRZ.cjs.map +1 -0
- package/dist/languages/chunks/chunk-YTZILXWL.cjs +35 -0
- package/dist/languages/chunks/chunk-YTZILXWL.cjs.map +1 -0
- package/dist/languages/chunks/chunk-ZLMXABY7.js +38 -0
- package/dist/languages/chunks/chunk-ZLMXABY7.js.map +1 -0
- package/dist/languages/de.cjs +7 -0
- package/dist/languages/de.cjs.map +1 -0
- package/dist/languages/de.d.ts +47 -0
- package/dist/languages/de.d.ts.map +1 -0
- package/dist/languages/de.js +7 -0
- package/dist/languages/de.js.map +1 -0
- package/dist/languages/en.cjs +7 -0
- package/dist/languages/en.cjs.map +1 -0
- package/dist/languages/en.d.ts +54 -0
- package/dist/languages/en.d.ts.map +1 -0
- package/dist/languages/en.js +7 -0
- package/dist/languages/en.js.map +1 -0
- package/dist/languages/es.cjs +7 -0
- package/dist/languages/es.cjs.map +1 -0
- package/dist/languages/es.d.ts +47 -0
- package/dist/languages/es.d.ts.map +1 -0
- package/dist/languages/es.js +7 -0
- package/dist/languages/es.js.map +1 -0
- package/dist/languages/fr.cjs +7 -0
- package/dist/languages/fr.cjs.map +1 -0
- package/dist/languages/fr.d.ts +47 -0
- package/dist/languages/fr.d.ts.map +1 -0
- package/dist/languages/fr.js +7 -0
- package/dist/languages/fr.js.map +1 -0
- package/dist/languages/he.cjs +7 -0
- package/dist/languages/he.cjs.map +1 -0
- package/dist/languages/he.d.ts +51 -0
- package/dist/languages/he.d.ts.map +1 -0
- package/dist/languages/he.js +7 -0
- package/dist/languages/he.js.map +1 -0
- package/dist/languages/hi.cjs +7 -0
- package/dist/languages/hi.cjs.map +1 -0
- package/dist/languages/hi.d.ts +54 -0
- package/dist/languages/hi.d.ts.map +1 -0
- package/dist/languages/hi.js +7 -0
- package/dist/languages/hi.js.map +1 -0
- package/dist/languages/id.cjs +7 -0
- package/dist/languages/id.cjs.map +1 -0
- package/dist/languages/id.d.ts +45 -0
- package/dist/languages/id.d.ts.map +1 -0
- package/dist/languages/id.js +7 -0
- package/dist/languages/id.js.map +1 -0
- package/dist/languages/index.cjs +99 -0
- package/dist/languages/index.cjs.map +1 -0
- package/dist/languages/index.d.ts +30 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/index.js +99 -0
- package/dist/languages/index.js.map +1 -0
- package/dist/languages/it.cjs +7 -0
- package/dist/languages/it.cjs.map +1 -0
- package/dist/languages/it.d.ts +48 -0
- package/dist/languages/it.d.ts.map +1 -0
- package/dist/languages/it.js +7 -0
- package/dist/languages/it.js.map +1 -0
- package/dist/languages/ja.cjs +7 -0
- package/dist/languages/ja.cjs.map +1 -0
- package/dist/languages/ja.d.ts +58 -0
- package/dist/languages/ja.d.ts.map +1 -0
- package/dist/languages/ja.js +7 -0
- package/dist/languages/ja.js.map +1 -0
- package/dist/languages/ko.cjs +7 -0
- package/dist/languages/ko.cjs.map +1 -0
- package/dist/languages/ko.d.ts +61 -0
- package/dist/languages/ko.d.ts.map +1 -0
- package/dist/languages/ko.js +7 -0
- package/dist/languages/ko.js.map +1 -0
- package/dist/languages/ms.cjs +7 -0
- package/dist/languages/ms.cjs.map +1 -0
- package/dist/languages/ms.d.ts +44 -0
- package/dist/languages/ms.d.ts.map +1 -0
- package/dist/languages/ms.js +7 -0
- package/dist/languages/ms.js.map +1 -0
- package/dist/languages/pl.cjs +7 -0
- package/dist/languages/pl.cjs.map +1 -0
- package/dist/languages/pl.d.ts +50 -0
- package/dist/languages/pl.d.ts.map +1 -0
- package/dist/languages/pl.js +7 -0
- package/dist/languages/pl.js.map +1 -0
- package/dist/languages/pt.cjs +7 -0
- package/dist/languages/pt.cjs.map +1 -0
- package/dist/languages/pt.d.ts +46 -0
- package/dist/languages/pt.d.ts.map +1 -0
- package/dist/languages/pt.js +7 -0
- package/dist/languages/pt.js.map +1 -0
- package/dist/languages/qu.cjs +7 -0
- package/dist/languages/qu.cjs.map +1 -0
- package/dist/languages/qu.d.ts +48 -0
- package/dist/languages/qu.d.ts.map +1 -0
- package/dist/languages/qu.js +7 -0
- package/dist/languages/qu.js.map +1 -0
- package/dist/languages/ru.cjs +7 -0
- package/dist/languages/ru.cjs.map +1 -0
- package/dist/languages/ru.d.ts +50 -0
- package/dist/languages/ru.d.ts.map +1 -0
- package/dist/languages/ru.js +7 -0
- package/dist/languages/ru.js.map +1 -0
- package/dist/languages/sw.cjs +7 -0
- package/dist/languages/sw.cjs.map +1 -0
- package/dist/languages/sw.d.ts +45 -0
- package/dist/languages/sw.d.ts.map +1 -0
- package/dist/languages/sw.js +7 -0
- package/dist/languages/sw.js.map +1 -0
- package/dist/languages/th.cjs +7 -0
- package/dist/languages/th.cjs.map +1 -0
- package/dist/languages/th.d.ts +48 -0
- package/dist/languages/th.d.ts.map +1 -0
- package/dist/languages/th.js +7 -0
- package/dist/languages/th.js.map +1 -0
- package/dist/languages/tl.cjs +7 -0
- package/dist/languages/tl.cjs.map +1 -0
- package/dist/languages/tl.d.ts +44 -0
- package/dist/languages/tl.d.ts.map +1 -0
- package/dist/languages/tl.js +7 -0
- package/dist/languages/tl.js.map +1 -0
- package/dist/languages/tr.cjs +7 -0
- package/dist/languages/tr.cjs.map +1 -0
- package/dist/languages/tr.d.ts +57 -0
- package/dist/languages/tr.d.ts.map +1 -0
- package/dist/languages/tr.js +7 -0
- package/dist/languages/tr.js.map +1 -0
- package/dist/languages/types.d.ts +137 -0
- package/dist/languages/types.d.ts.map +1 -0
- package/dist/languages/uk.cjs +7 -0
- package/dist/languages/uk.cjs.map +1 -0
- package/dist/languages/uk.d.ts +50 -0
- package/dist/languages/uk.d.ts.map +1 -0
- package/dist/languages/uk.js +7 -0
- package/dist/languages/uk.js.map +1 -0
- package/dist/languages/vi.cjs +7 -0
- package/dist/languages/vi.cjs.map +1 -0
- package/dist/languages/vi.d.ts +47 -0
- package/dist/languages/vi.d.ts.map +1 -0
- package/dist/languages/vi.js +7 -0
- package/dist/languages/vi.js.map +1 -0
- package/dist/languages/zh.cjs +7 -0
- package/dist/languages/zh.cjs.map +1 -0
- package/dist/languages/zh.d.ts +49 -0
- package/dist/languages/zh.d.ts.map +1 -0
- package/dist/languages/zh.js +7 -0
- package/dist/languages/zh.js.map +1 -0
- package/dist/testing/index.js +1416 -930
- package/dist/testing/index.js.map +1 -1
- package/package.json +130 -5
- package/src/index.ts +2 -0
- package/src/languages/ar.ts +41 -0
- package/src/languages/bn.ts +45 -0
- package/src/languages/de.ts +37 -0
- package/src/languages/en.ts +36 -0
- package/src/languages/es.ts +40 -0
- package/src/languages/fr.ts +36 -0
- package/src/languages/he.ts +38 -0
- package/src/languages/hi.ts +44 -0
- package/src/languages/id.ts +34 -0
- package/src/languages/index.ts +42 -0
- package/src/languages/it.ts +38 -0
- package/src/languages/ja.ts +49 -0
- package/src/languages/ko.ts +50 -0
- package/src/languages/languages.test.ts +57 -0
- package/src/languages/ms.ts +33 -0
- package/src/languages/pl.ts +39 -0
- package/src/languages/pt.ts +34 -0
- package/src/languages/qu.ts +34 -0
- package/src/languages/ru.ts +37 -0
- package/src/languages/sw.ts +34 -0
- package/src/languages/th.ts +44 -0
- package/src/languages/tl.ts +37 -0
- package/src/languages/tr.ts +76 -0
- package/src/languages/types.ts +145 -0
- package/src/languages/uk.ts +37 -0
- package/src/languages/vi.ts +36 -0
- package/src/languages/zh.ts +36 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// src/languages/th.ts
|
|
2
|
+
var thaiGrammar = {
|
|
3
|
+
code: "th",
|
|
4
|
+
name: "Thai",
|
|
5
|
+
nativeName: "\u0E44\u0E17\u0E22",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "thai",
|
|
8
|
+
wordOrder: "SVO",
|
|
9
|
+
markingStrategy: "preposition",
|
|
10
|
+
usesSpaces: false,
|
|
11
|
+
// Thai doesn't use spaces between words
|
|
12
|
+
defaultVerbForm: "base",
|
|
13
|
+
verb: {
|
|
14
|
+
position: "second",
|
|
15
|
+
subjectDrop: true
|
|
16
|
+
},
|
|
17
|
+
possessive: {
|
|
18
|
+
marker: "\u0E02\u0E2D\u0E07",
|
|
19
|
+
markerPosition: "between"
|
|
20
|
+
},
|
|
21
|
+
roleMarkers: {
|
|
22
|
+
patient: { primary: "", position: "before" },
|
|
23
|
+
// Thai is isolating - no case markers
|
|
24
|
+
destination: { primary: "\u0E43\u0E19", alternatives: ["\u0E44\u0E1B\u0E22\u0E31\u0E07"], position: "before" },
|
|
25
|
+
source: { primary: "\u0E08\u0E32\u0E01", position: "before" },
|
|
26
|
+
style: { primary: "\u0E14\u0E49\u0E27\u0E22", position: "before" }
|
|
27
|
+
// No `event` role marker: a command's event argument (`trigger foo` /
|
|
28
|
+
// `send foo`) is an UNMARKED object in Thai, like every other SVO profile
|
|
29
|
+
// (es/zh/id/…). `เมื่อ` is the temporal "when/on" marker and belongs only on
|
|
30
|
+
// the event-HANDLER head — which uses `eventHandler.eventMarker` (below),
|
|
31
|
+
// not this role marker. Carrying it here generated `ทริกเกอร์ เมื่อ {event}`,
|
|
32
|
+
// which never matched the transformer's `ทริกเกอร์ {event}` → trigger/send
|
|
33
|
+
// dropped (th behavior-draggable/removable/resizable/sortable lossy).
|
|
34
|
+
},
|
|
35
|
+
tokenization: {
|
|
36
|
+
boundaryStrategy: "character"
|
|
37
|
+
// Character-based like Chinese/Japanese
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export {
|
|
42
|
+
thaiGrammar
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=chunk-JJGECSB7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/th.ts"],"sourcesContent":["/**\n * Thai Grammar\n *\n * SVO word order, prepositions, Thai script.\n * Isolating language (like Chinese) with no inflection.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const thaiGrammar = {\n code: 'th',\n name: 'Thai',\n nativeName: 'ไทย',\n direction: 'ltr',\n script: 'thai',\n wordOrder: 'SVO',\n markingStrategy: 'preposition',\n usesSpaces: false, // Thai doesn't use spaces between words\n defaultVerbForm: 'base',\n verb: {\n position: 'second',\n subjectDrop: true,\n },\n possessive: {\n marker: 'ของ',\n markerPosition: 'between',\n },\n roleMarkers: {\n patient: { primary: '', position: 'before' }, // Thai is isolating - no case markers\n destination: { primary: 'ใน', alternatives: ['ไปยัง'], position: 'before' },\n source: { primary: 'จาก', position: 'before' },\n style: { primary: 'ด้วย', position: 'before' },\n // No `event` role marker: a command's event argument (`trigger foo` /\n // `send foo`) is an UNMARKED object in Thai, like every other SVO profile\n // (es/zh/id/…). `เมื่อ` is the temporal \"when/on\" marker and belongs only on\n // the event-HANDLER head — which uses `eventHandler.eventMarker` (below),\n // not this role marker. Carrying it here generated `ทริกเกอร์ เมื่อ {event}`,\n // which never matched the transformer's `ทริกเกอร์ {event}` → trigger/send\n // dropped (th behavior-draggable/removable/resizable/sortable lossy).\n },\n tokenization: {\n boundaryStrategy: 'character', // Character-based like Chinese/Japanese\n },\n} satisfies GrammarProfile;\n"],"mappings":";AASO,IAAM,cAAc;AAAA,EACzB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA;AAAA,EACZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,aAAa;AAAA,IACX,SAAS,EAAE,SAAS,IAAI,UAAU,SAAS;AAAA;AAAA,IAC3C,aAAa,EAAE,SAAS,gBAAM,cAAc,CAAC,gCAAO,GAAG,UAAU,SAAS;AAAA,IAC1E,QAAQ,EAAE,SAAS,sBAAO,UAAU,SAAS;AAAA,IAC7C,OAAO,EAAE,SAAS,4BAAQ,UAAU,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/C;AAAA,EACA,cAAc;AAAA,IACZ,kBAAkB;AAAA;AAAA,EACpB;AACF;","names":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// src/languages/ms.ts
|
|
2
|
+
var malayGrammar = {
|
|
3
|
+
code: "ms",
|
|
4
|
+
name: "Malay",
|
|
5
|
+
nativeName: "Melayu",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "latin",
|
|
8
|
+
wordOrder: "SVO",
|
|
9
|
+
markingStrategy: "preposition",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
defaultVerbForm: "base",
|
|
12
|
+
verb: {
|
|
13
|
+
position: "start",
|
|
14
|
+
subjectDrop: true
|
|
15
|
+
},
|
|
16
|
+
possessive: {
|
|
17
|
+
marker: "",
|
|
18
|
+
// Malay often uses suffix or juxtaposition
|
|
19
|
+
markerPosition: "after-object"
|
|
20
|
+
},
|
|
21
|
+
roleMarkers: {
|
|
22
|
+
destination: { primary: "ke", alternatives: ["pada"], position: "before" },
|
|
23
|
+
source: { primary: "dari", position: "before" },
|
|
24
|
+
patient: { primary: "", position: "before" },
|
|
25
|
+
style: { primary: "dengan", position: "before" }
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export {
|
|
30
|
+
malayGrammar
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=chunk-KPGJSWSP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/ms.ts"],"sourcesContent":["/**\n * Malay Grammar\n *\n * SVO word order, prepositions, space-separated.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const malayGrammar = {\n code: 'ms',\n name: 'Malay',\n nativeName: 'Melayu',\n direction: 'ltr',\n script: 'latin',\n wordOrder: 'SVO',\n markingStrategy: 'preposition',\n usesSpaces: true,\n defaultVerbForm: 'base',\n verb: {\n position: 'start',\n subjectDrop: true,\n },\n possessive: {\n marker: '', // Malay often uses suffix or juxtaposition\n markerPosition: 'after-object',\n },\n roleMarkers: {\n destination: { primary: 'ke', alternatives: ['pada'], position: 'before' },\n source: { primary: 'dari', position: 'before' },\n patient: { primary: '', position: 'before' },\n style: { primary: 'dengan', position: 'before' },\n },\n} satisfies GrammarProfile;\n"],"mappings":";AAQO,IAAM,eAAe;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,aAAa;AAAA,IACX,aAAa,EAAE,SAAS,MAAM,cAAc,CAAC,MAAM,GAAG,UAAU,SAAS;AAAA,IACzE,QAAQ,EAAE,SAAS,QAAQ,UAAU,SAAS;AAAA,IAC9C,SAAS,EAAE,SAAS,IAAI,UAAU,SAAS;AAAA,IAC3C,OAAO,EAAE,SAAS,UAAU,UAAU,SAAS;AAAA,EACjD;AACF;","names":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/languages/ko.ts
|
|
2
|
+
var koreanGrammar = {
|
|
3
|
+
code: "ko",
|
|
4
|
+
name: "Korean",
|
|
5
|
+
nativeName: "\uD55C\uAD6D\uC5B4",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "hangul",
|
|
8
|
+
wordOrder: "SOV",
|
|
9
|
+
markingStrategy: "particle",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
// Korean uses spaces between words, but particles attach
|
|
12
|
+
verb: {
|
|
13
|
+
position: "end",
|
|
14
|
+
suffixes: ["\uB2E4", "\uC694", "\uB2C8\uB2E4", "\uC138\uC694"],
|
|
15
|
+
subjectDrop: true
|
|
16
|
+
},
|
|
17
|
+
possessive: {
|
|
18
|
+
marker: "\uC758",
|
|
19
|
+
// Possessive particle
|
|
20
|
+
markerPosition: "between"
|
|
21
|
+
},
|
|
22
|
+
roleMarkers: {
|
|
23
|
+
patient: { primary: "\uC744", alternatives: ["\uB97C"], position: "after" },
|
|
24
|
+
// 에서 is deliberately NOT a destination alternative: it is the SOURCE
|
|
25
|
+
// primary ("at/from"), and listing it here let an unconsumed wait-line
|
|
26
|
+
// tail (`문서 에서` — from document) satisfy the next SOV clause's
|
|
27
|
+
// optional destination group (behavior-draggable's add captured
|
|
28
|
+
// destination=문서 instead of the schema `me` default). A real Korean
|
|
29
|
+
// destination renders 에/으로/로/의.
|
|
30
|
+
destination: { primary: "\uC5D0", alternatives: ["\uC73C\uB85C", "\uB85C", "\uC758"], position: "after" },
|
|
31
|
+
source: { primary: "\uC5D0\uC11C", alternatives: ["\uBD80\uD130"], position: "after" },
|
|
32
|
+
style: { primary: "\uB85C", alternatives: ["\uC73C\uB85C"], position: "after" },
|
|
33
|
+
event: { primary: "\uC744", alternatives: ["\uB97C"], position: "after" }
|
|
34
|
+
// Event as object marker
|
|
35
|
+
},
|
|
36
|
+
tokenization: {
|
|
37
|
+
particles: ["\uC744", "\uB97C", "\uC774", "\uAC00", "\uC740", "\uB294", "\uC5D0", "\uC5D0\uC11C", "\uC73C\uB85C", "\uB85C", "\uC640", "\uACFC", "\uB3C4"],
|
|
38
|
+
boundaryStrategy: "space"
|
|
39
|
+
},
|
|
40
|
+
// Korean writes a particle onto its noun (`#out에`, `나를`; M2 N5).
|
|
41
|
+
attachedMarkers: {
|
|
42
|
+
markers: ["\uC744", "\uB97C", "\uC5D0", "\uC73C\uB85C", "\uB85C", "\uC758", "\uC5D0\uC11C", "\uBD80\uD130", "\uC5D0\uAC8C"],
|
|
43
|
+
afterWords: "all"
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
exports.koreanGrammar = koreanGrammar;
|
|
50
|
+
//# sourceMappingURL=chunk-LGZCHKVL.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hyperfixi/hyperfixi/packages/framework/dist/languages/chunks/chunk-LGZCHKVL.cjs","../../../src/languages/ko.ts"],"names":[],"mappings":"AAAA;ACSO,IAAM,cAAA,EAAgB;AAAA,EAC3B,IAAA,EAAM,IAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,UAAA,EAAY,oBAAA;AAAA,EACZ,SAAA,EAAW,KAAA;AAAA,EACX,MAAA,EAAQ,QAAA;AAAA,EACR,SAAA,EAAW,KAAA;AAAA,EACX,eAAA,EAAiB,UAAA;AAAA,EACjB,UAAA,EAAY,IAAA;AAAA;AAAA,EACZ,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,KAAA;AAAA,IACV,QAAA,EAAU,CAAC,QAAA,EAAK,QAAA,EAAK,cAAA,EAAM,cAAI,CAAA;AAAA,IAC/B,WAAA,EAAa;AAAA,EACf,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ,QAAA;AAAA;AAAA,IACR,cAAA,EAAgB;AAAA,EAClB,CAAA;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,EAAE,OAAA,EAAS,QAAA,EAAK,YAAA,EAAc,CAAC,QAAG,CAAA,EAAG,QAAA,EAAU,QAAQ,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOhE,WAAA,EAAa,EAAE,OAAA,EAAS,QAAA,EAAK,YAAA,EAAc,CAAC,cAAA,EAAM,QAAA,EAAK,QAAG,CAAA,EAAG,QAAA,EAAU,QAAQ,CAAA;AAAA,IAC/E,MAAA,EAAQ,EAAE,OAAA,EAAS,cAAA,EAAM,YAAA,EAAc,CAAC,cAAI,CAAA,EAAG,QAAA,EAAU,QAAQ,CAAA;AAAA,IACjE,KAAA,EAAO,EAAE,OAAA,EAAS,QAAA,EAAK,YAAA,EAAc,CAAC,cAAI,CAAA,EAAG,QAAA,EAAU,QAAQ,CAAA;AAAA,IAC/D,KAAA,EAAO,EAAE,OAAA,EAAS,QAAA,EAAK,YAAA,EAAc,CAAC,QAAG,CAAA,EAAG,QAAA,EAAU,QAAQ;AAAA;AAAA,EAChE,CAAA;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,SAAA,EAAW,CAAC,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,cAAA,EAAM,cAAA,EAAM,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAG,CAAA;AAAA,IAC7E,gBAAA,EAAkB;AAAA,EACpB,CAAA;AAAA;AAAA,EAEA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,CAAC,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,cAAA,EAAM,QAAA,EAAK,QAAA,EAAK,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA;AAAA,IACzD,UAAA,EAAY;AAAA,EACd;AACF,CAAA;ADJA;AACA;AACE;AACF,sCAAC","file":"/home/runner/work/hyperfixi/hyperfixi/packages/framework/dist/languages/chunks/chunk-LGZCHKVL.cjs","sourcesContent":[null,"/**\n * Korean Grammar\n *\n * SOV word order, particles (을/를, 에, 에서, etc.), space-separated between words.\n * Agglutinative language with particles attaching to words.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const koreanGrammar = {\n code: 'ko',\n name: 'Korean',\n nativeName: '한국어',\n direction: 'ltr',\n script: 'hangul',\n wordOrder: 'SOV',\n markingStrategy: 'particle',\n usesSpaces: true, // Korean uses spaces between words, but particles attach\n verb: {\n position: 'end',\n suffixes: ['다', '요', '니다', '세요'],\n subjectDrop: true,\n },\n possessive: {\n marker: '의', // Possessive particle\n markerPosition: 'between',\n },\n roleMarkers: {\n patient: { primary: '을', alternatives: ['를'], position: 'after' },\n // 에서 is deliberately NOT a destination alternative: it is the SOURCE\n // primary (\"at/from\"), and listing it here let an unconsumed wait-line\n // tail (`문서 에서` — from document) satisfy the next SOV clause's\n // optional destination group (behavior-draggable's add captured\n // destination=문서 instead of the schema `me` default). A real Korean\n // destination renders 에/으로/로/의.\n destination: { primary: '에', alternatives: ['으로', '로', '의'], position: 'after' },\n source: { primary: '에서', alternatives: ['부터'], position: 'after' },\n style: { primary: '로', alternatives: ['으로'], position: 'after' },\n event: { primary: '을', alternatives: ['를'], position: 'after' }, // Event as object marker\n },\n tokenization: {\n particles: ['을', '를', '이', '가', '은', '는', '에', '에서', '으로', '로', '와', '과', '도'],\n boundaryStrategy: 'space',\n },\n // Korean writes a particle onto its noun (`#out에`, `나를`; M2 N5).\n attachedMarkers: {\n markers: ['을', '를', '에', '으로', '로', '의', '에서', '부터', '에게'],\n afterWords: 'all',\n },\n} satisfies GrammarProfile;\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/languages/it.ts
|
|
2
|
+
var italianGrammar = {
|
|
3
|
+
code: "it",
|
|
4
|
+
name: "Italian",
|
|
5
|
+
nativeName: "Italiano",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "latin",
|
|
8
|
+
wordOrder: "SVO",
|
|
9
|
+
markingStrategy: "preposition",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
// Infinitive is standard for Italian software UI (Salvare, Annullare, Aprire)
|
|
12
|
+
// This matches macOS, Windows, and web app conventions
|
|
13
|
+
defaultVerbForm: "infinitive",
|
|
14
|
+
verb: {
|
|
15
|
+
position: "start",
|
|
16
|
+
subjectDrop: true
|
|
17
|
+
},
|
|
18
|
+
possessive: {
|
|
19
|
+
marker: "di",
|
|
20
|
+
// Italian uses "di" for general possession
|
|
21
|
+
markerPosition: "before-property",
|
|
22
|
+
usePossessiveAdjectives: true
|
|
23
|
+
},
|
|
24
|
+
roleMarkers: {
|
|
25
|
+
destination: { primary: "in", alternatives: ["su", "a"], position: "before" },
|
|
26
|
+
source: { primary: "da", alternatives: ["di"], position: "before" },
|
|
27
|
+
patient: { primary: "", position: "before" },
|
|
28
|
+
style: { primary: "con", position: "before" }
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
exports.italianGrammar = italianGrammar;
|
|
35
|
+
//# sourceMappingURL=chunk-LMRNA2XQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hyperfixi/hyperfixi/packages/framework/dist/languages/chunks/chunk-LMRNA2XQ.cjs","../../../src/languages/it.ts"],"names":[],"mappings":"AAAA;ACUO,IAAM,eAAA,EAAiB;AAAA,EAC5B,IAAA,EAAM,IAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,UAAA,EAAY,UAAA;AAAA,EACZ,SAAA,EAAW,KAAA;AAAA,EACX,MAAA,EAAQ,OAAA;AAAA,EACR,SAAA,EAAW,KAAA;AAAA,EACX,eAAA,EAAiB,aAAA;AAAA,EACjB,UAAA,EAAY,IAAA;AAAA;AAAA;AAAA,EAGZ,eAAA,EAAiB,YAAA;AAAA,EACjB,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,OAAA;AAAA,IACV,WAAA,EAAa;AAAA,EACf,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA;AAAA,IACR,cAAA,EAAgB,iBAAA;AAAA,IAChB,uBAAA,EAAyB;AAAA,EAC3B,CAAA;AAAA,EACA,WAAA,EAAa;AAAA,IACX,WAAA,EAAa,EAAE,OAAA,EAAS,IAAA,EAAM,YAAA,EAAc,CAAC,IAAA,EAAM,GAAG,CAAA,EAAG,QAAA,EAAU,SAAS,CAAA;AAAA,IAC5E,MAAA,EAAQ,EAAE,OAAA,EAAS,IAAA,EAAM,YAAA,EAAc,CAAC,IAAI,CAAA,EAAG,QAAA,EAAU,SAAS,CAAA;AAAA,IAClE,OAAA,EAAS,EAAE,OAAA,EAAS,EAAA,EAAI,QAAA,EAAU,SAAS,CAAA;AAAA,IAC3C,KAAA,EAAO,EAAE,OAAA,EAAS,KAAA,EAAO,QAAA,EAAU,SAAS;AAAA,EAC9C;AACF,CAAA;ADPA;AACA;AACE;AACF,wCAAC","file":"/home/runner/work/hyperfixi/hyperfixi/packages/framework/dist/languages/chunks/chunk-LMRNA2XQ.cjs","sourcesContent":[null,"/**\n * Italian Grammar\n *\n * SVO word order, prepositions, space-separated.\n * Features rich verb conjugation with pro-drop (subject omission).\n * Very similar to Spanish but with Italian-specific vocabulary.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const italianGrammar = {\n code: 'it',\n name: 'Italian',\n nativeName: 'Italiano',\n direction: 'ltr',\n script: 'latin',\n wordOrder: 'SVO',\n markingStrategy: 'preposition',\n usesSpaces: true,\n // Infinitive is standard for Italian software UI (Salvare, Annullare, Aprire)\n // This matches macOS, Windows, and web app conventions\n defaultVerbForm: 'infinitive',\n verb: {\n position: 'start',\n subjectDrop: true,\n },\n possessive: {\n marker: 'di', // Italian uses \"di\" for general possession\n markerPosition: 'before-property',\n usePossessiveAdjectives: true,\n },\n roleMarkers: {\n destination: { primary: 'in', alternatives: ['su', 'a'], position: 'before' },\n source: { primary: 'da', alternatives: ['di'], position: 'before' },\n patient: { primary: '', position: 'before' },\n style: { primary: 'con', position: 'before' },\n },\n} satisfies GrammarProfile;\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// src/languages/bn.ts
|
|
2
|
+
var bengaliGrammar = {
|
|
3
|
+
code: "bn",
|
|
4
|
+
name: "Bengali",
|
|
5
|
+
nativeName: "\u09AC\u09BE\u0982\u09B2\u09BE",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "bengali",
|
|
8
|
+
wordOrder: "SOV",
|
|
9
|
+
markingStrategy: "postposition",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
defaultVerbForm: "imperative",
|
|
12
|
+
verb: {
|
|
13
|
+
position: "end",
|
|
14
|
+
suffixes: ["\u09C1\u09A8", "\u09CB", "\u09BE", "\u09C7", "\u09BF"],
|
|
15
|
+
subjectDrop: true
|
|
16
|
+
},
|
|
17
|
+
possessive: {
|
|
18
|
+
marker: "\u09B0",
|
|
19
|
+
markerPosition: "between"
|
|
20
|
+
},
|
|
21
|
+
roleMarkers: {
|
|
22
|
+
patient: { primary: "\u0995\u09C7", position: "after" },
|
|
23
|
+
destination: { primary: "\u09A4\u09C7", alternatives: ["\u098F"], position: "after" },
|
|
24
|
+
source: { primary: "\u09A5\u09C7\u0995\u09C7", position: "after" },
|
|
25
|
+
style: { primary: "\u09A6\u09BF\u09AF\u09BC\u09C7", position: "after" },
|
|
26
|
+
event: { primary: "\u09A4\u09C7", position: "after" }
|
|
27
|
+
},
|
|
28
|
+
tokenization: {
|
|
29
|
+
particles: ["\u0995\u09C7", "\u09A4\u09C7", "\u09A5\u09C7\u0995\u09C7", "\u09B0", "\u098F\u09B0", "\u09A6\u09BF\u09AF\u09BC\u09C7", "\u099C\u09A8\u09CD\u09AF", "\u09AA\u09B0\u09CD\u09AF\u09A8\u09CD\u09A4"],
|
|
30
|
+
boundaryStrategy: "space"
|
|
31
|
+
},
|
|
32
|
+
// Bengali writes a case ending onto its noun (`#outকে`, `#outএ`; M2 N5).
|
|
33
|
+
// After a Bengali word only `কে`, which never changes: the locative is `তে`
|
|
34
|
+
// after a vowel and the vowel sign `ে` after a consonant (`ক্লিকে`), which
|
|
35
|
+
// the reader does not split.
|
|
36
|
+
attachedMarkers: { markers: ["\u0995\u09C7", "\u09A4\u09C7", "\u098F"], afterWords: ["\u0995\u09C7"] }
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export {
|
|
40
|
+
bengaliGrammar
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=chunk-NS4L6RCJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/bn.ts"],"sourcesContent":["/**\n * Bengali Grammar\n *\n * SOV word order, postpositions (কে, তে, থেকে, etc.), Bengali script.\n * Agglutinative language similar to Hindi.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const bengaliGrammar = {\n code: 'bn',\n name: 'Bengali',\n nativeName: 'বাংলা',\n direction: 'ltr',\n script: 'bengali',\n wordOrder: 'SOV',\n markingStrategy: 'postposition',\n usesSpaces: true,\n defaultVerbForm: 'imperative',\n verb: {\n position: 'end',\n suffixes: ['ুন', 'ো', 'া', 'ে', 'ি'],\n subjectDrop: true,\n },\n possessive: {\n marker: 'র',\n markerPosition: 'between',\n },\n roleMarkers: {\n patient: { primary: 'কে', position: 'after' },\n destination: { primary: 'তে', alternatives: ['এ'], position: 'after' },\n source: { primary: 'থেকে', position: 'after' },\n style: { primary: 'দিয়ে', position: 'after' },\n event: { primary: 'তে', position: 'after' },\n },\n tokenization: {\n particles: ['কে', 'তে', 'থেকে', 'র', 'এর', 'দিয়ে', 'জন্য', 'পর্যন্ত'],\n boundaryStrategy: 'space',\n },\n // Bengali writes a case ending onto its noun (`#outকে`, `#outএ`; M2 N5).\n // After a Bengali word only `কে`, which never changes: the locative is `তে`\n // after a vowel and the vowel sign `ে` after a consonant (`ক্লিকে`), which\n // the reader does not split.\n attachedMarkers: { markers: ['কে', 'তে', 'এ'], afterWords: ['কে'] },\n} satisfies GrammarProfile;\n"],"mappings":";AASO,IAAM,iBAAiB;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,UAAU,CAAC,gBAAM,UAAK,UAAK,UAAK,QAAG;AAAA,IACnC,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,aAAa;AAAA,IACX,SAAS,EAAE,SAAS,gBAAM,UAAU,QAAQ;AAAA,IAC5C,aAAa,EAAE,SAAS,gBAAM,cAAc,CAAC,QAAG,GAAG,UAAU,QAAQ;AAAA,IACrE,QAAQ,EAAE,SAAS,4BAAQ,UAAU,QAAQ;AAAA,IAC7C,OAAO,EAAE,SAAS,kCAAS,UAAU,QAAQ;AAAA,IAC7C,OAAO,EAAE,SAAS,gBAAM,UAAU,QAAQ;AAAA,EAC5C;AAAA,EACA,cAAc;AAAA,IACZ,WAAW,CAAC,gBAAM,gBAAM,4BAAQ,UAAK,gBAAM,kCAAS,4BAAQ,4CAAS;AAAA,IACrE,kBAAkB;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,EAAE,SAAS,CAAC,gBAAM,gBAAM,QAAG,GAAG,YAAY,CAAC,cAAI,EAAE;AACpE;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// src/languages/qu.ts
|
|
2
|
+
var quechuaGrammar = {
|
|
3
|
+
code: "qu",
|
|
4
|
+
name: "Quechua",
|
|
5
|
+
nativeName: "Runasimi",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "latin",
|
|
8
|
+
wordOrder: "SOV",
|
|
9
|
+
markingStrategy: "postposition",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
verb: {
|
|
12
|
+
position: "end",
|
|
13
|
+
subjectDrop: true
|
|
14
|
+
},
|
|
15
|
+
possessive: {
|
|
16
|
+
marker: "-pa",
|
|
17
|
+
// Genitive suffix
|
|
18
|
+
markerPosition: "after-object"
|
|
19
|
+
},
|
|
20
|
+
roleMarkers: {
|
|
21
|
+
patient: { primary: "ta", position: "after" },
|
|
22
|
+
destination: { primary: "man", alternatives: ["pa"], position: "after" },
|
|
23
|
+
source: { primary: "manta", position: "after" },
|
|
24
|
+
style: { primary: "wan", position: "after" },
|
|
25
|
+
event: { primary: "pi", position: "after" }
|
|
26
|
+
// Locative: event occurs "at" (pi)
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export {
|
|
31
|
+
quechuaGrammar
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=chunk-OGVDC4MV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/qu.ts"],"sourcesContent":["/**\n * Quechua Grammar\n *\n * SOV word order, postpositions (suffixes), polysynthetic/agglutinative.\n * Indigenous language of the Andean region with rich morphology.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const quechuaGrammar = {\n code: 'qu',\n name: 'Quechua',\n nativeName: 'Runasimi',\n direction: 'ltr',\n script: 'latin',\n wordOrder: 'SOV',\n markingStrategy: 'postposition',\n usesSpaces: true,\n verb: {\n position: 'end',\n subjectDrop: true,\n },\n possessive: {\n marker: '-pa', // Genitive suffix\n markerPosition: 'after-object',\n },\n roleMarkers: {\n patient: { primary: 'ta', position: 'after' },\n destination: { primary: 'man', alternatives: ['pa'], position: 'after' },\n source: { primary: 'manta', position: 'after' },\n style: { primary: 'wan', position: 'after' },\n event: { primary: 'pi', position: 'after' }, // Locative: event occurs \"at\" (pi)\n },\n} satisfies GrammarProfile;\n"],"mappings":";AASO,IAAM,iBAAiB;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,aAAa;AAAA,IACX,SAAS,EAAE,SAAS,MAAM,UAAU,QAAQ;AAAA,IAC5C,aAAa,EAAE,SAAS,OAAO,cAAc,CAAC,IAAI,GAAG,UAAU,QAAQ;AAAA,IACvE,QAAQ,EAAE,SAAS,SAAS,UAAU,QAAQ;AAAA,IAC9C,OAAO,EAAE,SAAS,OAAO,UAAU,QAAQ;AAAA,IAC3C,OAAO,EAAE,SAAS,MAAM,UAAU,QAAQ;AAAA;AAAA,EAC5C;AACF;","names":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// src/languages/ja.ts
|
|
2
|
+
var japaneseGrammar = {
|
|
3
|
+
code: "ja",
|
|
4
|
+
name: "Japanese",
|
|
5
|
+
nativeName: "\u65E5\u672C\u8A9E",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "cjk",
|
|
8
|
+
wordOrder: "SOV",
|
|
9
|
+
markingStrategy: "particle",
|
|
10
|
+
usesSpaces: false,
|
|
11
|
+
// Japanese uses verb stem/masu-stem form, no clear infinitive/imperative distinction
|
|
12
|
+
// for UI commands. Uses katakana loanwords (トグル) or native stems (切り替え)
|
|
13
|
+
defaultVerbForm: "base",
|
|
14
|
+
verb: {
|
|
15
|
+
position: "end",
|
|
16
|
+
suffixes: ["\u308B", "\u3066", "\u305F", "\u307E\u3059", "\u306A\u3044"],
|
|
17
|
+
subjectDrop: true
|
|
18
|
+
},
|
|
19
|
+
possessive: {
|
|
20
|
+
marker: "\u306E",
|
|
21
|
+
markerPosition: "between"
|
|
22
|
+
},
|
|
23
|
+
roleMarkers: {
|
|
24
|
+
patient: { primary: "\u3092", position: "after" },
|
|
25
|
+
destination: { primary: "\u306B", alternatives: ["\u3078", "\u3067", "\u306E"], position: "after" },
|
|
26
|
+
source: { primary: "\u304B\u3089", position: "after" },
|
|
27
|
+
style: { primary: "\u3067", position: "after" },
|
|
28
|
+
event: { primary: "\u3092", position: "after" }
|
|
29
|
+
// Event as object marker
|
|
30
|
+
// Possession marker for "X's Y" patterns
|
|
31
|
+
// Note: の is used between target and patient: #button の .active
|
|
32
|
+
},
|
|
33
|
+
tokenization: {
|
|
34
|
+
particles: ["\u3092", "\u306B", "\u3067", "\u304B\u3089", "\u306E", "\u304C", "\u306F", "\u3082", "\u3078", "\u3068"],
|
|
35
|
+
boundaryStrategy: "particle"
|
|
36
|
+
},
|
|
37
|
+
// Japanese writes a particle onto its noun (`#outに`, `自分から`; M2 N5).
|
|
38
|
+
attachedMarkers: {
|
|
39
|
+
markers: ["\u3092", "\u306B", "\u3078", "\u3067", "\u306E", "\u304B\u3089", "\u3068\u3057\u3066", "\u306E\u9593\u3067"],
|
|
40
|
+
afterWords: "all"
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
japaneseGrammar
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=chunk-OOI6MH2H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/ja.ts"],"sourcesContent":["/**\n * Japanese Grammar\n *\n * SOV word order, particles (を, に, で, etc.), no spaces between words.\n * Agglutinative language with rich verb conjugation.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const japaneseGrammar = {\n code: 'ja',\n name: 'Japanese',\n nativeName: '日本語',\n direction: 'ltr',\n script: 'cjk',\n wordOrder: 'SOV',\n markingStrategy: 'particle',\n usesSpaces: false,\n // Japanese uses verb stem/masu-stem form, no clear infinitive/imperative distinction\n // for UI commands. Uses katakana loanwords (トグル) or native stems (切り替え)\n defaultVerbForm: 'base',\n verb: {\n position: 'end',\n suffixes: ['る', 'て', 'た', 'ます', 'ない'],\n subjectDrop: true,\n },\n possessive: {\n marker: 'の',\n markerPosition: 'between',\n },\n roleMarkers: {\n patient: { primary: 'を', position: 'after' },\n destination: { primary: 'に', alternatives: ['へ', 'で', 'の'], position: 'after' },\n source: { primary: 'から', position: 'after' },\n style: { primary: 'で', position: 'after' },\n event: { primary: 'を', position: 'after' }, // Event as object marker\n // Possession marker for \"X's Y\" patterns\n // Note: の is used between target and patient: #button の .active\n },\n tokenization: {\n particles: ['を', 'に', 'で', 'から', 'の', 'が', 'は', 'も', 'へ', 'と'],\n boundaryStrategy: 'particle',\n },\n // Japanese writes a particle onto its noun (`#outに`, `自分から`; M2 N5).\n attachedMarkers: {\n markers: ['を', 'に', 'へ', 'で', 'の', 'から', 'として', 'の間で'],\n afterWords: 'all',\n },\n} satisfies GrammarProfile;\n"],"mappings":";AASO,IAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA;AAAA;AAAA,EAGZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,UAAU,CAAC,UAAK,UAAK,UAAK,gBAAM,cAAI;AAAA,IACpC,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,aAAa;AAAA,IACX,SAAS,EAAE,SAAS,UAAK,UAAU,QAAQ;AAAA,IAC3C,aAAa,EAAE,SAAS,UAAK,cAAc,CAAC,UAAK,UAAK,QAAG,GAAG,UAAU,QAAQ;AAAA,IAC9E,QAAQ,EAAE,SAAS,gBAAM,UAAU,QAAQ;AAAA,IAC3C,OAAO,EAAE,SAAS,UAAK,UAAU,QAAQ;AAAA,IACzC,OAAO,EAAE,SAAS,UAAK,UAAU,QAAQ;AAAA;AAAA;AAAA;AAAA,EAG3C;AAAA,EACA,cAAc;AAAA,IACZ,WAAW,CAAC,UAAK,UAAK,UAAK,gBAAM,UAAK,UAAK,UAAK,UAAK,UAAK,QAAG;AAAA,IAC7D,kBAAkB;AAAA,EACpB;AAAA;AAAA,EAEA,iBAAiB;AAAA,IACf,SAAS,CAAC,UAAK,UAAK,UAAK,UAAK,UAAK,gBAAM,sBAAO,oBAAK;AAAA,IACrD,YAAY;AAAA,EACd;AACF;","names":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// src/languages/de.ts
|
|
2
|
+
var germanGrammar = {
|
|
3
|
+
code: "de",
|
|
4
|
+
name: "German",
|
|
5
|
+
nativeName: "Deutsch",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "latin",
|
|
8
|
+
wordOrder: "SVO",
|
|
9
|
+
markingStrategy: "preposition",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
// Infinitive is standard for German software UI (Speichern, Öffnen, Schließen)
|
|
12
|
+
// Also used in written instructions ("Bitte nicht stören")
|
|
13
|
+
defaultVerbForm: "infinitive",
|
|
14
|
+
verb: {
|
|
15
|
+
position: "start",
|
|
16
|
+
subjectDrop: false
|
|
17
|
+
},
|
|
18
|
+
possessive: {
|
|
19
|
+
marker: "",
|
|
20
|
+
// German uses possessive pronouns directly
|
|
21
|
+
markerPosition: "before-property",
|
|
22
|
+
usePossessiveAdjectives: true
|
|
23
|
+
},
|
|
24
|
+
roleMarkers: {
|
|
25
|
+
destination: { primary: "auf", alternatives: ["zu", "in"], position: "before" },
|
|
26
|
+
source: { primary: "von", alternatives: ["aus"], position: "before" },
|
|
27
|
+
patient: { primary: "", position: "before" },
|
|
28
|
+
style: { primary: "mit", position: "before" }
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
germanGrammar
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=chunk-OSHTQPFA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/de.ts"],"sourcesContent":["/**\n * German Grammar\n *\n * SVO word order (V2 in main clauses), prepositions, space-separated.\n * Features case system, compound words, and verb-second word order in main clauses.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const germanGrammar = {\n code: 'de',\n name: 'German',\n nativeName: 'Deutsch',\n direction: 'ltr',\n script: 'latin',\n wordOrder: 'SVO',\n markingStrategy: 'preposition',\n usesSpaces: true,\n // Infinitive is standard for German software UI (Speichern, Öffnen, Schließen)\n // Also used in written instructions (\"Bitte nicht stören\")\n defaultVerbForm: 'infinitive',\n verb: {\n position: 'start',\n subjectDrop: false,\n },\n possessive: {\n marker: '', // German uses possessive pronouns directly\n markerPosition: 'before-property',\n usePossessiveAdjectives: true,\n },\n roleMarkers: {\n destination: { primary: 'auf', alternatives: ['zu', 'in'], position: 'before' },\n source: { primary: 'von', alternatives: ['aus'], position: 'before' },\n patient: { primary: '', position: 'before' },\n style: { primary: 'mit', position: 'before' },\n },\n} satisfies GrammarProfile;\n"],"mappings":";AASO,IAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA;AAAA;AAAA,EAGZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA;AAAA,IACR,gBAAgB;AAAA,IAChB,yBAAyB;AAAA,EAC3B;AAAA,EACA,aAAa;AAAA,IACX,aAAa,EAAE,SAAS,OAAO,cAAc,CAAC,MAAM,IAAI,GAAG,UAAU,SAAS;AAAA,IAC9E,QAAQ,EAAE,SAAS,OAAO,cAAc,CAAC,KAAK,GAAG,UAAU,SAAS;AAAA,IACpE,SAAS,EAAE,SAAS,IAAI,UAAU,SAAS;AAAA,IAC3C,OAAO,EAAE,SAAS,OAAO,UAAU,SAAS;AAAA,EAC9C;AACF;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// src/languages/vi.ts
|
|
2
|
+
var vietnameseGrammar = {
|
|
3
|
+
code: "vi",
|
|
4
|
+
name: "Vietnamese",
|
|
5
|
+
nativeName: "Ti\u1EBFng Vi\u1EC7t",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "latin",
|
|
8
|
+
wordOrder: "SVO",
|
|
9
|
+
markingStrategy: "preposition",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
// Vietnamese uses base/dictionary form for commands
|
|
12
|
+
defaultVerbForm: "base",
|
|
13
|
+
verb: {
|
|
14
|
+
position: "start",
|
|
15
|
+
subjectDrop: true
|
|
16
|
+
},
|
|
17
|
+
possessive: {
|
|
18
|
+
marker: "c\u1EE7a",
|
|
19
|
+
// Vietnamese uses "của" for possession (của tôi = my)
|
|
20
|
+
markerPosition: "between"
|
|
21
|
+
},
|
|
22
|
+
roleMarkers: {
|
|
23
|
+
destination: { primary: "v\xE0o", alternatives: ["cho", "\u0111\u1EBFn"], position: "before" },
|
|
24
|
+
source: { primary: "t\u1EEB", alternatives: ["kh\u1ECFi"], position: "before" },
|
|
25
|
+
patient: { primary: "", position: "before" },
|
|
26
|
+
style: { primary: "v\u1EDBi", position: "before" }
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export {
|
|
31
|
+
vietnameseGrammar
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=chunk-P2ONCOPE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/vi.ts"],"sourcesContent":["/**\n * Vietnamese Grammar\n *\n * SVO word order, prepositions, space-separated.\n * Vietnamese is an isolating (analytic) language with no inflection.\n * Uses Latin script with extensive diacritics for tone marking.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const vietnameseGrammar = {\n code: 'vi',\n name: 'Vietnamese',\n nativeName: 'Tiếng Việt',\n direction: 'ltr',\n script: 'latin',\n wordOrder: 'SVO',\n markingStrategy: 'preposition',\n usesSpaces: true,\n // Vietnamese uses base/dictionary form for commands\n defaultVerbForm: 'base',\n verb: {\n position: 'start',\n subjectDrop: true,\n },\n possessive: {\n marker: 'của', // Vietnamese uses \"của\" for possession (của tôi = my)\n markerPosition: 'between',\n },\n roleMarkers: {\n destination: { primary: 'vào', alternatives: ['cho', 'đến'], position: 'before' },\n source: { primary: 'từ', alternatives: ['khỏi'], position: 'before' },\n patient: { primary: '', position: 'before' },\n style: { primary: 'với', position: 'before' },\n },\n} satisfies GrammarProfile;\n"],"mappings":";AAUO,IAAM,oBAAoB;AAAA,EAC/B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA;AAAA,EAEZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,aAAa;AAAA,IACX,aAAa,EAAE,SAAS,UAAO,cAAc,CAAC,OAAO,eAAK,GAAG,UAAU,SAAS;AAAA,IAChF,QAAQ,EAAE,SAAS,WAAM,cAAc,CAAC,WAAM,GAAG,UAAU,SAAS;AAAA,IACpE,SAAS,EAAE,SAAS,IAAI,UAAU,SAAS;AAAA,IAC3C,OAAO,EAAE,SAAS,YAAO,UAAU,SAAS;AAAA,EAC9C;AACF;","names":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// src/languages/hi.ts
|
|
2
|
+
var hindiGrammar = {
|
|
3
|
+
code: "hi",
|
|
4
|
+
name: "Hindi",
|
|
5
|
+
nativeName: "\u0939\u093F\u0928\u094D\u0926\u0940",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "devanagari",
|
|
8
|
+
wordOrder: "SOV",
|
|
9
|
+
markingStrategy: "postposition",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
// Hindi uses imperative forms for commands in software UI
|
|
12
|
+
defaultVerbForm: "imperative",
|
|
13
|
+
verb: {
|
|
14
|
+
position: "end",
|
|
15
|
+
suffixes: ["\u0947\u0902", "\u093E", "\u0940", "\u0947", "\u094B"],
|
|
16
|
+
subjectDrop: true
|
|
17
|
+
},
|
|
18
|
+
possessive: {
|
|
19
|
+
marker: "\u0915\u093E",
|
|
20
|
+
markerPosition: "between"
|
|
21
|
+
},
|
|
22
|
+
roleMarkers: {
|
|
23
|
+
patient: { primary: "\u0915\u094B", position: "after" },
|
|
24
|
+
// `को` is the accusative/patient marker only — NOT a destination alternative.
|
|
25
|
+
// Listing it here made a `को`-marked patient mis-parse as a destination, the
|
|
26
|
+
// dominant source of phantom `into` commands in hi (precision audit 2026-06-15).
|
|
27
|
+
destination: { primary: "\u092E\u0947\u0902", alternatives: ["\u092A\u0930"], position: "after" },
|
|
28
|
+
source: { primary: "\u0938\u0947", position: "after" },
|
|
29
|
+
style: { primary: "\u0938\u0947", position: "after" },
|
|
30
|
+
event: { primary: "\u092A\u0930", position: "after" }
|
|
31
|
+
},
|
|
32
|
+
tokenization: {
|
|
33
|
+
particles: ["\u0915\u094B", "\u092E\u0947\u0902", "\u092A\u0930", "\u0938\u0947", "\u0915\u093E", "\u0915\u0940", "\u0915\u0947", "\u0924\u0915", "\u0928\u0947"],
|
|
34
|
+
boundaryStrategy: "space"
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
hindiGrammar
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=chunk-PC4BLDMN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/hi.ts"],"sourcesContent":["/**\n * Hindi Grammar\n *\n * SOV word order, postpositions (को, में, पर, से, etc.), Devanagari script.\n * Fusional language with verb conjugation patterns.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const hindiGrammar = {\n code: 'hi',\n name: 'Hindi',\n nativeName: 'हिन्दी',\n direction: 'ltr',\n script: 'devanagari',\n wordOrder: 'SOV',\n markingStrategy: 'postposition',\n usesSpaces: true,\n // Hindi uses imperative forms for commands in software UI\n defaultVerbForm: 'imperative',\n verb: {\n position: 'end',\n suffixes: ['ें', 'ा', 'ी', 'े', 'ो'],\n subjectDrop: true,\n },\n possessive: {\n marker: 'का',\n markerPosition: 'between',\n },\n roleMarkers: {\n patient: { primary: 'को', position: 'after' },\n // `को` is the accusative/patient marker only — NOT a destination alternative.\n // Listing it here made a `को`-marked patient mis-parse as a destination, the\n // dominant source of phantom `into` commands in hi (precision audit 2026-06-15).\n destination: { primary: 'में', alternatives: ['पर'], position: 'after' },\n source: { primary: 'से', position: 'after' },\n style: { primary: 'से', position: 'after' },\n event: { primary: 'पर', position: 'after' },\n },\n tokenization: {\n particles: ['को', 'में', 'पर', 'से', 'का', 'की', 'के', 'तक', 'ने'],\n boundaryStrategy: 'space',\n },\n} satisfies GrammarProfile;\n"],"mappings":";AASO,IAAM,eAAe;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA;AAAA,EAEZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,UAAU,CAAC,gBAAM,UAAK,UAAK,UAAK,QAAG;AAAA,IACnC,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,aAAa;AAAA,IACX,SAAS,EAAE,SAAS,gBAAM,UAAU,QAAQ;AAAA;AAAA;AAAA;AAAA,IAI5C,aAAa,EAAE,SAAS,sBAAO,cAAc,CAAC,cAAI,GAAG,UAAU,QAAQ;AAAA,IACvE,QAAQ,EAAE,SAAS,gBAAM,UAAU,QAAQ;AAAA,IAC3C,OAAO,EAAE,SAAS,gBAAM,UAAU,QAAQ;AAAA,IAC1C,OAAO,EAAE,SAAS,gBAAM,UAAU,QAAQ;AAAA,EAC5C;AAAA,EACA,cAAc;AAAA,IACZ,WAAW,CAAC,gBAAM,sBAAO,gBAAM,gBAAM,gBAAM,gBAAM,gBAAM,gBAAM,cAAI;AAAA,IACjE,kBAAkB;AAAA,EACpB;AACF;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// src/languages/tl.ts
|
|
2
|
+
var tagalogGrammar = {
|
|
3
|
+
code: "tl",
|
|
4
|
+
name: "Tagalog",
|
|
5
|
+
nativeName: "Tagalog",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "latin",
|
|
8
|
+
wordOrder: "VSO",
|
|
9
|
+
markingStrategy: "preposition",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
defaultVerbForm: "base",
|
|
12
|
+
verb: {
|
|
13
|
+
position: "start",
|
|
14
|
+
subjectDrop: true
|
|
15
|
+
},
|
|
16
|
+
possessive: {
|
|
17
|
+
marker: "ng",
|
|
18
|
+
// Linker used in possessive constructions
|
|
19
|
+
markerPosition: "between"
|
|
20
|
+
},
|
|
21
|
+
roleMarkers: {
|
|
22
|
+
// `bago` (before) / `matapos` (after) are positional destination markers for
|
|
23
|
+
// `put X before/after Y`, mirroring how Arabic lists قبل/بعد as destination
|
|
24
|
+
// alternatives. Without them the generated put pattern can't match a
|
|
25
|
+
// before/after target.
|
|
26
|
+
destination: { primary: "sa", alternatives: ["bago", "matapos"], position: "before" },
|
|
27
|
+
// "to/into"
|
|
28
|
+
source: { primary: "mula_sa", position: "before" },
|
|
29
|
+
// "from"
|
|
30
|
+
patient: { primary: "", position: "before" },
|
|
31
|
+
style: { primary: "nang", position: "before" }
|
|
32
|
+
// manner marker
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
tagalogGrammar
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=chunk-Q7Z57FEP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/tl.ts"],"sourcesContent":["/**\n * Tagalog Grammar\n *\n * VSO word order, prepositions, space-separated.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const tagalogGrammar = {\n code: 'tl',\n name: 'Tagalog',\n nativeName: 'Tagalog',\n direction: 'ltr',\n script: 'latin',\n wordOrder: 'VSO',\n markingStrategy: 'preposition',\n usesSpaces: true,\n defaultVerbForm: 'base',\n verb: {\n position: 'start',\n subjectDrop: true,\n },\n possessive: {\n marker: 'ng', // Linker used in possessive constructions\n markerPosition: 'between',\n },\n roleMarkers: {\n // `bago` (before) / `matapos` (after) are positional destination markers for\n // `put X before/after Y`, mirroring how Arabic lists قبل/بعد as destination\n // alternatives. Without them the generated put pattern can't match a\n // before/after target.\n destination: { primary: 'sa', alternatives: ['bago', 'matapos'], position: 'before' }, // \"to/into\"\n source: { primary: 'mula_sa', position: 'before' }, // \"from\"\n patient: { primary: '', position: 'before' },\n style: { primary: 'nang', position: 'before' }, // manner marker\n },\n} satisfies GrammarProfile;\n"],"mappings":";AAQO,IAAM,iBAAiB;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,IAKX,aAAa,EAAE,SAAS,MAAM,cAAc,CAAC,QAAQ,SAAS,GAAG,UAAU,SAAS;AAAA;AAAA,IACpF,QAAQ,EAAE,SAAS,WAAW,UAAU,SAAS;AAAA;AAAA,IACjD,SAAS,EAAE,SAAS,IAAI,UAAU,SAAS;AAAA,IAC3C,OAAO,EAAE,SAAS,QAAQ,UAAU,SAAS;AAAA;AAAA,EAC/C;AACF;","names":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/languages/zh.ts
|
|
2
|
+
var chineseGrammar = {
|
|
3
|
+
code: "zh",
|
|
4
|
+
name: "Chinese",
|
|
5
|
+
nativeName: "\u4E2D\u6587",
|
|
6
|
+
direction: "ltr",
|
|
7
|
+
script: "cjk",
|
|
8
|
+
wordOrder: "SVO",
|
|
9
|
+
markingStrategy: "preposition",
|
|
10
|
+
// Uses prepositions but often implicit
|
|
11
|
+
usesSpaces: false,
|
|
12
|
+
verb: {
|
|
13
|
+
position: "second",
|
|
14
|
+
subjectDrop: true
|
|
15
|
+
},
|
|
16
|
+
possessive: {
|
|
17
|
+
marker: "\u7684",
|
|
18
|
+
// Possessive particle (de)
|
|
19
|
+
markerPosition: "between"
|
|
20
|
+
},
|
|
21
|
+
roleMarkers: {
|
|
22
|
+
destination: { primary: "\u5728", alternatives: ["\u5230", "\u4E8E"], position: "before" },
|
|
23
|
+
source: { primary: "\u4ECE", alternatives: ["\u7531"], position: "before" },
|
|
24
|
+
patient: { primary: "\u628A", position: "before" },
|
|
25
|
+
// BA construction
|
|
26
|
+
style: { primary: "\u7528", alternatives: ["\u4EE5"], position: "before" }
|
|
27
|
+
},
|
|
28
|
+
tokenization: {
|
|
29
|
+
boundaryStrategy: "character"
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
exports.chineseGrammar = chineseGrammar;
|
|
36
|
+
//# sourceMappingURL=chunk-SFDLZDQC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hyperfixi/hyperfixi/packages/framework/dist/languages/chunks/chunk-SFDLZDQC.cjs","../../../src/languages/zh.ts"],"names":[],"mappings":"AAAA;ACSO,IAAM,eAAA,EAAiB;AAAA,EAC5B,IAAA,EAAM,IAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,UAAA,EAAY,cAAA;AAAA,EACZ,SAAA,EAAW,KAAA;AAAA,EACX,MAAA,EAAQ,KAAA;AAAA,EACR,SAAA,EAAW,KAAA;AAAA,EACX,eAAA,EAAiB,aAAA;AAAA;AAAA,EACjB,UAAA,EAAY,KAAA;AAAA,EACZ,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,QAAA;AAAA,IACV,WAAA,EAAa;AAAA,EACf,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ,QAAA;AAAA;AAAA,IACR,cAAA,EAAgB;AAAA,EAClB,CAAA;AAAA,EACA,WAAA,EAAa;AAAA,IACX,WAAA,EAAa,EAAE,OAAA,EAAS,QAAA,EAAK,YAAA,EAAc,CAAC,QAAA,EAAK,QAAG,CAAA,EAAG,QAAA,EAAU,SAAS,CAAA;AAAA,IAC1E,MAAA,EAAQ,EAAE,OAAA,EAAS,QAAA,EAAK,YAAA,EAAc,CAAC,QAAG,CAAA,EAAG,QAAA,EAAU,SAAS,CAAA;AAAA,IAChE,OAAA,EAAS,EAAE,OAAA,EAAS,QAAA,EAAK,QAAA,EAAU,SAAS,CAAA;AAAA;AAAA,IAC5C,KAAA,EAAO,EAAE,OAAA,EAAS,QAAA,EAAK,YAAA,EAAc,CAAC,QAAG,CAAA,EAAG,QAAA,EAAU,SAAS;AAAA,EACjE,CAAA;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,gBAAA,EAAkB;AAAA,EACpB;AACF,CAAA;ADJA;AACA;AACE;AACF,wCAAC","file":"/home/runner/work/hyperfixi/hyperfixi/packages/framework/dist/languages/chunks/chunk-SFDLZDQC.cjs","sourcesContent":[null,"/**\n * Chinese (Simplified) Grammar\n *\n * SVO word order, no markers (relies on word order), no spaces between words.\n * Isolating language with topic-comment structure and optional BA construction.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const chineseGrammar = {\n code: 'zh',\n name: 'Chinese',\n nativeName: '中文',\n direction: 'ltr',\n script: 'cjk',\n wordOrder: 'SVO',\n markingStrategy: 'preposition', // Uses prepositions but often implicit\n usesSpaces: false,\n verb: {\n position: 'second',\n subjectDrop: true,\n },\n possessive: {\n marker: '的', // Possessive particle (de)\n markerPosition: 'between',\n },\n roleMarkers: {\n destination: { primary: '在', alternatives: ['到', '于'], position: 'before' },\n source: { primary: '从', alternatives: ['由'], position: 'before' },\n patient: { primary: '把', position: 'before' }, // BA construction\n style: { primary: '用', alternatives: ['以'], position: 'before' },\n },\n tokenization: {\n boundaryStrategy: 'character',\n },\n} satisfies GrammarProfile;\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// src/languages/ar.ts
|
|
2
|
+
var arabicGrammar = {
|
|
3
|
+
code: "ar",
|
|
4
|
+
name: "Arabic",
|
|
5
|
+
nativeName: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629",
|
|
6
|
+
direction: "rtl",
|
|
7
|
+
script: "arabic",
|
|
8
|
+
wordOrder: "VSO",
|
|
9
|
+
markingStrategy: "preposition",
|
|
10
|
+
usesSpaces: true,
|
|
11
|
+
verb: {
|
|
12
|
+
position: "start",
|
|
13
|
+
subjectDrop: true
|
|
14
|
+
},
|
|
15
|
+
possessive: {
|
|
16
|
+
marker: "",
|
|
17
|
+
// No explicit marker - uses possessive pronouns
|
|
18
|
+
markerPosition: "after-object",
|
|
19
|
+
usePossessiveAdjectives: true
|
|
20
|
+
},
|
|
21
|
+
roleMarkers: {
|
|
22
|
+
destination: {
|
|
23
|
+
primary: "\u0639\u0644\u0649",
|
|
24
|
+
alternatives: ["\u0641\u064A", "\u0625\u0644\u0649", "\u0628", "\u0642\u0628\u0644", "\u0628\u0639\u062F"],
|
|
25
|
+
position: "before"
|
|
26
|
+
},
|
|
27
|
+
source: { primary: "\u0645\u0646", position: "before" },
|
|
28
|
+
patient: { primary: "", position: "before" },
|
|
29
|
+
style: { primary: "\u0628\u0640", alternatives: ["\u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645"], position: "before" }
|
|
30
|
+
},
|
|
31
|
+
tokenization: {
|
|
32
|
+
prefixes: ["\u0627\u0644", "\u0648", "\u0641", "\u0628", "\u0643", "\u0644"]
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
arabicGrammar
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=chunk-SLSZETLO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/languages/ar.ts"],"sourcesContent":["/**\n * Arabic Grammar\n *\n * VSO word order, prepositions, RTL (right-to-left), space-separated.\n * Features root-based morphology and rich verb conjugation.\n */\n\nimport type { GrammarProfile } from './types';\n\nexport const arabicGrammar = {\n code: 'ar',\n name: 'Arabic',\n nativeName: 'العربية',\n direction: 'rtl',\n script: 'arabic',\n wordOrder: 'VSO',\n markingStrategy: 'preposition',\n usesSpaces: true,\n verb: {\n position: 'start',\n subjectDrop: true,\n },\n possessive: {\n marker: '', // No explicit marker - uses possessive pronouns\n markerPosition: 'after-object',\n usePossessiveAdjectives: true,\n },\n roleMarkers: {\n destination: {\n primary: 'على',\n alternatives: ['في', 'إلى', 'ب', 'قبل', 'بعد'],\n position: 'before',\n },\n source: { primary: 'من', position: 'before' },\n patient: { primary: '', position: 'before' },\n style: { primary: 'بـ', alternatives: ['باستخدام'], position: 'before' },\n },\n tokenization: {\n prefixes: ['ال', 'و', 'ف', 'ب', 'ك', 'ل'],\n },\n} satisfies GrammarProfile;\n"],"mappings":";AASO,IAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA;AAAA,IACR,gBAAgB;AAAA,IAChB,yBAAyB;AAAA,EAC3B;AAAA,EACA,aAAa;AAAA,IACX,aAAa;AAAA,MACX,SAAS;AAAA,MACT,cAAc,CAAC,gBAAM,sBAAO,UAAK,sBAAO,oBAAK;AAAA,MAC7C,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ,EAAE,SAAS,gBAAM,UAAU,SAAS;AAAA,IAC5C,SAAS,EAAE,SAAS,IAAI,UAAU,SAAS;AAAA,IAC3C,OAAO,EAAE,SAAS,gBAAM,cAAc,CAAC,kDAAU,GAAG,UAAU,SAAS;AAAA,EACzE;AAAA,EACA,cAAc;AAAA,IACZ,UAAU,CAAC,gBAAM,UAAK,UAAK,UAAK,UAAK,QAAG;AAAA,EAC1C;AACF;","names":[]}
|