ether-code 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2406,5 +2406,404 @@
2406
2406
  "nouvelleFenetreNat": { "fr": "nouvelle fenêtre", "en": "new window", "es": "nueva ventana", "ru": "новое окно", "zh": "新窗口", "ja": "新しいウィンドウ" },
2407
2407
  "champTexte": { "fr": "champ texte", "en": "text field", "es": "campo texto", "ru": "текстовое поле", "zh": "文本字段", "ja": "テキストフィールド" },
2408
2408
  "page": { "fr": "page", "en": "page", "es": "página", "ru": "страница", "zh": "页面", "ja": "ページ" }
2409
+ },
2410
+ "metaAttributes": {
2411
+ "charset": {
2412
+ "fr": "jeu caractères",
2413
+ "en": "charset",
2414
+ "es": "juego caracteres",
2415
+ "ru": "кодировка",
2416
+ "zh": "字符集",
2417
+ "ja": "文字セット",
2418
+ "html": "charset"
2419
+ },
2420
+ "contenu": {
2421
+ "fr": "contenu",
2422
+ "en": "content",
2423
+ "es": "contenido",
2424
+ "ru": "содержимое",
2425
+ "zh": "内容",
2426
+ "ja": "コンテンツ",
2427
+ "html": "content"
2428
+ },
2429
+ "httpEquiv": {
2430
+ "fr": "équivalent http",
2431
+ "en": "http-equiv",
2432
+ "es": "equivalente http",
2433
+ "ru": "http-equiv",
2434
+ "zh": "http等效",
2435
+ "ja": "http-equiv",
2436
+ "html": "http-equiv"
2437
+ },
2438
+ "nomMeta": {
2439
+ "fr": "nom",
2440
+ "en": "name",
2441
+ "es": "nombre",
2442
+ "ru": "имя",
2443
+ "zh": "名称",
2444
+ "ja": "名前",
2445
+ "html": "name"
2446
+ }
2447
+ },
2448
+ "scriptAttributes": {
2449
+ "differe": {
2450
+ "fr": "différé",
2451
+ "en": "defer",
2452
+ "es": "diferido",
2453
+ "ru": "отложенный",
2454
+ "zh": "延迟",
2455
+ "ja": "遅延",
2456
+ "html": "defer"
2457
+ },
2458
+ "asynchrone": {
2459
+ "fr": "asynchrone",
2460
+ "en": "async",
2461
+ "es": "asíncrono",
2462
+ "ru": "асинхронный",
2463
+ "zh": "异步",
2464
+ "ja": "非同期",
2465
+ "html": "async"
2466
+ },
2467
+ "srcScript": {
2468
+ "fr": "source",
2469
+ "en": "src",
2470
+ "es": "fuente",
2471
+ "ru": "источник",
2472
+ "zh": "源",
2473
+ "ja": "ソース",
2474
+ "html": "src"
2475
+ },
2476
+ "typeScript": {
2477
+ "fr": "type",
2478
+ "en": "type",
2479
+ "es": "tipo",
2480
+ "ru": "тип",
2481
+ "zh": "类型",
2482
+ "ja": "タイプ",
2483
+ "html": "type"
2484
+ },
2485
+ "module": {
2486
+ "fr": "module",
2487
+ "en": "module",
2488
+ "es": "módulo",
2489
+ "ru": "модуль",
2490
+ "zh": "模块",
2491
+ "ja": "モジュール",
2492
+ "html": "module"
2493
+ },
2494
+ "nomodule": {
2495
+ "fr": "sans module",
2496
+ "en": "nomodule",
2497
+ "es": "sin módulo",
2498
+ "ru": "без модуля",
2499
+ "zh": "无模块",
2500
+ "ja": "モジュールなし",
2501
+ "html": "nomodule"
2502
+ },
2503
+ "integrite": {
2504
+ "fr": "intégrité",
2505
+ "en": "integrity",
2506
+ "es": "integridad",
2507
+ "ru": "целостность",
2508
+ "zh": "完整性",
2509
+ "ja": "整合性",
2510
+ "html": "integrity"
2511
+ },
2512
+ "crossorigin": {
2513
+ "fr": "origine croisée",
2514
+ "en": "crossorigin",
2515
+ "es": "origen cruzado",
2516
+ "ru": "кросс-домен",
2517
+ "zh": "跨域",
2518
+ "ja": "クロスオリジン",
2519
+ "html": "crossorigin"
2520
+ }
2521
+ },
2522
+ "tableAttributes": {
2523
+ "portee": {
2524
+ "fr": "portée",
2525
+ "en": "scope",
2526
+ "es": "ámbito",
2527
+ "ru": "область",
2528
+ "zh": "范围",
2529
+ "ja": "スコープ",
2530
+ "html": "scope"
2531
+ },
2532
+ "porteeCol": {
2533
+ "fr": "col",
2534
+ "en": "col",
2535
+ "es": "col",
2536
+ "ru": "col",
2537
+ "zh": "col",
2538
+ "ja": "col",
2539
+ "html": "col"
2540
+ },
2541
+ "porteeRow": {
2542
+ "fr": "ligne",
2543
+ "en": "row",
2544
+ "es": "fila",
2545
+ "ru": "строка",
2546
+ "zh": "行",
2547
+ "ja": "行",
2548
+ "html": "row"
2549
+ },
2550
+ "porteeColgroup": {
2551
+ "fr": "groupe colonnes",
2552
+ "en": "colgroup",
2553
+ "es": "grupo columnas",
2554
+ "ru": "группа колонок",
2555
+ "zh": "列组",
2556
+ "ja": "列グループ",
2557
+ "html": "colgroup"
2558
+ },
2559
+ "porteeRowgroup": {
2560
+ "fr": "groupe lignes",
2561
+ "en": "rowgroup",
2562
+ "es": "grupo filas",
2563
+ "ru": "группа строк",
2564
+ "zh": "行组",
2565
+ "ja": "行グループ",
2566
+ "html": "rowgroup"
2567
+ },
2568
+ "fusionColonnes": {
2569
+ "fr": "fusion colonnes",
2570
+ "en": "colspan",
2571
+ "es": "fusión columnas",
2572
+ "ru": "объединение колонок",
2573
+ "zh": "跨列",
2574
+ "ja": "列の結合",
2575
+ "html": "colspan"
2576
+ },
2577
+ "fusionLignes": {
2578
+ "fr": "fusion lignes",
2579
+ "en": "rowspan",
2580
+ "es": "fusión filas",
2581
+ "ru": "объединение строк",
2582
+ "zh": "跨行",
2583
+ "ja": "行の結合",
2584
+ "html": "rowspan"
2585
+ },
2586
+ "etendueCol": {
2587
+ "fr": "étendue",
2588
+ "en": "span",
2589
+ "es": "extensión",
2590
+ "ru": "охват",
2591
+ "zh": "跨度",
2592
+ "ja": "スパン",
2593
+ "html": "span"
2594
+ },
2595
+ "headers": {
2596
+ "fr": "entêtes",
2597
+ "en": "headers",
2598
+ "es": "encabezados",
2599
+ "ru": "заголовки",
2600
+ "zh": "标题",
2601
+ "ja": "ヘッダー",
2602
+ "html": "headers"
2603
+ }
2604
+ },
2605
+ "iframeAttributes": {
2606
+ "srcIframe": {
2607
+ "fr": "source",
2608
+ "en": "src",
2609
+ "es": "fuente",
2610
+ "ru": "источник",
2611
+ "zh": "源",
2612
+ "ja": "ソース",
2613
+ "html": "src"
2614
+ },
2615
+ "allow": {
2616
+ "fr": "autoriser",
2617
+ "en": "allow",
2618
+ "es": "permitir",
2619
+ "ru": "разрешить",
2620
+ "zh": "允许",
2621
+ "ja": "許可",
2622
+ "html": "allow"
2623
+ },
2624
+ "allowfullscreen": {
2625
+ "fr": "plein écran",
2626
+ "en": "allowfullscreen",
2627
+ "es": "pantalla completa",
2628
+ "ru": "полный экран",
2629
+ "zh": "全屏",
2630
+ "ja": "フルスクリーン",
2631
+ "html": "allowfullscreen"
2632
+ },
2633
+ "sandbox": {
2634
+ "fr": "bac à sable",
2635
+ "en": "sandbox",
2636
+ "es": "sandbox",
2637
+ "ru": "песочница",
2638
+ "zh": "沙盒",
2639
+ "ja": "サンドボックス",
2640
+ "html": "sandbox"
2641
+ },
2642
+ "loading": {
2643
+ "fr": "chargement",
2644
+ "en": "loading",
2645
+ "es": "carga",
2646
+ "ru": "загрузка",
2647
+ "zh": "加载",
2648
+ "ja": "ロード",
2649
+ "html": "loading"
2650
+ },
2651
+ "name": {
2652
+ "fr": "nom",
2653
+ "en": "name",
2654
+ "es": "nombre",
2655
+ "ru": "имя",
2656
+ "zh": "名称",
2657
+ "ja": "名前",
2658
+ "html": "name"
2659
+ },
2660
+ "referrerpolicy": {
2661
+ "fr": "politique référent",
2662
+ "en": "referrerpolicy",
2663
+ "es": "política referente",
2664
+ "ru": "политика реферера",
2665
+ "zh": "引荐策略",
2666
+ "ja": "リファラーポリシー",
2667
+ "html": "referrerpolicy"
2668
+ },
2669
+ "srcdoc": {
2670
+ "fr": "document source",
2671
+ "en": "srcdoc",
2672
+ "es": "documento fuente",
2673
+ "ru": "исходный документ",
2674
+ "zh": "源文档",
2675
+ "ja": "ソースドキュメント",
2676
+ "html": "srcdoc"
2677
+ }
2678
+ },
2679
+ "objectAttributes": {
2680
+ "donneesObjet": {
2681
+ "fr": "données",
2682
+ "en": "data",
2683
+ "es": "datos",
2684
+ "ru": "данные",
2685
+ "zh": "数据",
2686
+ "ja": "データ",
2687
+ "html": "data"
2688
+ },
2689
+ "typeObjet": {
2690
+ "fr": "type",
2691
+ "en": "type",
2692
+ "es": "tipo",
2693
+ "ru": "тип",
2694
+ "zh": "类型",
2695
+ "ja": "タイプ",
2696
+ "html": "type"
2697
+ },
2698
+ "nomObjet": {
2699
+ "fr": "nom",
2700
+ "en": "name",
2701
+ "es": "nombre",
2702
+ "ru": "имя",
2703
+ "zh": "名称",
2704
+ "ja": "名前",
2705
+ "html": "name"
2706
+ },
2707
+ "usemap": {
2708
+ "fr": "carte",
2709
+ "en": "usemap",
2710
+ "es": "mapa",
2711
+ "ru": "карта",
2712
+ "zh": "地图",
2713
+ "ja": "マップ",
2714
+ "html": "usemap"
2715
+ },
2716
+ "form": {
2717
+ "fr": "formulaire",
2718
+ "en": "form",
2719
+ "es": "formulario",
2720
+ "ru": "форма",
2721
+ "zh": "表单",
2722
+ "ja": "フォーム",
2723
+ "html": "form"
2724
+ }
2725
+ },
2726
+ "areaAttributes": {
2727
+ "forme": {
2728
+ "fr": "forme",
2729
+ "en": "shape",
2730
+ "es": "forma",
2731
+ "ru": "форма",
2732
+ "zh": "形状",
2733
+ "ja": "形状",
2734
+ "html": "shape"
2735
+ },
2736
+ "rect": {
2737
+ "fr": "rectangle",
2738
+ "en": "rect",
2739
+ "es": "rectángulo",
2740
+ "ru": "прямоугольник",
2741
+ "zh": "矩形",
2742
+ "ja": "長方形",
2743
+ "html": "rect"
2744
+ },
2745
+ "circle": {
2746
+ "fr": "cercle",
2747
+ "en": "circle",
2748
+ "es": "círculo",
2749
+ "ru": "круг",
2750
+ "zh": "圆形",
2751
+ "ja": "円",
2752
+ "html": "circle"
2753
+ },
2754
+ "poly": {
2755
+ "fr": "polygone",
2756
+ "en": "poly",
2757
+ "es": "polígono",
2758
+ "ru": "многоугольник",
2759
+ "zh": "多边形",
2760
+ "ja": "ポリゴン",
2761
+ "html": "poly"
2762
+ },
2763
+ "coordonnees": {
2764
+ "fr": "coordonnées",
2765
+ "en": "coords",
2766
+ "es": "coordenadas",
2767
+ "ru": "координаты",
2768
+ "zh": "坐标",
2769
+ "ja": "座標",
2770
+ "html": "coords"
2771
+ },
2772
+ "alternativeArea": {
2773
+ "fr": "alternative",
2774
+ "en": "alt",
2775
+ "es": "alternativo",
2776
+ "ru": "альтернатива",
2777
+ "zh": "替代文本",
2778
+ "ja": "代替テキスト",
2779
+ "html": "alt"
2780
+ },
2781
+ "hrefArea": {
2782
+ "fr": "adresse",
2783
+ "en": "href",
2784
+ "es": "enlace",
2785
+ "ru": "ссылка",
2786
+ "zh": "链接",
2787
+ "ja": "リンク",
2788
+ "html": "href"
2789
+ },
2790
+ "targetArea": {
2791
+ "fr": "cible",
2792
+ "en": "target",
2793
+ "es": "destino",
2794
+ "ru": "цель",
2795
+ "zh": "目标",
2796
+ "ja": "ターゲット",
2797
+ "html": "target"
2798
+ },
2799
+ "downloadArea": {
2800
+ "fr": "téléchargement",
2801
+ "en": "download",
2802
+ "es": "descargar",
2803
+ "ru": "скачать",
2804
+ "zh": "下载",
2805
+ "ja": "ダウンロード",
2806
+ "html": "download"
2409
2807
  }
2808
+ }
2410
2809
  }
@@ -75,6 +75,7 @@ const TokenType = {
75
75
 
76
76
  COMMENT: 'COMMENT',
77
77
  BLOCK_COMMENT: 'BLOCK_COMMENT',
78
+ SEMICOLON: 'SEMICOLON',
78
79
 
79
80
  EOF: 'EOF',
80
81
  ERROR: 'ERROR'
@@ -306,7 +307,7 @@ class EtherLexer {
306
307
  this.tokens.push(new Token(TokenType.DEDENT, '', this.line, 1, indent))
307
308
  }
308
309
  if (this.indentStack[this.indentStack.length - 1] !== indent) {
309
- this.tokens.push(new Token(TokenType.ERROR, 'Indentation incohérente', this.line, 1, indent))
310
+ this.tokens.push(new Token(TokenType.ERROR, 'Indentation incohérente', this.line, 1, indent))
310
311
  }
311
312
  }
312
313
  }
@@ -418,7 +419,7 @@ class EtherLexer {
418
419
  break
419
420
  }
420
421
  if (this.peek() === '\n') {
421
- this.tokens.push(new Token(TokenType.ERROR, 'Chaîne non terminée', startLine, startCol, this.currentIndent))
422
+ this.tokens.push(new Token(TokenType.ERROR, 'Chaîne non terminée', startLine, startCol, this.currentIndent))
422
423
  return
423
424
  }
424
425
  }
@@ -674,12 +675,12 @@ class EtherLexer {
674
675
 
675
676
  normalizeAccents(str) {
676
677
  const accentsMap = {
677
- 'à': 'a', 'â': 'a', 'ä': 'a', 'á': 'a',
678
- 'è': 'e', 'ê': 'e', 'ë': 'e', 'é': 'e',
679
- 'ì': 'i', 'î': 'i', 'ï': 'i', 'í': 'i',
680
- 'ò': 'o', 'ô': 'o', 'ö': 'o', 'ó': 'o',
681
- 'ù': 'u', 'û': 'u', 'ü': 'u', 'ú': 'u',
682
- 'ç': 'c', 'ñ': 'n'
678
+ 'à': 'a', 'â': 'a', 'ä': 'a', 'á': 'a',
679
+ 'è': 'e', 'ê': 'e', 'ë': 'e', 'é': 'e',
680
+ 'ì': 'i', 'î': 'i', 'ï': 'i', 'í': 'i',
681
+ 'ò': 'o', 'ô': 'o', 'ö': 'o', 'ó': 'o',
682
+ 'ù': 'u', 'û': 'u', 'ü': 'u', 'ú': 'u',
683
+ 'ç': 'c', 'ñ': 'n'
683
684
  }
684
685
  return str.toLowerCase().split('').map(c => accentsMap[c] || c).join('')
685
686
  }
@@ -963,10 +964,11 @@ class EtherLexer {
963
964
  break
964
965
 
965
966
  case ';':
967
+ this.tokens.push(new Token(TokenType.SEMICOLON, ';', startLine, startCol, this.currentIndent))
966
968
  break
967
969
 
968
970
  default:
969
- this.tokens.push(new Token(TokenType.ERROR, `Caractère inattendu: ${char}`, startLine, startCol, this.currentIndent))
971
+ this.tokens.push(new Token(TokenType.ERROR, `Caractère inattendu: ${char}`, startLine, startCol, this.currentIndent))
970
972
  }
971
973
  }
972
974
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ether-code",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "description": "Ether - Le langage intentionnel",
5
5
  "main": "cli/compiler.js",
6
6
  "bin": {