%%mocodo
:
:::
:  :  :
   :  :  :
   % commented
% commented %
  % foo\\ , %  foo  /TX\\
AYANT-DROIT: nom ayant-droit, lien
DIRIGER, 0N EMPLOYÉ, 01 PROJET
REQUÉRIR, 1N PROJET, 0N PIÈCE: qté requise
COMPOSER, 0N [composée] PIÈCE, 0N [composante] PIÈCE: quantité
DF, _11 AYANT-DROIT, 0N EMPLOYÉ
FOURNIR, 1N PROJET, 1N PIÈCE, 1N SOCIÉTÉ: qté fournie
CONTRÔLER, 0N< [filiale] SOCIÉTÉ, 01 [mère] SOCIÉTÉ
DF, 0N> CLIENT, 11 COMMANDE
GRATTE-CIEL: latitude, _longitude, nom, hauteur, année de construction
Peut recevoir, 1N> Groupe sanguin, 1N< Groupe sanguin
Engendre, 0N< Personne, 22> Personne
Agent 0070: bar
DF4, 11 Agent 0070, 1N Agent1
Agent1: bar
DF, _11 ŒUVRE, _11 EXEMPLAIRE
Réserver, /1N Client, 1N Chambre, 0N Date: Durée
LIGULA, 0N LACUS, /1N EROS, 0N TELLUS, 0N CONSEQUAT: metus
Réserver: _Durée
+LIGULA, 01 LACUS, 1N EROS: metus
PASSER, 0N [Un client peut passer un nombre quelconque de commandes.] CLIENT, 11 [Toute commande est passée par un en un seul client.] COMMANDE
INCLURE, 1N [Une commande peut inclure plusieurs produits distincts, et en inclut au moins un.] COMMANDE, 0N [Certains produits ne sont jamais commandés, d'autres le sont plusieurs fois.] PRODUIT: Quantité
CLIENT: 
CLIENT: ,          ,,
COMMANDE: ,               ,
PRODUIT: ,            , 
Unit, 1N Draw, 11 Folk: Peer, Tour, 
PASSER, XX CLIENT, XX COMMANDE
INCLURE, XX COMMANDE, XX PRODUIT: 
ŒUVRE: 612.NAT.34, J'apprends à lire à mes souris blanches, mai 1975
EXEMPLAIRE2: 1, bon état, 12/6/1975
EXEMPLAIRE3: 2, bon état, 1/8/1977
EXEMPLAIRE4: 3, reliure rongée, 3/4/2005
DF, -1N ŒUVRE, -_11 EXEMPLAIRE1
+Prof: Num. prof, Nom prof
Enseignant: num. ens. [numéro identifiant un enseignant], nom ens. [nom enseignant], tél. ens. [téléphone enseignant]
COMMANDE: Num commande, Date, Montant, #Réf. client>CLIENT>Réf. client
COMMANDE: Num commande, Date, Montant, #Réf. client > CLIENT > Réf. client
INCLURE: #Num commande>COMMANDE>Num commande, _#Réf. produit>PRODUIT>Réf. produit, Quantité
INCLURE: #Num commande > COMMANDE > Num commande, _#Réf. produit > PRODUIT > Réf. produit, Quantité
CLIENT: Réf. client [varchar(8)], Nom [varchar(20)], Adresse [varchar(40)]
INCLURE, 1N COMMANDE, 0N PRODUIT: Quantité [tinyint(4)]
PARTICIPANT: numero [], nom, adresse [type3]
L33T, 0N> H4X0R, 0N< H4X0R
L33T123, 0N> H4X0R12, 0N< H4X0R0
   AYANT-DROIT: nom ayant-droit, lien
   DIRIGER, 0N EMPLOYÉ, 01 PROJET
   REQUÉRIR, 1N PROJET, 0N PIÈCE: qté requise
DIRIGER, EMPLOYÉ, PROJET
A, B, C
Foo, Bar
DIRIGER, EMPLOYÉ, PROJET: biz, buz
A, B, C: biz, buz
Foo, Bar: biz, buz
AYANT-DROIT   :   nom ayant-droit   ,   lien   
DIRIGER   ,    0N    EMPLOYÉ   ,    01    PROJET   : fizz,  buzz   
AYANT-DROIT  :  nom ayant-droit  ,  lien  
DIRIGER  ,  0N  EMPLOYÉ  ,  01  PROJET  : fizz, buzz  
AYANT-DROIT	 :	 nom ayant-droit	 ,	 lien	 
DIRIGER	 ,		0N		EMPLOYÉ	 ,		01		PROJET	 : fizz,	buzz	 
() [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET
(I) [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET
(II) ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET
(III) [bla bla.]
(IV) 
(I) [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET: 12.5, 30
(II) ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET: 12.5, 30
(III) [bla bla.]: 12.5, 30
(IV) : 12.5, 30
(I) [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET: FOO, 30
(I) [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET: 12.5, BAR
(I) [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET: FOO, BAR
(IV) : 12.5, 30
(A) --Lorem, .....Ipsum, -Dolor: 30, 10
(B) ->Dolor, <-->Sit, -->Amet: 69, 10
(XX) ->foo, -->foo, -> foo, --> foo
(I) ->Stocker, ..Dépôt, ..Article, --Composer, --Louer
/XT\ Personne ==> Homme, Femme: sexe
/XT1\\ Personne <= Homme, Femme: sexe
/XT\\ Personne => Homme, Femme: sexe
/T\\ Personne <= Homme, Femme: sexe
/T\\ Personne => Homme, Femme: sexe
/X\\ Personne <= Homme, Femme: sexe
/X\\ Personne => Homme, Femme: sexe
/\\ Personne <= Homme, Femme: sexe
/\\ Personne => Homme, Femme: sexe
/1\\ FOO => BAR
/T\\foo==>foo11
Étudiant: num, 1_nom, 1_prénom, adresse, 2_mail
Étudiant: 0_num, 1_nom, 1_prénom, adresse, 2_mail
Position: 0_latitude, 0_longitude, altitude
Foo: bar, 1_baz, 21_qux, 123_quux



% Invalid


: foobar
 : foobar
FOO, 0N Bar, 1N Biz [bla] 
FOO, 0N Bar, 1N Biz [bla]
FOO, 0N Bar, 1N Biz [bla], 0N Buz
 foo /TX\\#  ]  #/ 
BACK\\SLASH:
 foo_11<11_ ]<-->]foo
FOOBAR
  FOOBAR>
  FOOBAR    >
  FOOBAR+
/T\\, foobar
DIRIGER, 0 EMPLOYÉ, 01 PROJET
DIRIGER, 0 EMPLOYÉ, 01 PROJET: biz, buz
DIRIGER, 0NV
/ANYTHING\\ Personne => Homme, Femme: sexe
/X12\\ Personne => Homme, Femme: sexe
/1N\\
(I) : 1, 2, 3
DIRIGER,
DIRIGER,    
(I) : 
(I) ->Foo ..Bar : 
(I) [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET: 12.5, 
(I) [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET: FOOBAR, 
(A) : Ipsum, --Lorem: 30, 90
 +
   +#   
/T\\ \\.. ,\\foo
+..==>
 /TX\\ foo -> .bar
PARTICIPANT: numero [, nom, adresse
(])
(+)
(/)
(IIII)
(    )
(    )
(A) --Lorem, >Ipsum: 30, 90
(A) --Lorem, : Ipsum: 30, 90
(A) --Lorem 30, 90
(A) >Ipsum, --Lorem: 30, 90
/TX\\ foo bar 
COMMANDE: Num commande, Date, Montant, #Réf. client->CLIENT->Réf. client
INCLURE: #Num commande->COMMANDE->Num commande, _#Réf. produit->PRODUIT->Réf. produit, Quantité
(A) ->Ipsum ->Lorem: 30, 90
FOOBAR: foo, /bar
FOO, 1N Bar: -->Amet
FOOBAR: foo>bar, biz
FOO: #bar, biz
FOO: #bar
FOO: biz, #bar
FOO: #bar>buzz, biz
FOO: #bar>buzz
FOO: biz, #bar>buzz
FOO: #bar>buzz>, biz
FOO: #bar>buzz>
FOO: biz, #bar>buzz>  
DIRIGER, 0N EMPLOYÉ > PRODUIT, Quantité
(I) [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET: 12.5
(A) ->Ipsum, ->Lorem: 30, 9N
(I) [bla bla.] ..PIÈCE, ->REQUÉRIR, --FOURNIR, PROJET: 3,14 3,14