├── test ├── __init__.py ├── zoo │ ├── minimal │ │ ├── _minimal.mcd │ │ ├── ddl │ │ │ ├── minimal_ddl.sql │ │ │ ├── minimal_ddl.d2 │ │ │ └── minimal_ddl.dbml │ │ ├── exported │ │ │ ├── minimal_erd_chen.txt │ │ │ ├── minimal_erd_crow.mmd │ │ │ ├── minimal_uml.puml │ │ │ └── minimal_erd_chen.gv │ │ ├── mld │ │ │ ├── minimal_mld.mcd │ │ │ ├── minimal_dependencies.gv │ │ │ ├── minimal_debug.tsv │ │ │ ├── minimal_mld.md │ │ │ ├── minimal_mld.txt │ │ │ └── minimal_mld.tex │ │ └── rewritten │ │ │ ├── minimal_rw_drown.mcd │ │ │ ├── minimal_rw_drain.mcd │ │ │ ├── minimal_rw_split.mcd │ │ │ ├── minimal_rw_explode_arity=2.mcd │ │ │ ├── minimal_rw_explode_arity=3.mcd │ │ │ ├── minimal_rw_explode_arity=2,weak.mcd │ │ │ ├── minimal_rw_explode_arity=2.5.mcd │ │ │ ├── minimal_rw_explode_arity=3,weak.mcd │ │ │ ├── minimal_rw_create_df_arrows=across.mcd │ │ │ └── minimal_rw_explode_arity=2.5,weak.mcd │ ├── alt │ │ ├── exported │ │ │ ├── alt_0_erd_chen.txt │ │ │ └── alt_0_erd_crow.mmd │ │ ├── rewritten │ │ │ ├── alt_0_rw_drain.mcd │ │ │ ├── alt_0_rw_split.mcd │ │ │ ├── alt_0_rw_explode_arity=2.5.mcd │ │ │ ├── alt_0_rw_explode_arity=2.mcd │ │ │ ├── alt_0_rw_explode_arity=3.mcd │ │ │ ├── alt_0_rw_explode_arity=2,weak.mcd │ │ │ ├── alt_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── alt_0_rw_explode_arity=3,weak.mcd │ │ │ ├── alt_0_rw_create_df_arrows=across.mcd │ │ │ └── alt_0_rw_drown.mcd │ │ ├── mld │ │ │ ├── alt_0_dependencies.gv │ │ │ └── alt_0_mld.mcd │ │ └── _alt_0.mcd │ ├── empty_attrs │ │ ├── ddl │ │ │ ├── empty_attrs_0_ddl.sql │ │ │ ├── empty_attrs_0_ddl.d2 │ │ │ └── empty_attrs_0_ddl.dbml │ │ ├── exported │ │ │ ├── empty_attrs_0_erd_chen.txt │ │ │ ├── empty_attrs_0_erd_crow.mmd │ │ │ └── empty_attrs_0_uml.puml │ │ ├── mld │ │ │ ├── empty_attrs_0_mld.mcd │ │ │ ├── empty_attrs_0_dependencies.gv │ │ │ ├── empty_attrs_0_debug.tsv │ │ │ ├── empty_attrs_0_mld.md │ │ │ └── empty_attrs_0_mld.txt │ │ ├── _empty_attrs_0.mcd │ │ └── rewritten │ │ │ ├── empty_attrs_0_rw_drain.mcd │ │ │ ├── empty_attrs_0_rw_drown.mcd │ │ │ ├── empty_attrs_0_rw_split.mcd │ │ │ ├── empty_attrs_0_rw_explode_arity=2.mcd │ │ │ ├── empty_attrs_0_rw_explode_arity=3.mcd │ │ │ ├── empty_attrs_0_rw_explode_arity=2,weak.mcd │ │ │ ├── empty_attrs_0_rw_explode_arity=2.5.mcd │ │ │ ├── empty_attrs_0_rw_explode_arity=3,weak.mcd │ │ │ ├── empty_attrs_0_rw_create_df_arrows=across.mcd │ │ │ └── empty_attrs_0_rw_explode_arity=2.5,weak.mcd │ ├── drain │ │ ├── rewritten │ │ │ ├── drain_rw_split.mcd │ │ │ ├── drain_rw_explode_arity=2.mcd │ │ │ ├── drain_rw_explode_arity=3.mcd │ │ │ ├── drain_rw_explode_arity=2,weak.mcd │ │ │ ├── drain_rw_explode_arity=2.5.mcd │ │ │ ├── drain_rw_explode_arity=3,weak.mcd │ │ │ ├── drain_rw_explode_arity=2.5,weak.mcd │ │ │ ├── drain_rw_drown.mcd │ │ │ ├── drain_rw_drain.mcd │ │ │ └── drain_rw_create_df_arrows=across.mcd │ │ ├── mld │ │ │ ├── drain_dependencies.gv │ │ │ └── drain_mld.mcd │ │ ├── exported │ │ │ ├── drain_erd_chen.txt │ │ │ └── drain_erd_crow.mmd │ │ └── _drain.mcd │ ├── split │ │ ├── rewritten │ │ │ ├── split_rw_drain.mcd │ │ │ ├── split_rw_explode_arity=2.mcd │ │ │ ├── split_rw_explode_arity=3.mcd │ │ │ ├── split_rw_explode_arity=2,weak.mcd │ │ │ ├── split_rw_explode_arity=2.5.mcd │ │ │ ├── split_rw_explode_arity=3,weak.mcd │ │ │ ├── split_rw_explode_arity=2.5,weak.mcd │ │ │ ├── split_rw_drown.mcd │ │ │ ├── split_rw_create_df_arrows=across.mcd │ │ │ └── split_rw_split.mcd │ │ ├── mld │ │ │ ├── split_dependencies.gv │ │ │ └── split_mld.mcd │ │ ├── exported │ │ │ ├── split_erd_chen.txt │ │ │ └── split_erd_crow.mmd │ │ └── _split.mcd │ ├── weak │ │ ├── rewritten │ │ │ ├── weak_0_rw_split.mcd │ │ │ ├── weak_1_rw_split.mcd │ │ │ ├── weak_2_rw_drain.mcd │ │ │ ├── weak_2_rw_split.mcd │ │ │ ├── weak_0_rw_explode_arity=2.mcd │ │ │ ├── weak_0_rw_explode_arity=3.mcd │ │ │ ├── weak_1_rw_explode_arity=2.mcd │ │ │ ├── weak_1_rw_explode_arity=3.mcd │ │ │ ├── weak_2_rw_explode_arity=2.mcd │ │ │ ├── weak_2_rw_explode_arity=3.mcd │ │ │ ├── weak_0_rw_explode_arity=2,weak.mcd │ │ │ ├── weak_0_rw_explode_arity=2.5.mcd │ │ │ ├── weak_0_rw_explode_arity=3,weak.mcd │ │ │ ├── weak_1_rw_explode_arity=2,weak.mcd │ │ │ ├── weak_1_rw_explode_arity=2.5.mcd │ │ │ ├── weak_1_rw_explode_arity=3,weak.mcd │ │ │ ├── weak_2_rw_explode_arity=2,weak.mcd │ │ │ ├── weak_2_rw_explode_arity=2.5.mcd │ │ │ ├── weak_2_rw_explode_arity=3,weak.mcd │ │ │ ├── weak_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── weak_1_rw_explode_arity=2.5,weak.mcd │ │ │ ├── weak_2_rw_explode_arity=2.5,weak.mcd │ │ │ ├── weak_0_rw_drain.mcd │ │ │ ├── weak_0_rw_drown.mcd │ │ │ ├── weak_0_rw_create_df_arrows=across.mcd │ │ │ ├── weak_1_rw_drain.mcd │ │ │ ├── weak_1_rw_drown.mcd │ │ │ ├── weak_1_rw_create_df_arrows=across.mcd │ │ │ ├── weak_2_rw_drown.mcd │ │ │ └── weak_2_rw_create_df_arrows=across.mcd │ │ ├── mld │ │ │ ├── weak_0_dependencies.gv │ │ │ ├── weak_0_mld.mcd │ │ │ ├── weak_1_dependencies.gv │ │ │ ├── weak_2_dependencies.gv │ │ │ ├── weak_1_mld.mcd │ │ │ ├── weak_0_debug.tsv │ │ │ ├── weak_2_mld.mcd │ │ │ └── weak_1_debug.tsv │ │ ├── exported │ │ │ ├── weak_0_erd_chen.txt │ │ │ ├── weak_1_erd_chen.txt │ │ │ ├── weak_0_erd_crow.mmd │ │ │ ├── weak_2_erd_chen.txt │ │ │ ├── weak_1_erd_crow.mmd │ │ │ ├── weak_0_uml.puml │ │ │ ├── weak_1_uml.puml │ │ │ └── weak_2_erd_crow.mmd │ │ ├── _weak_0.mcd │ │ ├── _weak_1.mcd │ │ ├── ddl │ │ │ ├── weak_0_ddl.d2 │ │ │ ├── weak_0_ddl.sql │ │ │ ├── weak_0_ddl.dbml │ │ │ ├── weak_1_ddl.d2 │ │ │ ├── weak_1_ddl.dbml │ │ │ └── weak_1_ddl.sql │ │ └── _weak_2.mcd │ ├── basic │ │ ├── rewritten │ │ │ ├── basic_0_rw_drain.mcd │ │ │ ├── basic_0_rw_split.mcd │ │ │ ├── basic_1_rw_split.mcd │ │ │ ├── basic_2_rw_drain.mcd │ │ │ ├── basic_2_rw_split.mcd │ │ │ ├── basic_0_rw_explode_arity=3.mcd │ │ │ ├── basic_2_rw_explode_arity=3.mcd │ │ │ ├── basic_0_rw_create_df_arrows=across.mcd │ │ │ ├── basic_0_rw_explode_arity=3,weak.mcd │ │ │ ├── basic_2_rw_explode_arity=3,weak.mcd │ │ │ ├── basic_0_rw_drown.mcd │ │ │ ├── basic_0_rw_explode_arity=2,weak.mcd │ │ │ ├── basic_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── basic_0_rw_explode_arity=2.5.mcd │ │ │ ├── basic_0_rw_explode_arity=2.mcd │ │ │ ├── basic_2_rw_drown.mcd │ │ │ ├── basic_2_rw_create_df_arrows=across.mcd │ │ │ ├── basic_2_rw_explode_arity=2,weak.mcd │ │ │ ├── basic_2_rw_explode_arity=2.5,weak.mcd │ │ │ ├── basic_2_rw_explode_arity=2.5.mcd │ │ │ └── basic_2_rw_explode_arity=2.mcd │ │ ├── exported │ │ │ ├── basic_0_erd_chen.txt │ │ │ ├── basic_1_erd_chen.txt │ │ │ ├── basic_2_erd_chen.txt │ │ │ ├── basic_0_erd_crow.mmd │ │ │ ├── basic_1_erd_crow.mmd │ │ │ └── basic_2_erd_crow.mmd │ │ ├── mld │ │ │ ├── basic_0_dependencies.gv │ │ │ ├── basic_1_dependencies.gv │ │ │ ├── basic_2_dependencies.gv │ │ │ ├── basic_0_mld.mcd │ │ │ ├── basic_2_mld.mcd │ │ │ └── basic_1_mld.mcd │ │ ├── _basic_0.mcd │ │ └── _basic_2.mcd │ ├── complex │ │ ├── rewritten │ │ │ ├── complex_rw_drain.mcd │ │ │ ├── complex_rw_split.mcd │ │ │ └── complex_rw_explode_arity=3.mcd │ │ ├── exported │ │ │ ├── complex_erd_crow.mmd │ │ │ └── complex_erd_chen.txt │ │ └── mld │ │ │ └── complex_dependencies.gv │ ├── gerund │ │ ├── rewritten │ │ │ ├── gerund_0_rw_drain.mcd │ │ │ ├── gerund_0_rw_split.mcd │ │ │ ├── gerund_1_rw_drain.mcd │ │ │ ├── gerund_1_rw_split.mcd │ │ │ ├── gerund_0_rw_explode_arity=2.mcd │ │ │ ├── gerund_0_rw_explode_arity=3.mcd │ │ │ ├── gerund_1_rw_explode_arity=2.mcd │ │ │ ├── gerund_1_rw_explode_arity=3.mcd │ │ │ ├── gerund_0_rw_explode_arity=2,weak.mcd │ │ │ ├── gerund_0_rw_explode_arity=2.5.mcd │ │ │ ├── gerund_0_rw_explode_arity=3,weak.mcd │ │ │ ├── gerund_1_rw_explode_arity=2,weak.mcd │ │ │ ├── gerund_1_rw_explode_arity=2.5.mcd │ │ │ ├── gerund_1_rw_explode_arity=3,weak.mcd │ │ │ ├── gerund_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── gerund_1_rw_explode_arity=2.5,weak.mcd │ │ │ ├── gerund_0_rw_drown.mcd │ │ │ ├── gerund_1_rw_drown.mcd │ │ │ ├── gerund_0_rw_create_df_arrows=across.mcd │ │ │ └── gerund_1_rw_create_df_arrows=across.mcd │ │ ├── mld │ │ │ ├── gerund_0_dependencies.gv │ │ │ ├── gerund_0_mld.mcd │ │ │ ├── gerund_1_dependencies.gv │ │ │ ├── gerund_1_mld.mcd │ │ │ └── gerund_0_debug.tsv │ │ ├── exported │ │ │ ├── gerund_0_erd_chen.txt │ │ │ ├── gerund_1_erd_chen.txt │ │ │ ├── gerund_0_erd_crow.mmd │ │ │ ├── gerund_1_erd_crow.mmd │ │ │ ├── gerund_0_uml.puml │ │ │ └── gerund_1_uml.puml │ │ ├── _gerund_0.mcd │ │ ├── _gerund_1.mcd │ │ └── ddl │ │ │ ├── gerund_0_ddl.d2 │ │ │ ├── gerund_0_ddl.sql │ │ │ ├── gerund_0_ddl.dbml │ │ │ └── gerund_1_ddl.d2 │ ├── landing │ │ ├── rewritten │ │ │ ├── landing_rw_drain.mcd │ │ │ └── landing_rw_split.mcd │ │ ├── mld │ │ │ └── landing_dependencies.gv │ │ └── exported │ │ │ └── landing_erd_chen.txt │ ├── protected │ │ ├── rewritten │ │ │ ├── protected_0_rw_drain.mcd │ │ │ ├── protected_0_rw_split.mcd │ │ │ ├── protected_0_rw_explode_arity=2.mcd │ │ │ ├── protected_0_rw_explode_arity=3.mcd │ │ │ ├── protected_0_rw_explode_arity=2,weak.mcd │ │ │ ├── protected_0_rw_explode_arity=2.5.mcd │ │ │ ├── protected_0_rw_explode_arity=3,weak.mcd │ │ │ ├── protected_0_rw_create_df_arrows=across.mcd │ │ │ ├── protected_0_rw_explode_arity=2.5,weak.mcd │ │ │ └── protected_0_rw_drown.mcd │ │ ├── exported │ │ │ ├── protected_0_erd_chen.txt │ │ │ ├── protected_0_erd_crow.mmd │ │ │ └── protected_0_uml.puml │ │ ├── mld │ │ │ ├── protected_0_dependencies.gv │ │ │ ├── protected_0_mld.mcd │ │ │ └── protected_0_debug.tsv │ │ ├── _protected_0.mcd │ │ └── ddl │ │ │ ├── protected_0_ddl.dbml │ │ │ └── protected_0_ddl.d2 │ ├── reflexive │ │ ├── rewritten │ │ │ ├── reflexive_0_rw_drain.mcd │ │ │ ├── reflexive_0_rw_split.mcd │ │ │ ├── reflexive_0_rw_explode_arity=3.mcd │ │ │ ├── reflexive_0_rw_explode_arity=2.5.mcd │ │ │ ├── reflexive_0_rw_explode_arity=3,weak.mcd │ │ │ ├── reflexive_0_rw_create_df_arrows=across.mcd │ │ │ ├── reflexive_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── reflexive_0_rw_drown.mcd │ │ │ ├── reflexive_0_rw_explode_arity=2,weak.mcd │ │ │ └── reflexive_0_rw_explode_arity=2.mcd │ │ ├── mld │ │ │ ├── reflexive_0_dependencies.gv │ │ │ ├── reflexive_0_mld.mcd │ │ │ └── reflexive_0_debug.tsv │ │ ├── exported │ │ │ ├── reflexive_0_erd_chen.txt │ │ │ ├── reflexive_0_erd_crow.mmd │ │ │ └── reflexive_0_uml.puml │ │ ├── _reflexive_0.mcd │ │ └── ddl │ │ │ ├── reflexive_0_ddl.d2 │ │ │ ├── reflexive_0_ddl.dbml │ │ │ └── reflexive_0_ddl.sql │ ├── cluster_NN1 │ │ ├── rewritten │ │ │ ├── cluster_NN1_0_rw_split.mcd │ │ │ ├── cluster_NN1_0_rw_explode_arity=2.mcd │ │ │ ├── cluster_NN1_0_rw_explode_arity=3.mcd │ │ │ ├── cluster_NN1_0_rw_explode_arity=2,weak.mcd │ │ │ ├── cluster_NN1_0_rw_explode_arity=2.5.mcd │ │ │ ├── cluster_NN1_0_rw_explode_arity=3,weak.mcd │ │ │ ├── cluster_NN1_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── cluster_NN1_0_rw_drown.mcd │ │ │ ├── cluster_NN1_0_rw_drain.mcd │ │ │ └── cluster_NN1_0_rw_create_df_arrows=across.mcd │ │ ├── exported │ │ │ ├── cluster_NN1_0_erd_crow.mmd │ │ │ └── cluster_NN1_0_erd_chen.txt │ │ ├── mld │ │ │ ├── cluster_NN1_0_dependencies.gv │ │ │ └── cluster_NN1_0_mld.mcd │ │ └── _cluster_NN1_0.mcd │ ├── inheritance │ │ ├── rewritten │ │ │ ├── inheritance_0_rw_drain.mcd │ │ │ ├── inheritance_0_rw_split.mcd │ │ │ ├── inheritance_1_rw_drain.mcd │ │ │ ├── inheritance_1_rw_split.mcd │ │ │ ├── inheritance_2_rw_drain.mcd │ │ │ ├── inheritance_2_rw_split.mcd │ │ │ ├── inheritance_3_rw_drain.mcd │ │ │ ├── inheritance_3_rw_split.mcd │ │ │ ├── inheritance_4_rw_drain.mcd │ │ │ ├── inheritance_4_rw_split.mcd │ │ │ ├── inheritance_5_rw_drain.mcd │ │ │ ├── inheritance_5_rw_split.mcd │ │ │ ├── inheritance_0_rw_explode_arity=3.mcd │ │ │ ├── inheritance_1_rw_explode_arity=3.mcd │ │ │ ├── inheritance_2_rw_explode_arity=3.mcd │ │ │ ├── inheritance_3_rw_explode_arity=3.mcd │ │ │ ├── inheritance_4_rw_explode_arity=3.mcd │ │ │ ├── inheritance_5_rw_explode_arity=3.mcd │ │ │ ├── inheritance_0_rw_explode_arity=2.5.mcd │ │ │ ├── inheritance_0_rw_explode_arity=3,weak.mcd │ │ │ ├── inheritance_1_rw_explode_arity=2.5.mcd │ │ │ ├── inheritance_1_rw_explode_arity=3,weak.mcd │ │ │ ├── inheritance_2_rw_explode_arity=2.5.mcd │ │ │ ├── inheritance_2_rw_explode_arity=3,weak.mcd │ │ │ ├── inheritance_3_rw_explode_arity=2.5.mcd │ │ │ ├── inheritance_3_rw_explode_arity=3,weak.mcd │ │ │ ├── inheritance_4_rw_explode_arity=2.5.mcd │ │ │ ├── inheritance_4_rw_explode_arity=3,weak.mcd │ │ │ ├── inheritance_5_rw_explode_arity=2.5.mcd │ │ │ ├── inheritance_5_rw_explode_arity=3,weak.mcd │ │ │ ├── inheritance_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── inheritance_1_rw_explode_arity=2.5,weak.mcd │ │ │ ├── inheritance_2_rw_explode_arity=2.5,weak.mcd │ │ │ ├── inheritance_3_rw_explode_arity=2.5,weak.mcd │ │ │ ├── inheritance_4_rw_explode_arity=2.5,weak.mcd │ │ │ ├── inheritance_5_rw_explode_arity=2.5,weak.mcd │ │ │ ├── inheritance_3_rw_create_df_arrows=across.mcd │ │ │ ├── inheritance_4_rw_create_df_arrows=across.mcd │ │ │ ├── inheritance_5_rw_create_df_arrows=across.mcd │ │ │ ├── inheritance_3_rw_drown.mcd │ │ │ ├── inheritance_3_rw_explode_arity=2,weak.mcd │ │ │ ├── inheritance_4_rw_drown.mcd │ │ │ ├── inheritance_4_rw_explode_arity=2,weak.mcd │ │ │ ├── inheritance_5_rw_drown.mcd │ │ │ ├── inheritance_5_rw_explode_arity=2,weak.mcd │ │ │ ├── inheritance_3_rw_explode_arity=2.mcd │ │ │ ├── inheritance_4_rw_explode_arity=2.mcd │ │ │ └── inheritance_5_rw_explode_arity=2.mcd │ │ ├── mld │ │ │ ├── inheritance_3_dependencies.gv │ │ │ ├── inheritance_5_dependencies.gv │ │ │ ├── inheritance_4_dependencies.gv │ │ │ ├── inheritance_3_mld.mcd │ │ │ ├── inheritance_2_dependencies.gv │ │ │ ├── inheritance_0_dependencies.gv │ │ │ ├── inheritance_1_dependencies.gv │ │ │ ├── inheritance_5_mld.mcd │ │ │ └── inheritance_4_mld.mcd │ │ ├── exported │ │ │ ├── inheritance_3_erd_chen.txt │ │ │ ├── inheritance_4_erd_chen.txt │ │ │ ├── inheritance_5_erd_chen.txt │ │ │ ├── inheritance_0_erd_chen.txt │ │ │ ├── inheritance_1_erd_chen.txt │ │ │ ├── inheritance_2_erd_chen.txt │ │ │ ├── inheritance_3_erd_crow.mmd │ │ │ ├── inheritance_4_erd_crow.mmd │ │ │ └── inheritance_5_erd_crow.mmd │ │ ├── _inheritance_3.mcd │ │ ├── _inheritance_4.mcd │ │ └── _inheritance_5.mcd │ ├── triple_111 │ │ ├── rewritten │ │ │ ├── triple_111_0_rw_drain.mcd │ │ │ ├── triple_111_0_rw_split.mcd │ │ │ ├── triple_111_1_rw_drain.mcd │ │ │ ├── triple_111_1_rw_split.mcd │ │ │ ├── triple_111_0_rw_explode_arity=2.5.mcd │ │ │ ├── triple_111_0_rw_explode_arity=2.mcd │ │ │ ├── triple_111_0_rw_explode_arity=3.mcd │ │ │ ├── triple_111_1_rw_explode_arity=2.5.mcd │ │ │ ├── triple_111_1_rw_explode_arity=2.mcd │ │ │ ├── triple_111_1_rw_explode_arity=3.mcd │ │ │ ├── triple_111_0_rw_create_df_arrows=across.mcd │ │ │ ├── triple_111_0_rw_explode_arity=2,weak.mcd │ │ │ ├── triple_111_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── triple_111_0_rw_explode_arity=3,weak.mcd │ │ │ ├── triple_111_1_rw_create_df_arrows=across.mcd │ │ │ ├── triple_111_1_rw_explode_arity=2,weak.mcd │ │ │ ├── triple_111_1_rw_explode_arity=2.5,weak.mcd │ │ │ ├── triple_111_1_rw_explode_arity=3,weak.mcd │ │ │ ├── triple_111_1_rw_drown.mcd │ │ │ └── triple_111_0_rw_drown.mcd │ │ ├── exported │ │ │ ├── triple_111_0_erd_crow.mmd │ │ │ ├── triple_111_1_erd_crow.mmd │ │ │ ├── triple_111_0_erd_chen.txt │ │ │ ├── triple_111_1_erd_chen.txt │ │ │ ├── triple_111_0_uml.puml │ │ │ └── triple_111_1_uml.puml │ │ ├── mld │ │ │ ├── triple_111_0_dependencies.gv │ │ │ ├── triple_111_0_mld.mcd │ │ │ ├── triple_111_1_dependencies.gv │ │ │ ├── triple_111_1_mld.mcd │ │ │ └── triple_111_0_debug.tsv │ │ ├── _triple_111_1.mcd │ │ ├── _triple_111_0.mcd │ │ └── ddl │ │ │ ├── triple_111_0_ddl.d2 │ │ │ ├── triple_111_0_ddl.sql │ │ │ └── triple_111_0_ddl.dbml │ ├── triple_N11 │ │ ├── rewritten │ │ │ ├── triple_N11_0_rw_drain.mcd │ │ │ ├── triple_N11_0_rw_split.mcd │ │ │ ├── triple_N11_1_rw_drain.mcd │ │ │ ├── triple_N11_1_rw_split.mcd │ │ │ ├── triple_N11_1_rw_create_cifs.mcd │ │ │ ├── triple_N11_0_rw_explode_arity=2.5.mcd │ │ │ ├── triple_N11_0_rw_explode_arity=2.mcd │ │ │ ├── triple_N11_0_rw_explode_arity=3.mcd │ │ │ ├── triple_N11_1_rw_explode_arity=2.5.mcd │ │ │ ├── triple_N11_1_rw_explode_arity=2.mcd │ │ │ ├── triple_N11_1_rw_explode_arity=3.mcd │ │ │ ├── triple_N11_0_rw_create_df_arrows=across.mcd │ │ │ ├── triple_N11_0_rw_explode_arity=2,weak.mcd │ │ │ ├── triple_N11_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── triple_N11_0_rw_explode_arity=3,weak.mcd │ │ │ ├── triple_N11_1_rw_create_df_arrows=across.mcd │ │ │ ├── triple_N11_1_rw_explode_arity=2,weak.mcd │ │ │ ├── triple_N11_1_rw_explode_arity=2.5,weak.mcd │ │ │ ├── triple_N11_1_rw_explode_arity=3,weak.mcd │ │ │ ├── triple_N11_0_rw_drown.mcd │ │ │ ├── triple_N11_1_rw_drown.mcd │ │ │ └── triple_N11_0_rw_create_cifs.mcd │ │ ├── exported │ │ │ ├── triple_N11_0_erd_crow.mmd │ │ │ ├── triple_N11_1_erd_crow.mmd │ │ │ ├── triple_N11_0_erd_chen.txt │ │ │ ├── triple_N11_1_erd_chen.txt │ │ │ ├── triple_N11_0_uml.puml │ │ │ └── triple_N11_1_uml.puml │ │ ├── mld │ │ │ ├── triple_N11_0_dependencies.gv │ │ │ ├── triple_N11_0_mld.mcd │ │ │ ├── triple_N11_1_dependencies.gv │ │ │ ├── triple_N11_1_mld.mcd │ │ │ └── triple_N11_0_debug.tsv │ │ ├── _triple_N11_0.mcd │ │ ├── ddl │ │ │ ├── triple_N11_0_ddl.d2 │ │ │ ├── triple_N11_0_ddl.sql │ │ │ └── triple_N11_0_ddl.dbml │ │ └── _triple_N11_1.mcd │ ├── triple_NN1 │ │ ├── rewritten │ │ │ ├── triple_NN1_0_rw_drain.mcd │ │ │ ├── triple_NN1_0_rw_split.mcd │ │ │ ├── triple_NN1_1_rw_drain.mcd │ │ │ ├── triple_NN1_1_rw_split.mcd │ │ │ ├── triple_NN1_0_rw_explode_arity=2.5.mcd │ │ │ ├── triple_NN1_0_rw_explode_arity=2.mcd │ │ │ ├── triple_NN1_0_rw_explode_arity=3.mcd │ │ │ ├── triple_NN1_1_rw_explode_arity=2.5.mcd │ │ │ ├── triple_NN1_1_rw_explode_arity=2.mcd │ │ │ ├── triple_NN1_1_rw_explode_arity=3.mcd │ │ │ ├── triple_NN1_0_rw_create_df_arrows=across.mcd │ │ │ ├── triple_NN1_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── triple_NN1_1_rw_create_df_arrows=across.mcd │ │ │ ├── triple_NN1_1_rw_explode_arity=2.5,weak.mcd │ │ │ ├── triple_NN1_0_rw_drown.mcd │ │ │ ├── triple_NN1_1_rw_drown.mcd │ │ │ ├── triple_NN1_0_rw_explode_arity=2,weak.mcd │ │ │ ├── triple_NN1_0_rw_explode_arity=3,weak.mcd │ │ │ ├── triple_NN1_1_rw_explode_arity=2,weak.mcd │ │ │ └── triple_NN1_1_rw_explode_arity=3,weak.mcd │ │ ├── exported │ │ │ ├── triple_NN1_0_erd_crow.mmd │ │ │ ├── triple_NN1_1_erd_crow.mmd │ │ │ ├── triple_NN1_0_erd_chen.txt │ │ │ ├── triple_NN1_1_erd_chen.txt │ │ │ └── triple_NN1_0_uml.puml │ │ ├── mld │ │ │ ├── triple_NN1_0_dependencies.gv │ │ │ ├── triple_NN1_0_mld.mcd │ │ │ ├── triple_NN1_1_dependencies.gv │ │ │ ├── triple_NN1_1_mld.mcd │ │ │ └── triple_NN1_0_debug.tsv │ │ ├── _triple_NN1_0.mcd │ │ ├── _triple_NN1_1.mcd │ │ └── ddl │ │ │ ├── triple_NN1_0_ddl.d2 │ │ │ ├── triple_NN1_0_ddl.sql │ │ │ └── triple_NN1_0_ddl.dbml │ ├── triple_NNN │ │ ├── rewritten │ │ │ ├── triple_NNN_0_rw_drain.mcd │ │ │ ├── triple_NNN_0_rw_split.mcd │ │ │ ├── triple_NNN_1_rw_drain.mcd │ │ │ ├── triple_NNN_1_rw_split.mcd │ │ │ ├── triple_NNN_0_rw_explode_arity=2.5.mcd │ │ │ ├── triple_NNN_1_rw_explode_arity=2.5.mcd │ │ │ ├── triple_NNN_0_rw_create_df_arrows=across.mcd │ │ │ ├── triple_NNN_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── triple_NNN_1_rw_create_df_arrows=across.mcd │ │ │ ├── triple_NNN_1_rw_explode_arity=2.5,weak.mcd │ │ │ ├── triple_NNN_0_rw_drown.mcd │ │ │ ├── triple_NNN_1_rw_drown.mcd │ │ │ ├── triple_NNN_0_rw_explode_arity=2,weak.mcd │ │ │ ├── triple_NNN_0_rw_explode_arity=3,weak.mcd │ │ │ ├── triple_NNN_0_rw_explode_arity=2.mcd │ │ │ ├── triple_NNN_0_rw_explode_arity=3.mcd │ │ │ ├── triple_NNN_1_rw_explode_arity=2,weak.mcd │ │ │ ├── triple_NNN_1_rw_explode_arity=3,weak.mcd │ │ │ ├── triple_NNN_1_rw_explode_arity=2.mcd │ │ │ └── triple_NNN_1_rw_explode_arity=3.mcd │ │ ├── exported │ │ │ ├── triple_NNN_0_erd_crow.mmd │ │ │ ├── triple_NNN_1_erd_crow.mmd │ │ │ ├── triple_NNN_0_erd_chen.txt │ │ │ ├── triple_NNN_1_erd_chen.txt │ │ │ └── triple_NNN_0_uml.puml │ │ ├── mld │ │ │ ├── triple_NNN_0_dependencies.gv │ │ │ ├── triple_NNN_0_mld.mcd │ │ │ ├── triple_NNN_1_dependencies.gv │ │ │ ├── triple_NNN_1_mld.mcd │ │ │ └── triple_NNN_0_debug.tsv │ │ ├── _triple_NNN_0.mcd │ │ ├── _triple_NNN_1.mcd │ │ └── ddl │ │ │ ├── triple_NNN_0_ddl.d2 │ │ │ ├── triple_NNN_0_ddl.sql │ │ │ └── triple_NNN_0_ddl.dbml │ ├── inheritance_weak │ │ ├── rewritten │ │ │ ├── strong_child_0_rw_drain.mcd │ │ │ ├── strong_child_0_rw_split.mcd │ │ │ ├── strong_child_1_rw_drain.mcd │ │ │ ├── strong_child_1_rw_split.mcd │ │ │ ├── strong_child_2_rw_drain.mcd │ │ │ ├── strong_child_2_rw_split.mcd │ │ │ ├── strong_child_0_rw_explode_arity=2.mcd │ │ │ ├── strong_child_0_rw_explode_arity=3.mcd │ │ │ ├── strong_child_1_rw_explode_arity=2.mcd │ │ │ ├── strong_child_1_rw_explode_arity=3.mcd │ │ │ ├── strong_child_2_rw_explode_arity=2.mcd │ │ │ ├── strong_child_2_rw_explode_arity=3.mcd │ │ │ ├── strong_child_0_rw_explode_arity=2,weak.mcd │ │ │ ├── strong_child_0_rw_explode_arity=2.5.mcd │ │ │ ├── strong_child_0_rw_explode_arity=3,weak.mcd │ │ │ ├── strong_child_1_rw_explode_arity=2,weak.mcd │ │ │ ├── strong_child_1_rw_explode_arity=2.5.mcd │ │ │ ├── strong_child_1_rw_explode_arity=3,weak.mcd │ │ │ ├── strong_child_2_rw_explode_arity=2,weak.mcd │ │ │ ├── strong_child_2_rw_explode_arity=2.5.mcd │ │ │ ├── strong_child_2_rw_explode_arity=3,weak.mcd │ │ │ ├── strong_child_0_rw_explode_arity=2.5,weak.mcd │ │ │ ├── strong_child_1_rw_explode_arity=2.5,weak.mcd │ │ │ ├── strong_child_2_rw_explode_arity=2.5,weak.mcd │ │ │ ├── strong_child_2_rw_drown.mcd │ │ │ ├── strong_child_0_rw_drown.mcd │ │ │ ├── strong_child_1_rw_drown.mcd │ │ │ ├── strong_child_2_rw_create_df_arrows=across.mcd │ │ │ ├── strong_child_0_rw_create_df_arrows=across.mcd │ │ │ └── strong_child_1_rw_create_df_arrows=across.mcd │ │ ├── exported │ │ │ ├── strong_child_0_erd_chen.txt │ │ │ ├── strong_child_1_erd_chen.txt │ │ │ ├── strong_child_2_erd_chen.txt │ │ │ ├── strong_child_0_erd_crow.mmd │ │ │ ├── strong_child_1_erd_crow.mmd │ │ │ └── strong_child_2_erd_crow.mmd │ │ ├── mld │ │ │ ├── strong_child_1_dependencies.gv │ │ │ ├── strong_child_2_dependencies.gv │ │ │ ├── strong_child_0_dependencies.gv │ │ │ ├── strong_child_1_mld.mcd │ │ │ ├── strong_child_2_mld.mcd │ │ │ └── strong_child_0_mld.mcd │ │ ├── _strong_child_2.mcd │ │ ├── _strong_child_0.mcd │ │ └── _strong_child_1.mcd │ └── ternary_unicity │ │ ├── rewritten │ │ ├── ternary_unicity_0_rw_drain.mcd │ │ ├── ternary_unicity_0_rw_split.mcd │ │ ├── ternary_unicity_0_rw_explode_arity=2.5.mcd │ │ ├── ternary_unicity_0_rw_explode_arity=2.mcd │ │ ├── ternary_unicity_0_rw_explode_arity=3.mcd │ │ ├── ternary_unicity_0_rw_explode_arity=2,weak.mcd │ │ ├── ternary_unicity_0_rw_explode_arity=2.5,weak.mcd │ │ ├── ternary_unicity_0_rw_explode_arity=3,weak.mcd │ │ ├── ternary_unicity_0_rw_drown.mcd │ │ └── ternary_unicity_0_rw_create_df_arrows=across.mcd │ │ ├── mld │ │ ├── ternary_unicity_0_dependencies.gv │ │ └── ternary_unicity_0_mld.mcd │ │ ├── exported │ │ ├── ternary_unicity_0_erd_chen.txt │ │ └── ternary_unicity_0_erd_crow.mmd │ │ └── _ternary_unicity_0.mcd ├── launch_tests.sh └── test_data │ ├── templates │ ├── bad_not_an_object.yaml │ ├── bad_circular_1.yaml │ ├── bad_circular_2.yaml │ ├── bad_object_value.yaml │ ├── bad_no_order.yaml │ ├── bad_non_increasing_order.yaml │ ├── bad_non_numeric_order.yaml │ ├── bad_array_element.yaml │ ├── root.yaml │ ├── child.yaml │ ├── grandchild.yaml │ ├── expected_child.yaml │ └── expected_grandchild.yaml │ └── small_pool.txt ├── mocodo ├── convert │ ├── __init__.py │ └── _share.py ├── rewrite │ └── __init__.py ├── tools │ ├── __init__.py │ └── various.py ├── resources │ ├── relation_templates │ │ ├── ddl.yaml │ │ ├── txt.yaml │ │ ├── md.yaml │ │ ├── mld.yaml │ │ ├── ms_sql.yaml │ │ ├── tex-b.yaml │ │ ├── tex-c.yaml │ │ ├── tex-e.yaml │ │ ├── tex.yaml │ │ ├── txt-b.yaml │ │ ├── txt-c.yaml │ │ ├── txt-e.yaml │ │ ├── md-b.yaml │ │ ├── md-bc.yaml │ │ ├── md-be.yaml │ │ ├── md-c.yaml │ │ ├── md-ce.yaml │ │ ├── md-e.yaml │ │ ├── mld-b.yaml │ │ ├── mld-bc.yaml │ │ ├── mld-be.yaml │ │ ├── mld-c.yaml │ │ ├── mld-ce.yaml │ │ ├── mld-e.yaml │ │ ├── ms_sql-b.yaml │ │ ├── oracle_db.yaml │ │ ├── sql_server.yaml │ │ ├── sqlserver.yaml │ │ ├── tex-bc.yaml │ │ ├── tex-bce.yaml │ │ ├── tex-be.yaml │ │ ├── tex-ce.yaml │ │ ├── text-bc.yaml │ │ ├── text-bce.yaml │ │ ├── txt-bc.yaml │ │ ├── txt-bce.yaml │ │ ├── txt-be.yaml │ │ ├── txt-ce.yaml │ │ ├── markdown-bc.yaml │ │ ├── md-bce.yaml │ │ ├── mld-bce.yaml │ │ ├── oracle_db-b.yaml │ │ ├── postgres-b.yaml │ │ ├── postgres.yaml │ │ ├── sql_server-b.yaml │ │ ├── sqlserver-b.yaml │ │ ├── markdown-bce.yaml │ │ ├── html-b.yaml │ │ ├── html-be.yaml │ │ ├── html-e.yaml │ │ ├── latex-b.yaml │ │ ├── latex-e.yaml │ │ ├── text-b.yaml │ │ ├── text-be.yaml │ │ ├── text-e.yaml │ │ ├── latex-be.yaml │ │ ├── markdown-b.yaml │ │ ├── markdown-be.yaml │ │ ├── markdown-e.yaml │ │ ├── dbml-b.yaml │ │ ├── sqlite-b.yaml │ │ ├── diagram.yaml │ │ └── mysql-b.yaml │ ├── i18n │ │ ├── messages_de.mo │ │ ├── messages_fr.mo │ │ └── messages_zh.mo │ └── prompts │ │ └── chat │ │ └── types_examples │ │ └── 1_input.mcd └── __init__.py ├── logos ├── icon.pdf ├── icon.png ├── banner.pdf ├── banner.png ├── no_text.pdf ├── no_text.png ├── minimal_text.pdf ├── minimal_text.png ├── made_with_mocodo.pdf └── made_with_mocodo.png ├── doc ├── readme_1.png ├── readme_2.png ├── build_doc.sh ├── readme │ ├── ccp_mcd.png │ └── ccp.mcd ├── examples │ ├── lib_demo.png │ ├── svg2roughjs.png │ ├── option_syntax_2.png │ ├── sql_template_1.png │ ├── sql_template_2.png │ ├── ullman_cthrsg_mcd_sans_cif_80.png │ ├── option_syntax_1.abnf │ └── option_syntax_2.abnf └── syntax_screenshot.png ├── web ├── png │ ├── empty.png │ ├── flip.png │ ├── info.png │ ├── joker.png │ ├── typo.png │ ├── arrange.png │ ├── create.png │ ├── download.png │ ├── explode.png │ ├── refresh.png │ ├── basthon_play.png │ └── refresh_rotating.png ├── favicons │ ├── favicon.ico │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── mstile-150x150.png │ ├── apple-touch-icon.png │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ ├── browserconfig.xml │ └── manifest.json ├── ace-builds │ └── mode-text.js └── purge.php └── laowantong.vscode-mocodo ├── .vscodeignore ├── images ├── readme_0.png ├── readme_1.png └── android-chrome-512x512.png └── language-configuration.json /test/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mocodo/convert/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mocodo/rewrite/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mocodo/tools/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/zoo/minimal/_minimal.mcd: -------------------------------------------------------------------------------- 1 | A: 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/ddl/minimal_ddl.sql: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/launch_tests.sh: -------------------------------------------------------------------------------- 1 | python -m unittest 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/ddl/minimal_ddl.d2: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/ddl/minimal_ddl.dbml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/zoo/alt/exported/alt_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/ddl/empty_attrs_0_ddl.sql: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/test_data/templates/bad_not_an_object.yaml: -------------------------------------------------------------------------------- 1 | - 42 -------------------------------------------------------------------------------- /test/zoo/empty_attrs/ddl/empty_attrs_0_ddl.d2: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/ddl/empty_attrs_0_ddl.dbml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/exported/minimal_erd_chen.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/mld/minimal_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/ddl.yaml: -------------------------------------------------------------------------------- 1 | parent: 'sql' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/txt.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text' 2 | -------------------------------------------------------------------------------- /test/test_data/small_pool.txt: -------------------------------------------------------------------------------- 1 | Foo 2 | Bar 3 | Biz 4 | Buz 5 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/exported/empty_attrs_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/md.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/mld.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/ms_sql.yaml: -------------------------------------------------------------------------------- 1 | parent: 'mssql' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/tex-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-b' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/tex-c.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-c' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/tex-e.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-e' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/tex.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/txt-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-b' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/txt-c.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-c' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/txt-e.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-e' 2 | -------------------------------------------------------------------------------- /test/test_data/templates/bad_circular_1.yaml: -------------------------------------------------------------------------------- 1 | parent: 'bad_circular_2' -------------------------------------------------------------------------------- /test/test_data/templates/bad_circular_2.yaml: -------------------------------------------------------------------------------- 1 | parent: 'bad_circular_1' -------------------------------------------------------------------------------- /test/zoo/empty_attrs/mld/empty_attrs_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/md-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-b' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/md-bc.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-bc' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/md-be.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-be' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/md-c.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-c' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/md-ce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-ce' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/md-e.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-e' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/mld-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-b' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/mld-bc.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-bc' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/mld-be.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-be' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/mld-c.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-c' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/mld-ce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-ce' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/mld-e.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-e' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/ms_sql-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'mssql-b' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/oracle_db.yaml: -------------------------------------------------------------------------------- 1 | parent: 'oracle' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/sql_server.yaml: -------------------------------------------------------------------------------- 1 | parent: 'mssql' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/sqlserver.yaml: -------------------------------------------------------------------------------- 1 | parent: 'mssql' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/tex-bc.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-bc' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/tex-bce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-bce' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/tex-be.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-be' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/tex-ce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-ce' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/text-bc.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-c' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/text-bce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-ce' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/txt-bc.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-bc' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/txt-bce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-bce' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/txt-be.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-be' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/txt-ce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-ce' 2 | -------------------------------------------------------------------------------- /test/test_data/templates/bad_object_value.yaml: -------------------------------------------------------------------------------- 1 | foo: 2 | 'bar': null 3 | -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/_empty_attrs_0.mcd: -------------------------------------------------------------------------------- 1 | CLIENT: Réf. client, , , 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/exported/minimal_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | A { 3 | } -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/markdown-bc.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-c' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/md-bce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-bce' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/mld-bce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-bce' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/oracle_db-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'oracle-b' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/postgres-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'postgresql-b' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/postgres.yaml: -------------------------------------------------------------------------------- 1 | parent: 'postgresql' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/sql_server-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'mssql-b' 2 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/sqlserver-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'mssql-b' 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_1_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/complex/rewritten/complex_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/complex/rewritten/complex_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/landing/rewritten/landing_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/landing/rewritten/landing_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /logos/icon.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/icon.pdf -------------------------------------------------------------------------------- /logos/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/icon.png -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/markdown-bce.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-ce' 2 | -------------------------------------------------------------------------------- /test/zoo/alt/mld/alt_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | } 4 | -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/mld/weak_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | } 4 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /doc/readme_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/readme_1.png -------------------------------------------------------------------------------- /doc/readme_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/readme_2.png -------------------------------------------------------------------------------- /logos/banner.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/banner.pdf -------------------------------------------------------------------------------- /logos/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/banner.png -------------------------------------------------------------------------------- /logos/no_text.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/no_text.pdf -------------------------------------------------------------------------------- /logos/no_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/no_text.png -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/complex/exported/complex_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/complex/rewritten/complex_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, , , 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/mld/gerund_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | } 4 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_1_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_1_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_2_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_2_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/mld/minimal_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | } 4 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /web/png/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/empty.png -------------------------------------------------------------------------------- /web/png/flip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/flip.png -------------------------------------------------------------------------------- /web/png/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/info.png -------------------------------------------------------------------------------- /web/png/joker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/joker.png -------------------------------------------------------------------------------- /web/png/typo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/typo.png -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/exported/triple_111_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/triple_111/exported/triple_111_1_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/triple_N11/exported/triple_N11_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/triple_N11/exported/triple_N11_1_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_create_cifs.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/exported/triple_NN1_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/triple_NN1/exported/triple_NN1_1_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/triple_NNN/exported/triple_NNN_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/triple_NNN/exported/triple_NNN_1_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /web/png/arrange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/arrange.png -------------------------------------------------------------------------------- /web/png/create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/create.png -------------------------------------------------------------------------------- /web/png/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/download.png -------------------------------------------------------------------------------- /web/png/explode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/explode.png -------------------------------------------------------------------------------- /web/png/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/refresh.png -------------------------------------------------------------------------------- /doc/build_doc.sh: -------------------------------------------------------------------------------- 1 | # Export directly from the notebook File > Save and export notebook as > HTML 2 | -------------------------------------------------------------------------------- /doc/readme/ccp_mcd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/readme/ccp_mcd.png -------------------------------------------------------------------------------- /logos/minimal_text.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/minimal_text.pdf -------------------------------------------------------------------------------- /logos/minimal_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/minimal_text.png -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/exported/cluster_NN1_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | Not implemented for n-ary associations. -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/mld/empty_attrs_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | } 4 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_1_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_2_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/minimal/rewritten/minimal_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_split.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/mld/triple_111_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | } 4 | -------------------------------------------------------------------------------- /test/zoo/triple_111/mld/triple_111_0_mld.mcd: -------------------------------------------------------------------------------- 1 | : 2 | Utiliser: carnet, _projet, technicien 3 | : 4 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/mld/triple_N11_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | } 4 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/mld/triple_NN1_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | } 4 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/mld/triple_NNN_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | } 4 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /doc/examples/lib_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/examples/lib_demo.png -------------------------------------------------------------------------------- /doc/syntax_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/syntax_screenshot.png -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_1_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_1_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_2_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_2_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/weak/exported/weak_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [[Exemplaire]] ==N== <> 2 | [Œuvre] --1-- <> 3 | -------------------------------------------------------------------------------- /test/zoo/weak/exported/weak_1_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [[Exemplaire]] ==N== <> 2 | [Œuvre] --1-- <> 3 | -------------------------------------------------------------------------------- /test/zoo/weak/mld/weak_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Exemplaire: œuvre, _exemplaire, foobar 4 | : 5 | -------------------------------------------------------------------------------- /web/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/favicons/favicon.ico -------------------------------------------------------------------------------- /web/png/basthon_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/basthon_play.png -------------------------------------------------------------------------------- /logos/made_with_mocodo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/made_with_mocodo.pdf -------------------------------------------------------------------------------- /logos/made_with_mocodo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/logos/made_with_mocodo.png -------------------------------------------------------------------------------- /test/test_data/templates/bad_no_order.yaml: -------------------------------------------------------------------------------- 1 | foo: 2 | - order: 100 3 | bar: null 4 | - bizz: null 5 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/rewritten/empty_attrs_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_1_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_2_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/mld/triple_N11_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Affecter: projet, _employé, site 4 | : 5 | -------------------------------------------------------------------------------- /doc/examples/svg2roughjs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/examples/svg2roughjs.png -------------------------------------------------------------------------------- /test/zoo/gerund/mld/gerund_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Ligne de commande: commande, _produit, quantité 4 | : 5 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | % same as the source file 2 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/mld/triple_NN1_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Gérer: ingénieur, _projet, responsable 4 | : 5 | -------------------------------------------------------------------------------- /test/zoo/weak/_weak_0.mcd: -------------------------------------------------------------------------------- 1 | Œuvre: œuvre 2 | DF, 0N Œuvre, _11 Exemplaire: foobar 3 | Exemplaire: exemplaire 4 | -------------------------------------------------------------------------------- /test/zoo/weak/mld/weak_1_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Œuvre" -> "Exemplaire" 4 | } 5 | -------------------------------------------------------------------------------- /web/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /web/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /web/png/refresh_rotating.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/png/refresh_rotating.png -------------------------------------------------------------------------------- /doc/examples/option_syntax_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/examples/option_syntax_2.png -------------------------------------------------------------------------------- /doc/examples/sql_template_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/examples/sql_template_1.png -------------------------------------------------------------------------------- /doc/examples/sql_template_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/examples/sql_template_2.png -------------------------------------------------------------------------------- /test/zoo/reflexive/mld/reflexive_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "HOMME" -> "HOMME" 4 | } 5 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/mld/triple_NNN_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Appliquer: employé, _projet, _compétence 4 | : 5 | -------------------------------------------------------------------------------- /web/favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/exported/strong_child_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [VACATAIRE] ==1== <> 2 | [[CONTRAT]] ==N== <> 3 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/exported/strong_child_1_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [VACATAIRE] ==1== <> 2 | [[CONTRAT]] ==N== <> 3 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/exported/strong_child_2_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [VACATAIRE] ==1== <> 2 | [[CONTRAT]] ==N== <> 3 | -------------------------------------------------------------------------------- /web/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /mocodo/resources/i18n/messages_de.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/mocodo/resources/i18n/messages_de.mo -------------------------------------------------------------------------------- /mocodo/resources/i18n/messages_fr.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/mocodo/resources/i18n/messages_fr.mo -------------------------------------------------------------------------------- /mocodo/resources/i18n/messages_zh.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/mocodo/resources/i18n/messages_zh.mo -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | Œuvre: œuvre 2 | DF, 0N Œuvre, _11 Exemplaire 3 | Exemplaire: exemplaire, foobar 4 | -------------------------------------------------------------------------------- /laowantong.vscode-mocodo/.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | .gitignore 4 | vsc-extension-quickstart.md 5 | *.vsix 6 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/html-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'html-bc' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/html-be.yaml: -------------------------------------------------------------------------------- 1 | parent: 'html-bce' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/html-e.yaml: -------------------------------------------------------------------------------- 1 | parent: 'html-ce' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/latex-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-bc' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/latex-e.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-ce' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/text-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-c' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/text-be.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-bce' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/text-e.yaml: -------------------------------------------------------------------------------- 1 | parent: 'text-ce' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /test/zoo/protected/exported/protected_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Agence] --N-- 2 | [Direction régionale] ==1== 3 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1 2 | DF, 0N ENTITÉ 1_, _11 ENTITÉ 2_: at 3 1 3 | ENTITÉ 2_: at 2 1 4 | -------------------------------------------------------------------------------- /web/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /web/favicons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/web/favicons/android-chrome-512x512.png -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/latex-be.yaml: -------------------------------------------------------------------------------- 1 | parent: 'latex-bce' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /test/test_data/templates/bad_non_increasing_order.yaml: -------------------------------------------------------------------------------- 1 | foo: 2 | - order: 100 3 | bar: null 4 | - order: 50 5 | bizz: null 6 | -------------------------------------------------------------------------------- /test/test_data/templates/bad_non_numeric_order.yaml: -------------------------------------------------------------------------------- 1 | foo: 2 | - order: 100 3 | bar: null 4 | - order: 'bad' 5 | bizz: null 6 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/mld/strong_child_1_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "PROFESSEUR" -> "CONTRAT" 4 | } 5 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/mld/strong_child_2_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "VACATAIRE" -> "CONTRAT" 4 | } 5 | -------------------------------------------------------------------------------- /laowantong.vscode-mocodo/images/readme_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/laowantong.vscode-mocodo/images/readme_0.png -------------------------------------------------------------------------------- /laowantong.vscode-mocodo/images/readme_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/laowantong.vscode-mocodo/images/readme_1.png -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/markdown-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-bc' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/markdown-be.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-bce' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/markdown-e.yaml: -------------------------------------------------------------------------------- 1 | parent: 'markdown-ce' 2 | add_unicity_constraints: 3 | add_optionality_constraints: 4 | -------------------------------------------------------------------------------- /test/zoo/drain/mld/drain_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Stage" -> "Étudiant" 4 | "Entreprise" -> "Stage" 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/exported/triple_N11_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Employé] --N-- 2 | [Projet] ==1== 3 | [Site] ==1== 4 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/exported/triple_N11_1_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Employé] --N-- 2 | [Projet] ==1== 3 | [Site] ==1== 4 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/exported/triple_NN1_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Ingénieur] ==N== 2 | [Projet] ==N== 3 | [Responsable] ==1== 4 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/exported/triple_NN1_1_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Ingénieur] ==N== 2 | [Projet] ==N== 3 | [Responsable] ==1== 4 | -------------------------------------------------------------------------------- /test/zoo/weak/_weak_1.mcd: -------------------------------------------------------------------------------- 1 | Œuvre: œuvre, auteur 2 | DF, 0N Œuvre, _11 Exemplaire: foobar 3 | Exemplaire: exemplaire, nb pages, date achat 4 | -------------------------------------------------------------------------------- /doc/examples/ullman_cthrsg_mcd_sans_cif_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/doc/examples/ullman_cthrsg_mcd_sans_cif_80.png -------------------------------------------------------------------------------- /test/test_data/templates/bad_array_element.yaml: -------------------------------------------------------------------------------- 1 | foo: 2 | - order: 100 3 | bar: null 4 | - order: 200 5 | bizz: null 6 | - buzz 7 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/exported/cluster_NN1_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Réservation] ==1== 2 | [Semaine] --N-- 3 | [Voilier] --N-- 4 | -------------------------------------------------------------------------------- /test/zoo/split/mld/split_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Bataille" -> "Trophée" 4 | "Villageois" -> "Trophée" 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_111/exported/triple_111_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Carnet] ==1== 2 | [Projet] ==1== 3 | [Technicien] ==1== 4 | -------------------------------------------------------------------------------- /test/zoo/triple_111/exported/triple_111_1_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Carnet] ==1== 2 | [Projet] ==1== 3 | [Technicien] ==1== 4 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/_triple_N11_0.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet 2 | Affecter, /1N Site, /1N Projet, 0N Employé 3 | Site: site 4 | 5 | Employé: employé 6 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | Œuvre: œuvre 2 | DF, 0N> Œuvre, _11 Exemplaire: foobar 3 | Exemplaire: exemplaire 4 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/exported/triple_NNN_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Compétence] ==N== 2 | [Employé] --N-- 3 | [Projet] ==N== 4 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/exported/triple_NNN_1_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Compétence] ==N== 2 | [Employé] --N-- 3 | [Projet] ==N== 4 | -------------------------------------------------------------------------------- /test/zoo/basic/exported/basic_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [CLIENT] --1-- 2 | [COMMANDE] ==N== 3 | [COMMANDE] ==N== 4 | [PRODUIT] --M-- 5 | -------------------------------------------------------------------------------- /test/zoo/basic/exported/basic_1_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [CLIENT] --1-- 2 | [COMMANDE] ==N== 3 | [COMMANDE] ==N== 4 | [PRODUIT] --M-- 5 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/exported/empty_attrs_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | CLIENT { 3 | TYPE Ref_client PK 4 | TYPE 5 | TYPE 6 | TYPE 7 | } -------------------------------------------------------------------------------- /test/zoo/inheritance/mld/inheritance_3_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "TRISTIS" -> "TRISTIS" 4 | "TRISTIS" -> "ULTRICES" 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_111/mld/triple_111_1_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Technicien" -> "Utiliser" 4 | "Projet" -> "Utiliser" 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | Œuvre: œuvre, auteur 2 | DF, 0N Œuvre, _11 Exemplaire 3 | Exemplaire: exemplaire, nb pages, date achat, foobar 4 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2 2 | DF, 0N ENTITÉ 1_, _11 ENTITÉ 2_: at 3 1 3 | ENTITÉ 2_: at 2 1, at 2 2, at 2 3 4 | -------------------------------------------------------------------------------- /doc/examples/option_syntax_1.abnf: -------------------------------------------------------------------------------- 1 | start = opt " " (arg *("," arg)) 2 | 3 | arg = subopt [":" subarg *("," subarg)] 4 | 5 | subarg = subsubarg ["=" subsubopt] 6 | -------------------------------------------------------------------------------- /test/zoo/basic/exported/basic_2_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [CLIENT] --1-- 2 | [COMMANDE] ==N== 3 | [COMMANDE] ==N== 4 | [PRODUIT] --M-- 5 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/mld/cluster_NN1_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Semaine" -> "Réservation" 4 | "Voilier" -> "Réservation" 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/_triple_NNN_0.mcd: -------------------------------------------------------------------------------- 1 | Employé: employé 2 | Appliquer, 0N Employé, 1N Projet, 1N Compétence 3 | Projet: projet 4 | 5 | Compétence: compétence 6 | -------------------------------------------------------------------------------- /test/zoo/gerund/mld/gerund_1_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Produit" -> "Ligne de commande" 4 | "Commande" -> "Ligne de commande" 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/protected/mld/protected_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Direction régionale" -> "Superviser" 4 | "Agence" -> "Superviser" 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/_triple_NN1_0.mcd: -------------------------------------------------------------------------------- 1 | Ingénieur: ingénieur 2 | Gérer, /1N Responsable, 1N Ingénieur, 1N Projet 3 | Projet: projet 4 | 5 | Responsable: responsable 6 | -------------------------------------------------------------------------------- /test/zoo/weak/mld/weak_2_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Étage" -> "Appartement" 4 | "Immeuble" -> "Étage" 5 | "Rue" -> "Immeuble" 6 | } 7 | -------------------------------------------------------------------------------- /laowantong.vscode-mocodo/images/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laowantong/mocodo/HEAD/laowantong.vscode-mocodo/images/android-chrome-512x512.png -------------------------------------------------------------------------------- /test/zoo/basic/mld/basic_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "CLIENT" -> "COMMANDE" 4 | "PRODUIT" -> "INCLURE" 5 | "COMMANDE" -> "INCLURE" 6 | } 7 | -------------------------------------------------------------------------------- /test/zoo/basic/mld/basic_1_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "CLIENT" -> "COMMANDE" 4 | "PRODUIT" -> "INCLURE" 5 | "COMMANDE" -> "INCLURE" 6 | } 7 | -------------------------------------------------------------------------------- /test/zoo/basic/mld/basic_2_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "CLIENT" -> "COMMANDE" 4 | "PRODUIT" -> "INCLURE" 5 | "COMMANDE" -> "INCLURE" 6 | } 7 | -------------------------------------------------------------------------------- /test/zoo/reflexive/exported/reflexive_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [HOMME] --1-- 2 | [HOMME] --N-- 3 | [PIÈCE] --M-- 4 | [PIÈCE] --N-- 5 | -------------------------------------------------------------------------------- /test/zoo/split/exported/split_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Bataille] --1-- 2 | [Trophée] ==N== 3 | [Trophée] ==N== 4 | [Villageois] --1-- 5 | -------------------------------------------------------------------------------- /test/zoo/weak/mld/weak_1_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Œuvre: œuvre, auteur 4 | : 5 | Exemplaire: #œuvre > Œuvre > œuvre, _exemplaire, nb pages, date achat, foobar 6 | : 7 | -------------------------------------------------------------------------------- /test/zoo/minimal/mld/minimal_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_1_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | Œuvre: œuvre, auteur 2 | DF, 0N> Œuvre, _11 Exemplaire: foobar 3 | Exemplaire: exemplaire, nb pages, date achat 4 | -------------------------------------------------------------------------------- /test/zoo/alt/_alt_0.mcd: -------------------------------------------------------------------------------- 1 | CLIENT: Réf. client, 1_Nom, 1_Prénom, Adresse, 2_Mail 2 | FOO: foo, 1_bar, 12_biz, 2_buz, 3_qux, 123_quux 3 | UTILISER: 1_carnet, 02_projet, 12_technicien 4 | -------------------------------------------------------------------------------- /test/zoo/gerund/exported/gerund_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [] ==N== <> 2 | [] ==N== <> 3 | [Commande] ==1== <> 4 | [Produit] --1-- <> 5 | -------------------------------------------------------------------------------- /test/zoo/gerund/exported/gerund_1_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [] ==N== <> 2 | [] ==N== <> 3 | [Commande] ==1== <> 4 | [Produit] --1-- <> 5 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/mld/ternary_unicity_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Semaine" -> "Disponibilité" 4 | "Disponibilité" -> "Réservation" 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/mld/triple_N11_1_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Site" -> "Affecter" 4 | "Employé" -> "Affecter" 5 | "Projet" -> "Affecter" 6 | } 7 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1 2 | ASSOC 4_, /1N ENTITÉ 2_, /1N ENTITÉ 1_, 0N ENTITÉ 3_ 3 | ENTITÉ 2_: at 2 1 4 | 5 | ENTITÉ 3_: at 3 1 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/mld/triple_NN1_1_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Responsable" -> "Gérer" 4 | "Projet" -> "Gérer" 5 | "Ingénieur" -> "Gérer" 6 | } 7 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1 2 | ASSOC 4_, /1N ENTITÉ 3_, 1N ENTITÉ 1_, 1N ENTITÉ 2_ 3 | ENTITÉ 2_: at 2 1 4 | 5 | ENTITÉ 3_: at 3 1 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1 2 | ASSOC 4_, 0N ENTITÉ 1_, 1N ENTITÉ 2_, 1N ENTITÉ 3_ 3 | ENTITÉ 2_: at 2 1 4 | 5 | ENTITÉ 3_: at 3 1 6 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/dbml-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'dbml' 2 | compose_relational_schema: 'Project "{title}" {{\n Note: ''Generated by Mocodo {version}''\n}}\n\n{relations}\n' 3 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/mld/empty_attrs_0_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1 2 | DF, _11 ENTITÉ 2_, 0N ENTITÉ 1_ 3 | ENTITÉ 2_: _at 2 1 4 | DF, _11 ENTITÉ 2_, 1N ENTITÉ 3_ 5 | ENTITÉ 3_: at 3 1 6 | -------------------------------------------------------------------------------- /test/zoo/reflexive/mld/reflexive_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | COMPOSER: pièce composante, _pièce composée 4 | : 5 | HOMME: Num. SS, Nom, Prénom, #Num. SS père > HOMME > Num. SS 6 | : 7 | -------------------------------------------------------------------------------- /test/zoo/gerund/_gerund_0.mcd: -------------------------------------------------------------------------------- 1 | Produit: produit 2 | DF, _11 Ligne de commande, 0N Produit 3 | Ligne de commande: _quantité 4 | DF, _11 Ligne de commande, 1N Commande 5 | Commande: commande 6 | -------------------------------------------------------------------------------- /test/zoo/reflexive/_reflexive_0.mcd: -------------------------------------------------------------------------------- 1 | PIÈCE: pièce 2 | COMPOSER, 0N [composante] PIÈCE, 0N [composée] PIÈCE 3 | HOMME: Num. SS, Nom, Prénom 4 | ENGENDRER, 0N [père] HOMME, 01 [fils] HOMME 5 | -------------------------------------------------------------------------------- /test/zoo/triple_111/_triple_111_1.mcd: -------------------------------------------------------------------------------- 1 | Technicien: technicien, nom technicien 2 | Utiliser, /1N Technicien, /1N Carnet, /1N Projet 3 | Projet: projet, libellé 4 | 5 | Carnet: carnet 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/mld/triple_NNN_1_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "Compétence" -> "Appliquer" 4 | "Projet" -> "Appliquer" 5 | "Employé" -> "Appliquer" 6 | } 7 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/_triple_NNN_1.mcd: -------------------------------------------------------------------------------- 1 | Employé: employé, nom 2 | Appliquer, 0N Employé, 1N Projet, 1N Compétence 3 | Projet: projet, date début, date fin 4 | 5 | Compétence: compétence, libellé 6 | -------------------------------------------------------------------------------- /test/zoo/alt/mld/alt_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | CLIENT: Réf. client, Nom, Prénom, Adresse, Mail 4 | : 5 | FOO: foo, bar, biz, buz, qux, quux 6 | : 7 | UTILISER: carnet, _projet, technicien 8 | : 9 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2 2 | DF, _11 ENTITÉ 2_, 0N ENTITÉ 1_ 3 | ENTITÉ 2_: _at 2 1 4 | DF, _11 ENTITÉ 2_, 1N ENTITÉ 3_ 5 | ENTITÉ 3_: at 3 1, at 3 2 6 | -------------------------------------------------------------------------------- /test/zoo/inheritance/mld/inheritance_5_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "SODALES" -> "NEC" 4 | "LACUS" -> "NEC" 5 | "LACUS" -> "ULTRICES" 6 | "SODALES" -> "ULTRICES" 7 | } 8 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/mld/strong_child_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "VACATAIRE" -> "CONTRAT" 4 | "PROFESSEUR" -> "SALARIÉ" 5 | "PROFESSEUR" -> "VACATAIRE" 6 | } 7 | -------------------------------------------------------------------------------- /test/zoo/minimal/exported/minimal_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "minimal" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("A") { 7 | } 8 | 9 | @enduml 10 | -------------------------------------------------------------------------------- /mocodo/tools/various.py: -------------------------------------------------------------------------------- 1 | def invert_dict(d): 2 | return {v: k for (k, vs) in d.items() for v in vs} 3 | 4 | def first_missing_positive(l): 5 | return min(set(range(1, len(l) + 2)).difference(l)) 6 | -------------------------------------------------------------------------------- /test/zoo/gerund/_gerund_1.mcd: -------------------------------------------------------------------------------- 1 | Produit: produit, libellé 2 | DF, _11 Ligne de commande, 0N Produit 3 | Ligne de commande: _quantité 4 | DF, _11 Ligne de commande, 1N Commande 5 | Commande: commande, date 6 | -------------------------------------------------------------------------------- /test/zoo/split/_split.mcd: -------------------------------------------------------------------------------- 1 | Bataille: nom bataille, lieu, date 2 | Récolter, 0N Villageois, 0N Bataille, 11 Trophée 3 | Villageois: nom villageois, adresse, fonction 4 | 5 | Trophée: numéro, type, état 6 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_1_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2 2 | ASSOC 4_, /1N ENTITÉ 1_, /1N ENTITÉ 3_, /1N ENTITÉ 2_ 3 | ENTITÉ 2_: at 2 1, at 2 2 4 | 5 | ENTITÉ 3_: at 3 1 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2 2 | ASSOC 4_, /1N ENTITÉ 3_, 1N ENTITÉ 1_, 1N ENTITÉ 2_ 3 | ENTITÉ 2_: at 2 1, at 2 2 4 | 5 | ENTITÉ 3_: at 3 1, at 3 2 6 | -------------------------------------------------------------------------------- /test/zoo/weak/ddl/weak_0_ddl.d2: -------------------------------------------------------------------------------- 1 | "Exemplaire": { shape: sql_table 2 | "œuvre": VARCHAR(42) {constraint: PK} 3 | "exemplaire": VARCHAR(42) {constraint: PK} 4 | "foobar": VARCHAR(42) 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/weak/exported/weak_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | OEuvre { 3 | TYPE oeuvre PK 4 | } 5 | Exemplaire { 6 | TYPE exemplaire PK 7 | TYPE foobar 8 | } 9 | OEuvre ||..o{ Exemplaire: DF -------------------------------------------------------------------------------- /doc/examples/option_syntax_2.abnf: -------------------------------------------------------------------------------- 1 | start = opt " " ((subopt [":" (subsubarg ["=" subsubopt]) *("," (subsubarg ["=" subsubopt]))]) *("," (subopt [":" (subsubarg ["=" subsubopt]) *("," (subsubarg ["=" subsubopt]))]))) -------------------------------------------------------------------------------- /test/zoo/gerund/ddl/gerund_0_ddl.d2: -------------------------------------------------------------------------------- 1 | "Ligne de commande": { shape: sql_table 2 | "commande": VARCHAR(42) {constraint: PK} 3 | "produit": VARCHAR(42) {constraint: PK} 4 | "quantité": VARCHAR(42) 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2 2 | ASSOC 4_, 0N ENTITÉ 1_, 1N ENTITÉ 2_, 1N ENTITÉ 3_ 3 | ENTITÉ 2_: at 2 1, at 2 2, at 2 3 4 | 5 | ENTITÉ 3_: at 3 1, at 3 2 6 | -------------------------------------------------------------------------------- /test/zoo/gerund/ddl/gerund_0_ddl.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE LIGNE_DE_COMMANDE ( 2 | PRIMARY KEY (commande, produit), 3 | commande VARCHAR(42) NOT NULL, 4 | produit VARCHAR(42) NOT NULL, 5 | quantite INTEGER 6 | ); 7 | -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2, at 1 3 2 | ASSOC 4_, 0N ENTITÉ 2_, 0N ENTITÉ 1_, 11 ENTITÉ 3_ 3 | ENTITÉ 2_: at 2 1, at 2 2, at 2 3 4 | 5 | ENTITÉ 3_: at 3 1, at 3 2, at 3 3 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/_triple_NN1_1.mcd: -------------------------------------------------------------------------------- 1 | Ingénieur: ingénieur, nom ingénieur 2 | Gérer, /1N Responsable, 1N Ingénieur, 1N Projet 3 | Projet: projet, libellé projet 4 | 5 | Responsable: responsable, nom responsable 6 | -------------------------------------------------------------------------------- /test/zoo/weak/ddl/weak_0_ddl.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE EXEMPLAIRE ( 2 | PRIMARY KEY (oeuvre, exemplaire), 3 | oeuvre VARCHAR(42) NOT NULL, 4 | exemplaire VARCHAR(42) NOT NULL, 5 | foobar VARCHAR(42) 6 | ); 7 | -------------------------------------------------------------------------------- /test/zoo/alt/rewritten/alt_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, 1_at 1 2, 1_at 1 3, at 1 4, 2_at 1 5 2 | ENTITÉ 2_: at 2 1, 1_at 2 2, 12_at 2 3, 2_at 2 4, 3_at 2 5, 123_at 2 6 3 | ENTITÉ 3_: 1_at 3 1, 02_at 3 2, 12_at 3 3 4 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/_cluster_NN1_0.mcd: -------------------------------------------------------------------------------- 1 | Voilier: num voilier, longueur 2 | Offrir, 0N Voilier, 0N Semaine, /11 Réservation: tarif 3 | Semaine: num semaine, 1_date début 4 | 5 | Réservation: num résa, arrhes, date résa 6 | -------------------------------------------------------------------------------- /test/zoo/inheritance/exported/inheritance_3_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [LACUS] ==1== 2 | [LACUS] ==M== 3 | [NEC] ==N== 4 | [NEC] ==N== 5 | [SODALES] ==1== 6 | [SODALES] ==N== 7 | -------------------------------------------------------------------------------- /test/zoo/inheritance/exported/inheritance_4_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [LACUS] ==1== 2 | [LACUS] ==M== 3 | [NEC] ==N== 4 | [NEC] ==N== 5 | [SODALES] ==1== 6 | [SODALES] ==N== 7 | -------------------------------------------------------------------------------- /test/zoo/inheritance/exported/inheritance_5_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [LACUS] ==1== 2 | [LACUS] ==M== 3 | [NEC] ==N== 4 | [NEC] ==N== 5 | [SODALES] ==1== 6 | [SODALES] ==N== 7 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/sqlite-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'sqlite' 2 | compose_relational_schema: '-- Generated by Mocodo {version}\n\nCREATE DATABASE IF NOT EXISTS "{title}";\nATTACH DATABASE "{title}";\n\n{relations}\n' 3 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2 2 | ASSOC 4_, 0N ENTITÉ 1_, 0N ENTITÉ 2_, /11 ENTITÉ 3_: at 4 1 3 | ENTITÉ 2_: at 2 1, 1_at 2 2 4 | 5 | ENTITÉ 3_: at 3 1, at 3 2, at 3 3 6 | -------------------------------------------------------------------------------- /test/zoo/drain/exported/drain_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Date] --1-- 2 | [Entreprise] --1-- 3 | [Stage] --1-- 4 | [Stage] ==N== 5 | [Étudiant] --N-- 6 | [Étudiant] ==1== 7 | -------------------------------------------------------------------------------- /test/zoo/gerund/mld/gerund_1_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Produit: produit, libellé 4 | : 5 | Ligne de commande: #commande > Commande > commande, _#produit > Produit > produit, quantité 6 | : 7 | Commande: commande, date 8 | : 9 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | Produit: produit 2 | DF, _11 Ligne de commande, 0N> Produit 3 | Ligne de commande: _quantité 4 | DF, _11 Ligne de commande, 1N> Commande 5 | Commande: commande 6 | -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1 2 | ASSOC 3_, 0N [rôle 1] ENTITÉ 1_, 0N [rôle 2] ENTITÉ 1_ 3 | ENTITÉ 2_: at 2 1, at 2 2, at 2 3 4 | ASSOC 4_, 0N [rôle 1] ENTITÉ 2_, 01 [rôle 2] ENTITÉ 2_ 5 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/ddl/triple_NNN_0_ddl.d2: -------------------------------------------------------------------------------- 1 | "Appliquer": { shape: sql_table 2 | "employé": VARCHAR(42) {constraint: PK} 3 | "projet": VARCHAR(42) {constraint: PK} 4 | "compétence": VARCHAR(42) {constraint: PK} 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/ddl/triple_NN1_0_ddl.d2: -------------------------------------------------------------------------------- 1 | "Gérer": { shape: sql_table 2 | "ingénieur": VARCHAR(42) {constraint: PK} 3 | "projet": VARCHAR(42) {constraint: PK} 4 | "responsable": VARCHAR(42) {constraint: NOT NULL} 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/ddl/triple_NN1_0_ddl.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE GERER ( 2 | PRIMARY KEY (ingenieur, projet), 3 | ingenieur VARCHAR(42) NOT NULL, 4 | projet VARCHAR(42) NOT NULL, 5 | responsable VARCHAR(42) NOT NULL 6 | ); 7 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | Voilier: num voilier, longueur 2 | Offrir, 0N Voilier, 0N Semaine, /11 Réservation 3 | Semaine: num semaine, 1_date début 4 | 5 | Réservation: num résa, arrhes, date résa, tarif 6 | -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | Bataille: nom bataille, lieu, date 2 | Récolter, 0N> Villageois, 0N> Bataille, 11 Trophée 3 | Villageois: nom villageois, adresse, fonction 4 | 5 | Trophée: numéro, type, état 6 | -------------------------------------------------------------------------------- /test/zoo/triple_111/mld/triple_111_1_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Technicien: technicien, nom technicien 4 | : 5 | Utiliser: carnet, _#projet > Projet > projet, #technicien > Technicien > technicien 6 | : 7 | Projet: projet, libellé 8 | : 9 | -------------------------------------------------------------------------------- /test/zoo/weak/ddl/weak_0_ddl.dbml: -------------------------------------------------------------------------------- 1 | Table "Exemplaire" { 2 | "œuvre" VARCHAR(42) [NOT NULL] 3 | "exemplaire" VARCHAR(42) [NOT NULL] 4 | "foobar" VARCHAR(42) 5 | Indexes { 6 | ("œuvre", "exemplaire") [pk] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/zoo/basic/_basic_0.mcd: -------------------------------------------------------------------------------- 1 | CLIENT: Réf. client, Nom, Prénom, Adresse 2 | DF, 0N> CLIENT, 11 COMMANDE 3 | COMMANDE: Num. commande, Date, Montant 4 | INCLURE, 1N COMMANDE, 0N PRODUIT: Quantité 5 | PRODUIT: Réf. produit, Libellé, Prix unitaire 6 | -------------------------------------------------------------------------------- /test/zoo/complex/mld/complex_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "ANIMAL" -> "ANIMAL" 4 | "ESPÈCE" -> "ANIMAL" 5 | "ANIMAL" -> "OCCUPE" 6 | "ESPÈCE" -> "PEUT COHABITER AVEC" 7 | "ESPÈCE" -> "PEUT VIVRE DANS" 8 | } 9 | -------------------------------------------------------------------------------- /test/zoo/gerund/ddl/gerund_0_ddl.dbml: -------------------------------------------------------------------------------- 1 | Table "Ligne de commande" { 2 | "commande" VARCHAR(42) [NOT NULL] 3 | "produit" VARCHAR(42) [NOT NULL] 4 | "quantité" VARCHAR(42) 5 | Indexes { 6 | ("commande", "produit") [pk] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/zoo/gerund/rewritten/gerund_1_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | Produit: produit, libellé 2 | DF, _11 Ligne de commande, 0N> Produit 3 | Ligne de commande: _quantité 4 | DF, _11 Ligne de commande, 1N> Commande 5 | Commande: commande, date 6 | -------------------------------------------------------------------------------- /test/zoo/triple_111/_triple_111_0.mcd: -------------------------------------------------------------------------------- 1 | % Non-orthogonal cluster: not implemented 2 | Technicien: technicien 3 | :: 4 | 5 | : 6 | Utiliser, /1N Technicien, /1N Carnet, /1N Projet 7 | Projet: projet 8 | 9 | : 10 | Carnet: carnet 11 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/ddl/triple_N11_0_ddl.d2: -------------------------------------------------------------------------------- 1 | "Affecter": { shape: sql_table 2 | "projet": VARCHAR(42) {constraint: PK} 3 | "employé": VARCHAR(42) {constraint: [PK; UNQ1]} 4 | "site": VARCHAR(42) {constraint: [NOT NULL; UNQ1]} 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/ddl/triple_NNN_0_ddl.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE APPLIQUER ( 2 | PRIMARY KEY (employe, projet, competence), 3 | employe VARCHAR(42) NOT NULL, 4 | projet VARCHAR(42) NOT NULL, 5 | competence VARCHAR(42) NOT NULL 6 | ); 7 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2, at 1 3, at 1 4 2 | DF, 0N> ENTITÉ 1_, 11 ENTITÉ 2_ 3 | ENTITÉ 2_: at 2 1, at 2 2, at 2 3 4 | ASSOC 5_, 1N ENTITÉ 2_, 0N ENTITÉ 3_: at 5 1 5 | ENTITÉ 3_: at 3 1, at 3 2, at 3 3 6 | -------------------------------------------------------------------------------- /test/zoo/protected/mld/protected_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Agence: id. agence, nom agence 4 | : 5 | Superviser: #id. agence > Agence > id. agence, #id. dir. > Direction régionale > id. dir. 6 | : 7 | Direction régionale: id. dir., nom dir. 8 | : 9 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/exported/ternary_unicity_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Réservation] ==1== 2 | [Semaine] ==1== <> 3 | [Voilier] ==1== <> 4 | [[Disponibilité]] --1-- 5 | [[Disponibilité]] ==N== <> 6 | [[Disponibilité]] ==N== <> 7 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/ddl/triple_N11_0_ddl.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE AFFECTER ( 2 | PRIMARY KEY (projet, employe), 3 | projet VARCHAR(42) NOT NULL, 4 | employe VARCHAR(42) NOT NULL, 5 | site VARCHAR(42) NOT NULL, 6 | UNIQUE (employe, site) 7 | ); 8 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/exported/empty_attrs_0_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "empty_attrs" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("CLIENT") { 7 | {field} + pk(Réf. client) 8 | } 9 | 10 | @enduml 11 | -------------------------------------------------------------------------------- /test/zoo/weak/exported/weak_2_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [Rue] --1-- <> 2 | [[Appartement]] ==N== <> 3 | [[Immeuble]] ==1== <> 4 | [[Immeuble]] ==N== <> 5 | [[Étage]] --1-- <> 6 | [[Étage]] ==N== <> 7 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/rewritten/cluster_NN1_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | Voilier: num voilier, longueur 2 | Offrir, 0N> Voilier, 0N> Semaine, /11 Réservation: tarif 3 | Semaine: num semaine, 1_date début 4 | 5 | Réservation: num résa, arrhes, date résa 6 | -------------------------------------------------------------------------------- /test/zoo/minimal/mld/minimal_mld.md: -------------------------------------------------------------------------------- 1 |
2 | ---- 3 | 4 | 5 | **NB.** La table _A_ a été supprimée car elle était réduite à la clé primaire de son entité d'origine. Pour conserver de telles tables, préfixez d'un « + » la définition des entités d'origine. 6 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/ddl/triple_NN1_0_ddl.dbml: -------------------------------------------------------------------------------- 1 | Table "Gérer" { 2 | "ingénieur" VARCHAR(42) [NOT NULL] 3 | "projet" VARCHAR(42) [NOT NULL] 4 | "responsable" VARCHAR(42) [NOT NULL] 5 | Indexes { 6 | ("ingénieur", "projet") [pk] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/zoo/triple_111/ddl/triple_111_0_ddl.d2: -------------------------------------------------------------------------------- 1 | "Utiliser": { shape: sql_table 2 | "carnet": VARCHAR(42) {constraint: [PK; UNQ1]} 3 | "projet": VARCHAR(42) {constraint: [PK; UNQ2]} 4 | "technicien": VARCHAR(42) {constraint: [NOT NULL; UNQ1; UNQ2]} 5 | } 6 | -------------------------------------------------------------------------------- /test/zoo/reflexive/exported/reflexive_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | PIECE { 3 | TYPE piece PK 4 | } 5 | HOMME { 6 | TYPE Num_SS PK 7 | TYPE Nom 8 | TYPE Prenom 9 | } 10 | PIECE }o--o{ PIECE: COMPOSER 11 | HOMME |o--o{ HOMME: ENGENDRER -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | PIÈCE: pièce 2 | DF, _11 COMPOSER, 0N [composée] PIÈCE 3 | ENGENDRER, 0N [père] HOMME, 01 [fils] HOMME 4 | 5 | DF, _11 COMPOSER, 0N [composante] PIÈCE 6 | COMPOSER: 7 | HOMME: Num. SS, Nom, Prénom 8 | -------------------------------------------------------------------------------- /test/zoo/triple_111/rewritten/triple_111_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | % Non-orthogonal cluster: not implemented 2 | ENTITÉ 1_: at 1 1 3 | :: 4 | 5 | : 6 | ASSOC 4_, /1N ENTITÉ 1_, /1N ENTITÉ 3_, /1N ENTITÉ 2_ 7 | ENTITÉ 2_: at 2 1 8 | 9 | : 10 | ENTITÉ 3_: at 3 1 11 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet 2 | DF, _11 Gérer, 1N Projet 3 | Gérer: 4 | DF, 11 Gérer, 1N Responsable 5 | 6 | : 7 | Ingénieur: ingénieur 8 | DF, _11 Gérer, 1N Ingénieur 9 | Responsable: responsable 10 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet 2 | DF, _11 Gérer, 1N Projet 3 | Gérer: 4 | DF, 11 Gérer, 1N Responsable 5 | 6 | : 7 | Ingénieur: ingénieur 8 | DF, _11 Gérer, 1N Ingénieur 9 | Responsable: responsable 10 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/mld/empty_attrs_0_mld.md: -------------------------------------------------------------------------------- 1 |
2 | ---- 3 | 4 | 5 | **NB.** La table _CLIENT_ a été supprimée car elle était réduite à la clé primaire de son entité d'origine. Pour conserver de telles tables, préfixez d'un « + » la définition des entités d'origine. 6 | -------------------------------------------------------------------------------- /test/zoo/protected/exported/protected_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | Agence { 3 | TYPE id_agence PK 4 | TYPE nom_agence 5 | } 6 | Direction_regionale { 7 | TYPE id_dir PK 8 | TYPE nom_dir 9 | } 10 | Direction_regionale |o--|{ Agence: Superviser -------------------------------------------------------------------------------- /test/zoo/reflexive/rewritten/reflexive_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | PIÈCE: pièce 2 | DF, 11 COMPOSER, 0N [composée] PIÈCE 3 | ENGENDRER, 0N [père] HOMME, 01 [fils] HOMME 4 | 5 | DF, 11 COMPOSER, 0N [composante] PIÈCE 6 | COMPOSER: id. composer 7 | HOMME: Num. SS, Nom, Prénom 8 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/ddl/triple_NNN_0_ddl.dbml: -------------------------------------------------------------------------------- 1 | Table "Appliquer" { 2 | "employé" VARCHAR(42) [NOT NULL] 3 | "projet" VARCHAR(42) [NOT NULL] 4 | "compétence" VARCHAR(42) [NOT NULL] 5 | Indexes { 6 | ("employé", "projet", "compétence") [pk] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet 2 | DF, _11 Appliquer, 1N Projet 3 | Appliquer: 4 | DF, _11 Appliquer, 0N Employé 5 | 6 | : 7 | Compétence: compétence 8 | DF, _11 Appliquer, 1N Compétence 9 | Employé: employé 10 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet 2 | DF, _11 Appliquer, 1N Projet 3 | Appliquer: 4 | DF, _11 Appliquer, 0N Employé 5 | 6 | : 7 | Compétence: compétence 8 | DF, _11 Appliquer, 1N Compétence 9 | Employé: employé 10 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet 2 | DF, 11 Appliquer, 1N Projet 3 | Appliquer: id. appliquer 4 | DF, 11 Appliquer, 0N Employé 5 | 6 | : 7 | Compétence: compétence 8 | DF, 11 Appliquer, 1N Compétence 9 | Employé: employé 10 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_0_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet 2 | DF, 11 Appliquer, 1N Projet 3 | Appliquer: id. appliquer 4 | DF, 11 Appliquer, 0N Employé 5 | 6 | : 7 | Compétence: compétence 8 | DF, 11 Appliquer, 1N Compétence 9 | Employé: employé 10 | -------------------------------------------------------------------------------- /test/zoo/weak/_weak_2.mcd: -------------------------------------------------------------------------------- 1 | Appartement: num appart., nb pièces 2 | Composer, 0N Étage, _11 Appartement 3 | Étage: num étage, nb appartements 4 | Appartenir, 1N Immeuble, _11 Étage 5 | Immeuble: num immeuble, nb étages 6 | Se situer, 0N Rue, _11 Immeuble 7 | Rue: code rue, nom rue 8 | -------------------------------------------------------------------------------- /test/zoo/minimal/exported/minimal_erd_chen.gv: -------------------------------------------------------------------------------- 1 | graph{ 2 | start=42 3 | 4 | // Entities 5 | node [ 6 | shape=box 7 | style=filled 8 | penwidth=1.5 9 | fillcolor="#FFFFFF" 10 | ] 11 | 12 | // Associative entities 13 | 1 [label="A",shape=Mdiamond] 14 | } -------------------------------------------------------------------------------- /test/zoo/weak/exported/weak_1_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | OEuvre { 3 | TYPE oeuvre PK 4 | TYPE auteur 5 | } 6 | Exemplaire { 7 | TYPE exemplaire PK 8 | TYPE nb_pages 9 | TYPE date_achat 10 | TYPE foobar 11 | } 12 | OEuvre ||..o{ Exemplaire: DF -------------------------------------------------------------------------------- /test/zoo/split/rewritten/split_rw_split.mcd: -------------------------------------------------------------------------------- 1 | Bataille: nom bataille, lieu, date 2 | Récolter1, 11 Trophée, 0N Bataille 3 | : 4 | 5 | : 6 | Trophée: numéro, type, état 7 | Récolter0, 11 Trophée, 0N Villageois 8 | 9 | : 10 | : 11 | Villageois: nom villageois, adresse, fonction 12 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2 2 | ASSOC 5_, 0N ENTITÉ 2_, _11 ENTITÉ 1_ 3 | ENTITÉ 2_: at 2 1, at 2 2 4 | ASSOC 6_, 1N ENTITÉ 3_, _11 ENTITÉ 2_ 5 | ENTITÉ 3_: at 3 1, at 3 2 6 | ASSOC 7_, 0N ENTITÉ 4_, _11 ENTITÉ 3_ 7 | ENTITÉ 4_: at 4 1, at 4 2 8 | -------------------------------------------------------------------------------- /test/zoo/inheritance/mld/inheritance_4_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "TRISTIS" -> "LACUS" 4 | "SODALES" -> "NEC" 5 | "LACUS" -> "NEC" 6 | "TRISTIS" -> "NEC" 7 | "TRISTIS" -> "SODALES" 8 | "LACUS" -> "ULTRICES" 9 | "SODALES" -> "ULTRICES" 10 | } 11 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/ddl/triple_N11_0_ddl.dbml: -------------------------------------------------------------------------------- 1 | Table "Affecter" { 2 | "projet" VARCHAR(42) [NOT NULL] 3 | "employé" VARCHAR(42) [NOT NULL] 4 | "site" VARCHAR(42) [NOT NULL] 5 | Indexes { 6 | ("projet", "employé") [pk] 7 | ("employé", "site") [unique] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /test/zoo/protected/rewritten/protected_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | % source: https://www.developpez.net/forums/d962823/general-developpement/alm/methodes/merise/regles-passage-mcd-mld-associations-binaires/ 2 | ENTITÉ 1_: at 1 1, at 1 2 3 | +ASSOC 3_, 1N ENTITÉ 2_, 01 ENTITÉ 1_ 4 | +ENTITÉ 2_: at 2 1, at 2 2 5 | -------------------------------------------------------------------------------- /test/zoo/triple_111/ddl/triple_111_0_ddl.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE UTILISER ( 2 | PRIMARY KEY (carnet, projet), 3 | carnet VARCHAR(42) NOT NULL, 4 | projet VARCHAR(42) NOT NULL, 5 | technicien VARCHAR(42) NOT NULL, 6 | UNIQUE (carnet, technicien), 7 | UNIQUE (projet, technicien) 8 | ); 9 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/mld/triple_N11_1_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Projet: projet, libellé 4 | : 5 | Affecter: #projet > Projet > projet, _#employé > Employé > employé, #site > Site > site 6 | : 7 | Site: site, position 8 | : 9 | 10 | 11 | ::: 12 | Employé: employé, nom employé 13 | ::: 14 | -------------------------------------------------------------------------------- /test/zoo/drain/_drain.mcd: -------------------------------------------------------------------------------- 1 | Entreprise: nom entreprise, adresse, téléphone 2 | Proposer, 0N Entreprise, 11 Stage: date proposition 3 | Stage: num. stage, sujet 4 | Attribuer, 11 Étudiant, 01 Stage: date signature 5 | Étudiant: num étudiant, nom 6 | Soutenir, 01 Étudiant, 0N Date: note stage 7 | Date: date 8 | -------------------------------------------------------------------------------- /web/favicons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #ffc40d 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /laowantong.vscode-mocodo/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "%", 4 | }, 5 | "autoClosingPairs": [ 6 | ["[", "]"], 7 | ["(", ")"] 8 | ], 9 | "surroundingPairs": [ 10 | ["[", "]"], 11 | ["(", ")"] 12 | ] 13 | } -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2, at 1 3 2 | ASSOC 5_, 0N ENTITÉ 1_, 11 ENTITÉ 2_: at 5 1 3 | ENTITÉ 2_: at 2 1, at 2 2 4 | ASSOC 6_, 11 ENTITÉ 3_, 01 ENTITÉ 2_: at 6 1 5 | ENTITÉ 3_: at 3 1, at 3 2 6 | ASSOC 7_, 01 ENTITÉ 3_, 0N ENTITÉ 4_: at 7 1 7 | ENTITÉ 4_: at 4 1 8 | -------------------------------------------------------------------------------- /test/zoo/gerund/exported/gerund_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | Produit { 3 | TYPE produit PK 4 | } 5 | Ligne_de_commande { 6 | TYPE quantite PK 7 | } 8 | Commande { 9 | TYPE commande PK 10 | } 11 | Ligne_de_commande }o..|| Produit: DF 12 | Ligne_de_commande }|..|| Commande: DF -------------------------------------------------------------------------------- /test/zoo/protected/_protected_0.mcd: -------------------------------------------------------------------------------- 1 | % source: https://www.developpez.net/forums/d962823/general-developpement/alm/methodes/merise/regles-passage-mcd-mld-associations-binaires/ 2 | Agence: id. agence, nom agence 3 | +Superviser, 1N Direction régionale, 01 Agence 4 | +Direction régionale: id. dir., nom dir. 5 | -------------------------------------------------------------------------------- /test/zoo/split/mld/split_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Bataille: nom bataille, lieu, date 4 | ::: 5 | Villageois: nom villageois, adresse, fonction 6 | : 7 | 8 | 9 | ::: 10 | Trophée: numéro, type, état, #nom villageois > Villageois > nom villageois, #nom bataille > Bataille > nom bataille 11 | ::: 12 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1 2 | DF, _11 ENTITÉ 2_, 1N ENTITÉ 1_ 3 | ENTITÉ 2_: 4 | DF, _11 ENTITÉ 2_, 1N ENTITÉ 3_ 5 | ENTITÉ 3_: at 3 1, 1_at 3 2 6 | 7 | DF, 11 ENTITÉ 4_, 01 ENTITÉ 2_ 8 | 9 | ENTITÉ 4_: at 4 1, 1_at 4 2, at 4 3, at 4 4 10 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/_triple_N11_1.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet, libellé 2 | Affecter, /1N Site, /1N Projet, 0N Employé 3 | Site: site, position 4 | 5 | Employé: employé, nom employé 6 | 7 | (CIF) --Projet, --Employé, ..Affecter, ->Site: Projet, Employé 8 | (CIF) ..Affecter, ->Projet, Employé, Site: Site, Employé 9 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet, date début, date fin 2 | DF, _11 Appliquer, 1N Projet 3 | Appliquer: 4 | DF, _11 Appliquer, 0N Employé 5 | 6 | : 7 | Compétence: compétence, libellé 8 | DF, _11 Appliquer, 1N Compétence 9 | Employé: employé, nom 10 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet, date début, date fin 2 | DF, _11 Appliquer, 1N Projet 3 | Appliquer: 4 | DF, _11 Appliquer, 0N Employé 5 | 6 | : 7 | Compétence: compétence, libellé 8 | DF, _11 Appliquer, 1N Compétence 9 | Employé: employé, nom 10 | -------------------------------------------------------------------------------- /test/zoo/cluster_NN1/mld/cluster_NN1_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Voilier: num voilier, longueur 4 | ::: 5 | Semaine: num semaine, date début 6 | : 7 | 8 | 9 | ::: 10 | Réservation: num résa, arrhes, date résa, #num voilier > Voilier > num voilier, #num semaine > Semaine > num semaine, tarif 11 | ::: 12 | -------------------------------------------------------------------------------- /test/zoo/drain/mld/drain_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Entreprise: nom entreprise, adresse, téléphone 4 | : 5 | Stage: num. stage, sujet, #nom entreprise > Entreprise > nom entreprise, date proposition 6 | : 7 | Étudiant: num étudiant, nom, #num. stage > Stage > num. stage, date signature, date, note stage 8 | : 9 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/mld/strong_child_1_mld.mcd: -------------------------------------------------------------------------------- 1 | : 2 | CONTRAT: #num prof > PROFESSEUR > num prof, _date contrat, salaire horaire contrat 3 | ::: 4 | 5 | 6 | ::: 7 | PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof, statut vacataire, date embauche salarié, échelon salarié, salaire salarié 8 | : 9 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet, libellé projet 2 | DF, _11 Gérer, 1N Projet 3 | Gérer: 4 | DF, 11 Gérer, 1N Responsable 5 | 6 | : 7 | Ingénieur: ingénieur, nom ingénieur 8 | DF, _11 Gérer, 1N Ingénieur 9 | Responsable: responsable, nom responsable 10 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/rewritten/triple_NN1_1_rw_explode_arity=3,weak.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet, libellé projet 2 | DF, _11 Gérer, 1N Projet 3 | Gérer: 4 | DF, 11 Gérer, 1N Responsable 5 | 6 | : 7 | Ingénieur: ingénieur, nom ingénieur 8 | DF, _11 Gérer, 1N Ingénieur 9 | Responsable: responsable, nom responsable 10 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet, date début, date fin 2 | DF, 11 Appliquer, 1N Projet 3 | Appliquer: id. appliquer 4 | DF, 11 Appliquer, 0N Employé 5 | 6 | : 7 | Compétence: compétence, libellé 8 | DF, 11 Appliquer, 1N Compétence 9 | Employé: employé, nom 10 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/rewritten/triple_NNN_1_rw_explode_arity=3.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet, date début, date fin 2 | DF, 11 Appliquer, 1N Projet 3 | Appliquer: id. appliquer 4 | DF, 11 Appliquer, 0N Employé 5 | 6 | : 7 | Compétence: compétence, libellé 8 | DF, 11 Appliquer, 1N Compétence 9 | Employé: employé, nom 10 | -------------------------------------------------------------------------------- /test/zoo/weak/rewritten/weak_2_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | Appartement: num appart., nb pièces 2 | Composer, 0N> Étage, _11 Appartement 3 | Étage: num étage, nb appartements 4 | Appartenir, 1N> Immeuble, _11 Étage 5 | Immeuble: num immeuble, nb étages 6 | Se situer, 0N> Rue, _11 Immeuble 7 | Rue: code rue, nom rue 8 | -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_drain.mcd: -------------------------------------------------------------------------------- 1 | Entreprise: nom entreprise, adresse, téléphone 2 | Proposer, 0N Entreprise, 11 Stage 3 | Stage: num. stage, sujet, date proposition 4 | Attribuer, 11 Étudiant, 01 Stage 5 | Étudiant: num étudiant, nom, date signature 6 | Soutenir, 01 Étudiant, 0N Date: note stage 7 | Date: date 8 | -------------------------------------------------------------------------------- /test/zoo/inheritance/mld/inheritance_3_mld.mcd: -------------------------------------------------------------------------------- 1 | ::: 2 | TRISTIS: magna, vestibulum, type, convallis, ipsum, pulvinar, audis, #magna via_mollis > TRISTIS > magna, #magna via_vitae > TRISTIS > magna, tempor, fugit 3 | : 4 | 5 | 6 | : 7 | ULTRICES: #magna sodales > TRISTIS > magna, _#magna lacus > TRISTIS > magna 8 | ::: 9 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/_ternary_unicity_0.mcd: -------------------------------------------------------------------------------- 1 | Voilier: voilier 2 | DF, _11 Disponibilité, 1N Voilier 3 | Disponibilité: 4 | DF, _11 Disponibilité, 1N Semaine 5 | Semaine: semaine, 1_date début 6 | 7 | DF, 11 Réservation, 01 Disponibilité 8 | 9 | Réservation: id résa, 1_num résa, arrhes, date réservation 10 | -------------------------------------------------------------------------------- /test/test_data/templates/root.yaml: -------------------------------------------------------------------------------- 1 | foo: 'bar' 2 | buzz: 42 3 | baz: 4 | - order: 10 5 | qux: 'quux' 6 | unchanged: 'unchanged' 7 | - order: 20 8 | biz: 'buz' 9 | - order: 30 10 | qux: 'quux' 11 | empty: 12 | unchanged: 'unchanged' 13 | force_empty_list: 14 | - order: 10 15 | qux: 'quux' 16 | -------------------------------------------------------------------------------- /test/zoo/minimal/mld/minimal_mld.txt: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- 3 | 4 | NB. La table « A » a été supprimée car elle était réduite à la clé primaire de son entité d'origine. Pour conserver de telles tables, préfixez d'un « + » la définition des entités d'origine. 5 | -------------------------------------------------------------------------------- /test/zoo/inheritance/mld/inheritance_2_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "DIGNISSIM" -> "ALIQUET" 4 | "CONSEQUAT" -> "LACUS" 5 | "CURABITUR" -> "NEC" 6 | "CONSEQUAT" -> "NEC" 7 | "SODALES" -> "QUAM" 8 | "CONSEQUAT" -> "SODALES" 9 | "LACUS" -> "ULTRICES" 10 | "LIBERO" -> "ULTRICES" 11 | } 12 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/mld/triple_NNN_1_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Employé: employé, nom 4 | : 5 | Appliquer: #employé > Employé > employé, _#projet > Projet > projet, _#compétence > Compétence > compétence 6 | : 7 | Projet: projet, date début, date fin 8 | : 9 | 10 | 11 | ::: 12 | Compétence: compétence, libellé 13 | ::: 14 | -------------------------------------------------------------------------------- /test/zoo/drain/rewritten/drain_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | Entreprise: nom entreprise, adresse, téléphone 2 | Proposer, 0N> Entreprise, 11 Stage: date proposition 3 | Stage: num. stage, sujet 4 | Attribuer, 11 Étudiant, 01> Stage: date signature 5 | Étudiant: num étudiant, nom 6 | Soutenir, 01 Étudiant, 0N Date: note stage 7 | Date: date 8 | -------------------------------------------------------------------------------- /test/zoo/empty_attrs/mld/empty_attrs_0_mld.txt: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- 3 | 4 | NB. La table « CLIENT » a été supprimée car elle était réduite à la clé primaire de son entité d'origine. Pour conserver de telles tables, préfixez d'un « + » la définition des entités d'origine. 5 | -------------------------------------------------------------------------------- /test/zoo/inheritance/mld/inheritance_0_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "DIGNISSIM" -> "ALIQUET" 4 | "TRISTIS" -> "ALIQUET" 5 | "TRISTIS" -> "QUAM" 6 | "TRISTIS" -> "SUSCIPIT" 7 | "CURABITUR" -> "TRISTIS" 8 | "CONSEQUAT" -> "TRISTIS" 9 | "TRISTIS" -> "ULTRICES" 10 | "LIBERO" -> "ULTRICES" 11 | } 12 | -------------------------------------------------------------------------------- /test/zoo/gerund/exported/gerund_1_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | Produit { 3 | TYPE produit PK 4 | TYPE libelle 5 | } 6 | Ligne_de_commande { 7 | TYPE quantite PK 8 | } 9 | Commande { 10 | TYPE commande PK 11 | TYPE date 12 | } 13 | Ligne_de_commande }o..|| Produit: DF 14 | Ligne_de_commande }|..|| Commande: DF -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/mld/ternary_unicity_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Disponibilité: #semaine > Semaine > semaine, _voilier 4 | : 5 | Semaine: semaine, date début 6 | : 7 | 8 | 9 | 10 | : 11 | Réservation: id résa, num résa, arrhes, date réservation, #semaine > Disponibilité > semaine, #voilier > Disponibilité > voilier 12 | ::: 13 | -------------------------------------------------------------------------------- /test/zoo/triple_111/ddl/triple_111_0_ddl.dbml: -------------------------------------------------------------------------------- 1 | Table "Utiliser" { 2 | "carnet" VARCHAR(42) [NOT NULL] 3 | "projet" VARCHAR(42) [NOT NULL] 4 | "technicien" VARCHAR(42) [NOT NULL] 5 | Indexes { 6 | ("carnet", "projet") [pk] 7 | ("technicien", "projet") [unique] 8 | ("carnet", "technicien") [unique] 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/test_data/templates/child.yaml: -------------------------------------------------------------------------------- 1 | parent: 'root' 2 | buzz: 'updated value' 3 | baz: 4 | - order: 5 5 | foo: 'insert_before' 6 | - order: 10 7 | qux: 'updated value' 8 | quux: 'new_item' 9 | - order: 15 10 | foo: 'insert_between' 11 | - order: 20 12 | - order: 35 13 | foo: 'insert_after' 14 | force_empty_list: 15 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/mld/triple_NN1_1_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Ingénieur: ingénieur, nom ingénieur 4 | : 5 | Gérer: #ingénieur > Ingénieur > ingénieur, _#projet > Projet > projet, #responsable > Responsable > responsable 6 | : 7 | Projet: projet, libellé projet 8 | : 9 | 10 | 11 | ::: 12 | Responsable: responsable, nom responsable 13 | ::: 14 | -------------------------------------------------------------------------------- /test/zoo/weak/mld/weak_0_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | Exemplaire œuvre ! strengthening_primary_ex_foreign_key True Œuvre Œuvre DF 3 | Exemplaire exemplaire ! primary_key True 4 | Exemplaire foobar outer_attribute False DF 5 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/rewritten/ternary_unicity_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | Voilier: voilier 2 | DF, _11 Disponibilité, 1N> Voilier 3 | Disponibilité: 4 | DF, _11 Disponibilité, 1N> Semaine 5 | Semaine: semaine, 1_date début 6 | 7 | DF, 11 Réservation, 01> Disponibilité 8 | 9 | Réservation: id résa, 1_num résa, arrhes, date réservation 10 | -------------------------------------------------------------------------------- /test/test_data/templates/grandchild.yaml: -------------------------------------------------------------------------------- 1 | parent: 'test/test_data/templates/child.yaml' 2 | buzz: 'reupdated_value' 3 | biz: 4 | - order: 1 5 | foo: 'bar' 6 | baz: 'qux' 7 | - order: 2 8 | foo: 'bar' 9 | baz: 'qux' 10 | baz: 11 | - order: 1 12 | name: 'foo' 13 | - order: 5 14 | - order: 20 15 | name: 'bar' 16 | - order: 35 17 | -------------------------------------------------------------------------------- /test/zoo/basic/mld/basic_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | CLIENT: Réf. client, Nom, Prénom, Adresse 4 | : 5 | COMMANDE: Num. commande, Date, Montant, #Réf. client > CLIENT > Réf. client 6 | : 7 | INCLURE: #Num. commande > COMMANDE > Num. commande, _#Réf. produit > PRODUIT > Réf. produit, Quantité 8 | : 9 | PRODUIT: Réf. produit, Libellé, Prix unitaire 10 | : 11 | -------------------------------------------------------------------------------- /test/zoo/basic/mld/basic_2_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | CLIENT: Réf. client, Nom, Prénom, Adresse 4 | : 5 | COMMANDE: Num. commande, Date, Montant, #Réf. client > CLIENT > Réf. client 6 | : 7 | INCLURE: #Num. commande > COMMANDE > Num. commande, _#Réf. produit > PRODUIT > Réf. produit, Quantité 8 | : 9 | PRODUIT: Réf. produit, Libellé, Prix unitaire 10 | : 11 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_1_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1, at 1 2 2 | ASSOC 4_, /1N ENTITÉ 2_, /1N ENTITÉ 1_, 0N ENTITÉ 3_ 3 | ENTITÉ 2_: at 2 1, at 2 2 4 | 5 | ENTITÉ 3_: at 3 1, at 3 2 6 | 7 | (CIF) --ENTITÉ 1_, --ENTITÉ 3_, ..ASSOC 4_, ->ENTITÉ 2_: ENTITÉ 1_, ENTITÉ 3_ 8 | (CIF) ..ASSOC 4_, ->ENTITÉ 1_, ENTITÉ 3_, ENTITÉ 2_: ENTITÉ 2_, ENTITÉ 3_ 9 | -------------------------------------------------------------------------------- /test/zoo/weak/exported/weak_0_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "weak" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Œuvre") { 7 | {field} + pk(œuvre) 8 | } 9 | 10 | "Œuvre" "1" *-- "*" "Exemplaire" 11 | 12 | Table("Exemplaire") { 13 | {field} + pk(exemplaire) 14 | {field} + foobar 15 | } 16 | 17 | @enduml 18 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | DF, 0N> CLIENT, 11 COMMANDE 2 | COMMANDE: Num. commande, Date, Montant 3 | DF, _11 INCLURE, 1N COMMANDE 4 | : 5 | 6 | CLIENT: Réf. client, Nom, Prénom, Adresse 7 | : 8 | INCLURE: _Quantité 9 | DF, _11 INCLURE, 0N PRODUIT 10 | 11 | : 12 | : 13 | : 14 | PRODUIT: Réf. produit, Libellé, Prix unitaire 15 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | DF, 0N> CLIENT, 11 COMMANDE 2 | COMMANDE: Num. commande, Date, Montant 3 | DF, _11 INCLURE, 1N COMMANDE 4 | : 5 | 6 | CLIENT: Réf. client, Nom, Prénom, Adresse 7 | : 8 | INCLURE: _Quantité 9 | DF, _11 INCLURE, 0N PRODUIT 10 | 11 | : 12 | : 13 | : 14 | PRODUIT: Réf. produit, Libellé, Prix unitaire 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/_inheritance_3.mcd: -------------------------------------------------------------------------------- 1 | : 2 | MOLLIS, 1N [via_mollis] LACUS, 11 NEC 3 | NEC: pulvinar, audis 4 | : 5 | 6 | LACUS: tempor, fugit 7 | /XT\ TRISTIS <- SODALES, NEC, LACUS: type 8 | TRISTIS: magna, vestibulum 9 | VITAE, 11 NEC, 1N [via_vitae] SODALES 10 | 11 | : 12 | ULTRICES, 1N [sodales] SODALES, 1N [lacus] LACUS 13 | SODALES: convallis, ipsum 14 | : -------------------------------------------------------------------------------- /mocodo/convert/_share.py: -------------------------------------------------------------------------------- 1 | from ..tools.string_tools import urlsafe_encoding 2 | 3 | 4 | def run(source, subargs=None, common=None): 5 | return { 6 | "stem_suffix": "_url", 7 | "text": f"https://www.mocodo.net/?mcd={urlsafe_encoding(source)}", 8 | "extension": "url", 9 | "to_defer": True, 10 | "highlight": "url", 11 | } 12 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | DF, 0N> CLIENT, 11 COMMANDE 2 | COMMANDE: Num. commande, Date, Montant 3 | DF, 11 INCLURE, 1N COMMANDE 4 | : 5 | 6 | CLIENT: Réf. client, Nom, Prénom, Adresse 7 | : 8 | INCLURE: id. inclure, Quantité 9 | DF, 11 INCLURE, 0N PRODUIT 10 | 11 | : 12 | : 13 | : 14 | PRODUIT: Réf. produit, Libellé, Prix unitaire 15 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_0_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | DF, 0N> CLIENT, 11 COMMANDE 2 | COMMANDE: Num. commande, Date, Montant 3 | DF, 11 INCLURE, 1N COMMANDE 4 | : 5 | 6 | CLIENT: Réf. client, Nom, Prénom, Adresse 7 | : 8 | INCLURE: id. inclure, Quantité 9 | DF, 11 INCLURE, 0N PRODUIT 10 | 11 | : 12 | : 13 | : 14 | PRODUIT: Réf. produit, Libellé, Prix unitaire 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/_inheritance_4.mcd: -------------------------------------------------------------------------------- 1 | : 2 | MOLLIS, 1N [via_mollis] LACUS, 11 NEC 3 | NEC: pulvinar, audis 4 | : 5 | 6 | LACUS: tempor, fugit 7 | /XT\ TRISTIS -> SODALES, NEC, LACUS: type 8 | TRISTIS: magna, vestibulum 9 | VITAE, 11 NEC, 1N [via_vitae] SODALES 10 | 11 | : 12 | ULTRICES, 1N [sodales] SODALES, 1N [lacus] LACUS 13 | SODALES: convallis, ipsum 14 | : 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/_inheritance_5.mcd: -------------------------------------------------------------------------------- 1 | : 2 | MOLLIS, 1N [via_mollis] LACUS, 11 NEC 3 | NEC: pulvinar, audis 4 | : 5 | 6 | LACUS: tempor, fugit 7 | /XT\ TRISTIS => SODALES, NEC, LACUS: type 8 | TRISTIS: magna, vestibulum 9 | VITAE, 11 NEC, 1N [via_vitae] SODALES 10 | 11 | : 12 | ULTRICES, 1N [sodales] SODALES, 1N [lacus] LACUS 13 | SODALES: convallis, ipsum 14 | : 15 | -------------------------------------------------------------------------------- /web/ace-builds/mode-text.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | window.require(["ace/mode/text"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /test/zoo/basic/_basic_2.mcd: -------------------------------------------------------------------------------- 1 | CLIENT: Réf. client [VARCHAR(8)], Nom [VARCHAR(255)], Prénom [VARCHAR(255)], Adresse [VARCHAR(255)] 2 | PASSER, 0N CLIENT, 11 COMMANDE 3 | COMMANDE: Num. commande [VARCHAR(8)], Date [DATE], Montant [DECIMAL(10,2)] 4 | INCLURE, 1N COMMANDE, 0N PRODUIT: Quantité [INTEGER] 5 | PRODUIT: Réf. produit [VARCHAR(8)], Libellé [VARCHAR(50)], Prix unitaire [DECIMAL(10,2)] 6 | -------------------------------------------------------------------------------- /web/favicons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mocodo", 3 | "icons": [ 4 | { 5 | "src": "\/android-chrome-192x192.png", 6 | "sizes": "192x192", 7 | "type": "image\/png" 8 | }, 9 | { 10 | "src": "\/android-chrome-512x512.png", 11 | "sizes": "512x512", 12 | "type": "image\/png" 13 | } 14 | ], 15 | "theme_color": "#fff", 16 | "display": "standalone" 17 | } 18 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | ENTITÉ 1_: at 1 1 [VARCHAR(8)], at 1 2 [VARCHAR(255)], at 1 3 [VARCHAR(255)], at 1 4 [VARCHAR(255)] 2 | ASSOC 4_, 0N ENTITÉ 1_, 11 ENTITÉ 2_ 3 | ENTITÉ 2_: at 2 1 [VARCHAR(8)], at 2 2 [DATE], at 2 3 [DECIMAL(10,2)] 4 | ASSOC 5_, 1N ENTITÉ 2_, 0N ENTITÉ 3_: at 5 1 [INTEGER] 5 | ENTITÉ 3_: at 3 1 [VARCHAR(8)], at 3 2 [VARCHAR(50)], at 3 3 [DECIMAL(10,2)] 6 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/mld/strong_child_2_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | ::: 3 | VACATAIRE: num prof, nom prof, prénom prof, téléphone prof, statut vacataire 4 | ::: 5 | 6 | 7 | : 8 | CONTRAT: #num prof > VACATAIRE > num prof, _date contrat, salaire horaire contrat 9 | ::: 10 | SALARIÉ: num prof, nom prof, prénom prof, téléphone prof, date embauche salarié, échelon salarié, salaire salarié 11 | : 12 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | % https://github.com/laowantong/mocodo/issues/118 2 | % Concrete table inheritance: parent disappears 3 | 4 | DF, _11 ENTITÉ 2_, 1N ENTITÉ 1_ 5 | ENTITÉ 1_: at 1 1 6 | 7 | ENTITÉ 2_: at 2 1, at 2 2 8 | /XT\ ENTITÉ 4_ => ENTITÉ 1_, ENTITÉ 3_ 9 | ENTITÉ 3_: at 3 1, at 3 2, at 3 3 10 | 11 | ENTITÉ 4_: at 4 1, at 4 2, at 4 3, at 4 4 12 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/mld/triple_N11_0_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | Affecter projet ! primary_ex_foreign_key True Projet Projet Affecter 3 | Affecter employé ! 1 primary_ex_foreign_key True Employé Employé Affecter 4 | Affecter site ! 1 stopped_ex_foreign_key False Site Site Affecter 5 | -------------------------------------------------------------------------------- /doc/readme/ccp.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo --colors ocean 2 | CLIENT: Réf. client [VARCHAR(8)], Nom [VARCHAR(255)], Prénom [VARCHAR(255)], Adresse [VARCHAR(255)] 3 | PASSER, 0N CLIENT, 11 COMMANDE 4 | COMMANDE: Num. commande [VARCHAR(8)], Date [DATE], Montant [DECIMAL(10,2)] 5 | INCLURE, 1N COMMANDE, 0N PRODUIT: Quantité [INTEGER] 6 | PRODUIT: Réf. produit [VARCHAR(8)], Libellé [VARCHAR(50)], Prix unitaire [DECIMAL(10,2)] 7 | -------------------------------------------------------------------------------- /test/zoo/alt/exported/alt_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | CLIENT { 3 | TYPE Ref_client PK 4 | TYPE Nom 5 | TYPE Prenom 6 | TYPE Adresse 7 | TYPE Mail 8 | } 9 | FOO { 10 | TYPE foo PK 11 | TYPE bar 12 | TYPE biz 13 | TYPE buz 14 | TYPE qux 15 | TYPE quux 16 | } 17 | UTILISER { 18 | TYPE carnet PK 19 | TYPE projet PK 20 | TYPE technicien 21 | } -------------------------------------------------------------------------------- /test/zoo/complex/exported/complex_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [ENCLOS] ==M== 2 | [ENCLOS] ==N== 3 | [ESPÈCE] --1-- <> 4 | [ESPÈCE] --M-- 5 | [ESPÈCE] --N-- 6 | [ESPÈCE] ==N== 7 | [PÉRIODE] ==1== 8 | [[ANIMAL]] --1-- 9 | [[ANIMAL]] --N-- 10 | [[ANIMAL]] ==N== <> 11 | [[ANIMAL]] ==N== 12 | -------------------------------------------------------------------------------- /test/zoo/inheritance/exported/inheritance_0_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [CONSEQUAT] ==1== 2 | [CURABITUR] ==1== 3 | [DIGNISSIM] ==M== 4 | [LACUS] ==M== 5 | [LIBERO] ==N== 6 | [NEC] ==N== 7 | [QUAM] ==N== 8 | [SODALES] ==1== 9 | [SUSCIPIT] ==N== 10 | [TRISTIS] ==1== 11 | [TRISTIS] ==N== 12 | [TRISTIS] ==N== 13 | -------------------------------------------------------------------------------- /test/zoo/inheritance/exported/inheritance_1_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [CONSEQUAT] ==1== 2 | [CURABITUR] ==1== 3 | [DIGNISSIM] ==M== 4 | [LACUS] ==M== 5 | [LIBERO] ==N== 6 | [NEC] ==N== 7 | [QUAM] ==N== 8 | [SODALES] ==1== 9 | [SUSCIPIT] ==N== 10 | [TRISTIS] ==1== 11 | [TRISTIS] ==N== 12 | [TRISTIS] ==N== 13 | -------------------------------------------------------------------------------- /test/zoo/inheritance/exported/inheritance_2_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [CONSEQUAT] ==1== 2 | [CURABITUR] ==1== 3 | [DIGNISSIM] ==M== 4 | [LACUS] ==M== 5 | [LIBERO] ==N== 6 | [NEC] ==N== 7 | [QUAM] ==N== 8 | [SODALES] ==1== 9 | [SUSCIPIT] ==N== 10 | [TRISTIS] ==1== 11 | [TRISTIS] ==N== 12 | [TRISTIS] ==N== 13 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | % https://github.com/laowantong/mocodo/issues/118 2 | % Class table inheritance: all entities are preserved 3 | 4 | DF, _11 ENTITÉ 2_, 1N ENTITÉ 1_ 5 | ENTITÉ 1_: at 1 1 6 | 7 | ENTITÉ 2_: at 2 1, at 2 2 8 | /XT\ ENTITÉ 4_ -> ENTITÉ 1_, ENTITÉ 3_ 9 | ENTITÉ 3_: at 3 1, at 3 2, at 3 3 10 | 11 | ENTITÉ 4_: at 4 1, at 4 2, at 4 3, at 4 4 12 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/rewritten/triple_N11_0_rw_create_cifs.mcd: -------------------------------------------------------------------------------- 1 | Projet: projet 2 | Affecter, /1N Site, /1N Projet, 0N Employé 3 | Site: site 4 | 5 | Employé: employé 6 | 7 | -INVISIBLE_1, XX Projet, XX Projet 8 | -INVISIBLE_2, XX Site, XX Site 9 | 10 | (CIF) ..Affecter, ->Projet, --Employé, --Site: INVISIBLE_1, INVISIBLE_1 11 | (CIF) ..Affecter, ->Site, --Employé, --Projet: INVISIBLE_2, INVISIBLE_2 12 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/mld/triple_NN1_0_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | Gérer ingénieur ! primary_ex_foreign_key True Ingénieur Ingénieur Gérer 3 | Gérer projet ! primary_ex_foreign_key True Projet Projet Gérer 4 | Gérer responsable ! stopped_ex_foreign_key False Responsable Responsable Gérer 5 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | : 2 | MOLLIS, 1N> [via_mollis] LACUS, 11 NEC 3 | NEC: pulvinar, audis 4 | : 5 | 6 | LACUS: tempor, fugit 7 | /XT\ TRISTIS <- SODALES, NEC, LACUS: type 8 | TRISTIS: magna, vestibulum 9 | VITAE, 11 NEC, 1N> [via_vitae] SODALES 10 | 11 | : 12 | ULTRICES, 1N [sodales] SODALES, 1N [lacus] LACUS 13 | SODALES: convallis, ipsum 14 | : 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | : 2 | MOLLIS, 1N> [via_mollis] LACUS, 11 NEC 3 | NEC: pulvinar, audis 4 | : 5 | 6 | LACUS: tempor, fugit 7 | /XT\ TRISTIS -> SODALES, NEC, LACUS: type 8 | TRISTIS: magna, vestibulum 9 | VITAE, 11 NEC, 1N> [via_vitae] SODALES 10 | 11 | : 12 | ULTRICES, 1N [sodales] SODALES, 1N [lacus] LACUS 13 | SODALES: convallis, ipsum 14 | : 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | : 2 | MOLLIS, 1N> [via_mollis] LACUS, 11 NEC 3 | NEC: pulvinar, audis 4 | : 5 | 6 | LACUS: tempor, fugit 7 | /XT\ TRISTIS => SODALES, NEC, LACUS: type 8 | TRISTIS: magna, vestibulum 9 | VITAE, 11 NEC, 1N> [via_vitae] SODALES 10 | 11 | : 12 | ULTRICES, 1N [sodales] SODALES, 1N [lacus] LACUS 13 | SODALES: convallis, ipsum 14 | : 15 | -------------------------------------------------------------------------------- /test/zoo/basic/mld/basic_1_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | CLIENT: Réf. client, Nom, Prénom, Adresse 4 | ::::::: 5 | 6 | 7 | ::: 8 | COMMANDE: Num. commande, Date, Montant, #Réf. client > CLIENT > Réf. client 9 | ::: 10 | PRODUIT: Réf. produit, Libellé, Prix unitaire 11 | : 12 | 13 | 14 | ::::: 15 | INCLURE: #Num. commande > COMMANDE > Num. commande, _#Réf. produit > PRODUIT > Réf. produit, Quantité 16 | ::: 17 | -------------------------------------------------------------------------------- /test/zoo/gerund/mld/gerund_0_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | Ligne de commande commande ! strengthening_primary_ex_foreign_key True Commande Commande DF 3 | Ligne de commande produit ! strengthening_primary_ex_foreign_key True Produit Produit DF 4 | Ligne de commande quantité normal_attribute False 5 | -------------------------------------------------------------------------------- /test/zoo/inheritance/mld/inheritance_1_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "DIGNISSIM" -> "ALIQUET" 4 | "TRISTIS" -> "ALIQUET" 5 | "TRISTIS" -> "LACUS" 6 | "CURABITUR" -> "NEC" 7 | "TRISTIS" -> "NEC" 8 | "SODALES" -> "QUAM" 9 | "TRISTIS" -> "SODALES" 10 | "TRISTIS" -> "SUSCIPIT" 11 | "CONSEQUAT" -> "TRISTIS" 12 | "LACUS" -> "ULTRICES" 13 | "LIBERO" -> "ULTRICES" 14 | } 15 | -------------------------------------------------------------------------------- /test/zoo/split/exported/split_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | Bataille { 3 | TYPE nom_bataille PK 4 | TYPE lieu 5 | TYPE date 6 | } 7 | Villageois { 8 | TYPE nom_villageois PK 9 | TYPE adresse 10 | TYPE fonction 11 | } 12 | Trophee { 13 | TYPE numero PK 14 | TYPE type 15 | TYPE etat 16 | } 17 | Trophee }o--|| Villageois: Recolter 18 | Trophee }o--|| Bataille: Recolter -------------------------------------------------------------------------------- /test/zoo/triple_111/mld/triple_111_0_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | Utiliser carnet ! 1 primary_ex_foreign_key True Carnet Carnet Utiliser 3 | Utiliser projet ! 2 primary_ex_foreign_key True Projet Projet Utiliser 4 | Utiliser technicien ! 12 stopped_ex_foreign_key False Technicien Technicien Utiliser 5 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | CLIENT: Réf. client [VARCHAR(8)], Nom [VARCHAR(255)], Prénom [VARCHAR(255)], Adresse [VARCHAR(255)] 2 | PASSER, 0N> CLIENT, 11 COMMANDE 3 | COMMANDE: Num. commande [VARCHAR(8)], Date [DATE], Montant [DECIMAL(10,2)] 4 | INCLURE, 1N COMMANDE, 0N PRODUIT: Quantité [INTEGER] 5 | PRODUIT: Réf. produit [VARCHAR(8)], Libellé [VARCHAR(50)], Prix unitaire [DECIMAL(10,2)] 6 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | % https://github.com/laowantong/mocodo/issues/118 2 | % Single table inheritance: children are merged into the parent table 3 | 4 | DF, _11 ENTITÉ 2_, 1N ENTITÉ 1_ 5 | ENTITÉ 1_: at 1 1 6 | 7 | ENTITÉ 2_: at 2 1, at 2 2 8 | /XT\ ENTITÉ 4_ <- ENTITÉ 1_, ENTITÉ 3_ 9 | ENTITÉ 3_: at 3 1, at 3 2, at 3 3 10 | 11 | ENTITÉ 4_: at 4 1, at 4 2, at 4 3, at 4 4 12 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/mld/triple_NNN_0_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | Appliquer employé ! primary_ex_foreign_key True Employé Employé Appliquer 3 | Appliquer projet ! primary_ex_foreign_key True Projet Projet Appliquer 4 | Appliquer compétence ! primary_ex_foreign_key True Compétence Compétence Appliquer 5 | -------------------------------------------------------------------------------- /test/zoo/inheritance/mld/inheritance_5_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | ::::: 3 | NEC: magna, vestibulum, pulvinar, audis, #magna via_mollis > LACUS > magna, #magna via_vitae > SODALES > magna 4 | : 5 | 6 | 7 | : 8 | LACUS: magna, vestibulum, tempor, fugit 9 | ::::: 10 | 11 | 12 | ::: 13 | ULTRICES: #magna sodales > SODALES > magna, _#magna lacus > LACUS > magna 14 | : 15 | SODALES: magna, vestibulum, convallis, ipsum 16 | : 17 | -------------------------------------------------------------------------------- /test/zoo/weak/mld/weak_2_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | : 3 | Appartement: #code rue > Étage > code rue, _#num immeuble > Étage > num immeuble, _#num étage > Étage > num étage, _num appart., nb pièces 4 | : 5 | Étage: #code rue > Immeuble > code rue, _#num immeuble > Immeuble > num immeuble, _num étage, nb appartements 6 | : 7 | Immeuble: #code rue > Rue > code rue, _num immeuble, nb étages 8 | : 9 | Rue: code rue, nom rue 10 | : 11 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | : 2 | ASSOC 5_, 1N [rôle 1] ENTITÉ 2_, 11 ENTITÉ 1_ 3 | ENTITÉ 1_: at 1 1, at 1 2 4 | : 5 | 6 | ENTITÉ 2_: at 2 1, at 2 2 7 | /XT\ ENTITÉ 3_ <- ENTITÉ 4_, ENTITÉ 1_, ENTITÉ 2_: type 8 | ENTITÉ 3_: at 3 1, at 3 2 9 | ASSOC 6_, 11 ENTITÉ 1_, 1N [rôle 1] ENTITÉ 4_ 10 | 11 | : 12 | ASSOC 7_, 1N [rôle 1] ENTITÉ 4_, 1N [rôle 2] ENTITÉ 2_ 13 | ENTITÉ 4_: at 4 1, at 4 2 14 | : 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | : 2 | DF, _11 ULTRICES, 1N [sodales] SODALES 3 | SODALES: convallis, ipsum 4 | VITAE, 11 NEC, 1N [via_vitae] SODALES 5 | 6 | ULTRICES: 7 | TRISTIS: magna, vestibulum 8 | /XT\ TRISTIS <- SODALES, NEC, LACUS: type 9 | NEC: pulvinar, audis 10 | 11 | : 12 | DF, _11 ULTRICES, 1N [lacus] LACUS 13 | LACUS: tempor, fugit 14 | MOLLIS, 1N [via_mollis] LACUS, 11 NEC 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | : 2 | ASSOC 5_, 1N [rôle 1] ENTITÉ 2_, 11 ENTITÉ 1_ 3 | ENTITÉ 1_: at 1 1, at 1 2 4 | : 5 | 6 | ENTITÉ 2_: at 2 1, at 2 2 7 | /XT\ ENTITÉ 3_ -> ENTITÉ 4_, ENTITÉ 1_, ENTITÉ 2_: type 8 | ENTITÉ 3_: at 3 1, at 3 2 9 | ASSOC 6_, 11 ENTITÉ 1_, 1N [rôle 1] ENTITÉ 4_ 10 | 11 | : 12 | ASSOC 7_, 1N [rôle 1] ENTITÉ 4_, 1N [rôle 2] ENTITÉ 2_ 13 | ENTITÉ 4_: at 4 1, at 4 2 14 | : 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | : 2 | DF, _11 ULTRICES, 1N [sodales] SODALES 3 | SODALES: convallis, ipsum 4 | VITAE, 11 NEC, 1N [via_vitae] SODALES 5 | 6 | ULTRICES: 7 | TRISTIS: magna, vestibulum 8 | /XT\ TRISTIS -> SODALES, NEC, LACUS: type 9 | NEC: pulvinar, audis 10 | 11 | : 12 | DF, _11 ULTRICES, 1N [lacus] LACUS 13 | LACUS: tempor, fugit 14 | MOLLIS, 1N [via_mollis] LACUS, 11 NEC 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_drown.mcd: -------------------------------------------------------------------------------- 1 | : 2 | ASSOC 5_, 1N [rôle 1] ENTITÉ 2_, 11 ENTITÉ 1_ 3 | ENTITÉ 1_: at 1 1, at 1 2 4 | : 5 | 6 | ENTITÉ 2_: at 2 1, at 2 2 7 | /XT\ ENTITÉ 3_ => ENTITÉ 4_, ENTITÉ 1_, ENTITÉ 2_: type 8 | ENTITÉ 3_: at 3 1, at 3 2 9 | ASSOC 6_, 11 ENTITÉ 1_, 1N [rôle 1] ENTITÉ 4_ 10 | 11 | : 12 | ASSOC 7_, 1N [rôle 1] ENTITÉ 4_, 1N [rôle 2] ENTITÉ 2_ 13 | ENTITÉ 4_: at 4 1, at 4 2 14 | : 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | : 2 | DF, _11 ULTRICES, 1N [sodales] SODALES 3 | SODALES: convallis, ipsum 4 | VITAE, 11 NEC, 1N [via_vitae] SODALES 5 | 6 | ULTRICES: 7 | TRISTIS: magna, vestibulum 8 | /XT\ TRISTIS => SODALES, NEC, LACUS: type 9 | NEC: pulvinar, audis 10 | 11 | : 12 | DF, _11 ULTRICES, 1N [lacus] LACUS 13 | LACUS: tempor, fugit 14 | MOLLIS, 1N [via_mollis] LACUS, 11 NEC 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/exported/inheritance_3_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | NEC { 3 | TYPE pulvinar PK 4 | TYPE audis 5 | } 6 | LACUS { 7 | TYPE tempor PK 8 | TYPE fugit 9 | } 10 | TRISTIS { 11 | TYPE magna PK 12 | TYPE vestibulum 13 | } 14 | SODALES { 15 | TYPE convallis PK 16 | TYPE ipsum 17 | } 18 | LACUS ||--|{ NEC: MOLLIS 19 | NEC }|--|| SODALES: VITAE 20 | SODALES }|--|{ LACUS: ULTRICES -------------------------------------------------------------------------------- /test/zoo/inheritance/exported/inheritance_4_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | NEC { 3 | TYPE pulvinar PK 4 | TYPE audis 5 | } 6 | LACUS { 7 | TYPE tempor PK 8 | TYPE fugit 9 | } 10 | TRISTIS { 11 | TYPE magna PK 12 | TYPE vestibulum 13 | } 14 | SODALES { 15 | TYPE convallis PK 16 | TYPE ipsum 17 | } 18 | LACUS ||--|{ NEC: MOLLIS 19 | NEC }|--|| SODALES: VITAE 20 | SODALES }|--|{ LACUS: ULTRICES -------------------------------------------------------------------------------- /test/zoo/inheritance/exported/inheritance_5_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | NEC { 3 | TYPE pulvinar PK 4 | TYPE audis 5 | } 6 | LACUS { 7 | TYPE tempor PK 8 | TYPE fugit 9 | } 10 | TRISTIS { 11 | TYPE magna PK 12 | TYPE vestibulum 13 | } 14 | SODALES { 15 | TYPE convallis PK 16 | TYPE ipsum 17 | } 18 | LACUS ||--|{ NEC: MOLLIS 19 | NEC }|--|| SODALES: VITAE 20 | SODALES }|--|{ LACUS: ULTRICES -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_3_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | : 2 | DF, 11 ULTRICES, 1N [sodales] SODALES 3 | SODALES: convallis, ipsum 4 | VITAE, 11 NEC, 1N [via_vitae] SODALES 5 | 6 | ULTRICES: id. ultrices 7 | TRISTIS: magna, vestibulum 8 | /XT\ TRISTIS <- SODALES, NEC, LACUS: type 9 | NEC: pulvinar, audis 10 | 11 | : 12 | DF, 11 ULTRICES, 1N [lacus] LACUS 13 | LACUS: tempor, fugit 14 | MOLLIS, 1N [via_mollis] LACUS, 11 NEC 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_4_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | : 2 | DF, 11 ULTRICES, 1N [sodales] SODALES 3 | SODALES: convallis, ipsum 4 | VITAE, 11 NEC, 1N [via_vitae] SODALES 5 | 6 | ULTRICES: id. ultrices 7 | TRISTIS: magna, vestibulum 8 | /XT\ TRISTIS -> SODALES, NEC, LACUS: type 9 | NEC: pulvinar, audis 10 | 11 | : 12 | DF, 11 ULTRICES, 1N [lacus] LACUS 13 | LACUS: tempor, fugit 14 | MOLLIS, 1N [via_mollis] LACUS, 11 NEC 15 | -------------------------------------------------------------------------------- /test/zoo/inheritance/rewritten/inheritance_5_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | : 2 | DF, 11 ULTRICES, 1N [sodales] SODALES 3 | SODALES: convallis, ipsum 4 | VITAE, 11 NEC, 1N [via_vitae] SODALES 5 | 6 | ULTRICES: id. ultrices 7 | TRISTIS: magna, vestibulum 8 | /XT\ TRISTIS => SODALES, NEC, LACUS: type 9 | NEC: pulvinar, audis 10 | 11 | : 12 | DF, 11 ULTRICES, 1N [lacus] LACUS 13 | LACUS: tempor, fugit 14 | MOLLIS, 1N [via_mollis] LACUS, 11 NEC 15 | -------------------------------------------------------------------------------- /test/test_data/templates/expected_child.yaml: -------------------------------------------------------------------------------- 1 | foo: 'bar' 2 | buzz: 'updated value' 3 | baz: 4 | - order: 5 5 | foo: 'insert_before' 6 | - order: 10 7 | qux: 'updated value' 8 | unchanged: 'unchanged' 9 | quux: 'new_item' 10 | - order: 15 11 | foo: 'insert_between' 12 | - order: 30 13 | qux: 'quux' 14 | - order: 35 15 | foo: 'insert_after' 16 | empty: 17 | force_empty_list: 18 | unchanged: 'unchanged' 19 | -------------------------------------------------------------------------------- /test/zoo/landing/mld/landing_dependencies.gv: -------------------------------------------------------------------------------- 1 | digraph { 2 | node [shape=box] 3 | "EMPLOYÉ" -> "AYANT-DROIT" 4 | "PIÈCE" -> "COMPOSER" 5 | "DÉPARTEMENT" -> "EMPLOYÉ" 6 | "SOCIÉTÉ" -> "FOURNIR" 7 | "PIÈCE" -> "FOURNIR" 8 | "PROJET" -> "FOURNIR" 9 | "EMPLOYÉ" -> "PROJET" 10 | "PIÈCE" -> "REQUÉRIR" 11 | "PROJET" -> "REQUÉRIR" 12 | "SOCIÉTÉ" -> "SOCIÉTÉ" 13 | "PROJET" -> "TRAVAILLER" 14 | "EMPLOYÉ" -> "TRAVAILLER" 15 | } 16 | -------------------------------------------------------------------------------- /test/zoo/weak/ddl/weak_1_ddl.d2: -------------------------------------------------------------------------------- 1 | "Exemplaire": { shape: sql_table 2 | "œuvre": VARCHAR(42) {constraint: [PK; FK]} 3 | "exemplaire": VARCHAR(42) {constraint: PK} 4 | "nb pages": VARCHAR(42) 5 | "date achat": VARCHAR(42) 6 | "foobar": VARCHAR(42) 7 | } 8 | 9 | "Œuvre": { shape: sql_table 10 | "œuvre": VARCHAR(42) {constraint: PK} 11 | "auteur": VARCHAR(42) 12 | } 13 | 14 | "Exemplaire"."œuvre" -> "Œuvre"."œuvre" 15 | -------------------------------------------------------------------------------- /test/zoo/weak/exported/weak_1_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "weak" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Œuvre") { 7 | {field} + pk(œuvre) 8 | {field} + auteur 9 | } 10 | 11 | "Œuvre" "1" *-- "*" "Exemplaire" 12 | 13 | Table("Exemplaire") { 14 | {field} + pk(exemplaire) 15 | {field} + nb pages 16 | {field} + date achat 17 | {field} + foobar 18 | } 19 | 20 | @enduml 21 | -------------------------------------------------------------------------------- /test/zoo/protected/exported/protected_0_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "protected" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Agence") { 7 | {field} + pk(id. agence) 8 | {field} + nom agence 9 | } 10 | 11 | "Direction régionale" "1..*" --- "1..*" "Agence": "Superviser" 12 | 13 | Table("Direction régionale") { 14 | {field} + pk(id. dir.) 15 | {field} + nom dir. 16 | } 17 | 18 | @enduml 19 | -------------------------------------------------------------------------------- /test/zoo/reflexive/exported/reflexive_0_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "reflexive" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("PIÈCE") { 7 | {field} + pk(pièce) 8 | } 9 | 10 | "PIÈCE" "*" --- "*" "PIÈCE": "COMPOSER" 11 | 12 | Table("HOMME") { 13 | {field} + pk(Num. SS) 14 | {field} + Nom 15 | {field} + Prénom 16 | } 17 | 18 | "HOMME" "1..*" --- "*" "HOMME": "ENGENDRER" 19 | 20 | @enduml 21 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/_strong_child_2.mcd: -------------------------------------------------------------------------------- 1 | % https://github.com/laowantong/mocodo/issues/118 2 | % Concrete table inheritance: parent disappears 3 | 4 | DF, _11 CONTRAT, 1N VACATAIRE 5 | VACATAIRE: statut vacataire 6 | 7 | CONTRAT: date contrat, salaire horaire contrat 8 | /XT\ PROFESSEUR => VACATAIRE, SALARIÉ 9 | SALARIÉ: date embauche salarié, échelon salarié, salaire salarié 10 | 11 | PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof 12 | -------------------------------------------------------------------------------- /test/zoo/weak/ddl/weak_1_ddl.dbml: -------------------------------------------------------------------------------- 1 | Table "Exemplaire" { 2 | "œuvre" VARCHAR(42) [NOT NULL] 3 | "exemplaire" VARCHAR(42) [NOT NULL] 4 | "nb pages" VARCHAR(42) 5 | "date achat" VARCHAR(42) 6 | "foobar" VARCHAR(42) 7 | Indexes { 8 | ("œuvre", "exemplaire") [pk] 9 | } 10 | } 11 | 12 | Table "Œuvre" { 13 | "œuvre" VARCHAR(42) [pk, NOT NULL] 14 | "auteur" VARCHAR(42) 15 | } 16 | 17 | Ref:"Exemplaire"."œuvre" > "Œuvre"."œuvre" 18 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/_strong_child_0.mcd: -------------------------------------------------------------------------------- 1 | % https://github.com/laowantong/mocodo/issues/118 2 | % Class table inheritance: all entities are preserved 3 | 4 | DF, _11 CONTRAT, 1N VACATAIRE 5 | VACATAIRE: statut vacataire 6 | 7 | CONTRAT: date contrat, salaire horaire contrat 8 | /XT\ PROFESSEUR -> VACATAIRE, SALARIÉ 9 | SALARIÉ: date embauche salarié, échelon salarié, salaire salarié 10 | 11 | PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof 12 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/mld/strong_child_0_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | ::: 3 | VACATAIRE: #num prof > PROFESSEUR > num prof, statut vacataire 4 | ::: 5 | 6 | 7 | : 8 | CONTRAT: #num prof > VACATAIRE > num prof, _date contrat, salaire horaire contrat 9 | ::: 10 | SALARIÉ: #num prof > PROFESSEUR > num prof, date embauche salarié, échelon salarié, salaire salarié 11 | : 12 | 13 | 14 | ::: 15 | PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof 16 | ::: 17 | -------------------------------------------------------------------------------- /test/zoo/reflexive/ddl/reflexive_0_ddl.d2: -------------------------------------------------------------------------------- 1 | "COMPOSER": { shape: sql_table 2 | "pièce composante": VARCHAR(42) {constraint: PK} 3 | "pièce composée": VARCHAR(42) {constraint: PK} 4 | } 5 | 6 | "HOMME": { shape: sql_table 7 | "Num. SS": VARCHAR(42) {constraint: PK} 8 | "Nom": VARCHAR(42) 9 | "Prénom": VARCHAR(42) 10 | "Num. SS père": VARCHAR(42) {constraint: [FK; "NULL"]} 11 | } 12 | 13 | "HOMME"."Num. SS père" -> "HOMME"."Num. SS" 14 | -------------------------------------------------------------------------------- /test/zoo/ternary_unicity/exported/ternary_unicity_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | Voilier { 3 | TYPE voilier PK 4 | } 5 | Disponibilite { 6 | } 7 | Semaine { 8 | TYPE semaine PK 9 | TYPE date_debut 10 | } 11 | Reservation { 12 | TYPE id_resa PK 13 | TYPE num_resa 14 | TYPE arrhes 15 | TYPE date_reservation 16 | } 17 | Disponibilite }|..|| Voilier: DF 18 | Disponibilite }|..|| Semaine: DF 19 | Reservation |o--|| Disponibilite: DF -------------------------------------------------------------------------------- /test/zoo/weak/exported/weak_2_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | Appartement { 3 | TYPE num_appart PK 4 | TYPE nb_pieces 5 | } 6 | Etage { 7 | TYPE num_etage PK 8 | TYPE nb_appartements 9 | } 10 | Immeuble { 11 | TYPE num_immeuble PK 12 | TYPE nb_etages 13 | } 14 | Rue { 15 | TYPE code_rue PK 16 | TYPE nom_rue 17 | } 18 | Etage ||..o{ Appartement: Composer 19 | Immeuble ||..|{ Etage: Appartenir 20 | Rue ||..o{ Immeuble: Se_situer -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/_strong_child_1.mcd: -------------------------------------------------------------------------------- 1 | % https://github.com/laowantong/mocodo/issues/118 2 | % Single table inheritance: children are merged into the parent table 3 | 4 | DF, _11 CONTRAT, 1N VACATAIRE 5 | VACATAIRE: statut vacataire 6 | 7 | CONTRAT: date contrat, salaire horaire contrat 8 | /XT\ PROFESSEUR <- VACATAIRE, SALARIÉ 9 | SALARIÉ: date embauche salarié, échelon salarié, salaire salarié 10 | 11 | PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof 12 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/exported/triple_N11_0_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "triple_N11" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Projet") { 7 | {field} + pk(projet) 8 | } 9 | 10 | diamond N_ARY_0 11 | N_ARY_0 -- "1" "Site" 12 | N_ARY_0 -- "1" "Projet" 13 | N_ARY_0 -- "*" "Employé" 14 | 15 | Table("Site") { 16 | {field} + pk(site) 17 | } 18 | 19 | Table("Employé") { 20 | {field} + pk(employé) 21 | } 22 | 23 | @enduml 24 | -------------------------------------------------------------------------------- /test/zoo/weak/ddl/weak_1_ddl.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE EXEMPLAIRE ( 2 | PRIMARY KEY (oeuvre, exemplaire), 3 | oeuvre VARCHAR(42) NOT NULL, 4 | exemplaire VARCHAR(42) NOT NULL, 5 | nb_pages INTEGER, 6 | date_achat DATE, 7 | foobar VARCHAR(42) 8 | ); 9 | 10 | CREATE TABLE OEUVRE ( 11 | PRIMARY KEY (oeuvre), 12 | oeuvre VARCHAR(42) NOT NULL, 13 | auteur VARCHAR(42) 14 | ); 15 | 16 | ALTER TABLE EXEMPLAIRE ADD FOREIGN KEY (oeuvre) REFERENCES OEUVRE (oeuvre); 17 | -------------------------------------------------------------------------------- /test/zoo/gerund/exported/gerund_0_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "gerund" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Produit") { 7 | {field} + pk(produit) 8 | } 9 | 10 | "Ligne de commande" "*" --* "1" "Produit" 11 | 12 | Table("Ligne de commande") { 13 | {field} + pk(quantité) 14 | } 15 | 16 | "Ligne de commande" "1..*" --* "1" "Commande" 17 | 18 | Table("Commande") { 19 | {field} + pk(commande) 20 | } 21 | 22 | @enduml 23 | -------------------------------------------------------------------------------- /test/zoo/inheritance/mld/inheritance_4_mld.mcd: -------------------------------------------------------------------------------- 1 | %%mocodo 2 | ::::: 3 | NEC: #magna > TRISTIS > magna, pulvinar, audis, #magna via_mollis > LACUS > magna, #magna via_vitae > SODALES > magna 4 | : 5 | 6 | 7 | : 8 | LACUS: #magna > TRISTIS > magna, tempor, fugit 9 | ::: 10 | TRISTIS: magna, vestibulum, type 11 | : 12 | 13 | 14 | ::: 15 | ULTRICES: #magna sodales > SODALES > magna, _#magna lacus > LACUS > magna 16 | : 17 | SODALES: #magna > TRISTIS > magna, convallis, ipsum 18 | : 19 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_2_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % https://github.com/laowantong/mocodo/issues/118 2 | % Concrete table inheritance: parent disappears 3 | 4 | DF, _11 CONTRAT, 1N> VACATAIRE 5 | VACATAIRE: statut vacataire 6 | 7 | CONTRAT: date contrat, salaire horaire contrat 8 | /XT\ PROFESSEUR => VACATAIRE, SALARIÉ 9 | SALARIÉ: date embauche salarié, échelon salarié, salaire salarié 10 | 11 | PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof 12 | -------------------------------------------------------------------------------- /test/zoo/reflexive/ddl/reflexive_0_ddl.dbml: -------------------------------------------------------------------------------- 1 | Table "COMPOSER" { 2 | "pièce composante" VARCHAR(42) [NOT NULL] 3 | "pièce composée" VARCHAR(42) [NOT NULL] 4 | Indexes { 5 | ("pièce composante", "pièce composée") [pk] 6 | } 7 | } 8 | 9 | Table "HOMME" { 10 | "Num. SS" VARCHAR(42) [pk, NOT NULL] 11 | "Nom" VARCHAR(42) 12 | "Prénom" VARCHAR(42) 13 | "Num. SS père" VARCHAR(42) ["NULL"] 14 | } 15 | 16 | Ref:"HOMME"."Num. SS père" > "HOMME"."Num. SS" 17 | -------------------------------------------------------------------------------- /test/zoo/triple_111/exported/triple_111_0_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "triple_111" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Technicien") { 7 | {field} + pk(technicien) 8 | } 9 | 10 | diamond N_ARY_0 11 | N_ARY_0 -- "1" "Technicien" 12 | N_ARY_0 -- "1" "Carnet" 13 | N_ARY_0 -- "1" "Projet" 14 | 15 | Table("Projet") { 16 | {field} + pk(projet) 17 | } 18 | 19 | Table("Carnet") { 20 | {field} + pk(carnet) 21 | } 22 | 23 | @enduml 24 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_0_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % https://github.com/laowantong/mocodo/issues/118 2 | % Class table inheritance: all entities are preserved 3 | 4 | DF, _11 CONTRAT, 1N> VACATAIRE 5 | VACATAIRE: statut vacataire 6 | 7 | CONTRAT: date contrat, salaire horaire contrat 8 | /XT\ PROFESSEUR -> VACATAIRE, SALARIÉ 9 | SALARIÉ: date embauche salarié, échelon salarié, salaire salarié 10 | 11 | PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof 12 | -------------------------------------------------------------------------------- /test/zoo/triple_NNN/exported/triple_NNN_0_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "triple_NNN" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Employé") { 7 | {field} + pk(employé) 8 | } 9 | 10 | diamond N_ARY_0 11 | N_ARY_0 -- "*" "Employé" 12 | N_ARY_0 -- "1..*" "Projet" 13 | N_ARY_0 -- "1..*" "Compétence" 14 | 15 | Table("Projet") { 16 | {field} + pk(projet) 17 | } 18 | 19 | Table("Compétence") { 20 | {field} + pk(compétence) 21 | } 22 | 23 | @enduml 24 | -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/exported/strong_child_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | VACATAIRE { 3 | TYPE statut_vacataire PK 4 | } 5 | CONTRAT { 6 | TYPE date_contrat PK 7 | TYPE salaire_horaire_contrat 8 | } 9 | SALARIE { 10 | TYPE date_embauche_salarie PK 11 | TYPE echelon_salarie 12 | TYPE salaire_salarie 13 | } 14 | PROFESSEUR { 15 | TYPE num_prof PK 16 | TYPE nom_prof 17 | TYPE prenom_prof 18 | TYPE telephone_prof 19 | } 20 | CONTRAT }|..|| VACATAIRE: DF -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/exported/strong_child_1_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | VACATAIRE { 3 | TYPE statut_vacataire PK 4 | } 5 | CONTRAT { 6 | TYPE date_contrat PK 7 | TYPE salaire_horaire_contrat 8 | } 9 | SALARIE { 10 | TYPE date_embauche_salarie PK 11 | TYPE echelon_salarie 12 | TYPE salaire_salarie 13 | } 14 | PROFESSEUR { 15 | TYPE num_prof PK 16 | TYPE nom_prof 17 | TYPE prenom_prof 18 | TYPE telephone_prof 19 | } 20 | CONTRAT }|..|| VACATAIRE: DF -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/exported/strong_child_2_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | VACATAIRE { 3 | TYPE statut_vacataire PK 4 | } 5 | CONTRAT { 6 | TYPE date_contrat PK 7 | TYPE salaire_horaire_contrat 8 | } 9 | SALARIE { 10 | TYPE date_embauche_salarie PK 11 | TYPE echelon_salarie 12 | TYPE salaire_salarie 13 | } 14 | PROFESSEUR { 15 | TYPE num_prof PK 16 | TYPE nom_prof 17 | TYPE prenom_prof 18 | TYPE telephone_prof 19 | } 20 | CONTRAT }|..|| VACATAIRE: DF -------------------------------------------------------------------------------- /test/zoo/reflexive/ddl/reflexive_0_ddl.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE COMPOSER ( 2 | PRIMARY KEY (piece_composante, piece_composee), 3 | piece_composante VARCHAR(42) NOT NULL, 4 | piece_composee VARCHAR(42) NOT NULL 5 | ); 6 | 7 | CREATE TABLE HOMME ( 8 | PRIMARY KEY (num_ss), 9 | num_ss VARCHAR(8) NOT NULL, 10 | nom VARCHAR(255), 11 | prenom VARCHAR(255), 12 | num_ss_pere VARCHAR(8) NULL 13 | ); 14 | 15 | ALTER TABLE HOMME ADD FOREIGN KEY (num_ss_pere) REFERENCES HOMME (num_ss); 16 | -------------------------------------------------------------------------------- /test/zoo/basic/exported/basic_0_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | CLIENT { 3 | TYPE Ref_client PK 4 | TYPE Nom 5 | TYPE Prenom 6 | TYPE Adresse 7 | } 8 | COMMANDE { 9 | TYPE Num_commande PK 10 | TYPE Date 11 | TYPE Montant 12 | } 13 | INCLURE { 14 | TYPE Quantite PK 15 | } 16 | PRODUIT { 17 | TYPE Ref_produit PK 18 | TYPE Libelle 19 | TYPE Prix_unitaire 20 | } 21 | CLIENT ||--o{ COMMANDE: DF 22 | INCLURE }|..|| COMMANDE: DF 23 | INCLURE }o..|| PRODUIT: DF -------------------------------------------------------------------------------- /test/zoo/basic/exported/basic_1_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | CLIENT { 3 | TYPE Ref_client PK 4 | TYPE Nom 5 | TYPE Prenom 6 | TYPE Adresse 7 | } 8 | COMMANDE { 9 | TYPE Num_commande PK 10 | TYPE Date 11 | TYPE Montant 12 | } 13 | PRODUIT { 14 | TYPE Ref_produit PK 15 | TYPE Libelle 16 | TYPE Prix_unitaire 17 | } 18 | INCLURE { 19 | TYPE Quantite PK 20 | } 21 | CLIENT ||--o{ COMMANDE: DF 22 | INCLURE }|..|| COMMANDE: DF 23 | INCLURE }o..|| PRODUIT: DF -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_explode_arity=2,weak.mcd: -------------------------------------------------------------------------------- 1 | PASSER, 0N CLIENT, 11 COMMANDE 2 | COMMANDE: Num. commande [VARCHAR(8)], Date [DATE], Montant [DECIMAL(10,2)] 3 | DF, _11 INCLURE, 1N COMMANDE 4 | : 5 | 6 | CLIENT: Réf. client [VARCHAR(8)], Nom [VARCHAR(255)], Prénom [VARCHAR(255)], Adresse [VARCHAR(255)] 7 | : 8 | INCLURE: _Quantité [INTEGER] 9 | DF, _11 INCLURE, 0N PRODUIT 10 | 11 | : 12 | : 13 | : 14 | PRODUIT: Réf. produit [VARCHAR(8)], Libellé [VARCHAR(50)], Prix unitaire [DECIMAL(10,2)] 15 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_explode_arity=2.5,weak.mcd: -------------------------------------------------------------------------------- 1 | PASSER, 0N CLIENT, 11 COMMANDE 2 | COMMANDE: Num. commande [VARCHAR(8)], Date [DATE], Montant [DECIMAL(10,2)] 3 | DF, _11 INCLURE, 1N COMMANDE 4 | : 5 | 6 | CLIENT: Réf. client [VARCHAR(8)], Nom [VARCHAR(255)], Prénom [VARCHAR(255)], Adresse [VARCHAR(255)] 7 | : 8 | INCLURE: _Quantité [INTEGER] 9 | DF, _11 INCLURE, 0N PRODUIT 10 | 11 | : 12 | : 13 | : 14 | PRODUIT: Réf. produit [VARCHAR(8)], Libellé [VARCHAR(50)], Prix unitaire [DECIMAL(10,2)] 15 | -------------------------------------------------------------------------------- /test/zoo/triple_NN1/exported/triple_NN1_0_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "triple_NN1" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Ingénieur") { 7 | {field} + pk(ingénieur) 8 | } 9 | 10 | diamond N_ARY_0 11 | N_ARY_0 -- "1" "Responsable" 12 | N_ARY_0 -- "1..*" "Ingénieur" 13 | N_ARY_0 -- "1..*" "Projet" 14 | 15 | Table("Projet") { 16 | {field} + pk(projet) 17 | } 18 | 19 | Table("Responsable") { 20 | {field} + pk(responsable) 21 | } 22 | 23 | @enduml 24 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_explode_arity=2.5.mcd: -------------------------------------------------------------------------------- 1 | PASSER, 0N CLIENT, 11 COMMANDE 2 | COMMANDE: Num. commande [VARCHAR(8)], Date [DATE], Montant [DECIMAL(10,2)] 3 | DF, 11 INCLURE, 1N COMMANDE 4 | : 5 | 6 | CLIENT: Réf. client [VARCHAR(8)], Nom [VARCHAR(255)], Prénom [VARCHAR(255)], Adresse [VARCHAR(255)] 7 | : 8 | INCLURE: id. inclure, Quantité [INTEGER] 9 | DF, 11 INCLURE, 0N PRODUIT 10 | 11 | : 12 | : 13 | : 14 | PRODUIT: Réf. produit [VARCHAR(8)], Libellé [VARCHAR(50)], Prix unitaire [DECIMAL(10,2)] 15 | -------------------------------------------------------------------------------- /test/zoo/basic/rewritten/basic_2_rw_explode_arity=2.mcd: -------------------------------------------------------------------------------- 1 | PASSER, 0N CLIENT, 11 COMMANDE 2 | COMMANDE: Num. commande [VARCHAR(8)], Date [DATE], Montant [DECIMAL(10,2)] 3 | DF, 11 INCLURE, 1N COMMANDE 4 | : 5 | 6 | CLIENT: Réf. client [VARCHAR(8)], Nom [VARCHAR(255)], Prénom [VARCHAR(255)], Adresse [VARCHAR(255)] 7 | : 8 | INCLURE: id. inclure, Quantité [INTEGER] 9 | DF, 11 INCLURE, 0N PRODUIT 10 | 11 | : 12 | : 13 | : 14 | PRODUIT: Réf. produit [VARCHAR(8)], Libellé [VARCHAR(50)], Prix unitaire [DECIMAL(10,2)] 15 | -------------------------------------------------------------------------------- /test/zoo/drain/exported/drain_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | Entreprise { 3 | TYPE nom_entreprise PK 4 | TYPE adresse 5 | TYPE telephone 6 | } 7 | Stage { 8 | TYPE num_stage PK 9 | TYPE sujet 10 | TYPE date_proposition 11 | } 12 | Etudiant { 13 | TYPE num_etudiant PK 14 | TYPE nom 15 | TYPE date_signature 16 | } 17 | Date { 18 | TYPE date PK 19 | } 20 | Entreprise ||--o{ Stage: Proposer 21 | Etudiant |o--|| Stage: Attribuer 22 | Etudiant }o--o| Date: Soutenir -------------------------------------------------------------------------------- /test/zoo/inheritance_weak/rewritten/strong_child_1_rw_create_df_arrows=across.mcd: -------------------------------------------------------------------------------- 1 | % https://github.com/laowantong/mocodo/issues/118 2 | % Single table inheritance: children are merged into the parent table 3 | 4 | DF, _11 CONTRAT, 1N> VACATAIRE 5 | VACATAIRE: statut vacataire 6 | 7 | CONTRAT: date contrat, salaire horaire contrat 8 | /XT\ PROFESSEUR <- VACATAIRE, SALARIÉ 9 | SALARIÉ: date embauche salarié, échelon salarié, salaire salarié 10 | 11 | PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof 12 | -------------------------------------------------------------------------------- /test/zoo/protected/ddl/protected_0_ddl.dbml: -------------------------------------------------------------------------------- 1 | Table "Agence" { 2 | "id. agence" VARCHAR(42) [pk, NOT NULL] 3 | "nom agence" VARCHAR(42) 4 | } 5 | 6 | Table "Direction régionale" { 7 | "id. dir." VARCHAR(42) [pk, NOT NULL] 8 | "nom dir." VARCHAR(42) 9 | } 10 | 11 | Table "Superviser" { 12 | "id. agence" VARCHAR(42) [pk, NOT NULL] 13 | "id. dir." VARCHAR(42) [NOT NULL] 14 | } 15 | 16 | Ref:"Superviser"."id. agence" > "Agence"."id. agence" 17 | Ref:"Superviser"."id. dir." > "Direction régionale"."id. dir." 18 | -------------------------------------------------------------------------------- /mocodo/__init__.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from importlib import import_module 3 | 4 | __version__ = "4.3.3" 5 | SCRIPT_DIRECTORY = Path(__file__).resolve().parent 6 | 7 | 8 | def load_ipython_extension(ipython): 9 | # This function is called when the extension is loaded in a notebook 10 | # with %load_ext mocodo or %reload_ext mocodo. 11 | mocodo = import_module("mocodo.magic").mocodo 12 | ipython.register_magic_function(mocodo, 'line_cell', 'mocodo') 13 | print(f"Mocodo {__version__} loaded.") 14 | -------------------------------------------------------------------------------- /test/zoo/gerund/exported/gerund_1_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "gerund" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Produit") { 7 | {field} + pk(produit) 8 | {field} + libellé 9 | } 10 | 11 | "Ligne de commande" "*" --* "1" "Produit" 12 | 13 | Table("Ligne de commande") { 14 | {field} + pk(quantité) 15 | } 16 | 17 | "Ligne de commande" "1..*" --* "1" "Commande" 18 | 19 | Table("Commande") { 20 | {field} + pk(commande) 21 | {field} + date 22 | } 23 | 24 | @enduml 25 | -------------------------------------------------------------------------------- /test/zoo/reflexive/mld/reflexive_0_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | COMPOSER pièce ! primary_ex_foreign_key True PIÈCE PIÈCE COMPOSER composante 3 | COMPOSER pièce ! primary_ex_foreign_key True PIÈCE PIÈCE COMPOSER composée 4 | HOMME Num. SS ! primary_key True 5 | HOMME Nom normal_attribute False 6 | HOMME Prénom normal_attribute False 7 | HOMME Num. SS ? foreign_key False HOMME HOMME ENGENDRER père 8 | -------------------------------------------------------------------------------- /test/zoo/weak/mld/weak_1_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | Exemplaire œuvre ! strengthening_primary_foreign_key True Œuvre Œuvre DF 3 | Exemplaire exemplaire ! primary_key True 4 | Exemplaire nb pages normal_attribute False 5 | Exemplaire date achat normal_attribute False 6 | Exemplaire foobar outer_attribute False DF 7 | Œuvre œuvre ! primary_key True 8 | Œuvre auteur normal_attribute False 9 | -------------------------------------------------------------------------------- /web/purge.php: -------------------------------------------------------------------------------- 1 | 24*60*60)) { 8 | $files2 = glob("{$file}/*"); 9 | foreach ($files2 as $file2) { 10 | if (is_file($file2)) { 11 | unlink($file2); 12 | }; 13 | }; 14 | rmdir($file); 15 | }; 16 | }; 17 | }; 18 | ?> 19 | -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/diagram.yaml: -------------------------------------------------------------------------------- 1 | help_en: 'convert the conceptual model into a relational diagram in Mocodo syntax' 2 | help_fr: 'convertit le modèle conceptuel en un diagramme relationnel au format Mocodo' 3 | help_zh: '将概念模型转换为 Mocodo 格式的关系图' 4 | fr_examples: 5 | - order: 1 6 | example: 'diagram' 7 | explanation: 'version de base' 8 | - order: 2 9 | example: 'diagram:c' 10 | explanation: 'avec contraintes d''unicité et d''optionalité' 11 | parent: 'diagram-c' 12 | add_optionality_constraints: 13 | -------------------------------------------------------------------------------- /test/zoo/triple_111/exported/triple_111_1_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "triple_111" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Technicien") { 7 | {field} + pk(technicien) 8 | {field} + nom technicien 9 | } 10 | 11 | diamond N_ARY_0 12 | N_ARY_0 -- "1" "Technicien" 13 | N_ARY_0 -- "1" "Carnet" 14 | N_ARY_0 -- "1" "Projet" 15 | 16 | Table("Projet") { 17 | {field} + pk(projet) 18 | {field} + libellé 19 | } 20 | 21 | Table("Carnet") { 22 | {field} + pk(carnet) 23 | } 24 | 25 | @enduml 26 | -------------------------------------------------------------------------------- /test/test_data/templates/expected_grandchild.yaml: -------------------------------------------------------------------------------- 1 | foo: 'bar' 2 | buzz: 'reupdated_value' 3 | baz: 4 | - order: 1 5 | name: 'foo' 6 | - order: 10 7 | qux: 'updated value' 8 | unchanged: 'unchanged' 9 | quux: 'new_item' 10 | - order: 15 11 | foo: 'insert_between' 12 | - order: 20 13 | name: 'bar' 14 | - order: 30 15 | qux: 'quux' 16 | empty: 17 | force_empty_list: 18 | unchanged: 'unchanged' 19 | biz: 20 | - order: 1 21 | foo: 'bar' 22 | baz: 'qux' 23 | - order: 2 24 | foo: 'bar' 25 | baz: 'qux' 26 | -------------------------------------------------------------------------------- /test/zoo/triple_N11/exported/triple_N11_1_uml.puml: -------------------------------------------------------------------------------- 1 | @startuml "triple_N11" 2 | 3 | !define Table(x) class "x" << (T,#FFFFFF) >> 4 | !define pk(x) x 5 | 6 | Table("Projet") { 7 | {field} + pk(projet) 8 | {field} + libellé 9 | } 10 | 11 | diamond N_ARY_0 12 | N_ARY_0 -- "1" "Site" 13 | N_ARY_0 -- "1" "Projet" 14 | N_ARY_0 -- "*" "Employé" 15 | 16 | Table("Site") { 17 | {field} + pk(site) 18 | {field} + position 19 | } 20 | 21 | Table("Employé") { 22 | {field} + pk(employé) 23 | {field} + nom employé 24 | } 25 | 26 | @enduml 27 | -------------------------------------------------------------------------------- /test/zoo/landing/exported/landing_erd_chen.txt: -------------------------------------------------------------------------------- 1 | [DÉPARTEMENT] ==1== 2 | [EMPLOYÉ] --1-- <> 3 | [EMPLOYÉ] --1-- 4 | [EMPLOYÉ] --N-- 5 | [EMPLOYÉ] ==N== 6 | [PIÈCE] --M-- 7 | [PIÈCE] --M-- 8 | [PIÈCE] --N-- 9 | [PIÈCE] ==N== 10 | [PROJET] --N-- 11 | [PROJET] ==M== 12 | [PROJET] ==N== 13 | [PROJET] ==N== 14 | [SOCIÉTÉ] --1-- 15 | [SOCIÉTÉ] --N-- 16 | [SOCIÉTÉ] ==N== 17 | [[AYANT-DROIT]] ==N== <> 18 | -------------------------------------------------------------------------------- /test/zoo/protected/mld/protected_0_debug.tsv: -------------------------------------------------------------------------------- 1 | this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note 2 | Agence id. agence ! primary_key True 3 | Agence nom agence normal_attribute False 4 | Direction régionale id. dir. ! primary_key True 5 | Direction régionale nom dir. normal_attribute False 6 | Superviser id. agence ! primary_foreign_key True Agence Agence Superviser 7 | Superviser id. dir. ! stopped_foreign_key False Direction régionale Direction régionale Superviser 8 | -------------------------------------------------------------------------------- /mocodo/resources/prompts/chat/types_examples/1_input.mcd: -------------------------------------------------------------------------------- 1 | Recevoir, 01 Rivière, 0N Rivière 2 | Rivière: pos. source, nom rivière, longueur, position fin 3 | Se Jeter, 01 Rivière, 1N Mer 4 | Mer: nom mer, surface mer 5 | : 6 | 7 | Crue, 1N Date, 0N Ville, 0N Rivière: durée crue, hauteur atteinte 8 | Traverser, 0N Rivière, 0N Ville: ordre traversée 9 | Arroser, 1N Rivière, 0N Pays 10 | Baigner, 1N Mer, 0N Pays: longueur côte 11 | : 12 | 13 | Date: date 14 | Ville: pos. ville, nom ville 15 | DF, 11 Ville, 1N Pays 16 | Pays: nom pays, surface pays 17 | Toucher, 0N Pays, 0N Pays -------------------------------------------------------------------------------- /mocodo/resources/relation_templates/mysql-b.yaml: -------------------------------------------------------------------------------- 1 | parent: 'mysql' 2 | compose_relational_schema: '-- Generated by Mocodo {version}\n\nCREATE DATABASE IF NOT EXISTS `{title}`\nCHARACTER SET utf8mb4\nCOLLATE utf8mb4_general_ci\n;\nUSE `{title}`;\n\n{relations}\n' 3 | transform_relational_schema: 4 | - order: 20000 5 | comment: 'The indent placeholders in the _boilerplate_ where used to protect it from the addition of trailing commas. Transform them into double spaces.' 6 | search: '' 7 | replace: ' ' 8 | -------------------------------------------------------------------------------- /test/zoo/basic/exported/basic_2_erd_crow.mmd: -------------------------------------------------------------------------------- 1 | erDiagram 2 | CLIENT { 3 | VARCHAR(8) Ref_client PK 4 | VARCHAR(255) Nom 5 | VARCHAR(255) Prenom 6 | VARCHAR(255) Adresse 7 | } 8 | COMMANDE { 9 | VARCHAR(8) Num_commande PK 10 | DATE Date 11 | DECIMAL(10-2) Montant 12 | } 13 | INCLURE { 14 | INTEGER Quantite PK 15 | } 16 | PRODUIT { 17 | VARCHAR(8) Ref_produit PK 18 | VARCHAR(50) Libelle 19 | DECIMAL(10-2) Prix_unitaire 20 | } 21 | CLIENT ||--o{ COMMANDE: PASSER 22 | INCLURE }|..|| COMMANDE: DF 23 | INCLURE }o..|| PRODUIT: DF -------------------------------------------------------------------------------- /test/zoo/minimal/mld/minimal_mld.tex: -------------------------------------------------------------------------------- 1 | \documentclass[a4paper]{article} 2 | \usepackage[normalem]{ulem} 3 | \usepackage[T1]{fontenc} 4 | \usepackage[french]{babel} 5 | \frenchsetup{StandardLayout=true} 6 | 7 | \newcommand{\relat}[1]{\textsc{#1}} 8 | \newcommand{\attr}[1]{#1} 9 | \newcommand{\prim}[1]{\uline{#1}} 10 | \newcommand{\foreign}[1]{\#\textsl{#1}} 11 | 12 | \title{Conversion en relationnel\\du MCD \emph{minimal}} 13 | \author{\emph{Généré par Mocodo}} 14 | 15 | \begin{document} 16 | \maketitle 17 | 18 | \begin{itemize} 19 | 20 | \end{itemize} 21 | 22 | \end{document} 23 | -------------------------------------------------------------------------------- /test/zoo/protected/ddl/protected_0_ddl.d2: -------------------------------------------------------------------------------- 1 | "Agence": { shape: sql_table 2 | "id. agence": VARCHAR(42) {constraint: PK} 3 | "nom agence": VARCHAR(42) 4 | } 5 | 6 | "Direction régionale": { shape: sql_table 7 | "id. dir.": VARCHAR(42) {constraint: PK} 8 | "nom dir.": VARCHAR(42) 9 | } 10 | 11 | "Superviser": { shape: sql_table 12 | "id. agence": VARCHAR(42) {constraint: [PK; FK]} 13 | "id. dir.": VARCHAR(42) {constraint: [FK; NOT NULL]} 14 | } 15 | 16 | "Superviser"."id. agence" -> "Agence"."id. agence" 17 | "Superviser"."id. dir." -> "Direction régionale"."id. dir." 18 | -------------------------------------------------------------------------------- /test/zoo/gerund/ddl/gerund_1_ddl.d2: -------------------------------------------------------------------------------- 1 | "Commande": { shape: sql_table 2 | "commande": VARCHAR(42) {constraint: PK} 3 | "date": VARCHAR(42) 4 | } 5 | 6 | "Ligne de commande": { shape: sql_table 7 | "commande": VARCHAR(42) {constraint: [PK; FK]} 8 | "produit": VARCHAR(42) {constraint: [PK; FK]} 9 | "quantité": VARCHAR(42) 10 | } 11 | 12 | "Produit": { shape: sql_table 13 | "produit": VARCHAR(42) {constraint: PK} 14 | "libellé": VARCHAR(42) 15 | } 16 | 17 | "Ligne de commande"."commande" -> "Commande"."commande" 18 | "Ligne de commande"."produit" -> "Produit"."produit" 19 | --------------------------------------------------------------------------------