Grammalecte  Hex Artifact Content

Artifact f01ccf515f23b7495bc249d0224140b62c3990c87e33f119b96cfa06c60e79cb:


0000: 2f 2f 20 47 72 61 6d 6d 61 6c 65 63 74 65 20 2d  // Grammalecte -
0010: 20 4c 65 78 69 63 6f 67 72 61 70 68 65 0a 2f 2f   Lexicographe.//
0020: 20 4c 69 63 65 6e 73 65 3a 20 4d 50 4c 20 32 0a   License: MPL 2.
0030: 0a 2f 2a 20 6a 73 68 69 6e 74 20 65 73 76 65 72  ./* jshint esver
0040: 73 69 6f 6e 3a 36 2c 20 2d 57 30 39 37 20 2a 2f  sion:6, -W097 */
0050: 0a 2f 2a 20 6a 73 6c 69 6e 74 20 65 73 76 65 72  ./* jslint esver
0060: 73 69 6f 6e 3a 36 20 2a 2f 0a 2f 2a 20 67 6c 6f  sion:6 */./* glo
0070: 62 61 6c 20 72 65 71 75 69 72 65 2c 20 65 78 70  bal require, exp
0080: 6f 72 74 73 2c 20 63 6f 6e 73 6f 6c 65 20 2a 2f  orts, console */
0090: 0a 0a 22 75 73 65 20 73 74 72 69 63 74 22 3b 0a  .."use strict";.
00a0: 0a 24 7b 73 74 72 69 6e 67 7d 0a 24 7b 6d 61 70  .${string}.${map
00b0: 7d 0a 0a 0a 63 6f 6e 73 74 20 5f 64 54 61 67 20  }...const _dTag 
00c0: 3d 20 6e 65 77 20 4d 61 70 28 5b 0a 20 20 20 20  = new Map([.    
00d0: 5b 27 3a 4e 27 2c 20 5b 22 20 6e 6f 6d 2c 22 2c  [':N', [" nom,",
00e0: 20 22 4e 6f 6d 22 5d 5d 2c 0a 20 20 20 20 5b 27   "Nom"]],.    ['
00f0: 3a 41 27 2c 20 5b 22 20 61 64 6a 65 63 74 69 66  :A', [" adjectif
0100: 2c 22 2c 20 22 41 64 6a 65 63 74 69 66 22 5d 5d  ,", "Adjectif"]]
0110: 2c 0a 20 20 20 20 5b 27 3a 4d 31 27 2c 20 5b 22  ,.    [':M1', ["
0120: 20 70 72 c3 a9 6e 6f 6d 2c 22 2c 20 22 50 72 c3   pr..nom,", "Pr.
0130: a9 6e 6f 6d 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a  .nom"]],.    [':
0140: 4d 32 27 2c 20 5b 22 20 70 61 74 72 6f 6e 79 6d  M2', [" patronym
0150: 65 2c 22 2c 20 22 50 61 74 72 6f 6e 79 6d 65 2c  e,", "Patronyme,
0160: 20 6d 61 74 72 6f 6e 79 6d 65 2c 20 6e 6f 6d 20   matronyme, nom 
0170: 64 65 20 66 61 6d 69 6c 6c 65 e2 80 a6 22 5d 5d  de famille..."]]
0180: 2c 0a 20 20 20 20 5b 27 3a 4d 50 27 2c 20 5b 22  ,.    [':MP', ["
0190: 20 6e 6f 6d 20 70 72 6f 70 72 65 2c 22 2c 20 22   nom propre,", "
01a0: 4e 6f 6d 20 70 72 6f 70 72 65 22 5d 5d 2c 0a 20  Nom propre"]],. 
01b0: 20 20 20 5b 27 3a 57 27 2c 20 5b 22 20 61 64 76     [':W', [" adv
01c0: 65 72 62 65 2c 22 2c 20 22 41 64 76 65 72 62 65  erbe,", "Adverbe
01d0: 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 4a 27 2c 20  "]],.    [':J', 
01e0: 5b 22 20 69 6e 74 65 72 6a 65 63 74 69 6f 6e 2c  [" interjection,
01f0: 22 2c 20 22 49 6e 74 65 72 6a 65 63 74 69 6f 6e  ", "Interjection
0200: 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 42 27 2c 20  "]],.    [':B', 
0210: 5b 22 20 6e 6f 6d 62 72 65 2c 22 2c 20 22 4e 6f  [" nombre,", "No
0220: 6d 62 72 65 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a  mbre"]],.    [':
0230: 54 27 2c 20 5b 22 20 74 69 74 72 65 2c 22 2c 20  T', [" titre,", 
0240: 22 54 69 74 72 65 20 64 65 20 63 69 76 69 6c 69  "Titre de civili
0250: 74 c3 a9 22 5d 5d 2c 0a 0a 20 20 20 20 5b 27 3a  t.."]],..    [':
0260: 65 27 2c 20 5b 22 20 c3 a9 70 69 63 c3 a8 6e 65  e', [" ..pic..ne
0270: 22 2c 20 22 c3 a9 70 69 63 c3 a8 6e 65 22 5d 5d  ", "..pic..ne"]]
0280: 2c 0a 20 20 20 20 5b 27 3a 6d 27 2c 20 5b 22 20  ,.    [':m', [" 
0290: 6d 61 73 63 75 6c 69 6e 22 2c 20 22 6d 61 73 63  masculin", "masc
02a0: 75 6c 69 6e 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a  ulin"]],.    [':
02b0: 66 27 2c 20 5b 22 20 66 c3 a9 6d 69 6e 69 6e 22  f', [" f..minin"
02c0: 2c 20 22 66 c3 a9 6d 69 6e 69 6e 22 5d 5d 2c 0a  , "f..minin"]],.
02d0: 20 20 20 20 5b 27 3a 73 27 2c 20 5b 22 20 73 69      [':s', [" si
02e0: 6e 67 75 6c 69 65 72 22 2c 20 22 73 69 6e 67 75  ngulier", "singu
02f0: 6c 69 65 72 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a  lier"]],.    [':
0300: 70 27 2c 20 5b 22 20 70 6c 75 72 69 65 6c 22 2c  p', [" pluriel",
0310: 20 22 70 6c 75 72 69 65 6c 22 5d 5d 2c 0a 20 20   "pluriel"]],.  
0320: 20 20 5b 27 3a 69 27 2c 20 5b 22 20 69 6e 76 61    [':i', [" inva
0330: 72 69 61 62 6c 65 22 2c 20 22 69 6e 76 61 72 69  riable", "invari
0340: 61 62 6c 65 22 5d 5d 2c 0a 0a 20 20 20 20 5b 27  able"]],..    ['
0350: 3a 56 31 27 2c 20 5b 22 20 76 65 72 62 65 20 28  :V1', [" verbe (
0360: 31 e1 b5 89 ca b3 20 67 72 2e 29 2c 22 2c 20 22  1..... gr.),", "
0370: 56 65 72 62 65 20 64 75 20 31 e1 b5 89 ca b3 20  Verbe du 1..... 
0380: 67 72 6f 75 70 65 22 5d 5d 2c 0a 20 20 20 20 5b  groupe"]],.    [
0390: 27 3a 56 32 27 2c 20 5b 22 20 76 65 72 62 65 20  ':V2', [" verbe 
03a0: 28 32 e1 b5 89 20 67 72 2e 29 2c 22 2c 20 22 56  (2... gr.),", "V
03b0: 65 72 62 65 20 64 75 20 32 e1 b5 89 20 67 72 6f  erbe du 2... gro
03c0: 75 70 65 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 56  upe"]],.    [':V
03d0: 33 27 2c 20 5b 22 20 76 65 72 62 65 20 28 33 e1  3', [" verbe (3.
03e0: b5 89 20 67 72 2e 29 2c 22 2c 20 22 56 65 72 62  .. gr.),", "Verb
03f0: 65 20 64 75 20 33 e1 b5 89 20 67 72 6f 75 70 65  e du 3... groupe
0400: 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 56 30 65 27  "]],.    [':V0e'
0410: 2c 20 5b 22 20 76 65 72 62 65 2c 22 2c 20 22 56  , [" verbe,", "V
0420: 65 72 62 65 20 61 75 78 69 6c 69 61 69 72 65 20  erbe auxiliaire 
0430: c3 aa 74 72 65 22 5d 5d 2c 0a 20 20 20 20 5b 27  ..tre"]],.    ['
0440: 3a 56 30 61 27 2c 20 5b 22 20 76 65 72 62 65 2c  :V0a', [" verbe,
0450: 22 2c 20 22 56 65 72 62 65 20 61 75 78 69 6c 69  ", "Verbe auxili
0460: 61 69 72 65 20 61 76 6f 69 72 22 5d 5d 2c 0a 0a  aire avoir"]],..
0470: 20 20 20 20 5b 27 3a 59 27 2c 20 5b 22 20 69 6e      [':Y', [" in
0480: 66 69 6e 69 74 69 66 2c 22 2c 20 22 69 6e 66 69  finitif,", "infi
0490: 6e 69 74 69 66 22 5d 5d 2c 0a 20 20 20 20 5b 27  nitif"]],.    ['
04a0: 3a 50 27 2c 20 5b 22 20 70 61 72 74 69 63 69 70  :P', [" particip
04b0: 65 20 70 72 c3 a9 73 65 6e 74 2c 22 2c 20 22 70  e pr..sent,", "p
04c0: 61 72 74 69 63 69 70 65 20 70 72 c3 a9 73 65 6e  articipe pr..sen
04d0: 74 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 51 27 2c  t"]],.    [':Q',
04e0: 20 5b 22 20 70 61 72 74 69 63 69 70 65 20 70 61   [" participe pa
04f0: 73 73 c3 a9 2c 22 2c 20 22 70 61 72 74 69 63 69  ss..,", "partici
0500: 70 65 20 70 61 73 73 c3 a9 22 5d 5d 2c 0a 20 20  pe pass.."]],.  
0510: 20 20 5b 27 3a 49 70 27 2c 20 5b 22 20 70 72 c3    [':Ip', [" pr.
0520: a9 73 65 6e 74 2c 22 2c 20 22 69 6e 64 69 63 61  .sent,", "indica
0530: 74 69 66 20 70 72 c3 a9 73 65 6e 74 22 5d 5d 2c  tif pr..sent"]],
0540: 0a 20 20 20 20 5b 27 3a 49 71 27 2c 20 5b 22 20  .    [':Iq', [" 
0550: 69 6d 70 61 72 66 61 69 74 2c 22 2c 20 22 69 6e  imparfait,", "in
0560: 64 69 63 61 74 69 66 20 69 6d 70 61 72 66 61 69  dicatif imparfai
0570: 74 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 49 73 27  t"]],.    [':Is'
0580: 2c 20 5b 22 20 70 61 73 73 c3 a9 20 73 69 6d 70  , [" pass.. simp
0590: 6c 65 2c 22 2c 20 22 69 6e 64 69 63 61 74 69 66  le,", "indicatif
05a0: 20 70 61 73 73 c3 a9 20 73 69 6d 70 6c 65 22 5d   pass.. simple"]
05b0: 5d 2c 0a 20 20 20 20 5b 27 3a 49 66 27 2c 20 5b  ],.    [':If', [
05c0: 22 20 66 75 74 75 72 2c 22 2c 20 22 69 6e 64 69  " futur,", "indi
05d0: 63 61 74 69 66 20 66 75 74 75 72 22 5d 5d 2c 0a  catif futur"]],.
05e0: 20 20 20 20 5b 27 3a 4b 27 2c 20 5b 22 20 63 6f      [':K', [" co
05f0: 6e 64 69 74 69 6f 6e 6e 65 6c 20 70 72 c3 a9 73  nditionnel pr..s
0600: 65 6e 74 2c 22 2c 20 22 63 6f 6e 64 69 74 69 6f  ent,", "conditio
0610: 6e 6e 65 6c 20 70 72 c3 a9 73 65 6e 74 22 5d 5d  nnel pr..sent"]]
0620: 2c 0a 20 20 20 20 5b 27 3a 53 70 27 2c 20 5b 22  ,.    [':Sp', ["
0630: 20 73 75 62 6a 6f 6e 63 74 69 66 20 70 72 c3 a9   subjonctif pr..
0640: 73 65 6e 74 2c 22 2c 20 22 73 75 62 6a 6f 6e 63  sent,", "subjonc
0650: 74 69 66 20 70 72 c3 a9 73 65 6e 74 22 5d 5d 2c  tif pr..sent"]],
0660: 0a 20 20 20 20 5b 27 3a 53 71 27 2c 20 5b 22 20  .    [':Sq', [" 
0670: 73 75 62 6a 6f 6e 63 74 69 66 20 69 6d 70 61 72  subjonctif impar
0680: 66 61 69 74 2c 22 2c 20 22 73 75 62 6a 6f 6e 63  fait,", "subjonc
0690: 74 69 66 20 69 6d 70 61 72 66 61 69 74 22 5d 5d  tif imparfait"]]
06a0: 2c 0a 20 20 20 20 5b 27 3a 45 27 2c 20 5b 22 20  ,.    [':E', [" 
06b0: 69 6d 70 c3 a9 72 61 74 69 66 2c 22 2c 20 22 69  imp..ratif,", "i
06c0: 6d 70 c3 a9 72 61 74 69 66 22 5d 5d 2c 0a 0a 20  mp..ratif"]],.. 
06d0: 20 20 20 5b 27 3a 31 73 27 2c 20 5b 22 20 31 ca     [':1s', [" 1.
06e0: b3 e1 b5 89 20 70 2e 20 73 67 2e 2c 22 2c 20 22  .... p. sg.,", "
06f0: 76 65 72 62 65 e2 80 af 3a 20 31 ca b3 e1 b5 89  verbe...: 1.....
0700: 20 70 65 72 73 6f 6e 6e 65 20 64 75 20 73 69 6e   personne du sin
0710: 67 75 6c 69 65 72 22 5d 5d 2c 0a 20 20 20 20 5b  gulier"]],.    [
0720: 27 3a 31 c5 9d 27 2c 20 5b 22 20 70 72 c3 a9 73  ':1..', [" pr..s
0730: 65 6e 74 20 69 6e 74 65 72 72 2e 20 31 ca b3 e1  ent interr. 1...
0740: b5 89 20 70 2e 20 73 67 2e 2c 22 2c 20 22 76 65  .. p. sg.,", "ve
0750: 72 62 65 e2 80 af 3a 20 31 ca b3 e1 b5 89 20 70  rbe...: 1..... p
0760: 65 72 73 6f 6e 6e 65 20 64 75 20 73 69 6e 67 75  ersonne du singu
0770: 6c 69 65 72 20 28 70 72 c3 a9 73 65 6e 74 20 69  lier (pr..sent i
0780: 6e 74 65 72 72 6f 67 61 74 69 66 29 22 5d 5d 2c  nterrogatif)"]],
0790: 0a 20 20 20 20 5b 27 3a 31 c5 9b 27 2c 20 5b 22  .    [':1..', ["
07a0: 20 70 72 c3 a9 73 65 6e 74 20 69 6e 74 65 72 72   pr..sent interr
07b0: 2e 20 31 ca b3 e1 b5 89 20 70 2e 20 73 67 2e 2c  . 1..... p. sg.,
07c0: 22 2c 20 22 76 65 72 62 65 e2 80 af 3a 20 31 ca  ", "verbe...: 1.
07d0: b3 e1 b5 89 20 70 65 72 73 6f 6e 6e 65 20 64 75  .... personne du
07e0: 20 73 69 6e 67 75 6c 69 65 72 20 28 70 72 c3 a9   singulier (pr..
07f0: 73 65 6e 74 20 69 6e 74 65 72 72 6f 67 61 74 69  sent interrogati
0800: 66 29 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 32 73  f)"]],.    [':2s
0810: 27 2c 20 5b 22 20 32 e1 b5 89 20 70 2e 20 73 67  ', [" 2... p. sg
0820: 2e 2c 22 2c 20 22 76 65 72 62 65 e2 80 af 3a 20  .,", "verbe...: 
0830: 32 e1 b5 89 20 70 65 72 73 6f 6e 6e 65 20 64 75  2... personne du
0840: 20 73 69 6e 67 75 6c 69 65 72 22 5d 5d 2c 0a 20   singulier"]],. 
0850: 20 20 20 5b 27 3a 33 73 27 2c 20 5b 22 20 33 e1     [':3s', [" 3.
0860: b5 89 20 70 2e 20 73 67 2e 2c 22 2c 20 22 76 65  .. p. sg.,", "ve
0870: 72 62 65 e2 80 af 3a 20 33 e1 b5 89 20 70 65 72  rbe...: 3... per
0880: 73 6f 6e 6e 65 20 64 75 20 73 69 6e 67 75 6c 69  sonne du singuli
0890: 65 72 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 31 70  er"]],.    [':1p
08a0: 27 2c 20 5b 22 20 31 ca b3 e1 b5 89 20 70 2e 20  ', [" 1..... p. 
08b0: 70 6c 2e 2c 22 2c 20 22 76 65 72 62 65 e2 80 af  pl.,", "verbe...
08c0: 3a 20 31 ca b3 e1 b5 89 20 70 65 72 73 6f 6e 6e  : 1..... personn
08d0: 65 20 64 75 20 70 6c 75 72 69 65 6c 22 5d 5d 2c  e du pluriel"]],
08e0: 0a 20 20 20 20 5b 27 3a 32 70 27 2c 20 5b 22 20  .    [':2p', [" 
08f0: 32 e1 b5 89 20 70 2e 20 70 6c 2e 2c 22 2c 20 22  2... p. pl.,", "
0900: 76 65 72 62 65 e2 80 af 3a 20 32 e1 b5 89 20 70  verbe...: 2... p
0910: 65 72 73 6f 6e 6e 65 20 64 75 20 70 6c 75 72 69  ersonne du pluri
0920: 65 6c 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 33 70  el"]],.    [':3p
0930: 27 2c 20 5b 22 20 33 e1 b5 89 20 70 2e 20 70 6c  ', [" 3... p. pl
0940: 2e 2c 22 2c 20 22 76 65 72 62 65 e2 80 af 3a 20  .,", "verbe...: 
0950: 33 e1 b5 89 20 70 65 72 73 6f 6e 6e 65 20 64 75  3... personne du
0960: 20 70 6c 75 72 69 65 6c 22 5d 5d 2c 0a 20 20 20   pluriel"]],.   
0970: 20 5b 27 3a 33 70 21 27 2c 20 5b 22 20 33 e1 b5   [':3p!', [" 3..
0980: 89 20 70 2e 20 70 6c 2e 2c 22 2c 20 22 76 65 72  . p. pl.,", "ver
0990: 62 65 e2 80 af 3a 20 33 e1 b5 89 20 70 65 72 73  be...: 3... pers
09a0: 6f 6e 6e 65 20 64 75 20 70 6c 75 72 69 65 6c 20  onne du pluriel 
09b0: 28 70 72 6f 6e 6f 6e 63 69 61 74 69 6f 6e 20 64  (prononciation d
09c0: 69 73 74 69 6e 63 74 69 76 65 29 22 5d 5d 2c 0a  istinctive)"]],.
09d0: 0a 20 20 20 20 5b 27 3a 47 27 2c 20 5b 22 5b 6d  .    [':G', ["[m
09e0: 6f 74 20 67 72 61 6d 6d 61 74 69 63 61 6c 5d 22  ot grammatical]"
09f0: 2c 20 22 4d 6f 74 20 67 72 61 6d 6d 61 74 69 63  , "Mot grammatic
0a00: 61 6c 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 58 27  al"]],.    [':X'
0a10: 2c 20 5b 22 20 61 64 76 65 72 62 65 20 64 65 20  , [" adverbe de 
0a20: 6e c3 a9 67 61 74 69 6f 6e 2c 22 2c 20 22 41 64  n..gation,", "Ad
0a30: 76 65 72 62 65 20 64 65 20 6e c3 a9 67 61 74 69  verbe de n..gati
0a40: 6f 6e 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 55 27  on"]],.    [':U'
0a50: 2c 20 5b 22 20 61 64 76 65 72 62 65 20 69 6e 74  , [" adverbe int
0a60: 65 72 72 6f 67 61 74 69 66 2c 22 2c 20 22 41 64  errogatif,", "Ad
0a70: 76 65 72 62 65 20 69 6e 74 65 72 72 6f 67 61 74  verbe interrogat
0a80: 69 66 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 52 27  if"]],.    [':R'
0a90: 2c 20 5b 22 20 70 72 c3 a9 70 6f 73 69 74 69 6f  , [" pr..positio
0aa0: 6e 2c 22 2c 20 22 50 72 c3 a9 70 6f 73 69 74 69  n,", "Pr..positi
0ab0: 6f 6e 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 52 76  on"]],.    [':Rv
0ac0: 27 2c 20 5b 22 20 70 72 c3 a9 70 6f 73 69 74 69  ', [" pr..positi
0ad0: 6f 6e 20 76 65 72 62 61 6c 65 2c 22 2c 20 22 50  on verbale,", "P
0ae0: 72 c3 a9 70 6f 73 69 74 69 6f 6e 20 76 65 72 62  r..position verb
0af0: 61 6c 65 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 44  ale"]],.    [':D
0b00: 27 2c 20 5b 22 20 64 c3 a9 74 65 72 6d 69 6e 61  ', [" d..termina
0b10: 6e 74 2c 22 2c 20 22 44 c3 a9 74 65 72 6d 69 6e  nt,", "D..termin
0b20: 61 6e 74 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 44  ant"]],.    [':D
0b30: 64 27 2c 20 5b 22 20 64 c3 a9 74 65 72 6d 69 6e  d', [" d..termin
0b40: 61 6e 74 20 64 c3 a9 6d 6f 6e 73 74 72 61 74 69  ant d..monstrati
0b50: 66 2c 22 2c 20 22 44 c3 a9 74 65 72 6d 69 6e 61  f,", "D..termina
0b60: 6e 74 20 64 c3 a9 6d 6f 6e 73 74 72 61 74 69 66  nt d..monstratif
0b70: 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 44 65 27 2c  "]],.    [':De',
0b80: 20 5b 22 20 64 c3 a9 74 65 72 6d 69 6e 61 6e 74   [" d..terminant
0b90: 20 65 78 63 6c 61 6d 61 74 69 66 2c 22 2c 20 22   exclamatif,", "
0ba0: 44 c3 a9 74 65 72 6d 69 6e 61 6e 74 20 65 78 63  D..terminant exc
0bb0: 6c 61 6d 61 74 69 66 22 5d 5d 2c 0a 20 20 20 20  lamatif"]],.    
0bc0: 5b 27 3a 44 70 27 2c 20 5b 22 20 64 c3 a9 74 65  [':Dp', [" d..te
0bd0: 72 6d 69 6e 61 6e 74 20 70 6f 73 73 65 73 73 69  rminant possessi
0be0: 66 2c 22 2c 20 22 44 c3 a9 74 65 72 6d 69 6e 61  f,", "D..termina
0bf0: 6e 74 20 70 6f 73 73 65 73 73 69 66 22 5d 5d 2c  nt possessif"]],
0c00: 0a 20 20 20 20 5b 27 3a 44 69 27 2c 20 5b 22 20  .    [':Di', [" 
0c10: 64 c3 a9 74 65 72 6d 69 6e 61 6e 74 20 69 6e 64  d..terminant ind
0c20: c3 a9 66 69 6e 69 2c 22 2c 20 22 44 c3 a9 74 65  ..fini,", "D..te
0c30: 72 6d 69 6e 61 6e 74 20 69 6e 64 c3 a9 66 69 6e  rminant ind..fin
0c40: 69 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 44 6e 27  i"]],.    [':Dn'
0c50: 2c 20 5b 22 20 64 c3 a9 74 65 72 6d 69 6e 61 6e  , [" d..terminan
0c60: 74 20 6e c3 a9 67 61 74 69 66 2c 22 2c 20 22 44  t n..gatif,", "D
0c70: c3 a9 74 65 72 6d 69 6e 61 6e 74 20 6e c3 a9 67  ..terminant n..g
0c80: 61 74 69 66 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a  atif"]],.    [':
0c90: 4f 64 27 2c 20 5b 22 20 70 72 6f 6e 6f 6d 20 64  Od', [" pronom d
0ca0: c3 a9 6d 6f 6e 73 74 72 61 74 69 66 2c 22 2c 20  ..monstratif,", 
0cb0: 22 50 72 6f 6e 6f 6d 20 64 c3 a9 6d 6f 6e 73 74  "Pronom d..monst
0cc0: 72 61 74 69 66 22 5d 5d 2c 0a 20 20 20 20 5b 27  ratif"]],.    ['
0cd0: 3a 4f 69 27 2c 20 5b 22 20 70 72 6f 6e 6f 6d 20  :Oi', [" pronom 
0ce0: 69 6e 64 c3 a9 66 69 6e 69 2c 22 2c 20 22 50 72  ind..fini,", "Pr
0cf0: 6f 6e 6f 6d 20 69 6e 64 c3 a9 66 69 6e 69 22 5d  onom ind..fini"]
0d00: 5d 2c 0a 20 20 20 20 5b 27 3a 4f 6e 27 2c 20 5b  ],.    [':On', [
0d10: 22 20 70 72 6f 6e 6f 6d 20 69 6e 64 c3 a9 66 69  " pronom ind..fi
0d20: 6e 69 20 6e c3 a9 67 61 74 69 66 2c 22 2c 20 22  ni n..gatif,", "
0d30: 50 72 6f 6e 6f 6d 20 69 6e 64 c3 a9 66 69 6e 69  Pronom ind..fini
0d40: 20 6e c3 a9 67 61 74 69 66 22 5d 5d 2c 0a 20 20   n..gatif"]],.  
0d50: 20 20 5b 27 3a 4f 74 27 2c 20 5b 22 20 70 72 6f    [':Ot', [" pro
0d60: 6e 6f 6d 20 69 6e 74 65 72 72 6f 67 61 74 69 66  nom interrogatif
0d70: 2c 22 2c 20 22 50 72 6f 6e 6f 6d 20 69 6e 74 65  ,", "Pronom inte
0d80: 72 72 6f 67 61 74 69 66 22 5d 5d 2c 0a 20 20 20  rrogatif"]],.   
0d90: 20 5b 27 3a 4f 72 27 2c 20 5b 22 20 70 72 6f 6e   [':Or', [" pron
0da0: 6f 6d 20 72 65 6c 61 74 69 66 2c 22 2c 20 22 50  om relatif,", "P
0db0: 72 6f 6e 6f 6d 20 72 65 6c 61 74 69 66 22 5d 5d  ronom relatif"]]
0dc0: 2c 0a 20 20 20 20 5b 27 3a 4f 77 27 2c 20 5b 22  ,.    [':Ow', ["
0dd0: 20 70 72 6f 6e 6f 6d 20 61 64 76 65 72 62 69 61   pronom adverbia
0de0: 6c 2c 22 2c 20 22 50 72 6f 6e 6f 6d 20 61 64 76  l,", "Pronom adv
0df0: 65 72 62 69 61 6c 22 5d 5d 2c 0a 20 20 20 20 5b  erbial"]],.    [
0e00: 27 3a 4f 73 27 2c 20 5b 22 20 70 72 6f 6e 6f 6d  ':Os', [" pronom
0e10: 20 70 65 72 73 6f 6e 6e 65 6c 20 73 75 6a 65 74   personnel sujet
0e20: 2c 22 2c 20 22 50 72 6f 6e 6f 6d 20 70 65 72 73  ,", "Pronom pers
0e30: 6f 6e 6e 65 6c 20 73 75 6a 65 74 22 5d 5d 2c 0a  onnel sujet"]],.
0e40: 20 20 20 20 5b 27 3a 4f 6f 27 2c 20 5b 22 20 70      [':Oo', [" p
0e50: 72 6f 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65 6c 20  ronom personnel 
0e60: 6f 62 6a 65 74 2c 22 2c 20 22 50 72 6f 6e 6f 6d  objet,", "Pronom
0e70: 20 70 65 72 73 6f 6e 6e 65 6c 20 6f 62 6a 65 74   personnel objet
0e80: 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 4f 76 27 2c  "]],.    [':Ov',
0e90: 20 5b 22 20 70 72 c3 a9 76 65 72 62 65 2c 22 2c   [" pr..verbe,",
0ea0: 20 22 50 72 c3 a9 76 65 72 62 65 20 28 70 72 6f   "Pr..verbe (pro
0eb0: 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65 6c 20 6f 62  nom personnel ob
0ec0: 6a 65 74 2c 20 2b 6e 65 29 22 5d 5d 2c 0a 20 20  jet, +ne)"]],.  
0ed0: 20 20 5b 27 3a 4f 31 27 2c 20 5b 22 20 31 ca b3    [':O1', [" 1..
0ee0: e1 b5 89 20 70 65 72 73 2e 2c 22 2c 20 22 50 72  ... pers.,", "Pr
0ef0: 6f 6e 6f 6d e2 80 af 3a 20 31 ca b3 e1 b5 89 20  onom...: 1..... 
0f00: 70 65 72 73 6f 6e 6e 65 22 5d 5d 2c 0a 20 20 20  personne"]],.   
0f10: 20 5b 27 3a 4f 32 27 2c 20 5b 22 20 32 e1 b5 89   [':O2', [" 2...
0f20: 20 70 65 72 73 2e 2c 22 2c 20 22 50 72 6f 6e 6f   pers.,", "Prono
0f30: 6d e2 80 af 3a 20 32 e1 b5 89 20 70 65 72 73 6f  m...: 2... perso
0f40: 6e 6e 65 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a 4f  nne"]],.    [':O
0f50: 33 27 2c 20 5b 22 20 33 e1 b5 89 20 70 65 72 73  3', [" 3... pers
0f60: 2e 2c 22 2c 20 22 50 72 6f 6e 6f 6d e2 80 af 3a  .,", "Pronom...:
0f70: 20 33 e1 b5 89 20 70 65 72 73 6f 6e 6e 65 22 5d   3... personne"]
0f80: 5d 2c 0a 20 20 20 20 5b 27 3a 43 27 2c 20 5b 22  ],.    [':C', ["
0f90: 20 63 6f 6e 6a 6f 6e 63 74 69 6f 6e 2c 22 2c 20   conjonction,", 
0fa0: 22 43 6f 6e 6a 6f 6e 63 74 69 6f 6e 22 5d 5d 2c  "Conjonction"]],
0fb0: 0a 20 20 20 20 5b 27 3a c4 88 27 2c 20 5b 22 20  .    [':..', [" 
0fc0: 63 6f 6e 6a 6f 6e 63 74 69 6f 6e 20 28 c3 a9 6c  conjonction (..l
0fd0: 2e 29 2c 22 2c 20 22 43 6f 6e 6a 6f 6e 63 74 69  .),", "Conjoncti
0fe0: 6f 6e 20 28 c3 a9 6c c3 a9 6d 65 6e 74 29 22 5d  on (..l..ment)"]
0ff0: 5d 2c 0a 20 20 20 20 5b 27 3a 43 63 27 2c 20 5b  ],.    [':Cc', [
1000: 22 20 63 6f 6e 6a 6f 6e 63 74 69 6f 6e 20 64 65  " conjonction de
1010: 20 63 6f 6f 72 64 69 6e 61 74 69 6f 6e 2c 22 2c   coordination,",
1020: 20 22 43 6f 6e 6a 6f 6e 63 74 69 6f 6e 20 64 65   "Conjonction de
1030: 20 63 6f 6f 72 64 69 6e 61 74 69 6f 6e 22 5d 5d   coordination"]]
1040: 2c 0a 20 20 20 20 5b 27 3a 43 73 27 2c 20 5b 22  ,.    [':Cs', ["
1050: 20 63 6f 6e 6a 6f 6e 63 74 69 6f 6e 20 64 65 20   conjonction de 
1060: 73 75 62 6f 72 64 69 6e 61 74 69 6f 6e 2c 22 2c  subordination,",
1070: 20 22 43 6f 6e 6a 6f 6e 63 74 69 6f 6e 20 64 65   "Conjonction de
1080: 20 73 75 62 6f 72 64 69 6e 61 74 69 6f 6e 22 5d   subordination"]
1090: 5d 2c 0a 20 20 20 20 5b 27 3a c4 88 73 27 2c 20  ],.    [':..s', 
10a0: 5b 22 20 63 6f 6e 6a 6f 6e 63 74 69 6f 6e 20 64  [" conjonction d
10b0: 65 20 73 75 62 6f 72 64 69 6e 61 74 69 6f 6e 20  e subordination 
10c0: 28 c3 a9 6c 2e 29 2c 22 2c 20 22 43 6f 6e 6a 6f  (..l.),", "Conjo
10d0: 6e 63 74 69 6f 6e 20 64 65 20 73 75 62 6f 72 64  nction de subord
10e0: 69 6e 61 74 69 6f 6e 20 28 c3 a9 6c c3 a9 6d 65  ination (..l..me
10f0: 6e 74 29 22 5d 5d 2c 0a 0a 20 20 20 20 5b 27 3a  nt)"]],..    [':
1100: c3 91 27 2c 20 5b 22 20 6c 6f 63 75 74 69 6f 6e  ..', [" locution
1110: 20 6e 6f 6d 69 6e 61 6c 65 20 28 c3 a9 6c 2e 29   nominale (..l.)
1120: 2c 22 2c 20 22 4c 6f 63 75 74 69 6f 6e 20 6e 6f  ,", "Locution no
1130: 6d 69 6e 61 6c 65 20 28 c3 a9 6c c3 a9 6d 65 6e  minale (..l..men
1140: 74 29 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a c3 82  t)"]],.    [':..
1150: 27 2c 20 5b 22 20 6c 6f 63 75 74 69 6f 6e 20 61  ', [" locution a
1160: 64 6a 65 63 74 69 76 61 6c 65 20 28 c3 a9 6c 2e  djectivale (..l.
1170: 29 2c 22 2c 20 22 4c 6f 63 75 74 69 6f 6e 20 61  ),", "Locution a
1180: 64 6a 65 63 74 69 76 61 6c 65 20 28 c3 a9 6c c3  djectivale (..l.
1190: a9 6d 65 6e 74 29 22 5d 5d 2c 0a 20 20 20 20 5b  .ment)"]],.    [
11a0: 27 3a e1 b9 bc 27 2c 20 5b 22 20 6c 6f 63 75 74  ':...', [" locut
11b0: 69 6f 6e 20 76 65 72 62 61 6c 65 20 28 c3 a9 6c  ion verbale (..l
11c0: 2e 29 2c 22 2c 20 22 4c 6f 63 75 74 69 6f 6e 20  .),", "Locution 
11d0: 76 65 72 62 61 6c 65 20 28 c3 a9 6c c3 a9 6d 65  verbale (..l..me
11e0: 6e 74 29 22 5d 5d 2c 0a 20 20 20 20 5b 27 3a c5  nt)"]],.    [':.
11f0: b4 27 2c 20 5b 22 20 6c 6f 63 75 74 69 6f 6e 20  .', [" locution 
1200: 61 64 76 65 72 62 69 61 6c 65 20 28 c3 a9 6c 2e  adverbiale (..l.
1210: 29 2c 22 2c 20 22 4c 6f 63 75 74 69 6f 6e 20 61  ),", "Locution a
1220: 64 76 65 72 62 69 61 6c 65 20 28 c3 a9 6c c3 a9  dverbiale (..l..
1230: 6d 65 6e 74 29 22 5d 5d 2c 0a 20 20 20 20 5b 27  ment)"]],.    ['
1240: 3a c5 94 27 2c 20 5b 22 20 6c 6f 63 75 74 69 6f  :..', [" locutio
1250: 6e 20 70 72 c3 a9 70 6f 73 69 74 69 76 65 20 28  n pr..positive (
1260: c3 a9 6c 2e 29 2c 22 2c 20 22 4c 6f 63 75 74 69  ..l.),", "Locuti
1270: 6f 6e 20 70 72 c3 a9 70 6f 73 69 74 69 76 65 20  on pr..positive 
1280: 28 c3 a9 6c c3 a9 6d 65 6e 74 29 22 5d 5d 2c 0a  (..l..ment)"]],.
1290: 20 20 20 20 5b 27 3a c4 b4 27 2c 20 5b 22 20 6c      [':..', [" l
12a0: 6f 63 75 74 69 6f 6e 20 69 6e 74 65 72 6a 65 63  ocution interjec
12b0: 74 69 76 65 20 28 c3 a9 6c 2e 29 2c 22 2c 20 22  tive (..l.),", "
12c0: 4c 6f 63 75 74 69 6f 6e 20 69 6e 74 65 72 6a 65  Locution interje
12d0: 63 74 69 76 65 20 28 c3 a9 6c c3 a9 6d 65 6e 74  ctive (..l..ment
12e0: 29 22 5d 5d 2c 0a 0a 20 20 20 20 5b 27 3a 5a 70  )"]],..    [':Zp
12f0: 27 2c 20 5b 22 20 70 72 c3 a9 66 69 78 65 2c 22  ', [" pr..fixe,"
1300: 2c 20 22 50 72 c3 a9 66 69 78 65 22 5d 5d 2c 0a  , "Pr..fixe"]],.
1310: 20 20 20 20 5b 27 3a 5a 73 27 2c 20 5b 22 20 73      [':Zs', [" s
1320: 75 66 66 69 78 65 2c 22 2c 20 22 53 75 66 66 69  uffixe,", "Suffi
1330: 78 65 22 5d 5d 2c 0a 0a 20 20 20 20 5b 27 3a 48  xe"]],..    [':H
1340: 27 2c 20 5b 22 22 2c 20 22 3c 48 6f 72 73 2d 6e  ', ["", "<Hors-n
1350: 6f 72 6d 65 2c 20 69 6e 63 6c 61 73 73 61 62 6c  orme, inclassabl
1360: 65 3e 22 5d 5d 2c 0a 0a 20 20 20 20 5b 27 3a 40  e>"]],..    [':@
1370: 27 2c 20 20 5b 22 22 2c 20 22 3c 43 61 72 61 63  ',  ["", "<Carac
1380: 74 c3 a8 72 65 20 6e 6f 6e 20 61 6c 70 68 61 2d  t..re non alpha-
1390: 6e 75 6d c3 a9 72 69 71 75 65 3e 22 5d 5d 2c 0a  num..rique>"]],.
13a0: 20 20 20 20 5b 27 3a 40 70 27 2c 20 5b 22 73 69      [':@p', ["si
13b0: 67 6e 65 20 64 65 20 70 6f 6e 63 74 75 61 74 69  gne de ponctuati
13c0: 6f 6e 22 2c 20 22 53 69 67 6e 65 20 64 65 20 70  on", "Signe de p
13d0: 6f 6e 63 74 75 61 74 69 6f 6e 22 5d 5d 2c 0a 20  onctuation"]],. 
13e0: 20 20 20 5b 27 3a 40 73 27 2c 20 5b 22 73 69 67     [':@s', ["sig
13f0: 6e 65 22 2c 20 22 53 69 67 6e 65 20 64 69 76 65  ne", "Signe dive
1400: 72 73 22 5d 5d 2c 0a 0a 20 20 20 20 5b 27 3b 53  rs"]],..    [';S
1410: 27 2c 20 5b 22 20 3a 20 73 79 6d 62 6f 6c 65 20  ', [" : symbole 
1420: 28 75 6e 69 74 c3 a9 20 64 65 20 6d 65 73 75 72  (unit.. de mesur
1430: 65 29 22 2c 20 22 53 79 6d 62 6f 6c 65 20 28 75  e)", "Symbole (u
1440: 6e 69 74 c3 a9 20 64 65 20 6d 65 73 75 72 65 29  nit.. de mesure)
1450: 22 5d 5d 2c 0a 0a 20 20 20 20 5b 27 2f 2a 27 2c  "]],..    ['/*',
1460: 20 5b 22 22 2c 20 22 53 6f 75 73 2d 64 69 63 74   ["", "Sous-dict
1470: 69 6f 6e 6e 61 69 72 65 20 3c 43 6f 6d 6d 75 6e  ionnaire <Commun
1480: 3e 22 5d 5d 2c 0a 20 20 20 20 5b 27 2f 43 27 2c  >"]],.    ['/C',
1490: 20 5b 22 20 3c 63 6c 61 73 73 69 71 75 65 3e 22   [" <classique>"
14a0: 2c 20 22 53 6f 75 73 2d 64 69 63 74 69 6f 6e 6e  , "Sous-dictionn
14b0: 61 69 72 65 20 3c 43 6c 61 73 73 69 71 75 65 3e  aire <Classique>
14c0: 22 5d 5d 2c 0a 20 20 20 20 5b 27 2f 4d 27 2c 20  "]],.    ['/M', 
14d0: 5b 22 22 2c 20 22 53 6f 75 73 2d 64 69 63 74 69  ["", "Sous-dicti
14e0: 6f 6e 6e 61 69 72 65 20 3c 4d 6f 64 65 72 6e 65  onnaire <Moderne
14f0: 3e 22 5d 5d 2c 0a 20 20 20 20 5b 27 2f 52 27 2c  >"]],.    ['/R',
1500: 20 5b 22 20 3c 72 c3 a9 66 6f 72 6d 65 3e 22 2c   [" <r..forme>",
1510: 20 22 53 6f 75 73 2d 64 69 63 74 69 6f 6e 6e 61   "Sous-dictionna
1520: 69 72 65 20 3c 52 c3 a9 66 6f 72 6d 65 20 31 39  ire <R..forme 19
1530: 39 30 3e 22 5d 5d 2c 0a 20 20 20 20 5b 27 2f 41  90>"]],.    ['/A
1540: 27 2c 20 5b 22 22 2c 20 22 53 6f 75 73 2d 64 69  ', ["", "Sous-di
1550: 63 74 69 6f 6e 6e 61 69 72 65 20 3c 41 6e 6e 65  ctionnaire <Anne
1560: 78 65 3e 22 5d 5d 2c 0a 20 20 20 20 5b 27 2f 58  xe>"]],.    ['/X
1570: 27 2c 20 5b 22 22 2c 20 22 53 6f 75 73 2d 64 69  ', ["", "Sous-di
1580: 63 74 69 6f 6e 6e 61 69 72 65 20 3c 43 6f 6e 74  ctionnaire <Cont
1590: 72 69 62 75 74 65 75 72 73 3e 22 5d 5d 0a 5d 29  ributeurs>"]].])
15a0: 3b 0a 0a 0a 63 6f 6e 73 74 20 5f 64 4c 6f 63 54  ;...const _dLocT
15b0: 61 67 20 3d 20 6e 65 77 20 4d 61 70 28 5b 0a 20  ag = new Map([. 
15c0: 20 20 20 5b 27 3a 4c 27 2c 20 22 6c 6f 63 75 74     [':L', "locut
15d0: 69 6f 6e 22 5d 2c 0a 20 20 20 20 5b 27 3a 4c 4e  ion"],.    [':LN
15e0: 27 2c 20 22 6c 6f 63 75 74 69 6f 6e 20 6e 6f 6d  ', "locution nom
15f0: 69 6e 61 6c 65 22 5d 2c 0a 20 20 20 20 5b 27 3a  inale"],.    [':
1600: 4c 41 27 2c 20 22 6c 6f 63 75 74 69 6f 6e 20 61  LA', "locution a
1610: 64 6a 65 63 74 69 76 61 6c 65 22 5d 2c 0a 20 20  djectivale"],.  
1620: 20 20 5b 27 3a 4c 56 27 2c 20 22 6c 6f 63 75 74    [':LV', "locut
1630: 69 6f 6e 20 76 65 72 62 61 6c 65 22 5d 2c 0a 20  ion verbale"],. 
1640: 20 20 20 5b 27 3a 4c 57 27 2c 20 22 6c 6f 63 75     [':LW', "locu
1650: 74 69 6f 6e 20 61 64 76 65 72 62 69 61 6c 65 22  tion adverbiale"
1660: 5d 2c 0a 20 20 20 20 5b 27 3a 4c 52 27 2c 20 22  ],.    [':LR', "
1670: 6c 6f 63 75 74 69 6f 6e 20 70 72 c3 a9 70 6f 73  locution pr..pos
1680: 69 74 69 76 65 22 5d 2c 0a 20 20 20 20 5b 27 3a  itive"],.    [':
1690: 4c 52 76 27 2c 20 22 6c 6f 63 75 74 69 6f 6e 20  LRv', "locution 
16a0: 70 72 c3 a9 70 6f 73 69 74 69 76 65 20 76 65 72  pr..positive ver
16b0: 62 61 6c 65 22 5d 2c 0a 20 20 20 20 5b 27 3a 4c  bale"],.    [':L
16c0: 4f 27 2c 20 22 6c 6f 63 75 74 69 6f 6e 20 70 72  O', "locution pr
16d0: 6f 6e 6f 6d 69 6e 61 6c 65 22 5d 2c 0a 20 20 20  onominale"],.   
16e0: 20 5b 27 3a 4c 43 27 2c 20 22 6c 6f 63 75 74 69   [':LC', "locuti
16f0: 6f 6e 20 63 6f 6e 6a 6f 6e 63 74 69 76 65 22 5d  on conjonctive"]
1700: 2c 0a 20 20 20 20 5b 27 3a 4c 4a 27 2c 20 22 6c  ,.    [':LJ', "l
1710: 6f 63 75 74 69 6f 6e 20 69 6e 74 65 72 6a 65 63  ocution interjec
1720: 74 69 76 65 22 5d 2c 0a 0a 20 20 20 20 5b 27 3a  tive"],..    [':
1730: 42 27 2c 20 22 20 63 61 72 64 69 6e 61 6c 65 22  B', " cardinale"
1740: 5d 2c 0a 20 20 20 20 5b 27 3a 65 27 2c 20 22 20  ],.    [':e', " 
1750: c3 a9 70 69 63 c3 a8 6e 65 22 5d 2c 0a 20 20 20  ..pic..ne"],.   
1760: 20 5b 27 3a 6d 27 2c 20 22 20 6d 61 73 63 75 6c   [':m', " mascul
1770: 69 6e 65 22 5d 2c 0a 20 20 20 20 5b 27 3a 66 27  ine"],.    [':f'
1780: 2c 20 22 20 66 c3 a9 6d 69 6e 69 6e 65 22 5d 2c  , " f..minine"],
1790: 0a 20 20 20 20 5b 27 3a 73 27 2c 20 22 20 73 69  .    [':s', " si
17a0: 6e 67 75 6c 69 c3 a8 72 65 22 5d 2c 0a 20 20 20  nguli..re"],.   
17b0: 20 5b 27 3a 70 27 2c 20 22 20 70 6c 75 72 69 65   [':p', " plurie
17c0: 6c 6c 65 22 5d 2c 0a 20 20 20 20 5b 27 3a 69 27  lle"],.    [':i'
17d0: 2c 20 22 20 69 6e 76 61 72 69 61 62 6c 65 22 5d  , " invariable"]
17e0: 2c 0a 20 20 20 20 5b 27 2f 4c 27 2c 20 22 20 28  ,.    ['/L', " (
17f0: 6c 61 74 69 6e 29 22 5d 0a 5d 29 3b 0a 0a 63 6f  latin)"].]);..co
1800: 6e 73 74 20 5f 64 4c 6f 63 56 65 72 62 20 3d 20  nst _dLocVerb = 
1810: 6e 65 77 20 4d 61 70 28 5b 0a 20 20 20 20 5b 27  new Map([.    ['
1820: 69 27 2c 20 22 20 69 6e 74 72 61 6e 73 69 74 69  i', " intransiti
1830: 76 65 22 5d 2c 0a 20 20 20 20 5b 27 6e 27 2c 20  ve"],.    ['n', 
1840: 22 20 74 72 61 6e 73 69 74 69 76 65 20 69 6e 64  " transitive ind
1850: 69 72 65 63 74 65 22 5d 2c 0a 20 20 20 20 5b 27  irecte"],.    ['
1860: 74 27 2c 20 22 20 74 72 61 6e 73 69 74 69 76 65  t', " transitive
1870: 20 64 69 72 65 63 74 65 22 5d 2c 0a 20 20 20 20   directe"],.    
1880: 5b 27 70 27 2c 20 22 20 70 72 6f 6e 6f 6d 69 6e  ['p', " pronomin
1890: 61 6c 65 22 5d 2c 0a 20 20 20 20 5b 27 6d 27 2c  ale"],.    ['m',
18a0: 20 22 20 69 6d 70 65 72 73 6f 6e 6e 65 6c 6c 65   " impersonnelle
18b0: 22 5d 2c 0a 5d 29 3b 0a 0a 63 6f 6e 73 74 20 5f  "],.]);..const _
18c0: 64 45 6c 69 64 65 64 50 72 65 66 69 78 20 3d 20  dElidedPrefix = 
18d0: 6e 65 77 20 4d 61 70 28 5b 0a 20 20 20 20 5b 27  new Map([.    ['
18e0: 64 27 2c 20 22 28 64 65 29 2c 20 64 c3 a9 74 65  d', "(de), d..te
18f0: 72 6d 69 6e 61 6e 74 20 c3 a9 70 69 63 c3 a8 6e  rminant ..pic..n
1900: 65 20 69 6e 76 61 72 69 61 62 6c 65 22 5d 2c 0a  e invariable"],.
1910: 20 20 20 20 5b 27 6c 27 2c 20 22 28 6c 65 2f 6c      ['l', "(le/l
1920: 61 29 2c 20 64 c3 a9 74 65 72 6d 69 6e 61 6e 74  a), d..terminant
1930: 20 6d 61 73 63 75 6c 69 6e 2f 66 c3 a9 6d 69 6e   masculin/f..min
1940: 69 6e 20 73 69 6e 67 75 6c 69 65 72 22 5d 2c 0a  in singulier"],.
1950: 20 20 20 20 5b 27 6a 27 2c 20 22 28 6a 65 29 2c      ['j', "(je),
1960: 20 70 72 6f 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65   pronom personne
1970: 6c 20 73 75 6a 65 74 2c 20 31 ca b3 e1 b5 89 20  l sujet, 1..... 
1980: 70 65 72 73 2e 2c 20 c3 a9 70 69 63 c3 a8 6e 65  pers., ..pic..ne
1990: 20 73 69 6e 67 75 6c 69 65 72 22 5d 2c 0a 20 20   singulier"],.  
19a0: 20 20 5b 27 6d 27 2c 20 22 28 6d 65 29 2c 20 70    ['m', "(me), p
19b0: 72 6f 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65 6c 20  ronom personnel 
19c0: 6f 62 6a 65 74 2c 20 31 ca b3 e1 b5 89 20 70 65  objet, 1..... pe
19d0: 72 73 2e 2c 20 c3 a9 70 69 63 c3 a8 6e 65 20 73  rs., ..pic..ne s
19e0: 69 6e 67 75 6c 69 65 72 22 5d 2c 0a 20 20 20 20  ingulier"],.    
19f0: 5b 27 74 27 2c 20 22 28 74 65 29 2c 20 70 72 6f  ['t', "(te), pro
1a00: 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65 6c 20 6f 62  nom personnel ob
1a10: 6a 65 74 2c 20 32 e1 b5 89 20 70 65 72 73 2e 2c  jet, 2... pers.,
1a20: 20 c3 a9 70 69 63 c3 a8 6e 65 20 73 69 6e 67 75   ..pic..ne singu
1a30: 6c 69 65 72 22 5d 2c 0a 20 20 20 20 5b 27 73 27  lier"],.    ['s'
1a40: 2c 20 22 28 73 65 29 2c 20 70 72 6f 6e 6f 6d 20  , "(se), pronom 
1a50: 70 65 72 73 6f 6e 6e 65 6c 20 6f 62 6a 65 74 2c  personnel objet,
1a60: 20 33 e1 b5 89 20 70 65 72 73 2e 2c 20 c3 a9 70   3... pers., ..p
1a70: 69 63 c3 a8 6e 65 20 73 69 6e 67 75 6c 69 65 72  ic..ne singulier
1a80: 2f 70 6c 75 72 69 65 6c 22 5d 2c 0a 20 20 20 20  /pluriel"],.    
1a90: 5b 27 6e 27 2c 20 22 28 6e 65 29 2c 20 61 64 76  ['n', "(ne), adv
1aa0: 65 72 62 65 20 64 65 20 6e c3 a9 67 61 74 69 6f  erbe de n..gatio
1ab0: 6e 22 5d 2c 0a 20 20 20 20 5b 27 63 27 2c 20 22  n"],.    ['c', "
1ac0: 28 63 65 29 2c 20 70 72 6f 6e 6f 6d 20 64 c3 a9  (ce), pronom d..
1ad0: 6d 6f 6e 73 74 72 61 74 69 66 2c 20 6d 61 73 63  monstratif, masc
1ae0: 75 6c 69 6e 20 73 69 6e 67 75 6c 69 65 72 2f 70  ulin singulier/p
1af0: 6c 75 72 69 65 6c 22 5d 2c 0a 20 20 20 20 5b 27  luriel"],.    ['
1b00: c3 a7 27 2c 20 22 28 c3 a7 61 29 2c 20 70 72 6f  ..', "(..a), pro
1b10: 6e 6f 6d 20 64 c3 a9 6d 6f 6e 73 74 72 61 74 69  nom d..monstrati
1b20: 66 2c 20 6d 61 73 63 75 6c 69 6e 20 73 69 6e 67  f, masculin sing
1b30: 75 6c 69 65 72 22 5d 2c 0a 20 20 20 20 5b 27 71  ulier"],.    ['q
1b40: 75 27 2c 20 22 28 71 75 65 29 2c 20 63 6f 6e 6a  u', "(que), conj
1b50: 6f 6e 63 74 69 6f 6e 20 64 65 20 73 75 62 6f 72  onction de subor
1b60: 64 69 6e 61 74 69 6f 6e 22 5d 2c 0a 20 20 20 20  dination"],.    
1b70: 5b 27 6c 6f 72 73 71 75 27 2c 20 22 28 6c 6f 72  ['lorsqu', "(lor
1b80: 73 71 75 65 29 2c 20 63 6f 6e 6a 6f 6e 63 74 69  sque), conjoncti
1b90: 6f 6e 20 64 65 20 73 75 62 6f 72 64 69 6e 61 74  on de subordinat
1ba0: 69 6f 6e 22 5d 2c 0a 20 20 20 20 5b 27 70 75 69  ion"],.    ['pui
1bb0: 73 71 75 27 2c 20 22 28 6c 6f 72 73 71 75 65 29  squ', "(lorsque)
1bc0: 2c 20 63 6f 6e 6a 6f 6e 63 74 69 6f 6e 20 64 65  , conjonction de
1bd0: 20 73 75 62 6f 72 64 69 6e 61 74 69 6f 6e 22 5d   subordination"]
1be0: 2c 0a 20 20 20 20 5b 27 71 75 6f 69 71 75 27 2c  ,.    ['quoiqu',
1bf0: 20 22 28 71 75 6f 69 71 75 65 29 2c 20 63 6f 6e   "(quoique), con
1c00: 6a 6f 6e 63 74 69 6f 6e 20 64 65 20 73 75 62 6f  jonction de subo
1c10: 72 64 69 6e 61 74 69 6f 6e 22 5d 2c 0a 20 20 20  rdination"],.   
1c20: 20 5b 27 6a 75 73 71 75 27 2c 20 22 28 6a 75 73   ['jusqu', "(jus
1c30: 71 75 65 29 2c 20 70 72 c3 a9 70 6f 73 69 74 69  que), pr..positi
1c40: 6f 6e 22 5d 0a 5d 29 3b 0a 0a 63 6f 6e 73 74 20  on"].]);..const 
1c50: 5f 64 50 72 6f 6e 6f 6d 73 20 3d 20 6e 65 77 20  _dPronoms = new 
1c60: 4d 61 70 28 5b 0a 20 20 20 20 5b 27 6a 65 27 2c  Map([.    ['je',
1c70: 20 22 20 70 72 6f 6e 6f 6d 20 70 65 72 73 6f 6e   " pronom person
1c80: 6e 65 6c 20 73 75 6a 65 74 2c 20 31 ca b3 e1 b5  nel sujet, 1....
1c90: 89 20 70 65 72 73 2e 20 73 69 6e 67 2e 22 5d 2c  . pers. sing."],
1ca0: 0a 20 20 20 20 5b 27 74 75 27 2c 20 22 20 70 72  .    ['tu', " pr
1cb0: 6f 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65 6c 20 73  onom personnel s
1cc0: 75 6a 65 74 2c 20 32 e1 b5 89 20 70 65 72 73 2e  ujet, 2... pers.
1cd0: 20 73 69 6e 67 2e 22 5d 2c 0a 20 20 20 20 5b 27   sing."],.    ['
1ce0: 69 6c 27 2c 20 22 20 70 72 6f 6e 6f 6d 20 70 65  il', " pronom pe
1cf0: 72 73 6f 6e 6e 65 6c 20 73 75 6a 65 74 2c 20 33  rsonnel sujet, 3
1d00: e1 b5 89 20 70 65 72 73 2e 20 6d 61 73 63 2e 20  ... pers. masc. 
1d10: 73 69 6e 67 2e 22 5d 2c 0a 20 20 20 20 5b 27 6f  sing."],.    ['o
1d20: 6e 27 2c 20 22 20 70 72 6f 6e 6f 6d 20 70 65 72  n', " pronom per
1d30: 73 6f 6e 6e 65 6c 20 73 75 6a 65 74 2c 20 33 e1  sonnel sujet, 3.
1d40: b5 89 20 70 65 72 73 2e 20 73 69 6e 67 2e 20 6f  .. pers. sing. o
1d50: 75 20 70 6c 75 72 2e 22 5d 2c 0a 20 20 20 20 5b  u plur."],.    [
1d60: 27 65 6c 6c 65 27 2c 20 22 20 70 72 6f 6e 6f 6d  'elle', " pronom
1d70: 20 70 65 72 73 6f 6e 6e 65 6c 20 73 75 6a 65 74   personnel sujet
1d80: 2c 20 33 e1 b5 89 20 70 65 72 73 2e 20 66 c3 a9  , 3... pers. f..
1d90: 6d 2e 20 73 69 6e 67 2e 22 5d 2c 0a 20 20 20 20  m. sing."],.    
1da0: 5b 27 6e 6f 75 73 27 2c 20 22 20 70 72 6f 6e 6f  ['nous', " prono
1db0: 6d 20 70 65 72 73 6f 6e 6e 65 6c 20 73 75 6a 65  m personnel suje
1dc0: 74 2f 6f 62 6a 65 74 2c 20 31 ca b3 e1 b5 89 20  t/objet, 1..... 
1dd0: 70 65 72 73 2e 20 70 6c 75 72 2e 22 5d 2c 0a 20  pers. plur."],. 
1de0: 20 20 20 5b 27 76 6f 75 73 27 2c 20 22 20 70 72     ['vous', " pr
1df0: 6f 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65 6c 20 73  onom personnel s
1e00: 75 6a 65 74 2f 6f 62 6a 65 74 2c 20 32 e1 b5 89  ujet/objet, 2...
1e10: 20 70 65 72 73 2e 20 70 6c 75 72 2e 22 5d 2c 0a   pers. plur."],.
1e20: 20 20 20 20 5b 27 69 6c 73 27 2c 20 22 20 70 72      ['ils', " pr
1e30: 6f 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65 6c 20 73  onom personnel s
1e40: 75 6a 65 74 2c 20 33 e1 b5 89 20 70 65 72 73 2e  ujet, 3... pers.
1e50: 20 6d 61 73 63 2e 20 70 6c 75 72 2e 22 5d 2c 0a   masc. plur."],.
1e60: 20 20 20 20 5b 27 65 6c 6c 65 73 27 2c 20 22 20      ['elles', " 
1e70: 70 72 6f 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65 6c  pronom personnel
1e80: 20 73 75 6a 65 74 2c 20 33 e1 b5 89 20 70 65 72   sujet, 3... per
1e90: 73 2e 20 6d 61 73 63 2e 20 70 6c 75 72 2e 22 5d  s. masc. plur."]
1ea0: 2c 0a 0a 20 20 20 20 5b 22 6c c3 a0 22 2c 20 22  ,..    ["l..", "
1eb0: 20 70 61 72 74 69 63 75 6c 65 20 64 c3 a9 6d 6f   particule d..mo
1ec0: 6e 73 74 72 61 74 69 76 65 22 5d 2c 0a 20 20 20  nstrative"],.   
1ed0: 20 5b 22 63 69 22 2c 20 22 20 70 61 72 74 69 63   ["ci", " partic
1ee0: 75 6c 65 20 64 c3 a9 6d 6f 6e 73 74 72 61 74 69  ule d..monstrati
1ef0: 76 65 22 5d 2c 0a 0a 20 20 20 20 5b 27 6c 65 27  ve"],..    ['le'
1f00: 2c 20 22 20 43 4f 44 2c 20 6d 61 73 63 2e 20 73  , " COD, masc. s
1f10: 69 6e 67 2e 22 5d 2c 0a 20 20 20 20 5b 27 6c 61  ing."],.    ['la
1f20: 27 2c 20 22 20 43 4f 44 2c 20 66 c3 a9 6d 2e 20  ', " COD, f..m. 
1f30: 73 69 6e 67 2e 22 5d 2c 0a 20 20 20 20 5b 27 6c  sing."],.    ['l
1f40: 65 73 27 2c 20 22 20 43 4f 44 2c 20 70 6c 75 72  es', " COD, plur
1f50: 2e 22 5d 2c 0a 0a 20 20 20 20 5b 27 6d 6f 69 27  ."],..    ['moi'
1f60: 2c 20 22 20 43 4f 49 20 28 c3 a0 20 6d 6f 69 29  , " COI (.. moi)
1f70: 2c 20 73 69 6e 67 2e 22 5d 2c 0a 20 20 20 20 5b  , sing."],.    [
1f80: 27 74 6f 69 27 2c 20 22 20 43 4f 49 20 28 c3 a0  'toi', " COI (..
1f90: 20 74 6f 69 29 2c 20 73 69 6e 67 2e 22 5d 2c 0a   toi), sing."],.
1fa0: 20 20 20 20 5b 27 6c 75 69 27 2c 20 22 20 43 4f      ['lui', " CO
1fb0: 49 20 28 c3 a0 20 6c 75 69 20 6f 75 20 c3 a0 20  I (.. lui ou .. 
1fc0: 65 6c 6c 65 29 2c 20 73 69 6e 67 2e 22 5d 2c 0a  elle), sing."],.
1fd0: 20 20 20 20 5b 27 6e 6f 75 73 32 27 2c 20 22 20      ['nous2', " 
1fe0: 43 4f 49 20 28 c3 a0 20 6e 6f 75 73 29 2c 20 70  COI (.. nous), p
1ff0: 6c 75 72 2e 22 5d 2c 0a 20 20 20 20 5b 27 76 6f  lur."],.    ['vo
2000: 75 73 32 27 2c 20 22 20 43 4f 49 20 28 c3 a0 20  us2', " COI (.. 
2010: 76 6f 75 73 29 2c 20 70 6c 75 72 2e 22 5d 2c 0a  vous), plur."],.
2020: 20 20 20 20 5b 27 6c 65 75 72 27 2c 20 22 20 43      ['leur', " C
2030: 4f 49 20 28 c3 a0 20 65 75 78 20 6f 75 20 c3 a0  OI (.. eux ou ..
2040: 20 65 6c 6c 65 73 29 2c 20 70 6c 75 72 2e 22 5d   elles), plur."]
2050: 2c 0a 0a 20 20 20 20 5b 27 79 27 2c 20 22 20 70  ,..    ['y', " p
2060: 72 6f 6e 6f 6d 20 61 64 76 65 72 62 69 61 6c 22  ronom adverbial"
2070: 5d 2c 0a 20 20 20 20 5b 22 6d 27 79 22 2c 20 22  ],.    ["m'y", "
2080: 20 28 6d 65 29 20 70 72 6f 6e 6f 6d 20 70 65 72   (me) pronom per
2090: 73 6f 6e 6e 65 6c 20 6f 62 6a 65 74 20 2b 20 28  sonnel objet + (
20a0: 79 29 20 70 72 6f 6e 6f 6d 20 61 64 76 65 72 62  y) pronom adverb
20b0: 69 61 6c 22 5d 2c 0a 20 20 20 20 5b 22 74 27 79  ial"],.    ["t'y
20c0: 22 2c 20 22 20 28 74 65 29 20 70 72 6f 6e 6f 6d  ", " (te) pronom
20d0: 20 70 65 72 73 6f 6e 6e 65 6c 20 6f 62 6a 65 74   personnel objet
20e0: 20 2b 20 28 79 29 20 70 72 6f 6e 6f 6d 20 61 64   + (y) pronom ad
20f0: 76 65 72 62 69 61 6c 22 5d 2c 0a 20 20 20 20 5b  verbial"],.    [
2100: 22 73 27 79 22 2c 20 22 20 28 73 65 29 20 70 72  "s'y", " (se) pr
2110: 6f 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65 6c 20 6f  onom personnel o
2120: 62 6a 65 74 20 2b 20 28 79 29 20 70 72 6f 6e 6f  bjet + (y) prono
2130: 6d 20 61 64 76 65 72 62 69 61 6c 22 5d 2c 0a 0a  m adverbial"],..
2140: 20 20 20 20 5b 27 65 6e 27 2c 20 22 20 70 72 6f      ['en', " pro
2150: 6e 6f 6d 20 61 64 76 65 72 62 69 61 6c 22 5d 2c  nom adverbial"],
2160: 0a 20 20 20 20 5b 22 6d 27 65 6e 22 2c 20 22 20  .    ["m'en", " 
2170: 28 6d 65 29 20 70 72 6f 6e 6f 6d 20 70 65 72 73  (me) pronom pers
2180: 6f 6e 6e 65 6c 20 6f 62 6a 65 74 20 2b 20 28 65  onnel objet + (e
2190: 6e 29 20 70 72 6f 6e 6f 6d 20 61 64 76 65 72 62  n) pronom adverb
21a0: 69 61 6c 22 5d 2c 0a 20 20 20 20 5b 22 74 27 65  ial"],.    ["t'e
21b0: 6e 22 2c 20 22 20 28 74 65 29 20 70 72 6f 6e 6f  n", " (te) prono
21c0: 6d 20 70 65 72 73 6f 6e 6e 65 6c 20 6f 62 6a 65  m personnel obje
21d0: 74 20 2b 20 28 65 6e 29 20 70 72 6f 6e 6f 6d 20  t + (en) pronom 
21e0: 61 64 76 65 72 62 69 61 6c 22 5d 2c 0a 20 20 20  adverbial"],.   
21f0: 20 5b 22 73 27 65 6e 22 2c 20 22 20 28 73 65 29   ["s'en", " (se)
2200: 20 70 72 6f 6e 6f 6d 20 70 65 72 73 6f 6e 6e 65   pronom personne
2210: 6c 20 6f 62 6a 65 74 20 2b 20 28 65 6e 29 20 70  l objet + (en) p
2220: 72 6f 6e 6f 6d 20 61 64 76 65 72 62 69 61 6c 22  ronom adverbial"
2230: 5d 0a 5d 29 3b 0a 0a 63 6f 6e 73 74 20 5f 64 43  ].]);..const _dC
2240: 68 61 72 20 3d 20 6e 65 77 20 4d 61 70 28 5b 0a  har = new Map([.
2250: 20 20 20 20 5b 27 2e 27 2c 20 22 70 6f 69 6e 74      ['.', "point
2260: 22 5d 2c 0a 20 20 20 20 5b 27 c2 b7 27 2c 20 22  "],.    ['..', "
2270: 70 6f 69 6e 74 20 6d c3 a9 64 69 61 6e 22 5d 2c  point m..dian"],
2280: 0a 20 20 20 20 5b 27 e2 80 a6 27 2c 20 22 70 6f  .    ['...', "po
2290: 69 6e 74 73 20 64 65 20 73 75 73 70 65 6e 73 69  ints de suspensi
22a0: 6f 6e 22 5d 2c 0a 20 20 20 20 5b 27 3a 27 2c 20  on"],.    [':', 
22b0: 22 64 65 75 78 2d 70 6f 69 6e 74 73 22 5d 2c 0a  "deux-points"],.
22c0: 20 20 20 20 5b 27 3b 27 2c 20 22 70 6f 69 6e 74      [';', "point
22d0: 2d 76 69 72 67 75 6c 65 22 5d 2c 0a 20 20 20 20  -virgule"],.    
22e0: 5b 27 2c 27 2c 20 22 76 69 72 67 75 6c 65 22 5d  [',', "virgule"]
22f0: 2c 0a 20 20 20 20 5b 27 3f 27 2c 20 22 70 6f 69  ,.    ['?', "poi
2300: 6e 74 20 64 e2 80 99 69 6e 74 65 72 72 6f 67 61  nt d...interroga
2310: 74 69 6f 6e 22 5d 2c 0a 20 20 20 20 5b 27 21 27  tion"],.    ['!'
2320: 2c 20 22 70 6f 69 6e 74 20 64 e2 80 99 65 78 63  , "point d...exc
2330: 6c 61 6d 61 74 69 6f 6e 22 5d 2c 0a 20 20 20 20  lamation"],.    
2340: 5b 27 28 27 2c 20 22 70 61 72 65 6e 74 68 c3 a8  ['(', "parenth..
2350: 73 65 20 6f 75 76 72 61 6e 74 65 22 5d 2c 0a 20  se ouvrante"],. 
2360: 20 20 20 5b 27 29 27 2c 20 22 70 61 72 65 6e 74     [')', "parent
2370: 68 c3 a8 73 65 20 66 65 72 6d 61 6e 74 65 22 5d  h..se fermante"]
2380: 2c 0a 20 20 20 20 5b 27 5b 27 2c 20 22 63 72 6f  ,.    ['[', "cro
2390: 63 68 65 74 20 6f 75 76 72 61 6e 74 65 22 5d 2c  chet ouvrante"],
23a0: 0a 20 20 20 20 5b 27 5d 27 2c 20 22 63 72 6f 63  .    [']', "croc
23b0: 68 65 74 20 66 65 72 6d 61 6e 74 65 22 5d 2c 0a  het fermante"],.
23c0: 20 20 20 20 5b 27 7b 27 2c 20 22 61 63 63 6f 6c      ['{', "accol
23d0: 61 64 65 20 6f 75 76 72 61 6e 74 65 22 5d 2c 0a  ade ouvrante"],.
23e0: 20 20 20 20 5b 27 7d 27 2c 20 22 61 63 63 6f 6c      ['}', "accol
23f0: 61 64 65 20 66 65 72 6d 61 6e 74 65 22 5d 2c 0a  ade fermante"],.
2400: 20 20 20 20 5b 27 2d 27 2c 20 22 74 69 72 65 74      ['-', "tiret
2410: 22 5d 2c 0a 20 20 20 20 5b 27 e2 80 94 27 2c 20  "],.    ['...', 
2420: 22 74 69 72 65 74 20 63 61 64 72 61 74 69 6e 22  "tiret cadratin"
2430: 5d 2c 0a 20 20 20 20 5b 27 e2 80 93 27 2c 20 22  ],.    ['...', "
2440: 74 69 72 65 74 20 64 65 6d 69 2d 63 61 64 72 61  tiret demi-cadra
2450: 74 69 6e 22 5d 2c 0a 20 20 20 20 5b 27 c2 ab 27  tin"],.    ['..'
2460: 2c 20 22 67 75 69 6c 6c 65 6d 65 74 20 6f 75 76  , "guillemet ouv
2470: 72 61 6e 74 20 28 63 68 65 76 72 6f 6e 73 29 22  rant (chevrons)"
2480: 5d 2c 0a 20 20 20 20 5b 27 c2 bb 27 2c 20 22 67  ],.    ['..', "g
2490: 75 69 6c 6c 65 6d 65 74 20 66 65 72 6d 61 6e 74  uillemet fermant
24a0: 20 28 63 68 65 76 72 6f 6e 73 29 22 5d 2c 0a 20   (chevrons)"],. 
24b0: 20 20 20 5b 27 e2 80 9c 27 2c 20 22 67 75 69 6c     ['...', "guil
24c0: 6c 65 6d 65 74 20 6f 75 76 72 61 6e 74 20 64 6f  lemet ouvrant do
24d0: 75 62 6c 65 22 5d 2c 0a 20 20 20 20 5b 27 e2 80  uble"],.    ['..
24e0: 9d 27 2c 20 22 67 75 69 6c 6c 65 6d 65 74 20 66  .', "guillemet f
24f0: 65 72 6d 61 6e 74 20 64 6f 75 62 6c 65 22 5d 2c  ermant double"],
2500: 0a 20 20 20 20 5b 27 e2 80 98 27 2c 20 22 67 75  .    ['...', "gu
2510: 69 6c 6c 65 6d 65 74 20 6f 75 76 72 61 6e 74 22  illemet ouvrant"
2520: 5d 2c 0a 20 20 20 20 5b 27 e2 80 99 27 2c 20 22  ],.    ['...', "
2530: 67 75 69 6c 6c 65 6d 65 74 20 66 65 72 6d 61 6e  guillemet ferman
2540: 74 22 5d 2c 0a 20 20 20 20 5b 27 22 27 2c 20 22  t"],.    ['"', "
2550: 67 75 69 6c 6c 65 6d 65 74 73 20 64 72 6f 69 74  guillemets droit
2560: 73 20 28 64 c3 a9 63 6f 6e 73 65 69 6c 6c c3 a9  s (d..conseill..
2570: 20 65 6e 20 74 79 70 6f 67 72 61 70 68 69 65 29   en typographie)
2580: 22 5d 2c 0a 20 20 20 20 5b 27 2f 27 2c 20 22 73  "],.    ['/', "s
2590: 69 67 6e 65 20 64 65 20 6c 61 20 64 69 76 69 73  igne de la divis
25a0: 69 6f 6e 22 5d 2c 0a 20 20 20 20 5b 27 2b 27 2c  ion"],.    ['+',
25b0: 20 22 73 69 67 6e 65 20 64 65 20 6c e2 80 99 61   "signe de l...a
25c0: 64 64 69 74 69 6f 6e 22 5d 2c 0a 20 20 20 20 5b  ddition"],.    [
25d0: 27 2a 27 2c 20 22 73 69 67 6e 65 20 64 65 20 6c  '*', "signe de l
25e0: 61 20 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e  a multiplication
25f0: 22 5d 2c 0a 20 20 20 20 5b 27 3d 27 2c 20 22 73  "],.    ['=', "s
2600: 69 67 6e 65 20 64 65 20 6c e2 80 99 c3 a9 67 61  igne de l.....ga
2610: 6c 69 74 c3 a9 22 5d 2c 0a 20 20 20 20 5b 27 3c  lit.."],.    ['<
2620: 27 2c 20 22 69 6e 66 c3 a9 72 69 65 75 72 20 c3  ', "inf..rieur .
2630: a0 22 5d 2c 0a 20 20 20 20 5b 27 3e 27 2c 20 22  ."],.    ['>', "
2640: 73 75 70 c3 a9 72 69 65 75 72 20 c3 a0 22 5d 2c  sup..rieur .."],
2650: 0a 20 20 20 20 5b 27 e2 a9 bd 27 2c 20 22 69 6e  .    ['...', "in
2660: 66 c3 a9 72 69 65 75 72 20 6f 75 20 c3 a9 67 61  f..rieur ou ..ga
2670: 6c 20 c3 a0 22 5d 2c 0a 20 20 20 20 5b 27 e2 a9  l .."],.    ['..
2680: be 27 2c 20 22 73 75 70 c3 a9 72 69 65 75 72 20  .', "sup..rieur 
2690: 6f 75 20 c3 a9 67 61 6c 20 c3 a0 22 5d 2c 0a 20  ou ..gal .."],. 
26a0: 20 20 20 5b 27 25 27 2c 20 22 73 69 67 6e 65 20     ['%', "signe 
26b0: 64 65 20 70 6f 75 72 63 65 6e 74 61 67 65 22 5d  de pourcentage"]
26c0: 2c 0a 20 20 20 20 5b 27 e2 80 b0 27 2c 20 22 73  ,.    ['...', "s
26d0: 69 67 6e 65 20 70 6f 75 72 20 6d 69 6c 6c 65 22  igne pour mille"
26e0: 5d 2c 0a 5d 29 3b 0a 0a 0a 63 6c 61 73 73 20 4c  ],.]);...class L
26f0: 65 78 69 63 6f 67 72 61 70 68 65 20 7b 0a 0a 20  exicographe {.. 
2700: 20 20 20 63 6f 6e 73 74 72 75 63 74 6f 72 20 28     constructor (
2710: 6f 53 70 65 6c 6c 43 68 65 63 6b 65 72 2c 20 6f  oSpellChecker, o
2720: 54 6f 6b 65 6e 69 7a 65 72 2c 20 6f 4c 6f 63 47  Tokenizer, oLocG
2730: 72 61 70 68 29 20 7b 0a 20 20 20 20 20 20 20 20  raph) {.        
2740: 74 68 69 73 2e 6f 53 70 65 6c 6c 43 68 65 63 6b  this.oSpellCheck
2750: 65 72 20 3d 20 6f 53 70 65 6c 6c 43 68 65 63 6b  er = oSpellCheck
2760: 65 72 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73  er;.        this
2770: 2e 6f 54 6f 6b 65 6e 69 7a 65 72 20 3d 20 6f 54  .oTokenizer = oT
2780: 6f 6b 65 6e 69 7a 65 72 3b 0a 20 20 20 20 20 20  okenizer;.      
2790: 20 20 74 68 69 73 2e 6f 4c 6f 63 47 72 61 70 68    this.oLocGraph
27a0: 20 3d 20 4a 53 4f 4e 2e 70 61 72 73 65 28 6f 4c   = JSON.parse(oL
27b0: 6f 63 47 72 61 70 68 29 3b 0a 0a 20 20 20 20 20  ocGraph);..     
27c0: 20 20 20 74 68 69 73 2e 5f 7a 50 61 72 74 44 65     this._zPartDe
27d0: 6d 46 6f 72 6d 20 3d 20 6e 65 77 20 52 65 67 45  mForm = new RegE
27e0: 78 70 28 22 28 5b 61 2d 7a 41 2d 5a c3 a0 2d c3  xp("([a-zA-Z..-.
27f0: b6 30 2d 39 c3 80 2d c3 96 c3 b8 2d c3 bf c3 98  .0-9..-....-....
2800: 2d c3 9f c4 80 2d ca af 5d 2b 29 2d 28 6c c3 a0  -....-..]+)-(l..
2810: 7c 63 69 29 24 22 2c 20 22 69 22 29 3b 0a 20 20  |ci)$", "i");.  
2820: 20 20 20 20 20 20 74 68 69 73 2e 5f 61 50 61 72        this._aPar
2830: 74 44 65 6d 45 78 63 65 70 74 4c 69 73 74 20 3d  tDemExceptList =
2840: 20 6e 65 77 20 53 65 74 28 5b 22 63 65 6c 75 69   new Set(["celui
2850: 22 2c 20 22 63 65 6c 6c 65 22 2c 20 22 63 65 75  ", "celle", "ceu
2860: 78 22 2c 20 22 63 65 6c 6c 65 73 22 2c 20 22 64  x", "celles", "d
2870: 65 22 2c 20 22 6a 75 73 71 75 65 22 2c 20 22 70  e", "jusque", "p
2880: 61 72 22 2c 20 22 6d 61 72 69 65 2d 63 6f 75 63  ar", "marie-couc
2890: 68 65 2d 74 6f 69 22 5d 29 3b 0a 20 20 20 20 20  he-toi"]);.     
28a0: 20 20 20 74 68 69 73 2e 5f 7a 49 6e 74 65 72 72     this._zInterr
28b0: 6f 56 65 72 62 20 3d 20 6e 65 77 20 52 65 67 45  oVerb = new RegE
28c0: 78 70 28 22 28 5b 61 2d 7a 41 2d 5a c3 a0 2d c3  xp("([a-zA-Z..-.
28d0: b6 30 2d 39 c3 80 2d c3 96 c3 b8 2d c3 bf c3 98  .0-9..-....-....
28e0: 2d c3 9f c4 80 2d ca af 5d 2b 29 2d 28 74 2d 28  -....-..]+)-(t-(
28f0: 3f 3a 69 6c 7c 65 6c 6c 65 7c 6f 6e 29 7c 6a 65  ?:il|elle|on)|je
2900: 7c 74 75 7c 69 6c 73 3f 7c 65 6c 6c 65 73 3f 7c  |tu|ils?|elles?|
2910: 6f 6e 7c 5b 6e 76 5d 6f 75 73 29 24 22 2c 20 22  on|[nv]ous)$", "
2920: 69 22 29 3b 0a 20 20 20 20 20 20 20 20 74 68 69  i");.        thi
2930: 73 2e 5f 7a 49 6d 70 65 72 61 74 69 66 56 65 72  s._zImperatifVer
2940: 62 20 3d 20 6e 65 77 20 52 65 67 45 78 70 28 22  b = new RegExp("
2950: 28 5b 61 2d 7a 41 2d 5a c3 a0 2d c3 b6 30 2d 39  ([a-zA-Z..-..0-9
2960: c3 80 2d c3 96 c3 b8 2d c3 bf c3 98 2d c3 9f c4  ..-....-....-...
2970: 80 2d ca af 5d 2b 29 2d 28 28 3f 3a 6c 65 73 3f  .-..]+)-((?:les?
2980: 7c 6c 61 29 2d 28 3f 3a 6d 6f 69 7c 74 6f 69 7c  |la)-(?:moi|toi|
2990: 6c 75 69 7c 5b 6e 76 5d 6f 75 73 7c 6c 65 75 72  lui|[nv]ous|leur
29a0: 29 7c 79 7c 65 6e 7c 5b 6d 74 73 5d 5b e2 80 99  )|y|en|[mts][...
29b0: 27 5d 28 3f 3a 79 7c 65 6e 29 7c 6c 65 73 3f 7c  '](?:y|en)|les?|
29c0: 6c 61 7c 5b 6d 74 5d 6f 69 7c 6c 65 75 72 7c 6c  la|[mt]oi|leur|l
29d0: 75 69 29 24 22 2c 20 22 69 22 29 3b 0a 20 20 20  ui)$", "i");.   
29e0: 20 20 20 20 20 74 68 69 73 2e 5f 7a 54 61 67 20       this._zTag 
29f0: 3d 20 6e 65 77 20 52 65 67 45 78 70 28 22 5b 3a  = new RegExp("[:
2a00: 3b 2f 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 c3 91 c3  ;/][a-zA-Z0-9...
2a10: 82 c4 b4 c4 88 c5 94 c3 94 e1 b9 bc c5 b4 21 5d  ..............!]
2a20: 5b 5e 3a 3b 2f 5d 2a 22 2c 20 22 67 22 29 3b 0a  [^:;/]*", "g");.
2a30: 20 20 20 20 7d 0a 0a 20 20 20 20 67 65 74 49 6e      }..    getIn
2a40: 66 6f 46 6f 72 54 6f 6b 65 6e 20 28 6f 54 6f 6b  foForToken (oTok
2a50: 65 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f  en) {.        //
2a60: 20 54 6f 6b 65 6e 3a 20 2e 73 54 79 70 65 2c 20   Token: .sType, 
2a70: 2e 73 56 61 6c 75 65 2c 20 2e 6e 53 74 61 72 74  .sValue, .nStart
2a80: 2c 20 2e 6e 45 6e 64 0a 20 20 20 20 20 20 20 20  , .nEnd.        
2a90: 2f 2f 20 72 65 74 75 72 6e 20 61 20 6f 62 6a 65  // return a obje
2aa0: 63 74 20 7b 73 54 79 70 65 2c 20 73 56 61 6c 75  ct {sType, sValu
2ab0: 65 2c 20 61 4c 61 62 65 6c 7d 0a 20 20 20 20 20  e, aLabel}.     
2ac0: 20 20 20 6c 65 74 20 6d 20 3d 20 6e 75 6c 6c 3b     let m = null;
2ad0: 0a 20 20 20 20 20 20 20 20 74 72 79 20 7b 0a 20  .        try {. 
2ae0: 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63             switc
2af0: 68 20 28 6f 54 6f 6b 65 6e 2e 73 54 79 70 65 29  h (oToken.sType)
2b00: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
2b10: 20 20 20 63 61 73 65 20 27 50 55 4e 43 27 3a 0a     case 'PUNC':.
2b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b30: 63 61 73 65 20 27 53 49 47 4e 27 3a 0a 20 20 20  case 'SIGN':.   
2b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b50: 20 72 65 74 75 72 6e 20 7b 0a 20 20 20 20 20 20   return {.      
2b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b70: 20 20 73 54 79 70 65 3a 20 6f 54 6f 6b 65 6e 2e    sType: oToken.
2b80: 73 54 79 70 65 2c 0a 20 20 20 20 20 20 20 20 20  sType,.         
2b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73                 s
2ba0: 56 61 6c 75 65 3a 20 6f 54 6f 6b 65 6e 2e 73 56  Value: oToken.sV
2bb0: 61 6c 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20  alue,.          
2bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 4c                aL
2bd0: 61 62 65 6c 3a 20 5b 5f 64 43 68 61 72 2e 67 6c  abel: [_dChar.gl
2be0: 5f 67 65 74 28 6f 54 6f 6b 65 6e 2e 73 56 61 6c  _get(oToken.sVal
2bf0: 75 65 2c 20 22 63 61 72 61 63 74 c3 a8 72 65 20  ue, "caract..re 
2c00: 69 6e 64 c3 a9 74 65 72 6d 69 6e c3 a9 22 29 5d  ind..termin..")]
2c10: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2c20: 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20       };.        
2c30: 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61              brea
2c40: 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  k;.             
2c50: 20 20 20 63 61 73 65 20 27 4e 55 4d 27 3a 0a 20     case 'NUM':. 
2c60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2c70: 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 20 20     return {.    
2c80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2c90: 20 20 20 20 73 54 79 70 65 3a 20 6f 54 6f 6b 65      sType: oToke
2ca0: 6e 2e 73 54 79 70 65 2c 0a 20 20 20 20 20 20 20  n.sType,.       
2cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2cc0: 20 73 56 61 6c 75 65 3a 20 6f 54 6f 6b 65 6e 2e   sValue: oToken.
2cd0: 73 56 61 6c 75 65 2c 0a 20 20 20 20 20 20 20 20  sValue,.        
2ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2cf0: 61 4c 61 62 65 6c 3a 20 5b 22 6e 6f 6d 62 72 65  aLabel: ["nombre
2d00: 22 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  "].             
2d10: 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20         };.      
2d20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72                br
2d30: 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20  eak;.           
2d40: 20 20 20 20 20 63 61 73 65 20 27 4c 49 4e 4b 27       case 'LINK'
2d50: 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  :.              
2d60: 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20        return {. 
2d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2d80: 20 20 20 20 20 20 20 73 54 79 70 65 3a 20 6f 54         sType: oT
2d90: 6f 6b 65 6e 2e 73 54 79 70 65 2c 0a 20 20 20 20  oken.sType,.    
2da0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2db0: 20 20 20 20 73 56 61 6c 75 65 3a 20 6f 54 6f 6b      sValue: oTok
2dc0: 65 6e 2e 73 56 61 6c 75 65 2e 73 6c 69 63 65 28  en.sValue.slice(
2dd0: 30 2c 20 34 30 29 20 2b 20 22 e2 80 a6 22 2c 0a  0, 40) + "...",.
2de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2df0: 20 20 20 20 20 20 20 20 61 4c 61 62 65 6c 3a 20          aLabel: 
2e00: 5b 22 68 79 70 65 72 6c 69 65 6e 22 5d 0a 20 20  ["hyperlien"].  
2e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e20: 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 20 20 20    };.           
2e30: 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a           break;.
2e40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e50: 63 61 73 65 20 27 57 4f 52 44 5f 45 4c 49 44 45  case 'WORD_ELIDE
2e60: 44 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20  D':.            
2e70: 20 20 20 20 20 20 20 20 6c 65 74 20 73 54 65 6d          let sTem
2e80: 70 20 3d 20 6f 54 6f 6b 65 6e 2e 73 56 61 6c 75  p = oToken.sValu
2e90: 65 2e 72 65 70 6c 61 63 65 28 22 e2 80 99 22 2c  e.replace("...",
2ea0: 20 22 22 29 2e 72 65 70 6c 61 63 65 28 22 27 22   "").replace("'"
2eb0: 2c 20 22 22 29 2e 72 65 70 6c 61 63 65 28 22 60  , "").replace("`
2ec0: 22 2c 20 22 22 29 2e 74 6f 4c 6f 77 65 72 43 61  ", "").toLowerCa
2ed0: 73 65 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20  se();.          
2ee0: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e            return
2ef0: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
2f00: 20 20 20 20 20 20 20 20 20 20 20 73 54 79 70 65             sType
2f10: 3a 20 6f 54 6f 6b 65 6e 2e 73 54 79 70 65 2c 0a  : oToken.sType,.
2f20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f30: 20 20 20 20 20 20 20 20 73 56 61 6c 75 65 3a 20          sValue: 
2f40: 6f 54 6f 6b 65 6e 2e 73 56 61 6c 75 65 2c 0a 20  oToken.sValue,. 
2f50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f60: 20 20 20 20 20 20 20 61 4c 61 62 65 6c 3a 20 5b         aLabel: [
2f70: 5f 64 45 6c 69 64 65 64 50 72 65 66 69 78 2e 67  _dElidedPrefix.g
2f80: 6c 5f 67 65 74 28 73 54 65 6d 70 2c 20 22 70 72  l_get(sTemp, "pr
2f90: c3 a9 66 69 78 65 20 c3 a9 6c 69 64 c3 a9 20 69  ..fixe ..lid.. i
2fa0: 6e 63 6f 6e 6e 75 22 29 5d 0a 20 20 20 20 20 20  nconnu")].      
2fb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b                };
2fc0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2fd0: 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20       break;.    
2fe0: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65              case
2ff0: 20 27 57 4f 52 44 5f 4f 52 44 49 4e 41 4c 27 3a   'WORD_ORDINAL':
3000: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
3010: 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20       return {.  
3020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3030: 20 20 20 20 20 20 73 54 79 70 65 3a 20 6f 54 6f        sType: oTo
3040: 6b 65 6e 2e 73 54 79 70 65 2c 0a 20 20 20 20 20  ken.sType,.     
3050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3060: 20 20 20 73 56 61 6c 75 65 3a 20 6f 54 6f 6b 65     sValue: oToke
3070: 6e 2e 73 56 61 6c 75 65 2c 0a 20 20 20 20 20 20  n.sValue,.      
3080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3090: 20 20 61 4c 61 62 65 6c 3a 20 5b 22 6e 6f 6d 62    aLabel: ["nomb
30a0: 72 65 20 6f 72 64 69 6e 61 6c 22 5d 0a 20 20 20  re ordinal"].   
30b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
30c0: 20 7d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20   };.            
30d0: 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20          break;. 
30e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63                 c
30f0: 61 73 65 20 27 46 4f 4c 44 45 52 55 4e 49 58 27  ase 'FOLDERUNIX'
3100: 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  :.              
3110: 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20        return {. 
3120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3130: 20 20 20 20 20 20 20 73 54 79 70 65 3a 20 6f 54         sType: oT
3140: 6f 6b 65 6e 2e 73 54 79 70 65 2c 0a 20 20 20 20  oken.sType,.    
3150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3160: 20 20 20 20 73 56 61 6c 75 65 3a 20 6f 54 6f 6b      sValue: oTok
3170: 65 6e 2e 73 56 61 6c 75 65 2e 73 6c 69 63 65 28  en.sValue.slice(
3180: 30 2c 20 34 30 29 20 2b 20 22 e2 80 a6 22 2c 0a  0, 40) + "...",.
3190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31a0: 20 20 20 20 20 20 20 20 61 4c 61 62 65 6c 3a 20          aLabel: 
31b0: 5b 22 64 6f 73 73 69 65 72 20 55 4e 49 58 20 28  ["dossier UNIX (
31c0: 65 74 20 64 c3 a9 72 69 76 c3 a9 73 29 22 5d 0a  et d..riv..s)"].
31d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31e0: 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 20      };.         
31f0: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b             break
3200: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;.              
3210: 20 20 63 61 73 65 20 27 46 4f 4c 44 45 52 57 49    case 'FOLDERWI
3220: 4e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20  N':.            
3230: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b          return {
3240: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
3250: 20 20 20 20 20 20 20 20 20 73 54 79 70 65 3a 20           sType: 
3260: 6f 54 6f 6b 65 6e 2e 73 54 79 70 65 2c 0a 20 20  oToken.sType,.  
3270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3280: 20 20 20 20 20 20 73 56 61 6c 75 65 3a 20 6f 54        sValue: oT
3290: 6f 6b 65 6e 2e 73 56 61 6c 75 65 2e 73 6c 69 63  oken.sValue.slic
32a0: 65 28 30 2c 20 34 30 29 20 2b 20 22 e2 80 a6 22  e(0, 40) + "..."
32b0: 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ,.              
32c0: 20 20 20 20 20 20 20 20 20 20 61 4c 61 62 65 6c            aLabel
32d0: 3a 20 5b 22 64 6f 73 73 69 65 72 20 57 69 6e 64  : ["dossier Wind
32e0: 6f 77 73 22 5d 0a 20 20 20 20 20 20 20 20 20 20  ows"].          
32f0: 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20            };.   
3300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3310: 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20   break;.        
3320: 20 20 20 20 20 20 20 20 63 61 73 65 20 27 57 4f          case 'WO
3330: 52 44 5f 41 43 52 4f 4e 59 4d 27 3a 0a 20 20 20  RD_ACRONYM':.   
3340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3350: 20 72 65 74 75 72 6e 20 7b 0a 20 20 20 20 20 20   return {.      
3360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3370: 20 20 73 54 79 70 65 3a 20 6f 54 6f 6b 65 6e 2e    sType: oToken.
3380: 73 54 79 70 65 2c 0a 20 20 20 20 20 20 20 20 20  sType,.         
3390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73                 s
33a0: 56 61 6c 75 65 3a 20 6f 54 6f 6b 65 6e 2e 73 56  Value: oToken.sV
33b0: 61 6c 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20  alue,.          
33c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 4c                aL
33d0: 61 62 65 6c 3a 20 5b 22 53 69 67 6c 65 20 6f 75  abel: ["Sigle ou
33e0: 20 61 63 72 6f 6e 79 6d 65 22 5d 0a 20 20 20 20   acronyme"].    
33f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3400: 7d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  };.             
3410: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20         break;.  
3420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61                ca
3430: 73 65 20 27 57 4f 52 44 27 3a 0a 20 20 20 20 20  se 'WORD':.     
3440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
3450: 66 20 28 6f 54 6f 6b 65 6e 2e 73 56 61 6c 75 65  f (oToken.sValue
3460: 2e 67 6c 5f 63 6f 75 6e 74 28 22 2d 22 29 20 3e  .gl_count("-") >
3470: 20 34 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20   4) {.          
3480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65                re
3490: 74 75 72 6e 20 7b 0a 20 20 20 20 20 20 20 20 20  turn {.         
34a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
34b0: 20 20 20 73 54 79 70 65 3a 20 22 43 4f 4d 50 4c     sType: "COMPL
34c0: 45 58 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20  EX",.           
34d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
34e0: 20 73 56 61 6c 75 65 3a 20 6f 54 6f 6b 65 6e 2e   sValue: oToken.
34f0: 73 56 61 6c 75 65 2c 0a 20 20 20 20 20 20 20 20  sValue,.        
3500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3510: 20 20 20 20 61 4c 61 62 65 6c 3a 20 5b 22 c3 a9      aLabel: ["..
3520: 6c c3 a9 6d 65 6e 74 20 63 6f 6d 70 6c 65 78 65  l..ment complexe
3530: 20 69 6e 64 c3 a9 74 65 72 6d 69 6e c3 a9 22 5d   ind..termin.."]
3540: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
3550: 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20           };.    
3560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3570: 7d 20 65 6c 73 65 20 69 66 20 28 6d 20 3d 20 74  } else if (m = t
3580: 68 69 73 2e 5f 7a 50 61 72 74 44 65 6d 46 6f 72  his._zPartDemFor
3590: 6d 2e 65 78 65 63 28 6f 54 6f 6b 65 6e 2e 73 56  m.exec(oToken.sV
35a0: 61 6c 75 65 29 29 20 7b 0a 20 20 20 20 20 20 20  alue)) {.       
35b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
35c0: 20 2f 2f 20 6d 6f 74 73 20 61 76 65 63 20 70 61   // mots avec pa
35d0: 72 74 69 63 75 6c 65 73 20 64 c3 a9 6d 6f 6e 73  rticules d..mons
35e0: 74 72 61 74 69 76 65 73 0a 20 20 20 20 20 20 20  tratives.       
35f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3600: 20 69 66 20 28 74 68 69 73 2e 5f 61 50 61 72 74   if (this._aPart
3610: 44 65 6d 45 78 63 65 70 74 4c 69 73 74 2e 68 61  DemExceptList.ha
3620: 73 28 6d 5b 31 5d 2e 74 6f 4c 6f 77 65 72 43 61  s(m[1].toLowerCa
3630: 73 65 28 29 29 29 20 7b 0a 20 20 20 20 20 20 20  se())) {.       
3640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3650: 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20       return {.  
3660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 54                sT
3680: 79 70 65 3a 20 22 57 4f 52 44 22 2c 0a 20 20 20  ype: "WORD",.   
3690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
36a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 56 61               sVa
36b0: 6c 75 65 3a 20 6f 54 6f 6b 65 6e 2e 73 56 61 6c  lue: oToken.sVal
36c0: 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20  ue,.            
36d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
36e0: 20 20 20 20 61 4c 61 62 65 6c 3a 20 74 68 69 73      aLabel: this
36f0: 2e 5f 67 65 74 4d 6f 72 70 68 28 6f 54 6f 6b 65  ._getMorph(oToke
3700: 6e 2e 73 56 61 6c 75 65 29 0a 20 20 20 20 20 20  n.sValue).      
3710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3720: 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20        };.       
3730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3740: 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   }.             
3750: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72             retur
3760: 6e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  n {.            
3770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3780: 73 54 79 70 65 3a 20 6f 54 6f 6b 65 6e 2e 73 54  sType: oToken.sT
3790: 79 70 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20  ype,.           
37a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
37b0: 20 73 56 61 6c 75 65 3a 20 6f 54 6f 6b 65 6e 2e   sValue: oToken.
37c0: 73 56 61 6c 75 65 2c 0a 20 20 20 20 20 20 20 20  sValue,.        
37d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
37e0: 20 20 20 20 61 4c 61 62 65 6c 3a 20 5b 22 6d 6f      aLabel: ["mo
37f0: 74 20 61 76 65 63 20 70 61 72 74 69 63 75 6c 65  t avec particule
3800: 20 64 c3 a9 6d 6f 6e 73 74 72 61 74 69 76 65 22   d..monstrative"
3810: 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ],.             
3820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61                 a
3830: 53 75 62 45 6c 65 6d 3a 20 5b 0a 20 20 20 20 20  SubElem: [.     
3840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3850: 20 20 20 20 20 20 20 20 20 20 20 7b 20 73 54 79             { sTy
3860: 70 65 3a 20 6f 54 6f 6b 65 6e 2e 73 54 79 70 65  pe: oToken.sType
3870: 2c 20 73 56 61 6c 75 65 3a 20 6d 5b 31 5d 2c 20  , sValue: m[1], 
3880: 20 20 20 20 20 20 61 4c 61 62 65 6c 3a 20 74 68        aLabel: th
3890: 69 73 2e 5f 67 65 74 4d 6f 72 70 68 28 6d 5b 31  is._getMorph(m[1
38a0: 5d 29 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20  ]) },.          
38b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
38c0: 20 20 20 20 20 20 7b 20 73 54 79 70 65 3a 20 6f        { sType: o
38d0: 54 6f 6b 65 6e 2e 73 54 79 70 65 2c 20 73 56 61  Token.sType, sVa
38e0: 6c 75 65 3a 20 22 2d 22 20 2b 20 6d 5b 32 5d 2c  lue: "-" + m[2],
38f0: 20 61 4c 61 62 65 6c 3a 20 5b 74 68 69 73 2e 5f   aLabel: [this._
3900: 66 6f 72 6d 61 74 53 75 66 66 69 78 28 6d 5b 32  formatSuffix(m[2
3910: 5d 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28 29 29  ].toLowerCase())
3920: 5d 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ] }.            
3930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3940: 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ].              
3950: 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20            };.   
3960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3970: 20 7d 20 65 6c 73 65 20 69 66 20 28 6d 20 3d 20   } else if (m = 
3980: 74 68 69 73 2e 5f 7a 49 6d 70 65 72 61 74 69 66  this._zImperatif
3990: 56 65 72 62 2e 65 78 65 63 28 6f 54 6f 6b 65 6e  Verb.exec(oToken
39a0: 2e 73 56 61 6c 75 65 29 29 20 7b 0a 20 20 20 20  .sValue)) {.    
39b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
39c0: 20 20 20 20 2f 2f 20 66 6f 72 6d 65 73 20 69 6e      // formes in
39d0: 74 65 72 72 6f 67 61 74 69 76 65 73 0a 20 20 20  terrogatives.   
39e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
39f0: 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20       return {.  
3a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3a10: 20 20 20 20 20 20 20 20 20 20 73 54 79 70 65 3a            sType:
3a20: 20 6f 54 6f 6b 65 6e 2e 73 54 79 70 65 2c 0a 20   oToken.sType,. 
3a30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3a40: 20 20 20 20 20 20 20 20 20 20 20 73 56 61 6c 75             sValu
3a50: 65 3a 20 6f 54 6f 6b 65 6e 2e 73 56 61 6c 75 65  e: oToken.sValue
3a60: 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ,.              
3a70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 4c                aL
3a80: 61 62 65 6c 3a 20 5b 22 66 6f 72 6d 65 20 76 65  abel: ["forme ve
3a90: 72 62 61 6c 65 20 69 6d 70 c3 a9 72 61 74 69 76  rbale imp..rativ
3aa0: 65 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20  e"],.           
3ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3ac0: 20 61 53 75 62 45 6c 65 6d 3a 20 5b 0a 20 20 20   aSubElem: [.   
3ad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3ae0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 73               { s
3af0: 54 79 70 65 3a 20 6f 54 6f 6b 65 6e 2e 73 54 79  Type: oToken.sTy
3b00: 70 65 2c 20 73 56 61 6c 75 65 3a 20 6d 5b 31 5d  pe, sValue: m[1]
3b10: 2c 20 20 20 20 20 20 20 61 4c 61 62 65 6c 3a 20  ,       aLabel: 
3b20: 74 68 69 73 2e 5f 67 65 74 4d 6f 72 70 68 28 6d  this._getMorph(m
3b30: 5b 31 5d 29 20 7d 2c 0a 20 20 20 20 20 20 20 20  [1]) },.        
3b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3b50: 20 20 20 20 20 20 20 20 7b 20 73 54 79 70 65 3a          { sType:
3b60: 20 6f 54 6f 6b 65 6e 2e 73 54 79 70 65 2c 20 73   oToken.sType, s
3b70: 56 61 6c 75 65 3a 20 22 2d 22 20 2b 20 6d 5b 32  Value: "-" + m[2
3b80: 5d 2c 20 61 4c 61 62 65 6c 3a 20 5b 74 68 69 73  ], aLabel: [this
3b90: 2e 5f 66 6f 72 6d 61 74 53 75 66 66 69 78 28 6d  ._formatSuffix(m
3ba0: 5b 32 5d 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28  [2].toLowerCase(
3bb0: 29 29 5d 20 7d 0a 20 20 20 20 20 20 20 20 20 20  ))] }.          
3bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3bd0: 20 20 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20    ].            
3be0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20              };. 
3bf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3c00: 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 6d 20     } else if (m 
3c10: 3d 20 74 68 69 73 2e 5f 7a 49 6e 74 65 72 72 6f  = this._zInterro
3c20: 56 65 72 62 2e 65 78 65 63 28 6f 54 6f 6b 65 6e  Verb.exec(oToken
3c30: 2e 73 56 61 6c 75 65 29 29 20 7b 0a 20 20 20 20  .sValue)) {.    
3c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3c50: 20 20 20 20 2f 2f 20 66 6f 72 6d 65 73 20 69 6e      // formes in
3c60: 74 65 72 72 6f 67 61 74 69 76 65 73 0a 20 20 20  terrogatives.   
3c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3c80: 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20       return {.  
3c90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3ca0: 20 20 20 20 20 20 20 20 20 20 73 54 79 70 65 3a            sType:
3cb0: 20 6f 54 6f 6b 65 6e 2e 73 54 79 70 65 2c 0a 20   oToken.sType,. 
3cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3cd0: 20 20 20 20 20 20 20 20 20 20 20 73 56 61 6c 75             sValu
3ce0: 65 3a 20 6f 54 6f 6b 65 6e 2e 73 56 61 6c 75 65  e: oToken.sValue
3cf0: 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ,.              
3d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 4c                aL
3d10: 61 62 65 6c 3a 20 5b 22 66 6f 72 6d 65 20 76 65  abel: ["forme ve
3d20: 72 62 61 6c 65 20 69 6e 74 65 72 72 6f 67 61 74  rbale interrogat
3d30: 69 76 65 22 5d 2c 0a 20 20 20 20 20 20 20 20 20  ive"],.         
3d40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3d50: 20 20 20 61 53 75 62 45 6c 65 6d 3a 20 5b 0a 20     aSubElem: [. 
3d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
3d80: 20 73 54 79 70 65 3a 20 6f 54 6f 6b 65 6e 2e 73   sType: oToken.s
3d90: 54 79 70 65 2c 20 73 56 61 6c 75 65 3a 20 6d 5b  Type, sValue: m[
3da0: 31 5d 2c 20 20 20 20 20 20 20 61 4c 61 62 65 6c  1],       aLabel
3db0: 3a 20 74 68 69 73 2e 5f 67 65 74 4d 6f 72 70 68  : this._getMorph
3dc0: 28 6d 5b 31 5d 29 20 7d 2c 0a 20 20 20 20 20 20  (m[1]) },.      
3dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3de0: 20 20 20 20 20 20 20 20 20 20 7b 20 73 54 79 70            { sTyp
3df0: 65 3a 20 6f 54 6f 6b 65 6e 2e 73 54 79 70 65 2c  e: oToken.sType,
3e00: 20 73 56 61 6c 75 65 3a 20 22 2d 22 20 2b 20 6d   sValue: "-" + m
3e10: 5b 32 5d 2c 20 61 4c 61 62 65 6c 3a 20 5b 74 68  [2], aLabel: [th
3e20: 69 73 2e 5f 66 6f 72 6d 61 74 53 75 66 66 69 78  is._formatSuffix
3e30: 28 6d 5b 32 5d 2e 74 6f 4c 6f 77 65 72 43 61 73  (m[2].toLowerCas
3e40: 65 28 29 29 5d 20 7d 0a 20 20 20 20 20 20 20 20  e())] }.        
3e50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3e60: 20 20 20 20 5d 0a 20 20 20 20 20 20 20 20 20 20      ].          
3e70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b                };
3e80: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
3e90: 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28       } else if (
3ea0: 74 68 69 73 2e 6f 53 70 65 6c 6c 43 68 65 63 6b  this.oSpellCheck
3eb0: 65 72 2e 69 73 56 61 6c 69 64 54 6f 6b 65 6e 28  er.isValidToken(
3ec0: 6f 54 6f 6b 65 6e 2e 73 56 61 6c 75 65 29 29 20  oToken.sValue)) 
3ed0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
3ee0: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e            return
3ef0: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
3f00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73                 s
3f10: 54 79 70 65 3a 20 6f 54 6f 6b 65 6e 2e 73 54 79  Type: oToken.sTy
3f20: 70 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20  pe,.            
3f30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3f40: 73 56 61 6c 75 65 3a 20 6f 54 6f 6b 65 6e 2e 73  sValue: oToken.s
3f50: 56 61 6c 75 65 2c 0a 20 20 20 20 20 20 20 20 20  Value,.         
3f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3f70: 20 20 20 61 4c 61 62 65 6c 3a 20 74 68 69 73 2e     aLabel: this.
3f80: 5f 67 65 74 4d 6f 72 70 68 28 6f 54 6f 6b 65 6e  _getMorph(oToken
3f90: 2e 73 56 61 6c 75 65 29 0a 20 20 20 20 20 20 20  .sValue).       
3fa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3fb0: 20 7d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20   };.            
3fc0: 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b          } else {
3fd0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
3fe0: 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20           return 
3ff0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
4000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 54                sT
4010: 79 70 65 3a 20 22 55 4e 4b 4e 4f 57 4e 5f 57 4f  ype: "UNKNOWN_WO
4020: 52 44 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20  RD",.           
4030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4040: 20 73 56 61 6c 75 65 3a 20 6f 54 6f 6b 65 6e 2e   sValue: oToken.
4050: 73 56 61 6c 75 65 2c 0a 20 20 20 20 20 20 20 20  sValue,.        
4060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4070: 20 20 20 20 61 4c 61 62 65 6c 3a 20 5b 22 6d 6f      aLabel: ["mo
4080: 74 20 69 6e 63 6f 6e 6e 75 20 64 75 20 64 69 63  t inconnu du dic
4090: 74 69 6f 6e 6e 61 69 72 65 22 5d 0a 20 20 20 20  tionnaire"].    
40a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
40b0: 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 20      };.         
40c0: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20             }.   
40d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
40e0: 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20   break;.        
40f0: 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a          default:
4100: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
4110: 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20       return {.  
4120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4130: 20 20 20 20 20 20 73 54 79 70 65 3a 20 22 4e 4f        sType: "NO
4140: 5f 54 59 50 45 22 2c 0a 20 20 20 20 20 20 20 20  _TYPE",.        
4150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4160: 73 56 61 6c 75 65 3a 20 6f 54 6f 6b 65 6e 2e 73  sValue: oToken.s
4170: 56 61 6c 75 65 2c 0a 20 20 20 20 20 20 20 20 20  Value,.         
4180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61                 a
4190: 4c 61 62 65 6c 3a 20 5b 22 74 6f 6b 65 6e 20 69  Label: ["token i
41a0: 6e 63 6f 6e 6e 75 22 5d 0a 20 20 20 20 20 20 20  nconnu"].       
41b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20               }. 
41c0: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20             }.   
41d0: 20 20 20 20 20 7d 20 63 61 74 63 68 20 28 65 29       } catch (e)
41e0: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63   {.            c
41f0: 6f 6e 73 6f 6c 65 2e 65 72 72 6f 72 28 65 29 3b  onsole.error(e);
4200: 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20  .        }.     
4210: 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a     return null;.
4220: 20 20 20 20 7d 0a 0a 20 20 20 20 5f 67 65 74 4d      }..    _getM
4230: 6f 72 70 68 20 28 73 57 6f 72 64 29 20 7b 0a 20  orph (sWord) {. 
4240: 20 20 20 20 20 20 20 6c 65 74 20 61 45 6c 65 6d         let aElem
4250: 20 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 20 20 66   = [];.        f
4260: 6f 72 20 28 6c 65 74 20 73 20 6f 66 20 74 68 69  or (let s of thi
4270: 73 2e 6f 53 70 65 6c 6c 43 68 65 63 6b 65 72 2e  s.oSpellChecker.
4280: 67 65 74 4d 6f 72 70 68 28 73 57 6f 72 64 29 29  getMorph(sWord))
4290: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69   {.            i
42a0: 66 20 28 73 2e 69 6e 63 6c 75 64 65 73 28 22 3a  f (s.includes(":
42b0: 22 29 29 20 61 45 6c 65 6d 2e 70 75 73 68 28 74  ")) aElem.push(t
42c0: 68 69 73 2e 5f 66 6f 72 6d 61 74 54 61 67 73 28  his._formatTags(
42d0: 73 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20  s));.        }. 
42e0: 20 20 20 20 20 20 20 69 66 20 28 61 45 6c 65 6d         if (aElem
42f0: 2e 6c 65 6e 67 74 68 20 3d 3d 20 30 29 20 7b 0a  .length == 0) {.
4300: 20 20 20 20 20 20 20 20 20 20 20 20 61 45 6c 65              aEle
4310: 6d 2e 70 75 73 68 28 22 6d 6f 74 20 69 6e 63 6f  m.push("mot inco
4320: 6e 6e 75 20 64 75 20 64 69 63 74 69 6f 6e 6e 61  nnu du dictionna
4330: 69 72 65 22 29 3b 0a 20 20 20 20 20 20 20 20 7d  ire");.        }
4340: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
4350: 61 45 6c 65 6d 3b 0a 20 20 20 20 7d 0a 0a 20 20  aElem;.    }..  
4360: 20 20 5f 66 6f 72 6d 61 74 54 61 67 73 20 28 73    _formatTags (s
4370: 54 61 67 73 29 20 7b 0a 20 20 20 20 20 20 20 20  Tags) {.        
4380: 6c 65 74 20 73 52 65 73 20 3d 20 22 22 3b 0a 20  let sRes = "";. 
4390: 20 20 20 20 20 20 20 73 54 61 67 73 20 3d 20 73         sTags = s
43a0: 54 61 67 73 2e 72 65 70 6c 61 63 65 28 2f 56 28  Tags.replace(/V(
43b0: 5b 30 2d 33 5d 5b 65 61 5d 3f 29 5b 69 74 70 71  [0-3][ea]?)[itpq
43c0: 6e 6d 72 5f 65 61 78 7a 5d 2b 2f 2c 20 22 56 24  nmr_eaxz]+/, "V$
43d0: 31 22 29 3b 0a 20 20 20 20 20 20 20 20 6c 65 74  1");.        let
43e0: 20 6d 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c   m;.        whil
43f0: 65 20 28 28 6d 20 3d 20 74 68 69 73 2e 5f 7a 54  e ((m = this._zT
4400: 61 67 2e 65 78 65 63 28 73 54 61 67 73 29 29 20  ag.exec(sTags)) 
4410: 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20  !== null) {.    
4420: 20 20 20 20 20 20 20 20 73 52 65 73 20 2b 3d 20          sRes += 
4430: 5f 64 54 61 67 2e 67 65 74 28 6d 5b 30 5d 29 5b  _dTag.get(m[0])[
4440: 30 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  0];.        }.  
4450: 20 20 20 20 20 20 69 66 20 28 73 52 65 73 2e 73        if (sRes.s
4460: 74 61 72 74 73 57 69 74 68 28 22 20 76 65 72 62  tartsWith(" verb
4470: 65 22 29 20 26 26 20 21 73 52 65 73 2e 69 6e 63  e") && !sRes.inc
4480: 6c 75 64 65 73 28 22 69 6e 66 69 6e 69 74 69 66  ludes("infinitif
4490: 22 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  ")) {.          
44a0: 20 20 73 52 65 73 20 2b 3d 20 22 20 5b 22 20 2b    sRes += " [" +
44b0: 20 73 54 61 67 73 2e 73 6c 69 63 65 28 31 2c 20   sTags.slice(1, 
44c0: 73 54 61 67 73 2e 69 6e 64 65 78 4f 66 28 22 2f  sTags.indexOf("/
44d0: 22 29 29 20 2b 20 22 5d 22 3b 0a 20 20 20 20 20  ")) + "]";.     
44e0: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20     }.        if 
44f0: 28 21 73 52 65 73 29 20 7b 0a 20 20 20 20 20 20  (!sRes) {.      
4500: 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 23 45        return "#E
4510: 72 72 65 75 72 2e 20 c3 89 74 69 71 75 65 74 74  rreur. ..tiquett
4520: 65 20 69 6e 63 6f 6e 6e 75 65 20 3a 20 5b 22 20  e inconnue : [" 
4530: 2b 20 73 54 61 67 73 20 2b 20 22 5d 22 3b 0a 20  + sTags + "]";. 
4540: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
4550: 20 72 65 74 75 72 6e 20 73 52 65 73 2e 67 6c 5f   return sRes.gl_
4560: 74 72 69 6d 52 69 67 68 74 28 22 2c 22 29 3b 0a  trimRight(",");.
4570: 20 20 20 20 7d 0a 0a 20 20 20 20 5f 66 6f 72 6d      }..    _form
4580: 61 74 54 61 67 73 4c 6f 63 20 28 73 54 61 67 73  atTagsLoc (sTags
4590: 29 20 7b 0a 20 20 20 20 20 20 20 20 6c 65 74 20  ) {.        let 
45a0: 73 52 65 73 20 3d 20 22 22 3b 0a 20 20 20 20 20  sRes = "";.     
45b0: 20 20 20 6c 65 74 20 6d 3b 0a 20 20 20 20 20 20     let m;.      
45c0: 20 20 77 68 69 6c 65 20 28 28 6d 20 3d 20 74 68    while ((m = th
45d0: 69 73 2e 5f 7a 54 61 67 2e 65 78 65 63 28 73 54  is._zTag.exec(sT
45e0: 61 67 73 29 29 20 21 3d 3d 20 6e 75 6c 6c 29 20  ags)) !== null) 
45f0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66  {.            if
4600: 20 28 6d 5b 30 5d 2e 73 74 61 72 74 73 57 69 74   (m[0].startsWit
4610: 68 28 22 3a 4c 56 22 29 29 20 7b 0a 20 20 20 20  h(":LV")) {.    
4620: 20 20 20 20 20 20 20 20 20 20 20 20 73 52 65 73              sRes
4630: 20 2b 3d 20 5f 64 4c 6f 63 54 61 67 2e 67 65 74   += _dLocTag.get
4640: 28 22 3a 4c 56 22 29 3b 0a 20 20 20 20 20 20 20  (":LV");.       
4650: 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 6c 65           for (le
4660: 74 20 63 20 6f 66 20 6d 5b 30 5d 2e 73 6c 69 63  t c of m[0].slic
4670: 65 28 33 29 29 20 7b 0a 20 20 20 20 20 20 20 20  e(3)) {.        
4680: 20 20 20 20 20 20 20 20 20 20 20 20 73 52 65 73              sRes
4690: 20 2b 3d 20 5f 64 4c 6f 63 56 65 72 62 2e 67 65   += _dLocVerb.ge
46a0: 74 28 63 29 3b 0a 20 20 20 20 20 20 20 20 20 20  t(c);.          
46b0: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20        }.        
46c0: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20      } else {.   
46d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 52 65               sRe
46e0: 73 20 2b 3d 20 5f 64 4c 6f 63 54 61 67 2e 67 65  s += _dLocTag.ge
46f0: 74 28 6d 5b 30 5d 29 3b 0a 20 20 20 20 20 20 20  t(m[0]);.       
4700: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d       }.        }
4710: 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 73 52  .        if (!sR
4720: 65 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  es) {.          
4730: 20 20 72 65 74 75 72 6e 20 22 23 45 72 72 65 75    return "#Erreu
4740: 72 2e 20 c3 89 74 69 71 75 65 74 74 65 20 69 6e  r. ..tiquette in
4750: 63 6f 6e 6e 75 65 20 3a 20 5b 22 20 2b 20 73 54  connue : [" + sT
4760: 61 67 73 20 2b 20 22 5d 22 3b 0a 20 20 20 20 20  ags + "]";.     
4770: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74     }.        ret
4780: 75 72 6e 20 73 52 65 73 2e 67 6c 5f 74 72 69 6d  urn sRes.gl_trim
4790: 52 69 67 68 74 28 22 2c 22 29 3b 0a 20 20 20 20  Right(",");.    
47a0: 7d 0a 0a 20 20 20 20 5f 66 6f 72 6d 61 74 53 75  }..    _formatSu
47b0: 66 66 69 78 20 28 73 29 20 7b 0a 20 20 20 20 20  ffix (s) {.     
47c0: 20 20 20 69 66 20 28 73 2e 73 74 61 72 74 73 57     if (s.startsW
47d0: 69 74 68 28 22 74 2d 22 29 29 20 7b 0a 20 20 20  ith("t-")) {.   
47e0: 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20           return 
47f0: 22 e2 80 9c 74 e2 80 9d 20 65 75 70 68 6f 6e 69  "...t... euphoni
4800: 71 75 65 20 2b 22 20 2b 20 5f 64 50 72 6f 6e 6f  que +" + _dProno
4810: 6d 73 2e 67 65 74 28 73 2e 73 6c 69 63 65 28 32  ms.get(s.slice(2
4820: 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  ));.        }.  
4830: 20 20 20 20 20 20 69 66 20 28 21 73 2e 69 6e 63        if (!s.inc
4840: 6c 75 64 65 73 28 22 2d 22 29 29 20 7b 0a 20 20  ludes("-")) {.  
4850: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e            return
4860: 20 5f 64 50 72 6f 6e 6f 6d 73 2e 67 65 74 28 73   _dPronoms.get(s
4870: 2e 72 65 70 6c 61 63 65 28 22 e2 80 99 22 2c 20  .replace("...", 
4880: 22 27 22 29 29 3b 0a 20 20 20 20 20 20 20 20 7d  "'"));.        }
4890: 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 2e 65  .        if (s.e
48a0: 6e 64 73 57 69 74 68 28 22 6f 75 73 22 29 29 20  ndsWith("ous")) 
48b0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 20  {.            s 
48c0: 2b 3d 20 27 32 27 3b 0a 20 20 20 20 20 20 20 20  += '2';.        
48d0: 7d 0a 20 20 20 20 20 20 20 20 6c 65 74 20 6e 50  }.        let nP
48e0: 6f 73 20 3d 20 73 2e 69 6e 64 65 78 4f 66 28 22  os = s.indexOf("
48f0: 2d 22 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74  -");.        ret
4900: 75 72 6e 20 5f 64 50 72 6f 6e 6f 6d 73 2e 67 65  urn _dPronoms.ge
4910: 74 28 73 2e 73 6c 69 63 65 28 30 2c 20 6e 50 6f  t(s.slice(0, nPo
4920: 73 29 29 20 2b 20 22 20 2b 22 20 2b 20 5f 64 50  s)) + " +" + _dP
4930: 72 6f 6e 6f 6d 73 2e 67 65 74 28 73 2e 73 6c 69  ronoms.get(s.sli
4940: 63 65 28 6e 50 6f 73 20 2b 20 31 29 29 3b 0a 20  ce(nPos + 1));. 
4950: 20 20 20 7d 0a 0a 20 20 20 20 67 65 74 4c 69 73     }..    getLis
4960: 74 4f 66 54 6f 6b 65 6e 73 20 28 73 54 65 78 74  tOfTokens (sText
4970: 2c 20 62 49 6e 66 6f 3d 74 72 75 65 29 20 7b 0a  , bInfo=true) {.
4980: 20 20 20 20 20 20 20 20 6c 65 74 20 61 45 6c 65          let aEle
4990: 6d 20 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 20 20  m = [];.        
49a0: 69 66 20 28 73 54 65 78 74 20 21 3d 3d 20 22 22  if (sText !== ""
49b0: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) {.            
49c0: 66 6f 72 20 28 6c 65 74 20 6f 54 6f 6b 65 6e 20  for (let oToken 
49d0: 6f 66 20 74 68 69 73 2e 6f 54 6f 6b 65 6e 69 7a  of this.oTokeniz
49e0: 65 72 2e 67 65 6e 54 6f 6b 65 6e 73 28 73 54 65  er.genTokens(sTe
49f0: 78 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20  xt)) {.         
4a00: 20 20 20 20 20 20 20 69 66 20 28 62 49 6e 66 6f         if (bInfo
4a10: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) {.            
4a20: 20 20 20 20 20 20 20 20 6c 65 74 20 61 52 65 73          let aRes
4a30: 20 3d 20 74 68 69 73 2e 67 65 74 49 6e 66 6f 46   = this.getInfoF
4a40: 6f 72 54 6f 6b 65 6e 28 6f 54 6f 6b 65 6e 29 3b  orToken(oToken);
4a50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
4a60: 20 20 20 20 20 69 66 20 28 61 52 65 73 29 20 7b       if (aRes) {
4a70: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
4a80: 20 20 20 20 20 20 20 20 20 61 45 6c 65 6d 2e 70           aElem.p
4a90: 75 73 68 28 61 52 65 73 29 3b 0a 20 20 20 20 20  ush(aRes);.     
4aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d                 }
4ab0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
4ac0: 20 7d 20 65 6c 73 65 20 69 66 20 28 6f 54 6f 6b   } else if (oTok
4ad0: 65 6e 2e 73 54 79 70 65 20 21 3d 3d 20 22 53 50  en.sType !== "SP
4ae0: 41 43 45 22 29 20 7b 0a 20 20 20 20 20 20 20 20  ACE") {.        
4af0: 20 20 20 20 20 20 20 20 20 20 20 20 61 45 6c 65              aEle
4b00: 6d 2e 70 75 73 68 28 6f 54 6f 6b 65 6e 29 3b 0a  m.push(oToken);.
4b10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4b20: 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a  }.            }.
4b30: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20          }.      
4b40: 20 20 72 65 74 75 72 6e 20 61 45 6c 65 6d 3b 0a    return aElem;.
4b50: 20 20 20 20 7d 0a 0a 20 20 20 20 2a 20 67 65 6e      }..    * gen
4b60: 65 72 61 74 65 49 6e 66 6f 46 6f 72 54 6f 6b 65  erateInfoForToke
4b70: 6e 4c 69 73 74 20 28 6c 54 6f 6b 65 6e 29 20 7b  nList (lToken) {
4b80: 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 6c 65  .        for (le
4b90: 74 20 6f 54 6f 6b 65 6e 20 6f 66 20 6c 54 6f 6b  t oToken of lTok
4ba0: 65 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  en) {.          
4bb0: 20 20 6c 65 74 20 61 52 65 73 20 3d 20 74 68 69    let aRes = thi
4bc0: 73 2e 67 65 74 49 6e 66 6f 46 6f 72 54 6f 6b 65  s.getInfoForToke
4bd0: 6e 28 6f 54 6f 6b 65 6e 29 3b 0a 20 20 20 20 20  n(oToken);.     
4be0: 20 20 20 20 20 20 20 69 66 20 28 61 52 65 73 29         if (aRes)
4bf0: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
4c00: 20 20 20 79 69 65 6c 64 20 61 52 65 73 3b 0a 20     yield aRes;. 
4c10: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20             }.   
4c20: 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20       }.    }..  
4c30: 20 20 67 65 74 4c 69 73 74 4f 66 54 6f 6b 65 6e    getListOfToken
4c40: 73 52 65 64 75 63 20 28 73 54 65 78 74 2c 20 62  sReduc (sText, b
4c50: 49 6e 66 6f 3d 74 72 75 65 29 20 7b 0a 20 20 20  Info=true) {.   
4c60: 20 20 20 20 20 6c 65 74 20 6c 54 6f 6b 65 6e 20       let lToken 
4c70: 3d 20 74 68 69 73 2e 67 65 74 4c 69 73 74 4f 66  = this.getListOf
4c80: 54 6f 6b 65 6e 73 28 73 54 65 78 74 2e 72 65 70  Tokens(sText.rep
4c90: 6c 61 63 65 28 22 27 22 2c 20 22 e2 80 99 22 29  lace("'", "...")
4ca0: 2e 74 72 69 6d 28 29 2c 20 66 61 6c 73 65 29 3b  .trim(), false);
4cb0: 0a 20 20 20 20 20 20 20 20 6c 65 74 20 69 54 6f  .        let iTo
4cc0: 6b 65 6e 20 3d 20 30 3b 0a 20 20 20 20 20 20 20  ken = 0;.       
4cd0: 20 6c 65 74 20 61 45 6c 65 6d 20 3d 20 5b 5d 3b   let aElem = [];
4ce0: 0a 20 20 20 20 20 20 20 20 69 66 20 28 6c 54 6f  .        if (lTo
4cf0: 6b 65 6e 2e 6c 65 6e 67 74 68 20 3d 3d 20 30 29  ken.length == 0)
4d00: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72   {.            r
4d10: 65 74 75 72 6e 20 61 45 6c 65 6d 3b 0a 20 20 20  eturn aElem;.   
4d20: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 64       }.        d
4d30: 6f 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  o {.            
4d40: 6c 65 74 20 6f 54 6f 6b 65 6e 20 3d 20 6c 54 6f  let oToken = lTo
4d50: 6b 65 6e 5b 69 54 6f 6b 65 6e 5d 3b 0a 20 20 20  ken[iToken];.   
4d60: 20 20 20 20 20 20 20 20 20 6c 65 74 20 73 4d 6f           let sMo
4d70: 72 70 68 4c 6f 63 20 3d 20 27 27 3b 0a 20 20 20  rphLoc = '';.   
4d80: 20 20 20 20 20 20 20 20 20 6c 65 74 20 61 54 6f           let aTo
4d90: 6b 65 6e 54 65 6d 70 4c 69 73 74 20 3d 20 5b 6f  kenTempList = [o
4da0: 54 6f 6b 65 6e 5d 3b 0a 20 20 20 20 20 20 20 20  Token];.        
4db0: 20 20 20 20 69 66 20 28 6f 54 6f 6b 65 6e 2e 73      if (oToken.s
4dc0: 54 79 70 65 20 3d 3d 20 22 57 4f 52 44 22 20 7c  Type == "WORD" |
4dd0: 7c 20 6f 54 6f 6b 65 6e 2e 73 54 79 70 65 20 3d  | oToken.sType =
4de0: 3d 20 22 57 4f 52 44 5f 45 4c 49 44 45 44 22 29  = "WORD_ELIDED")
4df0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
4e00: 20 20 6c 65 74 20 69 4c 6f 63 45 6e 64 20 3d 20    let iLocEnd = 
4e10: 69 54 6f 6b 65 6e 20 2b 20 31 3b 0a 20 20 20 20  iToken + 1;.    
4e20: 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20              let 
4e30: 6f 4c 6f 63 4e 6f 64 65 20 3d 20 74 68 69 73 2e  oLocNode = this.
4e40: 6f 4c 6f 63 47 72 61 70 68 5b 6f 54 6f 6b 65 6e  oLocGraph[oToken
4e50: 2e 73 56 61 6c 75 65 2e 74 6f 4c 6f 77 65 72 43  .sValue.toLowerC
4e60: 61 73 65 28 29 5d 3b 0a 20 20 20 20 20 20 20 20  ase()];.        
4e70: 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6f          while (o
4e80: 4c 6f 63 4e 6f 64 65 29 20 7b 0a 20 20 20 20 20  LocNode) {.     
4e90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c                 l
4ea0: 65 74 20 6f 54 6f 6b 65 6e 4e 65 78 74 20 3d 20  et oTokenNext = 
4eb0: 6c 54 6f 6b 65 6e 5b 69 4c 6f 63 45 6e 64 5d 3b  lToken[iLocEnd];
4ec0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
4ed0: 20 20 20 20 20 69 4c 6f 63 45 6e 64 2b 2b 3b 0a       iLocEnd++;.
4ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4ef0: 20 20 20 20 69 66 20 28 6f 54 6f 6b 65 6e 4e 65      if (oTokenNe
4f00: 78 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  xt) {.          
4f10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 4c                oL
4f20: 6f 63 4e 6f 64 65 20 3d 20 6f 4c 6f 63 4e 6f 64  ocNode = oLocNod
4f30: 65 5b 6f 54 6f 6b 65 6e 4e 65 78 74 2e 73 56 61  e[oTokenNext.sVa
4f40: 6c 75 65 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28  lue.toLowerCase(
4f50: 29 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  )];.            
4f60: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20          }.      
4f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66                if
4f80: 20 28 6f 4c 6f 63 4e 6f 64 65 20 26 26 20 69 4c   (oLocNode && iL
4f90: 6f 63 45 6e 64 20 3c 3d 20 6c 54 6f 6b 65 6e 2e  ocEnd <= lToken.
4fa0: 6c 65 6e 67 74 68 29 20 7b 0a 20 20 20 20 20 20  length) {.      
4fb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4fc0: 20 20 73 4d 6f 72 70 68 4c 6f 63 20 3d 20 6f 4c    sMorphLoc = oL
4fd0: 6f 63 4e 6f 64 65 5b 22 5f 3a 5f 22 5d 3b 0a 20  ocNode["_:_"];. 
4fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4ff0: 20 20 20 20 20 20 20 61 54 6f 6b 65 6e 54 65 6d         aTokenTem
5000: 70 4c 69 73 74 2e 70 75 73 68 28 6f 54 6f 6b 65  pList.push(oToke
5010: 6e 4e 65 78 74 29 3b 0a 20 20 20 20 20 20 20 20  nNext);.        
5020: 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c              } el
5030: 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  se {.           
5040: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65               bre
5050: 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ak;.            
5060: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20          }.      
5070: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20            }.    
5080: 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20          }..     
5090: 20 20 20 20 20 20 20 69 66 20 28 73 4d 6f 72 70         if (sMorp
50a0: 68 4c 6f 63 29 20 7b 0a 20 20 20 20 20 20 20 20  hLoc) {.        
50b0: 20 20 20 20 20 20 20 20 2f 2f 20 77 65 20 68 61          // we ha
50c0: 76 65 20 61 20 6c 6f 63 75 74 69 6f 6e 0a 20 20  ve a locution.  
50d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65                le
50e0: 74 20 73 56 61 6c 75 65 20 3d 20 27 27 3b 0a 20  t sValue = '';. 
50f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66                 f
5100: 6f 72 20 28 6c 65 74 20 6f 54 6f 6b 65 6e 57 6f  or (let oTokenWo
5110: 72 64 20 6f 66 20 61 54 6f 6b 65 6e 54 65 6d 70  rd of aTokenTemp
5120: 4c 69 73 74 29 20 7b 0a 20 20 20 20 20 20 20 20  List) {.        
5130: 20 20 20 20 20 20 20 20 20 20 20 20 73 56 61 6c              sVal
5140: 75 65 20 2b 3d 20 6f 54 6f 6b 65 6e 57 6f 72 64  ue += oTokenWord
5150: 2e 73 56 61 6c 75 65 2b 27 20 27 3b 0a 20 20 20  .sValue+' ';.   
5160: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20               }. 
5170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c                 l
5180: 65 74 20 6f 54 6f 6b 65 6e 4c 6f 63 75 74 69 6f  et oTokenLocutio
5190: 6e 20 3d 20 7b 0a 20 20 20 20 20 20 20 20 20 20  n = {.          
51a0: 20 20 20 20 20 20 20 20 20 20 27 6e 53 74 61 72            'nStar
51b0: 74 27 3a 20 61 54 6f 6b 65 6e 54 65 6d 70 4c 69  t': aTokenTempLi
51c0: 73 74 5b 30 5d 2e 6e 53 74 61 72 74 2c 0a 20 20  st[0].nStart,.  
51d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
51e0: 20 20 27 6e 45 6e 64 27 3a 20 61 54 6f 6b 65 6e    'nEnd': aToken
51f0: 54 65 6d 70 4c 69 73 74 5b 61 54 6f 6b 65 6e 54  TempList[aTokenT
5200: 65 6d 70 4c 69 73 74 2e 6c 65 6e 67 74 68 2d 31  empList.length-1
5210: 5d 2e 6e 45 6e 64 2c 0a 20 20 20 20 20 20 20 20  ].nEnd,.        
5220: 20 20 20 20 20 20 20 20 20 20 20 20 27 73 54 79              'sTy
5230: 70 65 27 3a 20 22 4c 4f 43 22 2c 0a 20 20 20 20  pe': "LOC",.    
5240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5250: 27 73 56 61 6c 75 65 27 3a 20 73 56 61 6c 75 65  'sValue': sValue
5260: 2e 72 65 70 6c 61 63 65 28 27 e2 80 99 20 27 2c  .replace('... ',
5270: 27 e2 80 99 27 29 2e 74 72 69 6d 28 29 2c 0a 20  '...').trim(),. 
5280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5290: 20 20 20 27 61 53 75 62 54 6f 6b 65 6e 27 3a 20     'aSubToken': 
52a0: 61 54 6f 6b 65 6e 54 65 6d 70 4c 69 73 74 0a 20  aTokenTempList. 
52b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d                 }
52c0: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;.              
52d0: 20 20 69 66 20 28 62 49 6e 66 6f 29 20 7b 0a 20    if (bInfo) {. 
52e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
52f0: 20 20 20 6c 65 74 20 61 53 75 62 45 6c 65 6d 20     let aSubElem 
5300: 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20  = null;.        
5310: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28              if (
5320: 73 4d 6f 72 70 68 4c 6f 63 2e 73 74 61 72 74 73  sMorphLoc.starts
5330: 57 69 74 68 28 22 2a 7c 22 29 29 20 7b 0a 20 20  With("*|")) {.  
5340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5350: 20 20 20 20 20 20 2f 2f 20 63 65 74 74 65 20 73        // cette s
5360: 75 69 74 65 20 64 65 20 74 6f 6b 65 6e 73 20 6e  uite de tokens n
5370: e2 80 99 65 73 74 20 75 6e 65 20 6c 6f 63 75 74  ...est une locut
5380: 69 6f 6e 20 71 75 65 20 64 61 6e 73 20 63 65 72  ion que dans cer
5390: 74 61 69 6e 73 20 63 61 73 20 6d 69 6e 6f 72 69  tains cas minori
53a0: 74 61 69 72 65 73 0a 20 20 20 20 20 20 20 20 20  taires.         
53b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f                 o
53c0: 54 6f 6b 65 6e 4c 6f 63 75 74 69 6f 6e 2e 73 54  TokenLocution.sT
53d0: 79 70 65 20 3d 20 22 4c 4f 43 50 22 3b 0a 20 20  ype = "LOCP";.  
53e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
53f0: 20 20 20 20 20 20 66 6f 72 20 28 6c 65 74 20 6f        for (let o
5400: 45 6c 65 6d 20 6f 66 20 74 68 69 73 2e 67 65 6e  Elem of this.gen
5410: 65 72 61 74 65 49 6e 66 6f 46 6f 72 54 6f 6b 65  erateInfoForToke
5420: 6e 4c 69 73 74 28 61 54 6f 6b 65 6e 54 65 6d 70  nList(aTokenTemp
5430: 4c 69 73 74 29 29 20 7b 0a 20 20 20 20 20 20 20  List)) {.       
5440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5450: 20 20 20 20 20 61 45 6c 65 6d 2e 70 75 73 68 28       aElem.push(
5460: 6f 45 6c 65 6d 29 3b 0a 20 20 20 20 20 20 20 20  oElem);.        
5470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5480: 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  }.              
5490: 20 20 20 20 20 20 20 20 20 20 73 4d 6f 72 70 68            sMorph
54a0: 4c 6f 63 20 3d 20 73 4d 6f 72 70 68 4c 6f 63 2e  Loc = sMorphLoc.
54b0: 73 6c 69 63 65 28 32 29 3b 0a 20 20 20 20 20 20  slice(2);.      
54c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20                } 
54d0: 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20  else {.         
54e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61                 a
54f0: 53 75 62 45 6c 65 6d 20 3d 20 5b 2e 2e 2e 74 68  SubElem = [...th
5500: 69 73 2e 67 65 6e 65 72 61 74 65 49 6e 66 6f 46  is.generateInfoF
5510: 6f 72 54 6f 6b 65 6e 4c 69 73 74 28 61 54 6f 6b  orTokenList(aTok
5520: 65 6e 54 65 6d 70 4c 69 73 74 29 5d 3b 0a 20 20  enTempList)];.  
5530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5540: 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20    }.            
5550: 20 20 20 20 20 20 20 20 2f 2f 20 63 65 74 74 65          // cette
5560: 20 73 75 69 74 65 20 64 65 20 74 6f 6b 65 6e 73   suite de tokens
5570: 20 65 73 74 20 6c 61 20 70 6c 75 70 61 72 74 20   est la plupart 
5580: 64 75 20 74 65 6d 70 73 20 75 6e 65 20 6c 6f 63  du temps une loc
5590: 75 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20  ution.          
55a0: 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 61 46            let aF
55b0: 6f 72 6d 61 74 65 64 54 61 67 20 3d 20 5b 5d 3b  ormatedTag = [];
55c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
55d0: 20 20 20 20 20 66 6f 72 20 28 6c 65 74 20 73 54       for (let sT
55e0: 61 67 4c 6f 63 20 6f 66 20 73 4d 6f 72 70 68 4c  agLoc of sMorphL
55f0: 6f 63 2e 73 70 6c 69 74 28 27 7c 27 29 20 29 7b  oc.split('|') ){
5600: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
5610: 20 20 20 20 20 20 20 20 20 61 46 6f 72 6d 61 74           aFormat
5620: 65 64 54 61 67 2e 70 75 73 68 28 74 68 69 73 2e  edTag.push(this.
5630: 5f 66 6f 72 6d 61 74 54 61 67 73 4c 6f 63 28 73  _formatTagsLoc(s
5640: 54 61 67 4c 6f 63 29 29 3b 0a 20 20 20 20 20 20  TagLoc));.      
5650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a                }.
5660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5670: 20 20 20 20 61 45 6c 65 6d 2e 70 75 73 68 28 7b      aElem.push({
5680: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
5690: 20 20 20 20 20 20 20 20 20 73 54 79 70 65 3a 20           sType: 
56a0: 6f 54 6f 6b 65 6e 4c 6f 63 75 74 69 6f 6e 2e 73  oTokenLocution.s
56b0: 54 79 70 65 2c 0a 20 20 20 20 20 20 20 20 20 20  Type,.          
56c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 56                sV
56d0: 61 6c 75 65 3a 20 6f 54 6f 6b 65 6e 4c 6f 63 75  alue: oTokenLocu
56e0: 74 69 6f 6e 2e 73 56 61 6c 75 65 2c 0a 20 20 20  tion.sValue,.   
56f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5700: 20 20 20 20 20 61 4c 61 62 65 6c 3a 20 61 46 6f       aLabel: aFo
5710: 72 6d 61 74 65 64 54 61 67 2c 0a 20 20 20 20 20  rmatedTag,.     
5720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5730: 20 20 20 61 53 75 62 45 6c 65 6d 3a 20 61 53 75     aSubElem: aSu
5740: 62 45 6c 65 6d 0a 20 20 20 20 20 20 20 20 20 20  bElem.          
5750: 20 20 20 20 20 20 20 20 20 20 7d 29 3b 0a 20 20            });.  
5760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20                } 
5770: 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20  else {.         
5780: 20 20 20 20 20 20 20 20 20 20 20 61 45 6c 65 6d             aElem
5790: 2e 70 75 73 68 28 6f 54 6f 6b 65 6e 4c 6f 63 75  .push(oTokenLocu
57a0: 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20  tion);.         
57b0: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
57c0: 20 20 20 20 20 20 20 20 20 69 54 6f 6b 65 6e 20           iToken 
57d0: 3d 20 69 54 6f 6b 65 6e 20 2b 20 61 54 6f 6b 65  = iToken + aToke
57e0: 6e 54 65 6d 70 4c 69 73 74 2e 6c 65 6e 67 74 68  nTempList.length
57f0: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20  ;.            } 
5800: 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20  else {.         
5810: 20 20 20 20 20 20 20 2f 2f 20 4e 6f 20 6c 6f 63         // No loc
5820: 75 74 69 6f 6e 2c 20 77 65 20 6a 75 73 74 20 61  ution, we just a
5830: 64 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20  dd information. 
5840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
5850: 66 20 28 62 49 6e 66 6f 29 20 7b 0a 20 20 20 20  f (bInfo) {.    
5860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5870: 6c 65 74 20 61 52 65 73 20 3d 20 74 68 69 73 2e  let aRes = this.
5880: 67 65 74 49 6e 66 6f 46 6f 72 54 6f 6b 65 6e 28  getInfoForToken(
5890: 6f 54 6f 6b 65 6e 29 3b 0a 20 20 20 20 20 20 20  oToken);.       
58a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20               if 
58b0: 28 61 52 65 73 29 20 7b 0a 20 20 20 20 20 20 20  (aRes) {.       
58c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
58d0: 20 61 45 6c 65 6d 2e 70 75 73 68 28 61 52 65 73   aElem.push(aRes
58e0: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
58f0: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
5900: 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20           } else 
5910: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
5920: 20 20 20 20 20 20 61 45 6c 65 6d 2e 70 75 73 68        aElem.push
5930: 28 6f 54 6f 6b 65 6e 29 3b 0a 20 20 20 20 20 20  (oToken);.      
5940: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20            }.    
5950: 20 20 20 20 20 20 20 20 20 20 20 20 69 54 6f 6b              iTok
5960: 65 6e 2b 2b 3b 0a 20 20 20 20 20 20 20 20 20 20  en++;.          
5970: 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 77 68    }.        } wh
5980: 69 6c 65 20 28 69 54 6f 6b 65 6e 20 3c 20 6c 54  ile (iToken < lT
5990: 6f 6b 65 6e 2e 6c 65 6e 67 74 68 29 3b 0a 20 20  oken.length);.  
59a0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 45 6c        return aEl
59b0: 65 6d 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 0a 69 66  em;.    }.}...if
59c0: 20 28 74 79 70 65 6f 66 28 65 78 70 6f 72 74 73   (typeof(exports
59d0: 29 20 21 3d 3d 20 27 75 6e 64 65 66 69 6e 65 64  ) !== 'undefined
59e0: 27 29 20 7b 0a 20 20 20 20 65 78 70 6f 72 74 73  ') {.    exports
59f0: 2e 4c 65 78 69 63 6f 67 72 61 70 68 65 20 3d 20  .Lexicographe = 
5a00: 4c 65 78 69 63 6f 67 72 61 70 68 65 3b 0a 7d 0a  Lexicographe;.}.