@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,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spanish + English Browser Bundle Entry Point
|
|
3
|
+
*
|
|
4
|
+
* A minimal bundle supporting only Spanish (es) and English (en).
|
|
5
|
+
* Uses the registry-based architecture for tree-shaking.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```html
|
|
9
|
+
* <script src="hyperfixi-semantic.es-en.global.js"></script>
|
|
10
|
+
* <script>
|
|
11
|
+
* // Parse Spanish hyperscript
|
|
12
|
+
* const ast = LokaScriptSemanticEsEn.parse('alternar .activo', 'es');
|
|
13
|
+
*
|
|
14
|
+
* // Translate Spanish -> English
|
|
15
|
+
* const en = LokaScriptSemanticEsEn.translate('alternar .activo', 'es', 'en');
|
|
16
|
+
* </script>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
// =============================================================================
|
|
21
|
+
// Register Only ES + EN Languages
|
|
22
|
+
// =============================================================================
|
|
23
|
+
|
|
24
|
+
// Import to register only Spanish and English
|
|
25
|
+
import './languages/en';
|
|
26
|
+
import './languages/es';
|
|
27
|
+
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// Version
|
|
30
|
+
// =============================================================================
|
|
31
|
+
|
|
32
|
+
export const VERSION = '1.0.0-es-en';
|
|
33
|
+
|
|
34
|
+
// =============================================================================
|
|
35
|
+
// Supported Languages
|
|
36
|
+
// =============================================================================
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Get all supported languages in this bundle.
|
|
40
|
+
*/
|
|
41
|
+
export function getSupportedLanguages(): string[] {
|
|
42
|
+
return ['en', 'es'];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// =============================================================================
|
|
46
|
+
// Tokenizers (from registry)
|
|
47
|
+
// =============================================================================
|
|
48
|
+
|
|
49
|
+
export { getTokenizer, isLanguageSupported } from './registry';
|
|
50
|
+
|
|
51
|
+
import type { LanguageToken } from './types';
|
|
52
|
+
import { tokenize as tokenizeInternal } from './tokenizers';
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Tokenize input and return array of tokens (browser-friendly wrapper).
|
|
56
|
+
*/
|
|
57
|
+
export function tokenize(input: string, language: string): LanguageToken[] {
|
|
58
|
+
if (language !== 'en' && language !== 'es') {
|
|
59
|
+
throw new Error(`Language not supported in this bundle: ${language}. Supported: en, es`);
|
|
60
|
+
}
|
|
61
|
+
const stream = tokenizeInternal(input, language);
|
|
62
|
+
return [...stream.tokens];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Re-export individual tokenizers
|
|
66
|
+
export { englishTokenizer } from './tokenizers/english';
|
|
67
|
+
export { spanishTokenizer } from './tokenizers/spanish';
|
|
68
|
+
|
|
69
|
+
// =============================================================================
|
|
70
|
+
// Patterns (from registry - lazy generation)
|
|
71
|
+
// =============================================================================
|
|
72
|
+
|
|
73
|
+
import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
|
|
74
|
+
import type { LanguagePattern, ActionType } from './types';
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Get all patterns for a specific language.
|
|
78
|
+
*/
|
|
79
|
+
export function getPatternsForLanguage(language: string): LanguagePattern[] {
|
|
80
|
+
if (language !== 'en' && language !== 'es') {
|
|
81
|
+
throw new Error(`Language not supported in this bundle: ${language}. Supported: en, es`);
|
|
82
|
+
}
|
|
83
|
+
return getPatternsFromRegistry(language);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get patterns for a specific language and command.
|
|
88
|
+
*/
|
|
89
|
+
export function getPatternsForLanguageAndCommand(
|
|
90
|
+
language: string,
|
|
91
|
+
command: ActionType
|
|
92
|
+
): LanguagePattern[] {
|
|
93
|
+
return getPatternsForLanguage(language)
|
|
94
|
+
.filter(p => p.command === command)
|
|
95
|
+
.sort((a, b) => b.priority - a.priority);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// =============================================================================
|
|
99
|
+
// Language Profiles (from registry)
|
|
100
|
+
// =============================================================================
|
|
101
|
+
|
|
102
|
+
export { getProfile } from './registry';
|
|
103
|
+
export { englishProfile } from './generators/language-profiles';
|
|
104
|
+
export { spanishProfile } from './generators/language-profiles';
|
|
105
|
+
|
|
106
|
+
// =============================================================================
|
|
107
|
+
// Parsing
|
|
108
|
+
// =============================================================================
|
|
109
|
+
|
|
110
|
+
export { parse, canParse } from './parser';
|
|
111
|
+
export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
|
|
112
|
+
|
|
113
|
+
// =============================================================================
|
|
114
|
+
// Translation
|
|
115
|
+
// =============================================================================
|
|
116
|
+
|
|
117
|
+
import {
|
|
118
|
+
translate as translateInternal,
|
|
119
|
+
getAllTranslations as getAllTranslationsInternal,
|
|
120
|
+
} from './explicit';
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Translate hyperscript between Spanish and English.
|
|
124
|
+
*/
|
|
125
|
+
export function translate(input: string, sourceLang: string, targetLang: string): string {
|
|
126
|
+
if (
|
|
127
|
+
(sourceLang !== 'en' && sourceLang !== 'es') ||
|
|
128
|
+
(targetLang !== 'en' && targetLang !== 'es')
|
|
129
|
+
) {
|
|
130
|
+
throw new Error('This bundle only supports translation between en and es');
|
|
131
|
+
}
|
|
132
|
+
return translateInternal(input, sourceLang, targetLang);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Get translations to both languages.
|
|
137
|
+
*/
|
|
138
|
+
export function getAllTranslations(input: string, sourceLang: string): Record<string, string> {
|
|
139
|
+
if (sourceLang !== 'en' && sourceLang !== 'es') {
|
|
140
|
+
throw new Error(`Language not supported in this bundle: ${sourceLang}. Supported: en, es`);
|
|
141
|
+
}
|
|
142
|
+
const result = getAllTranslationsInternal(input, sourceLang);
|
|
143
|
+
// Filter to only include ES + EN
|
|
144
|
+
return {
|
|
145
|
+
en: result.en,
|
|
146
|
+
es: result.es,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// =============================================================================
|
|
151
|
+
// Rendering
|
|
152
|
+
// =============================================================================
|
|
153
|
+
|
|
154
|
+
export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
|
|
155
|
+
|
|
156
|
+
// =============================================================================
|
|
157
|
+
// AST Builder
|
|
158
|
+
// =============================================================================
|
|
159
|
+
|
|
160
|
+
export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
|
|
161
|
+
|
|
162
|
+
// =============================================================================
|
|
163
|
+
// Semantic Analyzer (for core parser integration)
|
|
164
|
+
// =============================================================================
|
|
165
|
+
|
|
166
|
+
export {
|
|
167
|
+
createSemanticAnalyzer,
|
|
168
|
+
SemanticAnalyzerImpl,
|
|
169
|
+
shouldUseSemanticResult,
|
|
170
|
+
DEFAULT_CONFIDENCE_THRESHOLD,
|
|
171
|
+
HIGH_CONFIDENCE_THRESHOLD,
|
|
172
|
+
} from './core-bridge';
|
|
173
|
+
|
|
174
|
+
export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
|
|
175
|
+
|
|
176
|
+
// =============================================================================
|
|
177
|
+
// Type Helpers
|
|
178
|
+
// =============================================================================
|
|
179
|
+
|
|
180
|
+
export {
|
|
181
|
+
createSelector,
|
|
182
|
+
createLiteral,
|
|
183
|
+
createReference,
|
|
184
|
+
createPropertyPath,
|
|
185
|
+
createCommandNode,
|
|
186
|
+
createEventHandler,
|
|
187
|
+
} from './types';
|
|
188
|
+
|
|
189
|
+
// =============================================================================
|
|
190
|
+
// Types
|
|
191
|
+
// =============================================================================
|
|
192
|
+
|
|
193
|
+
export type {
|
|
194
|
+
ActionType,
|
|
195
|
+
SemanticRole,
|
|
196
|
+
SemanticValue,
|
|
197
|
+
SemanticNode,
|
|
198
|
+
LanguageToken,
|
|
199
|
+
TokenStream,
|
|
200
|
+
} from './types';
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spanish-Only Browser Bundle Entry Point
|
|
3
|
+
*
|
|
4
|
+
* The smallest possible bundle for Spanish-speaking developers.
|
|
5
|
+
* Supports only Spanish (es) - no English fallback.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```html
|
|
9
|
+
* <script src="hyperfixi-semantic.es.global.js"></script>
|
|
10
|
+
* <script>
|
|
11
|
+
* // Parse Spanish hyperscript
|
|
12
|
+
* const ast = LokaScriptSemanticEs.parse('alternar .activo', 'es');
|
|
13
|
+
*
|
|
14
|
+
* // Tokenize
|
|
15
|
+
* const tokens = LokaScriptSemanticEs.tokenize('en clic mostrar #mensaje', 'es');
|
|
16
|
+
* </script>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
// =============================================================================
|
|
21
|
+
// Register Only Spanish Language
|
|
22
|
+
// =============================================================================
|
|
23
|
+
|
|
24
|
+
import './languages/es';
|
|
25
|
+
|
|
26
|
+
// =============================================================================
|
|
27
|
+
// Version
|
|
28
|
+
// =============================================================================
|
|
29
|
+
|
|
30
|
+
export const VERSION = '1.0.0-es';
|
|
31
|
+
|
|
32
|
+
// =============================================================================
|
|
33
|
+
// Supported Languages
|
|
34
|
+
// =============================================================================
|
|
35
|
+
|
|
36
|
+
const SUPPORTED_LANGUAGE = 'es' as const;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Get all supported languages in this bundle.
|
|
40
|
+
*/
|
|
41
|
+
export function getSupportedLanguages(): string[] {
|
|
42
|
+
return [SUPPORTED_LANGUAGE];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Validate that a language is supported by this bundle.
|
|
47
|
+
*/
|
|
48
|
+
function validateLanguage(language: string): void {
|
|
49
|
+
if (language !== SUPPORTED_LANGUAGE) {
|
|
50
|
+
throw new Error(
|
|
51
|
+
`Idioma no soportado en este paquete: ${language}. ` +
|
|
52
|
+
`Este paquete solo soporta: ${SUPPORTED_LANGUAGE}. ` +
|
|
53
|
+
`(Language not supported: ${language}. This bundle only supports: ${SUPPORTED_LANGUAGE})`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// =============================================================================
|
|
59
|
+
// Tokenizers (from registry)
|
|
60
|
+
// =============================================================================
|
|
61
|
+
|
|
62
|
+
export { getTokenizer, isLanguageSupported } from './registry';
|
|
63
|
+
|
|
64
|
+
import type { LanguageToken } from './types';
|
|
65
|
+
import { tokenize as tokenizeInternal } from './tokenizers';
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Tokenize input and return array of tokens (browser-friendly wrapper).
|
|
69
|
+
*/
|
|
70
|
+
export function tokenize(input: string, language: string): LanguageToken[] {
|
|
71
|
+
validateLanguage(language);
|
|
72
|
+
const stream = tokenizeInternal(input, language);
|
|
73
|
+
return [...stream.tokens];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Re-export Spanish tokenizer
|
|
77
|
+
export { spanishTokenizer } from './tokenizers/spanish';
|
|
78
|
+
|
|
79
|
+
// =============================================================================
|
|
80
|
+
// Patterns (from registry - lazy generation)
|
|
81
|
+
// =============================================================================
|
|
82
|
+
|
|
83
|
+
import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
|
|
84
|
+
import type { LanguagePattern, ActionType } from './types';
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get all patterns for Spanish.
|
|
88
|
+
*/
|
|
89
|
+
export function getPatternsForLanguage(language: string): LanguagePattern[] {
|
|
90
|
+
validateLanguage(language);
|
|
91
|
+
return getPatternsFromRegistry(language);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Get patterns for Spanish and a specific command.
|
|
96
|
+
*/
|
|
97
|
+
export function getPatternsForLanguageAndCommand(
|
|
98
|
+
language: string,
|
|
99
|
+
command: ActionType
|
|
100
|
+
): LanguagePattern[] {
|
|
101
|
+
return getPatternsForLanguage(language)
|
|
102
|
+
.filter(p => p.command === command)
|
|
103
|
+
.sort((a, b) => b.priority - a.priority);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// =============================================================================
|
|
107
|
+
// Language Profiles (from registry)
|
|
108
|
+
// =============================================================================
|
|
109
|
+
|
|
110
|
+
export { getProfile } from './registry';
|
|
111
|
+
export { spanishProfile } from './generators/language-profiles';
|
|
112
|
+
|
|
113
|
+
// =============================================================================
|
|
114
|
+
// Parsing
|
|
115
|
+
// =============================================================================
|
|
116
|
+
|
|
117
|
+
export { parse, canParse } from './parser';
|
|
118
|
+
export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
|
|
119
|
+
|
|
120
|
+
// =============================================================================
|
|
121
|
+
// Rendering
|
|
122
|
+
// =============================================================================
|
|
123
|
+
|
|
124
|
+
export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
|
|
125
|
+
|
|
126
|
+
// =============================================================================
|
|
127
|
+
// AST Builder
|
|
128
|
+
// =============================================================================
|
|
129
|
+
|
|
130
|
+
export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
|
|
131
|
+
|
|
132
|
+
// =============================================================================
|
|
133
|
+
// Semantic Analyzer (for core parser integration)
|
|
134
|
+
// =============================================================================
|
|
135
|
+
|
|
136
|
+
export {
|
|
137
|
+
createSemanticAnalyzer,
|
|
138
|
+
SemanticAnalyzerImpl,
|
|
139
|
+
shouldUseSemanticResult,
|
|
140
|
+
DEFAULT_CONFIDENCE_THRESHOLD,
|
|
141
|
+
HIGH_CONFIDENCE_THRESHOLD,
|
|
142
|
+
} from './core-bridge';
|
|
143
|
+
|
|
144
|
+
export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
|
|
145
|
+
|
|
146
|
+
// =============================================================================
|
|
147
|
+
// Type Helpers
|
|
148
|
+
// =============================================================================
|
|
149
|
+
|
|
150
|
+
export {
|
|
151
|
+
createSelector,
|
|
152
|
+
createLiteral,
|
|
153
|
+
createReference,
|
|
154
|
+
createPropertyPath,
|
|
155
|
+
createCommandNode,
|
|
156
|
+
createEventHandler,
|
|
157
|
+
} from './types';
|
|
158
|
+
|
|
159
|
+
// =============================================================================
|
|
160
|
+
// Types
|
|
161
|
+
// =============================================================================
|
|
162
|
+
|
|
163
|
+
export type {
|
|
164
|
+
ActionType,
|
|
165
|
+
SemanticRole,
|
|
166
|
+
SemanticValue,
|
|
167
|
+
SemanticNode,
|
|
168
|
+
LanguageToken,
|
|
169
|
+
TokenStream,
|
|
170
|
+
} from './types';
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* French Browser Bundle Entry Point
|
|
3
|
+
*
|
|
4
|
+
* Minimal single-language bundle.
|
|
5
|
+
* Estimated size: ~67 KB (~23 KB gzip)
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```html
|
|
9
|
+
* <script src="lokascript-semantic.fr.global.js"></script>
|
|
10
|
+
* <script>
|
|
11
|
+
* const ast = LokaScriptSemanticFr.parse('toggle .active', 'fr');
|
|
12
|
+
* </script>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// Register Languages: fr
|
|
18
|
+
// =============================================================================
|
|
19
|
+
|
|
20
|
+
import './languages/fr';
|
|
21
|
+
|
|
22
|
+
// =============================================================================
|
|
23
|
+
// Version
|
|
24
|
+
// =============================================================================
|
|
25
|
+
|
|
26
|
+
export const VERSION = '1.0.0-fr';
|
|
27
|
+
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// Supported Languages
|
|
30
|
+
// =============================================================================
|
|
31
|
+
|
|
32
|
+
const SUPPORTED_LANGUAGES = ['fr'] as const;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get all supported languages in this bundle.
|
|
36
|
+
*/
|
|
37
|
+
export function getSupportedLanguages(): string[] {
|
|
38
|
+
return [...SUPPORTED_LANGUAGES];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Validate that a language is supported by this bundle.
|
|
43
|
+
*/
|
|
44
|
+
function validateLanguage(language: string): void {
|
|
45
|
+
if (language !== 'fr') {
|
|
46
|
+
throw new Error(`Language not supported in this bundle: ${language}. ` + `Supported: fr`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// =============================================================================
|
|
51
|
+
// Tokenizers (from registry)
|
|
52
|
+
// =============================================================================
|
|
53
|
+
|
|
54
|
+
export { getTokenizer, isLanguageSupported } from './registry';
|
|
55
|
+
|
|
56
|
+
import type { LanguageToken } from './types';
|
|
57
|
+
import { tokenize as tokenizeInternal } from './tokenizers';
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Tokenize input and return array of tokens (browser-friendly wrapper).
|
|
61
|
+
*/
|
|
62
|
+
export function tokenize(input: string, language: string): LanguageToken[] {
|
|
63
|
+
validateLanguage(language);
|
|
64
|
+
const stream = tokenizeInternal(input, language);
|
|
65
|
+
return [...stream.tokens];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Re-export tokenizers
|
|
69
|
+
export { frenchTokenizer } from './tokenizers/french';
|
|
70
|
+
|
|
71
|
+
// =============================================================================
|
|
72
|
+
// Patterns (from registry - lazy generation)
|
|
73
|
+
// =============================================================================
|
|
74
|
+
|
|
75
|
+
import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
|
|
76
|
+
import type { LanguagePattern, ActionType } from './types';
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Get all patterns for a language.
|
|
80
|
+
*/
|
|
81
|
+
export function getPatternsForLanguage(language: string): LanguagePattern[] {
|
|
82
|
+
validateLanguage(language);
|
|
83
|
+
return getPatternsFromRegistry(language);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get patterns for a language and specific command.
|
|
88
|
+
*/
|
|
89
|
+
export function getPatternsForLanguageAndCommand(
|
|
90
|
+
language: string,
|
|
91
|
+
command: ActionType
|
|
92
|
+
): LanguagePattern[] {
|
|
93
|
+
return getPatternsForLanguage(language)
|
|
94
|
+
.filter(p => p.command === command)
|
|
95
|
+
.sort((a, b) => b.priority - a.priority);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// =============================================================================
|
|
99
|
+
// Language Profiles (from registry)
|
|
100
|
+
// =============================================================================
|
|
101
|
+
|
|
102
|
+
export { getProfile, tryGetProfile } from './registry';
|
|
103
|
+
export { frenchProfile } from './generators/language-profiles';
|
|
104
|
+
|
|
105
|
+
// =============================================================================
|
|
106
|
+
// Parsing
|
|
107
|
+
// =============================================================================
|
|
108
|
+
|
|
109
|
+
export { parse, canParse } from './parser';
|
|
110
|
+
export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
|
|
111
|
+
|
|
112
|
+
// =============================================================================
|
|
113
|
+
// Rendering
|
|
114
|
+
// =============================================================================
|
|
115
|
+
|
|
116
|
+
export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
|
|
117
|
+
|
|
118
|
+
// =============================================================================
|
|
119
|
+
// AST Builder
|
|
120
|
+
// =============================================================================
|
|
121
|
+
|
|
122
|
+
export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
|
|
123
|
+
|
|
124
|
+
// =============================================================================
|
|
125
|
+
// Semantic Analyzer (for core parser integration)
|
|
126
|
+
// =============================================================================
|
|
127
|
+
|
|
128
|
+
export {
|
|
129
|
+
createSemanticAnalyzer,
|
|
130
|
+
SemanticAnalyzerImpl,
|
|
131
|
+
shouldUseSemanticResult,
|
|
132
|
+
DEFAULT_CONFIDENCE_THRESHOLD,
|
|
133
|
+
HIGH_CONFIDENCE_THRESHOLD,
|
|
134
|
+
} from './core-bridge';
|
|
135
|
+
|
|
136
|
+
export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
|
|
137
|
+
|
|
138
|
+
// =============================================================================
|
|
139
|
+
// Type Helpers
|
|
140
|
+
// =============================================================================
|
|
141
|
+
|
|
142
|
+
export {
|
|
143
|
+
createSelector,
|
|
144
|
+
createLiteral,
|
|
145
|
+
createReference,
|
|
146
|
+
createPropertyPath,
|
|
147
|
+
createCommandNode,
|
|
148
|
+
createEventHandler,
|
|
149
|
+
} from './types';
|
|
150
|
+
|
|
151
|
+
// =============================================================================
|
|
152
|
+
// Types
|
|
153
|
+
// =============================================================================
|
|
154
|
+
|
|
155
|
+
export type {
|
|
156
|
+
ActionType,
|
|
157
|
+
SemanticRole,
|
|
158
|
+
SemanticValue,
|
|
159
|
+
SemanticNode,
|
|
160
|
+
LanguageToken,
|
|
161
|
+
TokenStream,
|
|
162
|
+
} from './types';
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Indonesian Browser Bundle Entry Point
|
|
3
|
+
*
|
|
4
|
+
* Minimal single-language bundle.
|
|
5
|
+
* Estimated size: ~63 KB (~22 KB gzip)
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```html
|
|
9
|
+
* <script src="hyperfixi-semantic.id.global.js"></script>
|
|
10
|
+
* <script>
|
|
11
|
+
* const ast = LokaScriptSemanticId.parse('toggle .active', 'id');
|
|
12
|
+
* </script>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// Register Languages: id
|
|
18
|
+
// =============================================================================
|
|
19
|
+
|
|
20
|
+
import './languages/id';
|
|
21
|
+
|
|
22
|
+
// =============================================================================
|
|
23
|
+
// Version
|
|
24
|
+
// =============================================================================
|
|
25
|
+
|
|
26
|
+
export const VERSION = '1.0.0-id';
|
|
27
|
+
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// Supported Languages
|
|
30
|
+
// =============================================================================
|
|
31
|
+
|
|
32
|
+
const SUPPORTED_LANGUAGES = ['id'] as const;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get all supported languages in this bundle.
|
|
36
|
+
*/
|
|
37
|
+
export function getSupportedLanguages(): string[] {
|
|
38
|
+
return [...SUPPORTED_LANGUAGES];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Validate that a language is supported by this bundle.
|
|
43
|
+
*/
|
|
44
|
+
function validateLanguage(language: string): void {
|
|
45
|
+
if (language !== 'id') {
|
|
46
|
+
throw new Error(`Language not supported in this bundle: ${language}. ` + `Supported: id`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// =============================================================================
|
|
51
|
+
// Tokenizers (from registry)
|
|
52
|
+
// =============================================================================
|
|
53
|
+
|
|
54
|
+
export { getTokenizer, isLanguageSupported } from './registry';
|
|
55
|
+
|
|
56
|
+
import type { LanguageToken } from './types';
|
|
57
|
+
import { tokenize as tokenizeInternal } from './tokenizers';
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Tokenize input and return array of tokens (browser-friendly wrapper).
|
|
61
|
+
*/
|
|
62
|
+
export function tokenize(input: string, language: string): LanguageToken[] {
|
|
63
|
+
validateLanguage(language);
|
|
64
|
+
const stream = tokenizeInternal(input, language);
|
|
65
|
+
return [...stream.tokens];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Re-export tokenizers
|
|
69
|
+
export { indonesianTokenizer } from './tokenizers/indonesian';
|
|
70
|
+
|
|
71
|
+
// =============================================================================
|
|
72
|
+
// Patterns (from registry - lazy generation)
|
|
73
|
+
// =============================================================================
|
|
74
|
+
|
|
75
|
+
import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
|
|
76
|
+
import type { LanguagePattern, ActionType } from './types';
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Get all patterns for a language.
|
|
80
|
+
*/
|
|
81
|
+
export function getPatternsForLanguage(language: string): LanguagePattern[] {
|
|
82
|
+
validateLanguage(language);
|
|
83
|
+
return getPatternsFromRegistry(language);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get patterns for a language and specific command.
|
|
88
|
+
*/
|
|
89
|
+
export function getPatternsForLanguageAndCommand(
|
|
90
|
+
language: string,
|
|
91
|
+
command: ActionType
|
|
92
|
+
): LanguagePattern[] {
|
|
93
|
+
return getPatternsForLanguage(language)
|
|
94
|
+
.filter(p => p.command === command)
|
|
95
|
+
.sort((a, b) => b.priority - a.priority);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// =============================================================================
|
|
99
|
+
// Language Profiles (from registry)
|
|
100
|
+
// =============================================================================
|
|
101
|
+
|
|
102
|
+
export { getProfile, tryGetProfile } from './registry';
|
|
103
|
+
export { indonesianProfile } from './generators/language-profiles';
|
|
104
|
+
|
|
105
|
+
// =============================================================================
|
|
106
|
+
// Parsing
|
|
107
|
+
// =============================================================================
|
|
108
|
+
|
|
109
|
+
export { parse, canParse } from './parser';
|
|
110
|
+
export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
|
|
111
|
+
|
|
112
|
+
// =============================================================================
|
|
113
|
+
// Rendering
|
|
114
|
+
// =============================================================================
|
|
115
|
+
|
|
116
|
+
export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
|
|
117
|
+
|
|
118
|
+
// =============================================================================
|
|
119
|
+
// AST Builder
|
|
120
|
+
// =============================================================================
|
|
121
|
+
|
|
122
|
+
export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
|
|
123
|
+
|
|
124
|
+
// =============================================================================
|
|
125
|
+
// Semantic Analyzer (for core parser integration)
|
|
126
|
+
// =============================================================================
|
|
127
|
+
|
|
128
|
+
export {
|
|
129
|
+
createSemanticAnalyzer,
|
|
130
|
+
SemanticAnalyzerImpl,
|
|
131
|
+
shouldUseSemanticResult,
|
|
132
|
+
DEFAULT_CONFIDENCE_THRESHOLD,
|
|
133
|
+
HIGH_CONFIDENCE_THRESHOLD,
|
|
134
|
+
} from './core-bridge';
|
|
135
|
+
|
|
136
|
+
export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
|
|
137
|
+
|
|
138
|
+
// =============================================================================
|
|
139
|
+
// Type Helpers
|
|
140
|
+
// =============================================================================
|
|
141
|
+
|
|
142
|
+
export {
|
|
143
|
+
createSelector,
|
|
144
|
+
createLiteral,
|
|
145
|
+
createReference,
|
|
146
|
+
createPropertyPath,
|
|
147
|
+
createCommandNode,
|
|
148
|
+
createEventHandler,
|
|
149
|
+
} from './types';
|
|
150
|
+
|
|
151
|
+
// =============================================================================
|
|
152
|
+
// Types
|
|
153
|
+
// =============================================================================
|
|
154
|
+
|
|
155
|
+
export type {
|
|
156
|
+
ActionType,
|
|
157
|
+
SemanticRole,
|
|
158
|
+
SemanticValue,
|
|
159
|
+
SemanticNode,
|
|
160
|
+
LanguageToken,
|
|
161
|
+
TokenStream,
|
|
162
|
+
} from './types';
|