]> granicus.if.org Git - graphviz/commitdiff
Windows: gvprlib now building properly.
authorErwin Janssen <erwinjanssen@outlook.com>
Sat, 25 Jun 2016 16:48:50 +0000 (18:48 +0200)
committerErwin Janssen <erwinjanssen@outlook.com>
Sat, 25 Jun 2016 16:48:50 +0000 (18:48 +0200)
lib/gvpr/gvprlib.vcxproj
windows/include/gdefs.h [new file with mode: 0644]

index 677c1246a3610f3d046e0ece4284a86fb9e28630..b4ffa4d52148e405ced79c3bc5f9f284570a0d3e 100644 (file)
@@ -14,6 +14,7 @@
     <ProjectGuid>{8C103DE9-BC35-4173-A08D-63906EC5EEFD}</ProjectGuid>
     <RootNamespace>gvprlib</RootNamespace>
     <Keyword>Win32Proj</Keyword>
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <_ProjectFileVersion>14.0.25123.0</_ProjectFileVersion>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <OutDir>Debug\</OutDir>
+    <OutDir>$(SolutionDir)Debug\Graphviz\bin\</OutDir>
     <IntDir>Debug\</IntDir>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <OutDir>Release\</OutDir>
+    <OutDir>$(SolutionDir)Graphviz\bin\</OutDir>
     <IntDir>Release\</IntDir>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)windows\include;$(SolutionDir)/lib/gvpr;$(SolutionDir)/windows/lib/ingraphs;$(SolutionDir)/lib/ingraphs;$(SolutionDir)windows\dependencies\GTK2\lib\glib-2.0\include;$(SolutionDir)windows\dependencies\GTK2\include\glib-2.0;$(SolutionDir)windows\dependencies\GTK2\include\pango-1.0\;$(SolutionDir)windows\dependencies\GTK2\include\cairo;$(SolutionDir)windows\dependencies\GTK2\include\freetype2;$(SolutionDir)windows\dependencies\GTK2\include;$(SolutionDir)/libltdl;$(SolutionDir)/lib/neatogen;$(SolutionDir)/lib/agutil;$(SolutionDir)/windows/lib/cdt;$(SolutionDir)/;$(SolutionDir)/lib/graph;$(SolutionDir)/lib/vpsc;$(SolutionDir)/lib/vmalloc;$(SolutionDir)/lib/twopigen;$(SolutionDir)/lib/sparse;$(SolutionDir)/lib/sfio;$(SolutionDir)/lib/sfpdpgen;$(SolutionDir)/lib/rbtree;$(SolutionDir)/lib/pathplan;$(SolutionDir)/lib/patchwork;$(SolutionDir)/lib/pack;$(SolutionDir)/lib/ortho;$(SolutionDir)/lib/inkpot;$(SolutionDir)/lib/gd;$(SolutionDir)/lib/filter;$(SolutionDir)/lib/fdpgen;$(SolutionDir)/lib/expr;$(SolutionDir)/lib/dotgen;$(SolutionDir)/lib/circogen;$(SolutionDir)/lib/ast;$(SolutionDir)/lib/agraph;$(SolutionDir)/lib/common;$(SolutionDir)/lib/gvc;$(SolutionDir)/lib/cdt;$(SolutionDir)/cmd/gvpr;$(SolutionDir)/lib/cgraph;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)windows\include;$(SolutionDir)/lib/gvpr;$(SolutionDir)/lib/ingraphs;$(SolutionDir)/lib/neatogen;$(SolutionDir)/lib/agutil;$(SolutionDir)/;$(SolutionDir)/lib/graph;$(SolutionDir)/lib/vpsc;$(SolutionDir)/lib/vmalloc;$(SolutionDir)/lib/twopigen;$(SolutionDir)/lib/sparse;$(SolutionDir)/lib/sfio;$(SolutionDir)/lib/sfpdpgen;$(SolutionDir)/lib/rbtree;$(SolutionDir)/lib/pathplan;$(SolutionDir)/lib/patchwork;$(SolutionDir)/lib/pack;$(SolutionDir)/lib/ortho;$(SolutionDir)/lib/inkpot;$(SolutionDir)/lib/gd;$(SolutionDir)/lib/filter;$(SolutionDir)/lib/fdpgen;$(SolutionDir)/lib/expr;$(SolutionDir)/lib/dotgen;$(SolutionDir)/lib/circogen;$(SolutionDir)/lib/ast;$(SolutionDir)/lib/agraph;$(SolutionDir)/lib/common;$(SolutionDir)/lib/gvc;$(SolutionDir)/lib/cdt;$(SolutionDir)/cmd/gvpr;$(SolutionDir)/lib/cgraph;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader />
-      <WarningLevel>Level3</WarningLevel>
+      <WarningLevel>Level4</WarningLevel>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <EnablePREfast>true</EnablePREfast>
     </ClCompile>
-    <Lib>
-      <OutputFile>c:/graphviz-ms/bin/$(ProjectName).lib</OutputFile>
-    </Lib>
+    <Lib />
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      <AdditionalIncludeDirectories>$(SolutionDir)windows\include;$(SolutionDir)/lib/gvpr;$(SolutionDir)/windows/lib/ingraphs;$(SolutionDir)/lib/ingraphs;$(SolutionDir)windows\dependencies\GTK2\lib\glib-2.0\include;$(SolutionDir)windows\dependencies\GTK2\include\glib-2.0;$(SolutionDir)windows\dependencies\GTK2\include\pango-1.0\;$(SolutionDir)windows\dependencies\GTK2\include\cairo;$(SolutionDir)windows\dependencies\GTK2\include\freetype2;$(SolutionDir)windows\dependencies\GTK2\include;$(SolutionDir)/libltdl;$(SolutionDir)/lib/neatogen;$(SolutionDir)/lib/agutil;$(SolutionDir)/windows/lib/cdt;$(SolutionDir)/;$(SolutionDir)/lib/graph;$(SolutionDir)/lib/vpsc;$(SolutionDir)/lib/vmalloc;$(SolutionDir)/lib/twopigen;$(SolutionDir)/lib/sparse;$(SolutionDir)/lib/sfio;$(SolutionDir)/lib/sfpdpgen;$(SolutionDir)/lib/rbtree;$(SolutionDir)/lib/pathplan;$(SolutionDir)/lib/patchwork;$(SolutionDir)/lib/pack;$(SolutionDir)/lib/ortho;$(SolutionDir)/lib/inkpot;$(SolutionDir)/lib/gd;$(SolutionDir)/lib/filter;$(SolutionDir)/lib/fdpgen;$(SolutionDir)/lib/expr;$(SolutionDir)/lib/dotgen;$(SolutionDir)/lib/circogen;$(SolutionDir)/lib/ast;$(SolutionDir)/lib/agraph;$(SolutionDir)/lib/common;$(SolutionDir)/lib/gvc;$(SolutionDir)/lib/cdt;$(SolutionDir)/cmd/gvpr;$(SolutionDir)/lib/cgraph;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)windows\include;$(SolutionDir)/lib/gvpr;$(SolutionDir)/lib/ingraphs;$(SolutionDir)/lib/neatogen;$(SolutionDir)/lib/agutil;$(SolutionDir)/;$(SolutionDir)/lib/graph;$(SolutionDir)/lib/vpsc;$(SolutionDir)/lib/vmalloc;$(SolutionDir)/lib/twopigen;$(SolutionDir)/lib/sparse;$(SolutionDir)/lib/sfio;$(SolutionDir)/lib/sfpdpgen;$(SolutionDir)/lib/rbtree;$(SolutionDir)/lib/pathplan;$(SolutionDir)/lib/patchwork;$(SolutionDir)/lib/pack;$(SolutionDir)/lib/ortho;$(SolutionDir)/lib/inkpot;$(SolutionDir)/lib/gd;$(SolutionDir)/lib/filter;$(SolutionDir)/lib/fdpgen;$(SolutionDir)/lib/expr;$(SolutionDir)/lib/dotgen;$(SolutionDir)/lib/circogen;$(SolutionDir)/lib/ast;$(SolutionDir)/lib/agraph;$(SolutionDir)/lib/common;$(SolutionDir)/lib/gvc;$(SolutionDir)/lib/cdt;$(SolutionDir)/cmd/gvpr;$(SolutionDir)/lib/cgraph;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_LIB;HAVE_CONFIG_H;GVDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader />
-      <WarningLevel>Level3</WarningLevel>
+      <WarningLevel>Level4</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <EnablePREfast>true</EnablePREfast>
     </ClCompile>
-    <Lib>
-      <OutputFile>c:/graphviz-ms/bin/$(ProjectName).lib</OutputFile>
-    </Lib>
+    <Lib />
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClInclude Include="actions.h" />
diff --git a/windows/include/gdefs.h b/windows/include/gdefs.h
new file mode 100644 (file)
index 0000000..88f724e
--- /dev/null
@@ -0,0 +1,485 @@
+#ifndef GDEFS_H
+#define GDEFS_H
+
+/* generated by mkdefs; do not edit */
+
+#define Y(i)    (1<<(i))
+
+#define V       0x4      /* NODE         */
+#define E       0x5      /* EDGE         */
+#define G       0x6      /* GRAPH        */
+#define O       0x7      /* OBJECT       */
+#define TV      0x8      /* TV_          */
+#define YALL    (Y(V)|Y(E)|Y(G))
+
+#define        V_this      1
+#define        V_thisg     2
+#define        V_nextg     3
+#define        V_targt     4
+#define        V_outgraph          5
+#define        V_tgtname           6
+#define        V_infname           7
+#define        V_travroot          8
+#define        V_travnext          9
+#define        V_travedge         10
+#define        V_travtype         11
+#define        V_ARGC     12
+#define        M_degree           13
+#define        M_X        14
+#define        M_Y        15
+#define        M_head     16
+#define        M_tail     17
+#define        M_name     18
+#define        M_indegree         19
+#define        M_outdegree        20
+#define        M_root     21
+#define        M_parent           22
+#define        M_n_edges          23
+#define        M_n_nodes          24
+#define        M_directed         25
+#define        M_strict           26
+#define        T_node     27
+#define        T_edge     28
+#define        T_graph    29
+#define        T_obj      30
+#define        T_tvtyp    31
+#define        A_ARGV     32
+#define        F_graph    33
+#define        F_subg     34
+#define        F_issubg           35
+#define        F_fstsubg          36
+#define        F_nxtsubg          37
+#define        F_node     38
+#define        F_addnode          39
+#define        F_fstnode          40
+#define        F_nxtnode          41
+#define        F_nxtnodesg        42
+#define        F_isnode           43
+#define        F_issubnode        44
+#define        F_indegree         45
+#define        F_outdegree        46
+#define        F_degree           47
+#define        F_isin     48
+#define        F_edge     49
+#define        F_edgesg           50
+#define        F_addedge          51
+#define        F_opp      52
+#define        F_fstout           53
+#define        F_nxtout           54
+#define        F_fstin    55
+#define        F_nxtin    56
+#define        F_fstedge          57
+#define        F_nxtedge          58
+#define        F_fstoutsg         59
+#define        F_nxtoutsg         60
+#define        F_fstinsg          61
+#define        F_nxtinsg          62
+#define        F_fstedgesg        63
+#define        F_nxtedgesg        64
+#define        F_compof           65
+#define        F_kindof           66
+#define        F_index    67
+#define        F_rindex           68
+#define        F_isedge           69
+#define        F_isedgesg         70
+#define        F_issubedge        71
+#define        F_length           72
+#define        F_match    73
+#define        F_write    74
+#define        F_writeg           75
+#define        F_readg    76
+#define        F_fwriteg          77
+#define        F_freadg           78
+#define        F_openf    79
+#define        F_closef           80
+#define        F_readl    81
+#define        F_induce           82
+#define        F_isdirect         83
+#define        F_isstrict         84
+#define        F_delete           85
+#define        F_clone    86
+#define        F_cloneG           87
+#define        F_copy     88
+#define        F_copya    89
+#define        F_lock     90
+#define        F_nnodes           91
+#define        F_nedges           92
+#define        F_sqrt     93
+#define        F_cos      94
+#define        F_sin      95
+#define        F_atan2    96
+#define        F_exp      97
+#define        F_pow      98
+#define        F_log      99
+#define        F_min     100
+#define        F_max     101
+#define        F_sys     102
+#define        F_xof     103
+#define        F_yof     104
+#define        F_llof    105
+#define        F_urof    106
+#define        F_html    107
+#define        F_ishtml          108
+#define        F_canon   109
+#define        F_get     110
+#define        F_set     111
+#define        F_dget    112
+#define        F_dset    113
+#define        F_hasattr         114
+#define        F_isattr          115
+#define        F_fstattr         116
+#define        F_nxtattr         117
+#define        F_tolower         118
+#define        F_toupper         119
+#define        F_strcmp          120
+#define        F_atoi    121
+#define        F_atof    122
+#define        F_colorx          123
+#define        F_call    124
+#define        C_flat    125
+#define        C_ne      126
+#define        C_en      127
+#define        C_bfs     128
+#define        C_dfs     129
+#define        C_fwd     130
+#define        C_rev     131
+#define        C_postdfs         132
+#define        C_postfwd         133
+#define        C_postrev         134
+#define        C_prepostdfs      135
+#define        C_prepostfwd      136
+#define        C_prepostrev      137
+#define        C_null    138
+
+#define LAST_V 12
+#define LAST_M 26
+#define MINNAME 1
+#define MAXNAME 138
+
+static Exid_t symbols[] = {
+       EX_ID ( "$", ID, V_this, T_obj, 0),
+       EX_ID ( "$G", ID, V_thisg, T_graph, 0),
+       EX_ID ( "$NG", ID, V_nextg, T_graph, 0),
+       EX_ID ( "$T", ID, V_targt, T_graph, 0),
+       EX_ID ( "$O", ID, V_outgraph, T_graph, 0),
+       EX_ID ( "$tgtname", ID, V_tgtname, STRING, 0),
+       EX_ID ( "$F", ID, V_infname, STRING, 0),
+       EX_ID ( "$tvroot", ID, V_travroot, T_node, 0),
+       EX_ID ( "$tvnext", ID, V_travnext, T_node, 0),
+       EX_ID ( "$tvedge", ID, V_travedge, T_edge, 0),
+       EX_ID ( "$tvtype", ID, V_travtype, T_tvtyp, 0),
+       EX_ID ( "ARGC", ID, V_ARGC, INTEGER, 0),
+       EX_ID ( "degree", ID, M_degree, INTEGER, 0),
+       EX_ID ( "X", ID, M_X, FLOATING, 0),
+       EX_ID ( "Y", ID, M_Y, FLOATING, 0),
+       EX_ID ( "head", ID, M_head, T_node, 0),
+       EX_ID ( "tail", ID, M_tail, T_node, 0),
+       EX_ID ( "name", ID, M_name, STRING, 0),
+       EX_ID ( "indegree", ID, M_indegree, INTEGER, 0),
+       EX_ID ( "outdegree", ID, M_outdegree, INTEGER, 0),
+       EX_ID ( "root", ID, M_root, T_graph, 0),
+       EX_ID ( "parent", ID, M_parent, T_graph, 0),
+       EX_ID ( "n_edges", ID, M_n_edges, INTEGER, 0),
+       EX_ID ( "n_nodes", ID, M_n_nodes, INTEGER, 0),
+       EX_ID ( "directed", ID, M_directed, INTEGER, 0),
+       EX_ID ( "strict", ID, M_strict, INTEGER, 0),
+       EX_ID ( "node_t", DECLARE, T_node, T_node, 0),
+       EX_ID ( "edge_t", DECLARE, T_edge, T_edge, 0),
+       EX_ID ( "graph_t", DECLARE, T_graph, T_graph, 0),
+       EX_ID ( "obj_t", DECLARE, T_obj, T_obj, 0),
+       EX_ID ( "tvtype_t", DECLARE, T_tvtyp, T_tvtyp, 0),
+       EX_ID ( "ARGV", ARRAY, A_ARGV, S|A(1,I), 0),
+       EX_ID ( "graph", FUNCTION, F_graph, G|A(1,S)|A(2,S), 0),
+       EX_ID ( "subg", FUNCTION, F_subg, G|A(1,G)|A(2,S), 0),
+       EX_ID ( "isSubg", FUNCTION, F_issubg, G|A(1,G)|A(2,S), 0),
+       EX_ID ( "fstsubg", FUNCTION, F_fstsubg, G|A(1,G), 0),
+       EX_ID ( "nxtsubg", FUNCTION, F_nxtsubg, G|A(1,G), 0),
+       EX_ID ( "node", FUNCTION, F_node, V|A(1,G)|A(2,S), 0),
+       EX_ID ( "subnode", FUNCTION, F_addnode, V|A(1,G)|A(2,V), 0),
+       EX_ID ( "fstnode", FUNCTION, F_fstnode, V|A(1,G), 0),
+       EX_ID ( "nxtnode", FUNCTION, F_nxtnode, V|A(1,V), 0),
+       EX_ID ( "nxtnode_sg", FUNCTION, F_nxtnodesg, V|A(1,G)|A(2,V), 0),
+       EX_ID ( "isNode", FUNCTION, F_isnode, V|A(1,G)|A(2,S), 0),
+       EX_ID ( "isSubnode", FUNCTION, F_issubnode, I|A(1,G)|A(2,V), 0),
+       EX_ID ( "indegreeOf", FUNCTION, F_indegree, I|A(1,G)|A(2,V), 0),
+       EX_ID ( "outdegreeOf", FUNCTION, F_outdegree, I|A(1,G)|A(2,V), 0),
+       EX_ID ( "degreeOf", FUNCTION, F_degree, I|A(1,G)|A(2,V), 0),
+       EX_ID ( "isIn", FUNCTION, F_isin, I|A(1,G)|A(2,O), 0),
+       EX_ID ( "edge", FUNCTION, F_edge, E|A(1,V)|A(2,V)|A(3,S), 0),
+       EX_ID ( "edge_sg", FUNCTION, F_edgesg, E|A(1,G)|A(2,V)|A(3,V)|A(4,S), 0),
+       EX_ID ( "subedge", FUNCTION, F_addedge, E|A(1,G)|A(2,E), 0),
+       EX_ID ( "opp", FUNCTION, F_opp, V|A(1,E)|A(2,V), 0),
+       EX_ID ( "fstout", FUNCTION, F_fstout, E|A(1,V), 0),
+       EX_ID ( "nxtout", FUNCTION, F_nxtout, E|A(1,E), 0),
+       EX_ID ( "fstin", FUNCTION, F_fstin, E|A(1,V), 0),
+       EX_ID ( "nxtin", FUNCTION, F_nxtin, E|A(1,E), 0),
+       EX_ID ( "fstedge", FUNCTION, F_fstedge, E|A(1,V), 0),
+       EX_ID ( "nxtedge", FUNCTION, F_nxtedge, E|A(1,E)|A(2,V), 0),
+       EX_ID ( "fstout_sg", FUNCTION, F_fstoutsg, E|A(1,G)|A(2,V), 0),
+       EX_ID ( "nxtout_sg", FUNCTION, F_nxtoutsg, E|A(1,G)|A(2,E), 0),
+       EX_ID ( "fstin_sg", FUNCTION, F_fstinsg, E|A(1,G)|A(2,V), 0),
+       EX_ID ( "nxtin_sg", FUNCTION, F_nxtinsg, E|A(1,G)|A(2,E), 0),
+       EX_ID ( "fstedge_sg", FUNCTION, F_fstedgesg, E|A(1,G)|A(2,V), 0),
+       EX_ID ( "nxtedge_sg", FUNCTION, F_nxtedgesg, E|A(1,G)|A(2,E)|A(3,V), 0),
+       EX_ID ( "compOf", FUNCTION, F_compof, G|A(1,G)|A(2,V), 0),
+       EX_ID ( "kindOf", FUNCTION, F_kindof, S|A(1,O), 0),
+       EX_ID ( "index", FUNCTION, F_index, I|A(1,S)|A(2,S), 0),
+       EX_ID ( "rindex", FUNCTION, F_rindex, I|A(1,S)|A(2,S), 0),
+       EX_ID ( "isEdge", FUNCTION, F_isedge, E|A(1,V)|A(2,V)|A(3,S), 0),
+       EX_ID ( "isEdge_sg", FUNCTION, F_isedgesg, E|A(1,G)|A(2,V)|A(3,V)|A(4,S), 0),
+       EX_ID ( "isSubedge", FUNCTION, F_issubedge, I|A(1,G)|A(2,E), 0),
+       EX_ID ( "length", FUNCTION, F_length, I|A(1,S), 0),
+       EX_ID ( "match", FUNCTION, F_match, I|A(1,S)|A(2,S), 0),
+       EX_ID ( "write", FUNCTION, F_write, I|A(1,G), 0),
+       EX_ID ( "writeG", FUNCTION, F_writeg, I|A(1,G)|A(2,S), 0),
+       EX_ID ( "readG", FUNCTION, F_readg, G|A(1,S), 0),
+       EX_ID ( "fwriteG", FUNCTION, F_fwriteg, I|A(1,G)|A(2,I), 0),
+       EX_ID ( "freadG", FUNCTION, F_freadg, G|A(1,I), 0),
+       EX_ID ( "openF", FUNCTION, F_openf, I|A(1,S)|A(2,S), 0),
+       EX_ID ( "closeF", FUNCTION, F_closef, I|A(1,I), 0),
+       EX_ID ( "readL", FUNCTION, F_readl, S|A(1,I), 0),
+       EX_ID ( "induce", FUNCTION, F_induce, I|A(1,G), 0),
+       EX_ID ( "isDirect", FUNCTION, F_isdirect, I|A(1,G), 0),
+       EX_ID ( "isStrict", FUNCTION, F_isstrict, I|A(1,G), 0),
+       EX_ID ( "delete", FUNCTION, F_delete, I|A(1,G)|A(2,O), 0),
+       EX_ID ( "clone", FUNCTION, F_clone, O|A(1,G)|A(2,O), 0),
+       EX_ID ( "cloneG", FUNCTION, F_cloneG, G|A(1,G)|A(2,S), 0),
+       EX_ID ( "copy", FUNCTION, F_copy, O|A(1,G)|A(2,O), 0),
+       EX_ID ( "copyA", FUNCTION, F_copya, I|A(1,O)|A(2,O), 0),
+       EX_ID ( "lock", FUNCTION, F_lock, I|A(1,G)|A(2,I), 0),
+       EX_ID ( "nNodes", FUNCTION, F_nnodes, I|A(1,G), 0),
+       EX_ID ( "nEdges", FUNCTION, F_nedges, I|A(1,G), 0),
+       EX_ID ( "sqrt", FUNCTION, F_sqrt, F|A(1,F), 0),
+       EX_ID ( "cos", FUNCTION, F_cos, F|A(1,F), 0),
+       EX_ID ( "sin", FUNCTION, F_sin, F|A(1,F), 0),
+       EX_ID ( "atan2", FUNCTION, F_atan2, F|A(1,F)|A(2,F), 0),
+       EX_ID ( "exp", FUNCTION, F_exp, F|A(1,F), 0),
+       EX_ID ( "pow", FUNCTION, F_pow, F|A(1,F)|A(2,F), 0),
+       EX_ID ( "log", FUNCTION, F_log, F|A(1,F), 0),
+       EX_ID ( "MIN", FUNCTION, F_min, F|A(1,F)|A(2,F), 0),
+       EX_ID ( "MAX", FUNCTION, F_max, F|A(1,F)|A(2,F), 0),
+       EX_ID ( "system", FUNCTION, F_sys, I|A(1,S), 0),
+       EX_ID ( "xOf", FUNCTION, F_xof, S|A(1,S), 0),
+       EX_ID ( "yOf", FUNCTION, F_yof, S|A(1,S), 0),
+       EX_ID ( "llOf", FUNCTION, F_llof, S|A(1,S), 0),
+       EX_ID ( "urOf", FUNCTION, F_urof, S|A(1,S), 0),
+       EX_ID ( "html", FUNCTION, F_html, S|A(1,G)|A(2,S), 0),
+       EX_ID ( "ishtml", FUNCTION, F_ishtml, I|A(1,S), 0),
+       EX_ID ( "canon", FUNCTION, F_canon, S|A(1,S), 0),
+       EX_ID ( "aget", FUNCTION, F_get, S|A(1,O)|A(2,S), 0),
+       EX_ID ( "aset", FUNCTION, F_set, I|A(1,O)|A(2,S)|A(3,S), 0),
+       EX_ID ( "getDflt", FUNCTION, F_dget, S|A(1,G)|A(2,S)|A(3,S), 0),
+       EX_ID ( "setDflt", FUNCTION, F_dset, I|A(1,G)|A(2,S)|A(3,S)|A(4,S), 0),
+       EX_ID ( "hasAttr", FUNCTION, F_hasattr, I|A(1,O)|A(2,S), 0),
+       EX_ID ( "isAttr", FUNCTION, F_isattr, I|A(1,G)|A(2,S)|A(3,S), 0),
+       EX_ID ( "fstAttr", FUNCTION, F_fstattr, S|A(1,G)|A(2,S), 0),
+       EX_ID ( "nxtAttr", FUNCTION, F_nxtattr, S|A(1,G)|A(2,S)|A(3,S), 0),
+       EX_ID ( "tolower", FUNCTION, F_tolower, S|A(1,S), 0),
+       EX_ID ( "toupper", FUNCTION, F_toupper, S|A(1,S), 0),
+       EX_ID ( "strcmp", FUNCTION, F_strcmp, I|A(1,S)|A(2,S), 0),
+       EX_ID ( "atoi", FUNCTION, F_atoi, I|A(1,S), 0),
+       EX_ID ( "atof", FUNCTION, F_atof, F|A(1,S), 0),
+       EX_ID ( "colorx", FUNCTION, F_colorx, S|A(1,S)|A(2,S), 0),
+       EX_ID ( "call", FUNCTION, F_call, I|A(1,S)|A(2,S), 0),
+       EX_ID ( "TV_flat", CONSTANT, C_flat, T_tvtyp, 0),
+       EX_ID ( "TV_ne", CONSTANT, C_ne, T_tvtyp, 0),
+       EX_ID ( "TV_en", CONSTANT, C_en, T_tvtyp, 0),
+       EX_ID ( "TV_bfs", CONSTANT, C_bfs, T_tvtyp, 0),
+       EX_ID ( "TV_dfs", CONSTANT, C_dfs, T_tvtyp, 0),
+       EX_ID ( "TV_fwd", CONSTANT, C_fwd, T_tvtyp, 0),
+       EX_ID ( "TV_rev", CONSTANT, C_rev, T_tvtyp, 0),
+       EX_ID ( "TV_postdfs", CONSTANT, C_postdfs, T_tvtyp, 0),
+       EX_ID ( "TV_postfwd", CONSTANT, C_postfwd, T_tvtyp, 0),
+       EX_ID ( "TV_postrev", CONSTANT, C_postrev, T_tvtyp, 0),
+       EX_ID ( "TV_prepostdfs", CONSTANT, C_prepostdfs, T_tvtyp, 0),
+       EX_ID ( "TV_prepostfwd", CONSTANT, C_prepostfwd, T_tvtyp, 0),
+       EX_ID ( "TV_prepostrev", CONSTANT, C_prepostrev, T_tvtyp, 0),
+       EX_ID ( "NULL", CONSTANT, C_null, T_obj, 0),
+       EX_ID ( {0}, 0, 0, 0, 0)
+};
+
+static char* typenames[] = {
+       "node_t",
+       "edge_t",
+       "graph_t",
+       "obj_t",
+       "tvtype_t",
+};
+
+#ifdef DEBUG
+static char* gprnames[] = {
+       "",
+       "V_this",
+       "V_thisg",
+       "V_nextg",
+       "V_targt",
+       "V_outgraph",
+       "V_tgtname",
+       "V_infname",
+       "V_travroot",
+       "V_travnext",
+       "V_travedge",
+       "V_travtype",
+       "V_ARGC",
+       "M_degree",
+       "M_X",
+       "M_Y",
+       "M_head",
+       "M_tail",
+       "M_name",
+       "M_indegree",
+       "M_outdegree",
+       "M_root",
+       "M_parent",
+       "M_n_edges",
+       "M_n_nodes",
+       "M_directed",
+       "M_strict",
+       "T_node",
+       "T_edge",
+       "T_graph",
+       "T_obj",
+       "T_tvtyp",
+       "A_ARGV",
+       "F_graph",
+       "F_subg",
+       "F_issubg",
+       "F_fstsubg",
+       "F_nxtsubg",
+       "F_node",
+       "F_addnode",
+       "F_fstnode",
+       "F_nxtnode",
+       "F_nxtnodesg",
+       "F_isnode",
+       "F_issubnode",
+       "F_indegree",
+       "F_outdegree",
+       "F_degree",
+       "F_isin",
+       "F_edge",
+       "F_edgesg",
+       "F_addedge",
+       "F_opp",
+       "F_fstout",
+       "F_nxtout",
+       "F_fstin",
+       "F_nxtin",
+       "F_fstedge",
+       "F_nxtedge",
+       "F_fstoutsg",
+       "F_nxtoutsg",
+       "F_fstinsg",
+       "F_nxtinsg",
+       "F_fstedgesg",
+       "F_nxtedgesg",
+       "F_compof",
+       "F_kindof",
+       "F_index",
+       "F_rindex",
+       "F_isedge",
+       "F_isedgesg",
+       "F_issubedge",
+       "F_length",
+       "F_match",
+       "F_write",
+       "F_writeg",
+       "F_readg",
+       "F_fwriteg",
+       "F_freadg",
+       "F_openf",
+       "F_closef",
+       "F_readl",
+       "F_induce",
+       "F_isdirect",
+       "F_isstrict",
+       "F_delete",
+       "F_clone",
+       "F_cloneG",
+       "F_copy",
+       "F_copya",
+       "F_lock",
+       "F_nnodes",
+       "F_nedges",
+       "F_sqrt",
+       "F_cos",
+       "F_sin",
+       "F_atan2",
+       "F_exp",
+       "F_pow",
+       "F_log",
+       "F_min",
+       "F_max",
+       "F_sys",
+       "F_xof",
+       "F_yof",
+       "F_llof",
+       "F_urof",
+       "F_html",
+       "F_ishtml",
+       "F_canon",
+       "F_get",
+       "F_set",
+       "F_dget",
+       "F_dset",
+       "F_hasattr",
+       "F_isattr",
+       "F_fstattr",
+       "F_nxtattr",
+       "F_tolower",
+       "F_toupper",
+       "F_strcmp",
+       "F_atoi",
+       "F_atof",
+       "F_colorx",
+       "F_call",
+       "C_flat",
+       "C_ne",
+       "C_en",
+       "C_bfs",
+       "C_dfs",
+       "C_fwd",
+       "C_rev",
+       "C_postdfs",
+       "C_postfwd",
+       "C_postrev",
+       "C_prepostdfs",
+       "C_prepostfwd",
+       "C_prepostrev",
+       "C_null",
+};
+#endif
+
+typedef unsigned short tctype;
+
+static tctype tchk[][2] = {
+       { 0, 0 },
+       { 0, YALL },
+       { 0, Y(G) },
+       { 0, Y(G) },
+       { 0, Y(G) },
+       { 0, Y(G) },
+       { 0, Y(S) },
+       { 0, Y(S) },
+       { 0, Y(V) },
+       { 0, Y(V) },
+       { 0, Y(E) },
+       { 0, Y(TV) },
+       { 0, Y(I) },
+       { Y(V), Y(I) },
+       { Y(V), Y(F) },
+       { Y(V), Y(F) },
+       { Y(E), Y(V) },
+       { Y(E), Y(V) },
+       { YALL, Y(S) },
+       { Y(V), Y(I) },
+       { Y(V), Y(I) },
+       { YALL, Y(G) },
+       { Y(G), Y(G) },
+       { Y(G), Y(I) },
+       { Y(G), Y(I) },
+       { Y(G), Y(I) },
+       { Y(G), Y(I) },
+};
+
+#endif