This parser reads ER diagrams definition files, and produces two types of diagrams + SQL code.
 [Graphviz](https://www.graphviz.org/) is used on server side to translate parsed graph descriptions into SVG objects.
 
-**TODO** list:
-
- - functional integrity constraints (CIF),
- - inter-relations constraints (or, and, xor...),
- - inheritance with the right symbol (triangle).
-
-*Note:* temporary dependency to [underscore](http://underscorejs.org/); good library but used so far only for its shuffle() method.
-
 -----
 
 An entity is defined as follow
 Note that the "drawMcd" method can take a second argument, which indicates the type of graph.
  * "bubble" draws the standard graph, as seen [here](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#/media/File:ER_Diagram_MMORPG.png) for example
  * "compact" (default) use the same box for an entity and its attributes
+
+-----
+
+**TODO** list:
+
+ - functional integrity constraints (CIF)
+ - inter-relations constraints (or, and, xor...)
+ - inheritance with the right symbol (triangle)
+ - put online somewhere (user enter graph description and get SVG + SQL)
+
+*Implementation note:* temporary dependency to [underscore](http://underscorejs.org/); good library but used so far only for its shuffle() method.
 
        // attributes: ArrayOf {name, [isKey], [type], [qualifiers]}
        parseAttributes(lines, start, end)
        {
-               let attributes = [];
+               let attributes = [ ];
                for (let i=start; i<end; i++)
                {
                        let field = { };
                                        a.entities.forEach( e2 => {
                                                if (e2.name == e.name)
                                                        return;
-                                               e2.attributes.forEach( attr => {
+                                               this.entities[e2.name].attributes.forEach( attr => {
                                                        if (attr.isKey)
                                                        {
                                                                this.tables[e.name].push({
                                        });
                                });
                                // Add relationship potential own attributes
-                               a.attributes.forEach( attr => {
+                               (a.attributes || [ ]).forEach( attr => {
                                        newTable.fields.push({
                                                name: attr.name,
                                                isKey: false,