bayda-maghreb 0.0.0-stage โ†’ 1.0.1

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.
Files changed (44) hide show
  1. package/.gitignor +1 -0
  2. package/README.md +20 -2
  3. package/core/ast.ts +1 -0
  4. package/core/compile.ts +1 -0
  5. package/core/lexer.ts +4 -0
  6. package/core/loader.ts +1 -0
  7. package/core/mapping.ts +1 -0
  8. package/core/normalizer.ts +1 -0
  9. package/core/parser.ts +1 -0
  10. package/core/schema.ts +1 -0
  11. package/core/types.ts +1 -0
  12. package/data/dialects/algeria.json +105 -0
  13. package/data/dialects/algeria_franco.json +51 -0
  14. package/data/dialects/kab.json +10 -0
  15. package/data/dialects/kabyle-latin.json +17 -0
  16. package/data/dialects/libya.json +256 -0
  17. package/data/dialects/mauritania.json +17 -0
  18. package/data/dialects/tifinagh.json +17 -0
  19. package/data/dialects/tunisia_franco.json +115 -0
  20. package/examples/hello.kab +1 -0
  21. package/examples/hello.ly +1 -0
  22. package/examples/hello.mr +1 -0
  23. package/examples/hello.tfng +1 -0
  24. package/expected/hello.kab.txt +1 -0
  25. package/expected/hello.ly.txt +1 -0
  26. package/expected/hello.mr.txt +1 -0
  27. package/expected/hello.tfng.txt +1 -0
  28. package/index.html +33 -0
  29. package/index.js +34 -0
  30. package/lahjat/dzair/dzair.franko.bayda +118 -0
  31. package/lahjat/dzair/dzair1.bayda +116 -0
  32. package/lahjat/libya/libya.franko.bayda +336 -0
  33. package/lahjat/libya/libya1.bayda +374 -0
  34. package/lahjat/mr/mr.bayda +60 -0
  35. package/lahjat/mr/mr.franko.bayda +131 -0
  36. package/lahjat/tounsi/tounsi.franko.bayda +203 -0
  37. package/package.json +18 -4
  38. package/src/dialect-registry.js +10 -0
  39. package/tests/core/lexer.test.ts +3 -0
  40. package/tests/core/parser.test.ts +3 -0
  41. package/tsconfig.json +12 -0
  42. package/vitest.config.ts +2 -0
  43. package/writers/python-writer.ts +1 -0
  44. package//330/263/330/261 +0 -0
package/.gitignor ADDED
@@ -0,0 +1 @@
1
+ node_modules/
package/README.md CHANGED
@@ -1,3 +1,21 @@
1
- # Temporary Holding Version
1
+ # Bayda Maghreb ๐ŸŒ™ - Franco & Arabic Dialects
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ North African dialect transliteration library - Kabyle, Libya, Tunisia, Algeria, Mauritania, Tifinagh.
4
+
5
+ ## v1.0 - 8 dialects green โœ…
6
+
7
+ | Code | Name | File | Lines | Status |
8
+ |------|------|------|-------|--------|
9
+ | kab | Kabyle | kab.json | - | โœ… |
10
+ | kab-lat | Kabyle Latin | kabyle-latin.json | - | โœ… |
11
+ | ly | Libya | libya.json | 374 | โœ… |
12
+ | mr | Mauritania | mauritania.json | 130+ | โœ… |
13
+ | tif | Tifinagh | tifinagh.json | - | โœ… |
14
+ | tn-latn | Tounsi | tunisia_franco.json | 203 | โœ… |
15
+ | dz | Dzair Arabic | algeria.json | 174 | โœ… |
16
+ | dz-latn | Dzair Franco | algeria_franco.json | 174 | โœ… |
17
+
18
+ ## Install
19
+
20
+ ```bash
21
+ npm install bayda-maghreb
package/core/ast.ts ADDED
@@ -0,0 +1 @@
1
+ export type Node={type:string;[k:string]:any}; export type Program={type:'Program';body:Node[]};
@@ -0,0 +1 @@
1
+ import {parse} from './parser.js'; export function compile(src:string){return parse(src);}
package/core/lexer.ts ADDED
@@ -0,0 +1,4 @@
1
+ export type TokenType = 'IDENT'|'NUMBER'|'STRING'|'KEYWORD'|'SYMBOL'|'NEWLINE'|'EOF';
2
+ export interface Token{type:TokenType;value:string;line:number;col:number;}
3
+ const KEYWORDS=new Set(['ila','awla','wila','hata','dir','safi','ktab','jib','khrej']);
4
+ export function lex(input:string):Token[]{const tokens:Token[]=[];let line=1,col=1,i=0;while(i<input.length){const c=input[i];if(c==='\n'){tokens.push({type:'NEWLINE',value:'\n',line,col});line++;col=1;i++;continue;}if(/\s/.test(c)){col++;i++;continue;}if(c==='"'||c==="'"){const q=c;let v='';i++;col++;while(i<input.length&&input[i]!==q){v+=input[i];i++;col++;}i++;col++;tokens.push({type:'STRING',value:v,line,col});continue;}if(/[0-9]/.test(c)){let v='';while(i<input.length&&/[0-9.]/.test(input[i])){v+=input[i];i++;col++;}tokens.push({type:'NUMBER',value:v,line,col});continue;}if(/[a-zA-Z_ุก-ูŠโดฐ-โตฟ]/.test(c)){let v='';while(i<input.length&&/[a-zA-Z0-9_ุก-ูŠโดฐ-โตฟ]/.test(input[i])){v+=input[i];i++;col++;}if(KEYWORDS.has(v))tokens.push({type:'KEYWORD',value:v,line,col});else tokens.push({type:'IDENT',value:v,line,col});continue;}tokens.push({type:'SYMBOL',value:c,line,col});i++;col++;}tokens.push({type:'EOF',value:'',line,col});return tokens;}
package/core/loader.ts ADDED
@@ -0,0 +1 @@
1
+ import fs from 'fs'; import path from 'path'; export function loadDialect(name:string){const p=path.join(process.cwd(),'data','dialects',`${name}.json`);if(fs.existsSync(p))return JSON.parse(fs.readFileSync(p,'utf-8'));return null;}
@@ -0,0 +1 @@
1
+ export const baseMapping:Record<string,string>={ila:'if',awla:'else',wila:'elif',hata:'while',dir:'do',safi:'end',ktab:'print',jib:'input',khrej:'return'};
@@ -0,0 +1 @@
1
+ import {Token} from './lexer.js'; export function normalize(tokens:Token[]):Token[]{return tokens;}
package/core/parser.ts ADDED
@@ -0,0 +1 @@
1
+ import {lex} from './lexer.js'; import {Program} from './ast.js'; export function parse(input:string):Program{const tokens=lex(input);const body:any[]=[];let i=0;while(i<tokens.length){const t=tokens[i];if(t.type==='EOF')break;if(t.type==='NEWLINE'){i++;continue;}if(t.type==='KEYWORD'&&t.value==='ktab'){i++;if(tokens[i]){body.push({type:'Print',value:tokens[i].value});i++;}continue;}i++;}return{type:'Program',body};}
package/core/schema.ts ADDED
@@ -0,0 +1 @@
1
+ import {z} from 'zod'; export const DialectSchema=z.object({name:z.string(),keywords:z.record(z.string()),symbols:z.record(z.string())});
package/core/types.ts ADDED
@@ -0,0 +1 @@
1
+ export interface Dialect{name:string;keywords:Record<string,string>;symbols:Record<string,string>;}
@@ -0,0 +1,105 @@
1
+ {
2
+ "name": "algeria",
3
+ "code": "dz",
4
+ "script": "Arabic",
5
+ "keywords": {
6
+ "ุฅู„ุง": "else",
7
+ "ูˆุฅู„ุง": "else",
8
+ "ุจุตุญ": "else",
9
+ "ุฅูŠู„ุง": "if",
10
+ "ู„ูˆูƒุงู†": "if",
11
+ "ูƒุงู†": "if",
12
+ "ูƒูŠ": "if",
13
+ "ุทูˆู„ ู…ุง": "while",
14
+ "ู…ุงุฏุงู…": "while",
15
+ "ุฏูŠุฑ": "do",
16
+ "ูˆุฅู„ุง ูƒุงู†": "elif",
17
+ "ูˆู„ุง ูƒุงู†": "elif",
18
+ "ุฏูˆุฑ": "for",
19
+ "ู„ู": "for",
20
+ "ุญุจู‘ุณ": "break",
21
+ "ู‚ุต": "break",
22
+ "ููˆู‘ุช": "continue",
23
+ "ุฌูˆุฒ": "continue",
24
+ "ุฎู„ุงุต": "end",
25
+ "ูƒู…ู„": "end",
26
+ "ุตุญ": "true",
27
+ "ุบุงู„ุท": "false",
28
+ "ูˆ": "and",
29
+ "ูˆู„ุง": "or",
30
+ "ู…ุงุดูŠ": "not",
31
+ "ุฃููŠุดูŠ": "print",
32
+ "ุจูŠู‘ู†": "print",
33
+ "ูˆุฑู‘ูŠ": "print",
34
+ "ุฃุทุจุน": "print",
35
+ "ุฌูŠุจ": "input",
36
+ "ุฏุฎู„": "input",
37
+ "ุฃู‚ุฑุง": "input",
38
+ "ุณู‚ุณูŠ": "input",
39
+ "ุฑุฌู‘ุน": "return",
40
+ "ูˆู„ู‘ูŠ": "return",
41
+ "ุญุงุฌุฉ": "variable",
42
+ "ุนูุณุฉ": "variable",
43
+ "ุซุงุจุช": "constant",
44
+ "ู…ุณู…ุงุฑ": "constant",
45
+ "ู„ูŠุณุชุฉ": "array_list",
46
+ "ุฎุงูˆูŠุฉ": "null_empty",
47
+ "ู…ูƒุงุด": "null_empty",
48
+ "ูˆุงู„ูˆ": "null_empty",
49
+ "ู…ุณุญ": "clear_delete",
50
+ "ู†ู‚ูŠ": "clear_delete",
51
+ "ุฎุฏู…ุฉ": "function_method",
52
+ "ุดุนู„": "run_execute",
53
+ "ุณุฌู‘ู„": "save_commit",
54
+ "ุฎุจู‘ูŠ": "save_commit",
55
+ "ุญูˆู‘ุณ": "debug",
56
+ "ุจุงุบ": "error_bug",
57
+ "ุทุงุญ": "crash",
58
+ "ุชู…ุช": "success",
59
+ "ุตู„ุญุช": "success",
60
+ "ููˆุฑู…ุฉ": "class",
61
+ "ู‚ุงู„ุจ": "class",
62
+ "ู†ุณุฎุฉ": "clone",
63
+ "ูุฑุฎ": "object",
64
+ "ูˆุฑุซ": "inheritance",
65
+ "ุงู„ุฒุจุงู„": "garbage_collector",
66
+ "ุงู„ุจุงุจ": "port",
67
+ "ุงู„ุฑูˆุดู†": "api_endpoint",
68
+ "ุฃุจุนุซ": "request",
69
+ "ุฏุฒ": "request",
70
+ "ุฌูˆุงุจ": "response",
71
+ "ูุงุช ุงู„ูˆู‚ุช": "timeout",
72
+ "ุงู„ุณูŠุฑูุฑ": "server",
73
+ "ุทู„ู‚": "deploy",
74
+ "ุงู„ุฎุฒูŠู†": "backup",
75
+ "ุฎู„ุท": "merge",
76
+ "ุฏูุน": "push",
77
+ "ุฃุฌุจุฏ": "pull",
78
+ "ุฏูˆุฑ ุจู„ุง ุญุจุงุณ": "infinite_loop",
79
+ "ุฃุณุชู†ู‰": "loading_spinner",
80
+ "ุนู†ุฏูˆ ุงู„ุถูˆ ุฎุถุฑ": "authorized",
81
+ "ุจู„ูˆูƒูŠ": "blocked_banned",
82
+ "ุญุจุณ": "freeze_not_responding",
83
+ "ุฃุฑู‚ุฏ": "delay_sleep",
84
+ "ุงู„ุดูุฑุฉ": "password",
85
+ "ุงู„ุณุฑุงู‚": "hacker",
86
+ "ุงู„ุฎุฒู†ุฉ": "database",
87
+ "ุญูˆู‘ุณ ููŠ ุงู„ุฏูุชุฑ": "query",
88
+ "ุงู„ุจุตู…ุฉ": "primary_key",
89
+ "ุงู„ุณุงุณ": "framework",
90
+ "ูุงุจูˆุฑ": "open_source",
91
+ "ุนู†ุฏูŠ": "localhost",
92
+ "ุงู„ููˆู‚": "cloud",
93
+ "ูุฑุน": "branch",
94
+ "ุชุฎู„ุทุช": "conflict",
95
+ "ูˆู„ู‘ูŠ ูƒูŠู…ุง ูƒุงู†": "rollback",
96
+ "ุงู„ูƒุจุณุฉ": "button",
97
+ "ุงู„ุฏุงุฎู„": "padding",
98
+ "ุงู„ุจุฑุง": "margin",
99
+ "ุชุนูŠุท ู„ุฑูˆุญู‡ุง": "recursion",
100
+ "ุตุญ ูˆู„ุง ู„ุง": "boolean",
101
+ "ุฑุชู‘ุจ": "sort",
102
+ "ุตูู‘ูŠ": "filter"
103
+ },
104
+ "symbols": {}
105
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "algeria_franco",
3
+ "code": "dz-latn",
4
+ "script": "Latin",
5
+ "keywords": {
6
+ "ila": "if", "loukan": "if", "kan": "if", "ki": "if",
7
+ "bsah": "else", "w_ila": "else", "ella": "else",
8
+ "w_ila_kan": "elif", "ella_kan": "elif",
9
+ "toul_ma": "while", "madaam": "while",
10
+ "dir": "do",
11
+ "dour": "for", "lef": "for",
12
+ "7abbes": "break", "9oss": "break",
13
+ "fawet": "continue", "jouz": "continue",
14
+ "khlas": "end", "kamal": "end",
15
+ "s7i7": "true", "sah": "true",
16
+ "ghalet": "false",
17
+ "w": "and", "wella": "or", "machi": "not",
18
+ "bayen": "print", "wari": "print", "tba3": "print",
19
+ "jib": "input", "da5al": "input", "a9ra": "input",
20
+ "raja3": "return", "welli": "return",
21
+ "7aja": "variable", "3afsa": "variable",
22
+ "tabet": "constant", "mssamar": "constant",
23
+ "lista": "array_list",
24
+ "5awi": "null_empty", "makach": "null_empty", "walou": "null_empty", "fargh": "null_empty",
25
+ "msa7": "clear_delete", "n9i": "clear_delete",
26
+ "khedma": "function_method", "fonction": "function_method",
27
+ "ch3al": "run_execute", "5adem": "run_execute",
28
+ "sajal": "save_commit", "5abi": "save_commit",
29
+ "7awes": "debug", "bag": "error_bug", "ta7": "crash",
30
+ "tamet": "success", "sal7at": "success", "naja7": "success",
31
+ "forma": "class", "9aleb": "class", "noskha": "clone",
32
+ "ferkh": "object", "wart": "inheritance",
33
+ "zbel": "garbage_collector", "bab": "port",
34
+ "rawchen": "api_endpoint", "ab3at": "request",
35
+ "dez": "request", "jawb": "response", "fet_lwa9t": "timeout",
36
+ "sirfer": "server", "tla9": "deploy", "5azen": "backup",
37
+ "khalat": "merge", "dfa3": "push", "jbad": "pull",
38
+ "dour_bla_7sab": "infinite_loop", "estana": "loading_spinner",
39
+ "3ando_daw_a5dar": "authorized", "mbloki": "blocked_banned",
40
+ "m7abbes": "freeze_not_responding", "or9od": "delay_sleep",
41
+ "chifra": "password", "sara9": "hacker", "5azna": "database",
42
+ "7awes_fi_dfater": "query", "basma": "primary_key",
43
+ "sas": "framework", "fabor": "open_source", "3andi": "localhost",
44
+ "lfoug": "cloud", "far3": "branch", "tkhalatet": "conflict",
45
+ "welli_kima_kan": "rollback", "batma": "button",
46
+ "da5el": "padding", "barra": "margin",
47
+ "t3ayet_lro7ha": "recursion", "s7i7_wla_la": "boolean",
48
+ "rateb": "sort", "safi": "filter"
49
+ },
50
+ "symbols": {}
51
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "kab",
3
+ "keywords": {
4
+ "ila": "if",
5
+ "awla": "else"
6
+ },
7
+ "symbols": {},
8
+ "code": "kab",
9
+ "script": "Latin"
10
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "kabyle-latin",
3
+ "keywords": {
4
+ "ila": "if",
5
+ "awla": "else",
6
+ "wila": "elif",
7
+ "hata": "while",
8
+ "dir": "do",
9
+ "safi": "end",
10
+ "ktab": "print",
11
+ "jib": "input",
12
+ "khrej": "return"
13
+ },
14
+ "symbols": {},
15
+ "code": "kab-lat",
16
+ "script": "Latin"
17
+ }
@@ -0,0 +1,256 @@
1
+ {
2
+ "name": "Libya",
3
+ "code": "ly",
4
+ "script": "Arabic",
5
+ "keywords": {
6
+ "ูƒุงู† ุทุงุฑุช": "if",
7
+ "ูˆุฅู„ุงู‘": "else",
8
+ "ูˆุฅู„ุง ูƒุงู†": "elif",
9
+ "ูƒุงู† ุทุงุฑุช ุฃุฎุฑู‰": "elif",
10
+ "ู„ูˆ": "elif",
11
+ "ุฏูˆุฑ": "for",
12
+ "ู„ู": "for",
13
+ "ู„ูƒู„": "foreach",
14
+ "ู„ูƒู„ ูˆุงุญุฏ": "foreach",
15
+ "ุทูˆู„ ู…ุง ู‡ูŠ": "while",
16
+ "ุทุงู„ู…ุง": "while",
17
+ "ูุฑูŠู†ูˆ": "break",
18
+ "ู‚ุต ุนู„ูŠู‡ุง": "break",
19
+ "ููˆุชู‡ุง": "continue",
20
+ "ุฎุทู‘ู…": "continue",
21
+ "ุญุงุฌุฉ ูˆุชุฎู„ุงุต": "variable",
22
+ "ู…ุณู…ุงุฑ ููŠ ุญูŠุท": "constant",
23
+ "ุณู„ุงู‘ุท": "array_list",
24
+ "ุณุชูŠูƒุฉ": "array_list",
25
+ "ู…ูู„ุณ": "null_empty",
26
+ "ู…ููŠุด ุตุจุน": "null_empty",
27
+ "ุงู…ุณุญ ุงู„ุญูƒุงูƒุฉ": "clear_delete",
28
+ "ู‚ุฑุจุน": "clear_delete",
29
+ "ุงู„ุตู†ุนุฉ": "function_method",
30
+ "ูˆู„ู‘ุน": "run_execute",
31
+ "ุงุถุบุท ุงู„ุฒุฑ": "run_execute",
32
+ "ู„ูˆู‘ุญ ููŠ ุงู„ุดุงุดุฉ": "print",
33
+ "ูˆุฑู‘ูŠู†ุง": "print",
34
+ "ุฃู‚ูู„ ุนู„ูŠู‡ุง": "save_commit",
35
+ "ุฏุณู‘ู‡ุง": "save_commit",
36
+ "ู†ุจู‘ุด": "debug",
37
+ "ุฏูˆุฑ ุงู„ุณุฑูŠุจ": "debug",
38
+ "ุนูƒู‘ุฉ": "error_bug",
39
+ "ุงู„ุณูŠุณุชู… ุฎุด ููŠ ุญูŠุท": "error_bug",
40
+ "ุทุงุญ ุงู„ุณูŠุฑูุฑ": "crash",
41
+ "ุชูุดูุด": "crash",
42
+ "ุชู…ุช ุจุฌูˆุฏุฉ": "success",
43
+ "ุฃู…ูˆุฑู‡ุง ู„ูˆุฒ": "success",
44
+ "ุงู„ููˆุฑู…ุฉ": "class",
45
+ "ุงู„ูุตู‘ุงู„ุฉ": "class",
46
+ "ุงู„ู†ุณุฎุฉ": "object",
47
+ "ุงู„ูุฑุฎ": "object",
48
+ "ุทุงู„ุน ู„ุจูˆุฉ": "inheritance",
49
+ "ู…ูˆุฑู‘ุซ": "inheritance",
50
+ "ุงู„ูƒู†ู‘ุงุณ": "garbage_collector",
51
+ "ู„ู…ู‘ุงู… ุงู„ูุถู„ุฉ": "garbage_collector",
52
+ "ุงู„ุฑูˆุดู†": "api_endpoint",
53
+ "ู†ุฎุณ": "request",
54
+ "ุฏุฒู‘ู„ูŠ": "request",
55
+ "ุฑุฌุนู„ูŠ ุงู„ุฌูˆุงุจ": "response",
56
+ "ูุงุช ุงู„ู…ูŠุนุงุฏ": "timeout",
57
+ "ู…ู„ู‘ูŠู†ุง": "timeout",
58
+ "ุงู„ุญูˆุด ุงู„ูƒุจูŠุฑ": "server",
59
+ "ุงู„ุฑุฃุณ ุงู„ูƒุจูŠุฑุฉ": "server",
60
+ "ูƒู„ ุญุฏ ุจุฑุฃุณู‡": "asynchronous",
61
+ "ุฃุทู„ู‚ ููŠ ุงู„ุณูˆู‚": "deploy",
62
+ "ุทู„ุนู‡ุง ู„ู„ุถูˆุก": "deploy",
63
+ "ุงู„ุถู…ู‘ุงู†": "backup",
64
+ "ุงู„ุฎุฒูŠู†": "backup",
65
+ "ู†ูู‘ุถ ุบุจุงุฑู‡": "update_upgrade",
66
+ "ุฏูŠุฑู„ู‡ ู„ู‚ุทุฉ ุฌุฏูŠุฏุฉ": "update_upgrade",
67
+ "ุฎู„ู‘ุทู‡ู…": "merge",
68
+ "ุตูุจู‘ ุงู„ุญู…ูˆู„ ุนู„ู‰ ุจุนุถู‡ุง": "merge",
69
+ "ุฏูู‘ ุงู„ูƒูˆุฏ": "push",
70
+ "ุงุฌุจุฏู‡": "pull",
71
+ "ุณุงู‚ูŠุฉ ุชุฏูˆุฑ": "infinite_loop",
72
+ "ู…ุชุงู‡ุฉ ุบุฑู‚ู†ุง ููŠู‡ุง": "infinite_loop",
73
+ "ุฑุงุฌูŠ ุดูˆูŠุฉ": "loading_spinner",
74
+ "ูŠุจุฑู…": "loading_spinner",
75
+ "ุนู†ุฏู‡ ุงู„ุถูŠ ุงู„ุฃุฎุถุฑ": "authorized",
76
+ "ุตูƒู‘ุฑูˆุง ุนู„ูŠู‡ ุงู„ุณูƒุฉ": "blocked_banned",
77
+ "ุงู„ู…ุณุทุฑุฉ ุชุนุจู‘ูŠ": "progress_bar",
78
+ "ุฎุท ุงู„ุฎุทูˆุงุช": "progress_bar",
79
+ "ุฎูˆุฏ ู†ูŽููŽุณ": "delay_sleep",
80
+ "ุงุฑู‚ุฏ ุดูˆูŠุฉ": "delay_sleep",
81
+ "ุชุบู…ูŠู‚ ุงู„ุณุฑูŠุจ": "encryption",
82
+ "ุญุทู‘ู‡ ููŠ ู‚ุฒู‘ูŠุฑ": "encryption",
83
+ "ุงู„ูƒู„ู…ุฉ ุงู„ุณุฑุงู†ูŠุฉ": "password",
84
+ "ุงู„ุดูุฑุฉ": "password",
85
+ "ุงู„ุณุฑู‘ุงู‚": "hacker",
86
+ "ู…ุฎุฑุจุด ุงู„ุณูŠุณุชู…": "hacker",
87
+ "ุงู„ุชุฐูƒุฑุฉ": "token",
88
+ "ุงู„ูˆุฑู‚ุฉ": "token",
89
+ "ุงู„ุฎุฒูŠู†ุฉ": "database",
90
+ "ุงู„ุฏูุชุฑ ุงู„ูƒุจูŠุฑ": "database",
91
+ "ู†ุจุด ููŠ ุงู„ุฏูุงุชุฑ": "query",
92
+ "ุฏูˆุฑู„ูŠ ุนู„ู‰": "query",
93
+ "ุงู„ุนู„ุงู…ุงุช": "index",
94
+ "ุฑุฃุณ ุงู„ุฎูŠุท": "index",
95
+ "ุงู„ุจุตู…ุฉ": "primary_key",
96
+ "ู…ุงูƒูŠุงุฌ ู„ู„ูƒูˆุฏ": "refactoring",
97
+ "ุชุนุฏูŠู„ ูˆุชุณุชูŠู": "refactoring",
98
+ "ุงู„ุณุงุณ": "framework",
99
+ "ุงู„ุฑูƒูŠุฒุฉ": "framework",
100
+ "ุณุจูŠู„": "open_source",
101
+ "ู…ุชุงุญ ู„ู„ุฌู…ูŠุน": "open_source",
102
+ "ููŠ ุฌู‡ุงุฒูŠ": "localhost",
103
+ "ุนู†ุฏูŠ ู‡ู†ุง": "localhost",
104
+ "ููˆู‚": "cloud",
105
+ "ุณูŠุฑูุฑุงุช ุจุฑู‘ุฉ": "cloud",
106
+ "ุฑู‚ู… ุงู„ุนู†ูˆุงู†": "ip_address",
107
+ "ุนู†ูˆุงู† ุงู„ุฌู‡ุงุฒ": "ip_address",
108
+ "ุงู„ู…ุฏุฎู„": "port",
109
+ "ุงู„ุจุงุจ": "port",
110
+ "ูˆุณุน ุงู„ุฎุท": "bandwidth",
111
+ "ุณุนุฉ ุงู„ุดุจูƒุฉ": "bandwidth",
112
+ "ูุฑุน": "branch",
113
+ "ุชูุฑูŠุนุฉ": "branch",
114
+ "ุงุณุญุจ ู†ุณุฎุฉ": "clone",
115
+ "ู†ุฒู‘ู„ู‡ ุนู†ุฏูŠ": "clone",
116
+ "ุนู„ู‰ ุฌู†ุจ": "staging_area",
117
+ "ู…ุฑุญู„ุฉ ุงู„ุชุฌู‡ูŠุฒ": "staging_area",
118
+ "ุชุฏุงุฎู„": "conflict",
119
+ "ุฎุดุช ุจุนุถู‡ุง": "conflict",
120
+ "ุงุฑุฌุน ู„ู„ุชุงู„ูŠ": "rollback",
121
+ "ุฑุฏู‘ู‡ ุฒูŠ ู…ุง ูƒุงู†": "rollback",
122
+ "ูŠู…ุดูŠ ู…ุน ูƒู„ ุดุงุดุฉ": "responsive_design",
123
+ "ูŠุชุดูƒู„ ุญุณุจ ุงู„ุฌู‡ุงุฒ": "responsive_design",
124
+ "ุงู„ูˆุถุน ุงู„ู…ุนุชู…": "dark_mode",
125
+ "ุงู„ุฎู„ููŠุฉ ุงู„ูƒุญู„ุฉ": "dark_mode",
126
+ "ุงู„ูƒุจุณุฉ": "button",
127
+ "ุงู„ู‚ุฑุตุฉ": "button",
128
+ "ุงู„ุญุงุดูŠุฉ": "padding",
129
+ "ุงู„ูุฑุงุบ ุงู„ุฏุงุฎู„ูŠ": "padding",
130
+ "ุงู„ุจุนุฏ": "margin",
131
+ "ุงู„ูุฑุงุบ ุงู„ุฎุงุฑุฌูŠ": "margin",
132
+ "ุชู†ุงุฏูŠ ุฑูˆุญู‡ุง": "recursion",
133
+ "ุชูƒุฑุงุฑ ุฐุงุชูŠ": "recursion",
134
+ "ุตุญ ูˆุฅู„ุง ุฎุทุฃ": "boolean",
135
+ "ุฅูŠ ูˆุฅู„ุง ู„ุง": "boolean",
136
+ "ุณุชู‘ู": "sort",
137
+ "ูุฑู‘ุฒ": "sort",
138
+ "ุตูู‘ูŠ": "filter",
139
+ "ุนุฒู‘ู„": "filter",
140
+ "ุชุชุจุน ุงู„ุฌุฑุฉ": "bug_tracking",
141
+ "ุชุตููŠุฉ ุงู„ุดูˆุงุฆุจ": "linting",
142
+ "ุตู„ุงุญูŠุชู‡ุง ุชู…ุช": "deprecation",
143
+ "ุงู„ุฎุฏู…ุฉ ุงู„ุญูŠุฉ": "production",
144
+ "ุฑู‚ุนุฉ ุณุฑูŠุนุฉ": "hotfix",
145
+ "ุชุญู…ูŠู„ ุฒุงูŠุฏ": "overloading",
146
+ "ุชู…ุซูŠู„ ูˆุชุฌุฑูŠุจ": "mocking",
147
+ "ุถุจุท ุงู„ุญุงู„": "state_management",
148
+ "ุนุงุณ ุนู„ู‰ ุงู„ุญุฑูƒุฉ": "event_listener",
149
+ "ุงู„ุญูู…ู’ู„": "payload",
150
+ "ุชูˆุฌูŠู‡ ุงู„ุณูƒุฉ": "routing",
151
+ "ุงู„ุฌู„ุณุฉ": "session",
152
+ "ุงู„ูุชุงููŠุช": "cookies",
153
+ "ุงู„ู…ุฎุจุฃ ุงู„ู…ุคู‚ุช": "cache",
154
+ "ู…ูˆุฒุน ุงู„ุฌู‡ุฏ": "load_balancer",
155
+ "ุงู„ูˆุณูŠุท": "proxy",
156
+ "ุญูŠุท ุงู„ุตุฏ": "firewall",
157
+ "ุงู„ุชุซุจุช ู…ู† ุงู„ู‡ูˆูŠุฉ": "authentication",
158
+ "ุฅุฐู† ุงู„ุตู„ุงุญูŠุฉ": "authorization",
159
+ "ุฎุจุท ุนู…ูŠุงู†ูŠ": "brute_force",
160
+ "ุงุตุทูŠุงุฏ ุงู„ุตูŠุฏ": "phishing",
161
+ "ู…ูุชุงุญ ุงู„ู‚ูู„": "encryption_key",
162
+ "ูุชุญ ุงู„ุฑู…ูˆุฒ": "decryption",
163
+ "ุชู†ุธูŠู ุงู„ู…ุฏุฎู„ุงุช": "sanitization",
164
+ "ุฒุฑู‚ ูƒูˆุฏ": "injection",
165
+ "ุงู„ู…ุชุฌุฑ ูˆุงู„ูˆุณุท": "environment",
166
+ "ุฌู‡ู‘ุฒ ู„ู„ุฎุฏู…ุฉ": "build",
167
+ "ุฑุญูŠู„ ุงู„ุจูŠุงู†ุงุช": "migration",
168
+ "ุชุนุจุฆุฉ ู…ุจุฏุฆูŠุฉ": "seed",
169
+ "ู„ู‚ุทุฉ ุงู„ุจุฏุงูŠุฉ": "trigger",
170
+ "ุฒุญู…ุฉ ููŠ ูˆู‚ุช ูˆุงุญุฏ": "concurrency",
171
+ "ุนุฑู‚ ุงู„ุฎุฏู…ุฉ": "thread",
172
+ "ุงู„ุชุณูƒูŠุฑุฉ ุงู„ู…ูŠุชุฉ": "deadlock",
173
+ "ุณุจุงู‚ ุงู„ุฎุทูˆุงุช": "race_condition",
174
+ "ุงู„ุทุงุจูˆุฑ": "queue",
175
+ "ุงู„ู…ูƒุฏุณ": "stack",
176
+ "ุงู„ูƒูˆู…ุฉ": "heap",
177
+ "ุงู„ู…ุคุดุฑ": "pointer",
178
+ "ุฑู‚ู… ุงู„ุฎุงู†ุฉ": "array_index",
179
+ "ุณู„ุณู„ุฉ ุงู„ุญุฑูˆู": "string",
180
+ "ุงู„ุฑู‚ู… ุงู„ุตุญูŠุญ": "integer",
181
+ "ุงู„ุฑู‚ู… ุงู„ู…ูƒุณูˆุฑ": "float",
182
+ "ู…ุคุดุฑ ุงู„ูุฑุงุบ": "null_pointer",
183
+ "ุงู„ู…ุชุฑุฌู…": "compiler",
184
+ "ุงู„ู…ูุณุฑ ุงู„ููˆุฑูŠ": "interpreter",
185
+ "ุซู†ุงุฆูŠ ุงู„ุฃุฑู‚ุงู…": "binary",
186
+ "ู†ุธุงู… ุงู„ุณุชุฉ ุนุดุฑ": "hexadecimal",
187
+ "ู…ูˆุนุฏ ูˆุชูˆู‚ูŠุช": "cron_job",
188
+ "ุฅุดุนุงุฑ ููˆุฑูŠ": "webhook",
189
+ "ู‚ุฏุฑุฉ ุงู„ุชูˆุณุน": "scalability",
190
+ "ุงู„ุชุนุทูŠู„": "latency",
191
+ "ุงู„ุฅู†ุชุงุฌูŠุฉ": "throughput",
192
+ "ูˆู‚ุช ุงู„ู†ุดุงุท": "uptime",
193
+ "ูˆู‚ุช ุงู„ุทูŠุญุฉ": "downtime",
194
+ "ู…ุณุฌู„ ุงู„ุฃุญุฏุงุซ": "logs",
195
+ "ุชุชุจุน ุนู† ุจุนุฏ": "telemetry",
196
+ "ู…ุฑุงู‚ุจุฉ ุงู„ูˆุถุน": "monitoring",
197
+ "ู„ูˆุญุฉ ุงู„ุชุญูƒู…": "dashboard",
198
+ "ุงู„ุฅุถุงูุฉ": "plugin",
199
+ "ุงู„ุชูˆุณุนุฉ": "extension",
200
+ "ุงู„ู…ูƒุชุจุฉ": "library",
201
+ "ุงู„ู…ุนุชู…ุฏ ุนู„ูŠู‡": "dependency",
202
+ "ุงู„ุตุฑุฉ": "package",
203
+ "ุงู„ู…ุณุชูˆุฏุน": "repository",
204
+ "ุชูุฑูŠุน ุงู„ู…ุดุฑูˆุน": "fork",
205
+ "ุทู„ุจ ุฏู…ุฌ": "pull_request",
206
+ "ูุญุต ุงู„ุดูุฑุฉ": "code_review",
207
+ "ุชุฌู…ูŠุน ู…ุณุชู…ุฑ": "continuous_integration",
208
+ "ุชุฌู‡ูŠุฒ ู…ุณุชู…ุฑ": "continuous_deployment",
209
+ "ู†ุณุฎุฉ ุชุฌุฑูŠุจูŠุฉ": "beta_version",
210
+ "ูƒูˆุฏ ู‚ุฏูŠู…": "legacy_code",
211
+ "ูƒูˆุฏ ู…ุฎุจู„": "spaghetti_code",
212
+ "ุณู„ู ุชู‚ู†ูŠ": "technical_debt",
213
+ "ุตุญ": "true",
214
+ "ุฅูŠ": "true",
215
+ "ุชู…ุงู…": "true",
216
+ "ุบู„ุท": "false",
217
+ "ู„ุง": "false",
218
+ "ู…ุด ุชู…ุงู…": "false",
219
+ "ูˆ": "and",
220
+ "ูˆู„ุง": "or",
221
+ "ู…ุด": "not",
222
+ "ู…ูˆุด": "not",
223
+ "ุฌูŠุจ ู…ู†": "import",
224
+ "ุงุณุชูˆุฑุฏ": "import",
225
+ "ุฏุฎู„ ู…ูƒุชุจุฉ": "import",
226
+ "ุจุฑู…": "parameter",
227
+ "ู…ุนุงู…ู„": "parameter",
228
+ "ูŠุฎุถ ููŠ ุงู„ู„ุจู†": "spinner_loader",
229
+ "ุงู„ูƒู…ุจูŠูˆุชุฑ ุฌู…ู‘ุฏ": "freeze_not_responding",
230
+ "ุงู„ุฏูˆุงุฑุฉ ุงู„ุนุฌู„ุฉ ุชุจุฑู…": "spinner_loader",
231
+ "ูƒุจุด ุญุตู„": "freeze_not_responding",
232
+ "ุงู„ูƒู…ุจูŠูˆุชุฑ ุฌู…ุฏ": "freeze_not_responding",
233
+ "ุฏู„ูŠู„ ุงู„ุนู†ุงูˆูŠู†": "dns",
234
+ "ุดุฑูŠุท ุงู„ุงู…ุฑ": "script",
235
+ "ุงู…ุฑ ุงู„ุดุฑูŠุท": "script"
236
+ },
237
+ "symbols": {},
238
+ "ู„ูˆู‘ุญ ููŠ ุงู„ุดุงุดุฉ": "print",
239
+ "ู„ูˆุญ ููŠ ุงู„ุดุงุดุฉ": "print",
240
+ "ู„ูˆู‘ุญ": "print",
241
+ "ู„ูˆุญ": "print",
242
+ "ู‚ูˆู„": "print",
243
+ "ุงูƒุชุจ": "print",
244
+ "ุงุทุจุน": "print",
245
+ "ูƒุชู‘ุจ": "print",
246
+ "ktab": "print",
247
+ "ุฅุฐุง": "if",
248
+ "ูƒุงู†": "if",
249
+ "ูˆุฅู„ุง": "else",
250
+ "ุฏูŠุฑ": "for",
251
+ "ู„ูŠู†": "while",
252
+ "ุตุญ": "true",
253
+ "ุฎุทุฃ": "false",
254
+ "ูˆ": "and",
255
+ "ุฃูˆ": "or"
256
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "mauritania",
3
+ "keywords": {
4
+ "ila": "if",
5
+ "awla": "else",
6
+ "wila": "elif",
7
+ "hata": "while",
8
+ "dir": "do",
9
+ "safi": "end",
10
+ "ktab": "print",
11
+ "jib": "input",
12
+ "khrej": "return"
13
+ },
14
+ "symbols": {},
15
+ "code": "mr",
16
+ "script": "Arabic"
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "tifinagh",
3
+ "keywords": {
4
+ "ila": "if",
5
+ "awla": "else",
6
+ "wila": "elif",
7
+ "hata": "while",
8
+ "dir": "do",
9
+ "safi": "end",
10
+ "ktab": "print",
11
+ "jib": "input",
12
+ "khrej": "return"
13
+ },
14
+ "symbols": {},
15
+ "code": "tif",
16
+ "script": "Tifinagh"
17
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "name": "tunisia_franco",
3
+ "code": "tn-latn",
4
+ "script": "Latin",
5
+ "keywords": {
6
+ "ila": "if",
7
+ "ken": "if",
8
+ "ki": "if",
9
+ "illa": "else",
10
+ "w_illa": "else",
11
+ "ama": "else",
12
+ "w_illa_ken": "elif",
13
+ "toul_ma": "while",
14
+ "madam": "while",
15
+ "wa9tli": "while",
16
+ "a3mel": "do",
17
+ "dir": "do",
18
+ "dour": "for",
19
+ "9os": "break",
20
+ "yezi": "break",
21
+ "7abbes": "break",
22
+ "fout": "continue",
23
+ "jouz": "continue",
24
+ "saye": "end",
25
+ "akaho": "end",
26
+ "wfa": "end",
27
+ "s7i7": "true",
28
+ "sah": "true",
29
+ "ghalet": "false",
30
+ "w": "and",
31
+ "zada": "and",
32
+ "walla": "or",
33
+ "moush": "not",
34
+ "mech": "not",
35
+ "mawech": "not",
36
+ "warri": "print",
37
+ "affichi": "print",
38
+ "otba3": "print",
39
+ "jib": "input",
40
+ "da5el": "input",
41
+ "a9ra": "input",
42
+ "rajja3": "return",
43
+ "rawa7": "return",
44
+ "7aja": "variable",
45
+ "7kaya": "variable",
46
+ "faza": "variable",
47
+ "thebet": "constant",
48
+ "lista": "array_list",
49
+ "feregh": "null_empty",
50
+ "5awi": "null_empty",
51
+ "mafamech": "null_empty",
52
+ "walou": "null_empty",
53
+ "fasa5": "clear_delete",
54
+ "nadhaf": "clear_delete",
55
+ "5edma": "function_method",
56
+ "fonction": "function_method",
57
+ "cha8el": "run_execute",
58
+ "e5dem": "run_execute",
59
+ "sajel": "save_commit",
60
+ "5abbi": "save_commit",
61
+ "thabbet": "debug",
62
+ "lawaj": "debug",
63
+ "bag": "error_bug",
64
+ "3athra": "error_bug",
65
+ "ta7": "crash",
66
+ "tfarek": "crash",
67
+ "tammet": "success",
68
+ "mrigla": "success",
69
+ "sal7et": "success",
70
+ "forma": "class",
71
+ "9aleb": "class",
72
+ "nos5a": "clone",
73
+ "ka3ba": "object",
74
+ "wort": "inheritance",
75
+ "zabbal": "garbage_collector",
76
+ "beb": "port",
77
+ "rawchan": "api_endpoint",
78
+ "ab3ath": "request",
79
+ "dez": "push",
80
+ "jaweb": "response",
81
+ "fet_lwa9et": "timeout",
82
+ "sirfer": "server",
83
+ "sayyeb": "deploy",
84
+ "5azin": "backup",
85
+ "5alet": "merge",
86
+ "ejbed": "pull",
87
+ "dour_ble_7seb": "infinite_loop",
88
+ "estanna": "loading_spinner",
89
+ "3ando_dhaw_a5dher": "authorized",
90
+ "bloki": "blocked_banned",
91
+ "7bes": "freeze_not_responding",
92
+ "or9od": "delay_sleep",
93
+ "chifra": "password",
94
+ "sarre9": "hacker",
95
+ "5azna": "database",
96
+ "lawaj_fi_daftar": "query",
97
+ "basma": "primary_key",
98
+ "ses": "framework",
99
+ "fabor": "open_source",
100
+ "3andi": "localhost",
101
+ "lfou9": "cloud",
102
+ "far3": "branch",
103
+ "t5altet": "conflict",
104
+ "arja3_kima_ken": "rollback",
105
+ "batma": "button",
106
+ "da5el2": "padding",
107
+ "barra": "margin",
108
+ "t3ayet_lrou7ha": "recursion",
109
+ "s7i7_walla_la": "boolean",
110
+ "rattab": "sort",
111
+ "saffi": "filter",
112
+ "barcha": "many"
113
+ },
114
+ "symbols": {}
115
+ }
@@ -0,0 +1 @@
1
+ ktab "azul"