gml2gv.h 908 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * @file
  3. * @brief <a href=https://en.wikipedia.org/wiki/Graph_Modelling_Language>GML</a>-DOT converter
  4. */
  5. #include <stdio.h>
  6. #include <cgraph/cgraph.h>
  7. typedef struct {
  8. Dtlink_t link;
  9. unsigned short kind;
  10. unsigned short sort;
  11. char* name;
  12. union {
  13. char* value;
  14. Dt_t* lp;
  15. }u;
  16. } gmlattr;
  17. typedef struct {
  18. Dtlink_t link;
  19. char* id;
  20. Dt_t* attrlist;
  21. } gmlnode;
  22. typedef struct {
  23. Dtlink_t link;
  24. char* source;
  25. char* target;
  26. Dt_t* attrlist;
  27. } gmledge;
  28. typedef struct gmlgraph {
  29. Dtlink_t link;
  30. struct gmlgraph* parent;
  31. int directed;
  32. Dt_t* attrlist;
  33. Dt_t* nodelist;
  34. Dt_t* edgelist;
  35. Dt_t* graphlist;
  36. } gmlgraph;
  37. extern int gmllex(void);
  38. extern void gmllexeof(void);
  39. extern void gmlerror(const char *);
  40. extern int gmlerrors(void);
  41. extern void initgmlscan (FILE*);
  42. extern Agraph_t* gml_to_gv (char*, FILE*, int, int*);