2014-10-07 20 views
10

Ya bir dil özelliği veya bir önişlemci aracılığıyla - harici .dot dosyalarını altyazı olarak bir diğerine eklemek için bir olasılık var mı?.dot dosyası alt-konum olarak içe aktarılıyor

El ile korunan, üretilmemiş olsa da, nispeten büyük bir grafik üzerinde çalışıyorum.

tanımlamak edebilmek için daha kullanışlı olacak bazı

subgraph01.dot:

digraph subgraph01 { 
/* lot of nodes and edges */ 
} 

subgraph02.dot:

digraph subgraph02 { 
/* lot of nodes and edges */ 
} 

Ve sonra do graph.dot gibi bir şey:

digraph BigGraph { 
    import subgraph01; 
    import subgraph02; 
    A -> subgraph01.Node1 
    A -> subgraph02.Node1 
    subgraph01.Node10 -> subgraph02.Node99 
    /* etc. */ 
} 

Bir yolu var mı?

cevap

10

Hemen iki seçenek bana geliyor. Bir makro işlemci, ör. m4. BigGraph.m4 Verilen:

digraph BigGraph { 
    define(`digraph',`subgraph') 
    include(`subgraph01.dot') 
    include(`subgraph02.dot') 
    A -> subgraph01.Node1 
    A -> subgraph02.Node1 
    subgraph.Node10 -> subgraph.Node99 
    /* etc. */ 
} 

... koşu:

$ m4 BigGraph.m4 

... üretir: izin verebilir

digraph BigGraph { 
    subgraph subgraph01 { 
/* lot of nodes and edges */ 
} 


    subgraph subgraph02 { 
/* lot of nodes and edges */ 
} 


    A -> subgraph01.Node1 
    A -> subgraph02.Node1 
    subgraph.Node10 -> subgraph.Node99 
    /* etc. */ 
} 

Başka bir seçenek daha sofistike bir yaklaşım GraphViz dan gvpr kullanmaktır . Ben gvpr ile bunu yapmak için bir örnek oluşturmaya çalıştım, ancak başarısız oldu, bu yüzden sadece m4 kullanarak basit bir yaklaşım yerine grafik farkında bir yaklaşım gerekiyorsa bunu denemenizi öneririz.

İlgili konular