Prior to this commit, the gdefs.h header was generated by a C program, mkdefs.c.
There were a number of issues with this approach:
1. The CMake build system was assuming the compiler to build mkdefs.c and the
compiler to build Graphviz itself were the same. This is not necessarily
true when cross-compiling.
2. Generation under MSBuild seems to have been impractical, so the generated
header was checked in to the repository under windows/include/gvpr/gdefs.h,
somewhat defeating the purpose of making it generated.
3. The CMake build system seems to not have been setup to correctly compile
mkdefs.c under all circumstances (see #2101).
This change removes any reliance on a host C compiler and instead uses a series
of X macros¹ to achieve the same effect. The values of all generated constants
and the content of generated structures is intended to be unchanged, though some
#defines have been altered to enums. In these cases, there was no advantage to
using a macro and multiple advantages to not using a macro.
This change is affecting a shipped header (gdefs.h) and also removes it from the
list of shipped headers. Installing it appears to have been a mistake as there
is no easy way for end users to use it. The header, fully expanded, still relies
on further expansion of macros that are only defined in expr.h, a header that is
not shipped.
Closes #2101.
¹ https://en.wikipedia.org/wiki/X_Macro
lib/common/svgcolor_lib
lib/expr/exparse.c
lib/expr/exparse.h
-lib/gvpr/gdefs.h
-lib/gvpr/mkdefs
lib/vpsc/pairingheap/.dirstamp
plugin/core/ps.h
plugin/lasi/ps.h
- The attached dot file causes a segfault when processed #2095
- fix typos and update URLs in `edgepaint` usage text and man page
- Fix clang's undefined behavior warning in dotLayout
+- gvpr doesn't build on macOS but MKDEFS_EXECUTABLE points to wrong
+ directory #2101
+- the generated gdefs.h header is no longer installed
## [2.48.0] - 2021-07-17
-add_executable(mkdefs
- # Source files
- mkdefs.c
-)
-
-# Generate gdefs.h from sources
-if (WIN32)
- set (MKDEFS_EXECUTABLE "${CMAKE_CFG_INTDIR}/mkdefs")
-else()
- set (MKDEFS_EXECUTABLE "./mkdefs")
-endif()
-add_custom_command(
- OUTPUT gdefs.h
- MAIN_DEPENDENCY gprdata
- DEPENDS mkdefs
- COMMAND ${MKDEFS_EXECUTABLE} gdefs.h < ${TOP_SOURCE_DIR}/lib/gvpr/gprdata
-)
-
add_library(gvpr STATIC
# Header files
actions.h
compile.h
gdefs.h
+ gprdata.inc
gprstate.h
gvpr.h
parse.h
-DDFLT_GVPRPATH="\".$(PATH_SEPARATOR)$(pkgdatadir)/gvpr\""
pkginclude_HEADERS = gvpr.h
-noinst_HEADERS = actions.h compile.h gprstate.h parse.h queue.h trieFA.h trie.c
+noinst_HEADERS = actions.h compile.h gdefs.h gprdata.inc gprstate.h parse.h \
+ queue.h trieFA.h trie.c
noinst_LTLIBRARIES = libgvpr_C.la
lib_LTLIBRARIES = libgvpr.la
pkgconfig_DATA = libgvpr.pc
endif
libgvpr_C_la_SOURCES = actions.c compile.c gvpr.c gprstate.c parse.c queue.c
-$(libgvpr_C_la_OBJECTS): gdefs.h
libgvpr_C_la_DEPENDENCIES = \
$(top_builddir)/lib/expr/libexpr_C.la \
$(top_builddir)/lib/common/libcommon_C.la \
libgvpr_la_LDFLAGS += -export-symbols-regex gvpr
endif
-mkdefs$(EXEEXT):
- $(HOSTCC) $(srcdir)/mkdefs.c -o mkdefs$(EXEEXT)
+EXTRA_DIST = $(man_MANS) $(pdf) trie.c gvprlib.vcxproj*
-gdefs.h: $(top_srcdir)/lib/gvpr/gprdata mkdefs$(EXEEXT)
- ./mkdefs$(EXEEXT) gdefs.h < $(top_srcdir)/lib/gvpr/gprdata
-
-EXTRA_DIST = $(man_MANS) $(pdf) gprdata mkdefs.c gdefs.h trie.c gvprlib.vcxproj*
-
-DISTCLEANFILES = $(pdf) gdefs.h mkdefs$(EXEEXT) gvpr.3.ps
+DISTCLEANFILES = $(pdf) gvpr.3.ps
--- /dev/null
+#pragma once
+
+#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))
+
+enum {
+ RESERVED,
+#define X(prefix, name, str, type, subtype, ...) prefix##name,
+#include <gvpr/gprdata.inc>
+#undef X
+};
+
+enum { LAST_V = 0
+#define X(prefix, name, str, type, subtype, ...) + (prefix == V_ ? 1 : 0)
+#define V_ 1
+#define M_ 2
+#define T_ 3
+#define A_ 4
+#define F_ 5
+#define C_ 6
+#include <gvpr/gprdata.inc>
+#undef X
+};
+
+enum { LAST_M = 0
+#define X(prefix, name, str, type, subtype, ...) \
+ + ((prefix == V_ || prefix == M_) ? 1 : 0)
+#include <gvpr/gprdata.inc>
+#undef C_
+#undef F_
+#undef A_
+#undef T_
+#undef M_
+#undef V_
+#undef X
+};
+
+enum { MINNAME = 1 };
+
+enum { MAXNAME = 0
+#define X(prefix, name, str, type, subtype, ...) + 1
+#include <gvpr/gprdata.inc>
+#undef X
+};
+
+static Exid_t symbols[] = {
+#define X(prefix, name, str, type, subtype, ...) \
+ EX_ID(str, type, prefix##name, subtype, 0),
+#include <gvpr/gprdata.inc>
+#undef X
+ EX_ID({0}, 0, 0, 0, 0),
+};
+
+static char* typenames[] = {
+#define X(prefix, name, str, type, subtype, ...) type ## _(str)
+#define ID_(str) // nothing
+#define DECLARE_(str) str,
+#define ARRAY_(str) // nothing
+#define FUNCTION_(str) // nothing
+#define CONSTANT_(str) // nothing
+#include <gvpr/gprdata.inc>
+#undef CONSTANT_
+#undef FUNCTION_
+#undef ARRAY_
+#undef DECLARE_
+#undef ID_
+#undef X
+};
+
+#ifdef DEBUG
+static char* gprnames[] = {
+ "",
+#define X(prefix, name, str, type, subtype, ...) str,
+#include <gvpr/gprdata.inc>
+#undef X
+};
+#endif
+
+typedef unsigned short tctype;
+
+static tctype tchk[][2] = {
+ {0, 0},
+#define X(prefix, name, str, type, subtype, ...) type ## _(__VA_ARGS__)
+#define ID_(...) { __VA_ARGS__ },
+#define DECLARE_() // nothing
+#define ARRAY_() // nothing
+#define FUNCTION_() // nothing
+#define CONSTANT_() // nothing
+#include <gvpr/gprdata.inc>
+#undef CONSTANT_
+#undef FUNCTION_
+#undef ARRAY_
+#undef DECLARE_
+#undef ID_
+#undef X
+};
+++ /dev/null
-V_this "$" ID T_obj 0 YALL
-V_thisg "$G" ID T_graph 0 Y(G)
-V_nextg "$NG" ID T_graph 0 Y(G)
-V_targt "$T" ID T_graph 0 Y(G)
-V_outgraph "$O" ID T_graph 0 Y(G)
-V_tgtname "$tgtname" ID STRING 0 Y(S)
-V_infname "$F" ID STRING 0 Y(S)
-V_travroot "$tvroot" ID T_node 0 Y(V)
-V_travnext "$tvnext" ID T_node 0 Y(V)
-V_travedge "$tvedge" ID T_edge 0 Y(E)
-V_travtype "$tvtype" ID T_tvtyp 0 Y(TV)
-V_ARGC "ARGC" ID INTEGER 0 Y(I)
-M_degree "degree" ID INTEGER Y(V) Y(I)
-M_X "X" ID FLOATING Y(V) Y(F)
-M_Y "Y" ID FLOATING Y(V) Y(F)
-M_head "head" ID T_node Y(E) Y(V)
-M_tail "tail" ID T_node Y(E) Y(V)
-M_name "name" ID STRING YALL Y(S)
-M_indegree "indegree" ID INTEGER Y(V) Y(I)
-M_outdegree "outdegree" ID INTEGER Y(V) Y(I)
-M_root "root" ID T_graph YALL Y(G)
-M_parent "parent" ID T_graph Y(G) Y(G)
-M_n_edges "n_edges" ID INTEGER Y(G) Y(I)
-M_n_nodes "n_nodes" ID INTEGER Y(G) Y(I)
-M_directed "directed" ID INTEGER Y(G) Y(I)
-M_strict "strict" ID INTEGER Y(G) Y(I)
-T_node "node_t" DECLARE T_node
-T_edge "edge_t" DECLARE T_edge
-T_graph "graph_t" DECLARE T_graph
-T_obj "obj_t" DECLARE T_obj
-T_tvtyp "tvtype_t" DECLARE T_tvtyp
-A_ARGV "ARGV" ARRAY S|A(1,I)
-F_graph "graph" FUNCTION G|A(1,S)|A(2,S)
-F_subg "subg" FUNCTION G|A(1,G)|A(2,S)
-F_issubg "isSubg" FUNCTION G|A(1,G)|A(2,S)
-F_fstsubg "fstsubg" FUNCTION G|A(1,G)
-F_nxtsubg "nxtsubg" FUNCTION G|A(1,G)
-F_node "node" FUNCTION V|A(1,G)|A(2,S)
-F_addnode "subnode" FUNCTION V|A(1,G)|A(2,V)
-F_fstnode "fstnode" FUNCTION V|A(1,G)
-F_nxtnode "nxtnode" FUNCTION V|A(1,V)
-F_nxtnodesg "nxtnode_sg" FUNCTION V|A(1,G)|A(2,V)
-F_isnode "isNode" FUNCTION V|A(1,G)|A(2,S)
-F_issubnode "isSubnode" FUNCTION I|A(1,G)|A(2,V)
-F_indegree "indegreeOf" FUNCTION I|A(1,G)|A(2,V)
-F_outdegree "outdegreeOf" FUNCTION I|A(1,G)|A(2,V)
-F_degree "degreeOf" FUNCTION I|A(1,G)|A(2,V)
-F_isin "isIn" FUNCTION I|A(1,G)|A(2,O)
-F_edge "edge" FUNCTION E|A(1,V)|A(2,V)|A(3,S)
-F_edgesg "edge_sg" FUNCTION E|A(1,G)|A(2,V)|A(3,V)|A(4,S)
-F_addedge "subedge" FUNCTION E|A(1,G)|A(2,E)
-F_opp "opp" FUNCTION V|A(1,E)|A(2,V)
-F_fstout "fstout" FUNCTION E|A(1,V)
-F_nxtout "nxtout" FUNCTION E|A(1,E)
-F_fstin "fstin" FUNCTION E|A(1,V)
-F_nxtin "nxtin" FUNCTION E|A(1,E)
-F_fstedge "fstedge" FUNCTION E|A(1,V)
-F_nxtedge "nxtedge" FUNCTION E|A(1,E)|A(2,V)
-F_fstoutsg "fstout_sg" FUNCTION E|A(1,G)|A(2,V)
-F_nxtoutsg "nxtout_sg" FUNCTION E|A(1,G)|A(2,E)
-F_fstinsg "fstin_sg" FUNCTION E|A(1,G)|A(2,V)
-F_nxtinsg "nxtin_sg" FUNCTION E|A(1,G)|A(2,E)
-F_fstedgesg "fstedge_sg" FUNCTION E|A(1,G)|A(2,V)
-F_nxtedgesg "nxtedge_sg" FUNCTION E|A(1,G)|A(2,E)|A(3,V)
-F_compof "compOf" FUNCTION G|A(1,G)|A(2,V)
-F_kindof "kindOf" FUNCTION S|A(1,O)
-F_index "index" FUNCTION I|A(1,S)|A(2,S)
-F_rindex "rindex" FUNCTION I|A(1,S)|A(2,S)
-F_isedge "isEdge" FUNCTION E|A(1,V)|A(2,V)|A(3,S)
-F_isedgesg "isEdge_sg" FUNCTION E|A(1,G)|A(2,V)|A(3,V)|A(4,S)
-F_issubedge "isSubedge" FUNCTION I|A(1,G)|A(2,E)
-F_length "length" FUNCTION I|A(1,S)
-F_match "match" FUNCTION I|A(1,S)|A(2,S)
-F_write "write" FUNCTION I|A(1,G)
-F_writeg "writeG" FUNCTION I|A(1,G)|A(2,S)
-F_readg "readG" FUNCTION G|A(1,S)
-F_fwriteg "fwriteG" FUNCTION I|A(1,G)|A(2,I)
-F_freadg "freadG" FUNCTION G|A(1,I)
-F_openf "openF" FUNCTION I|A(1,S)|A(2,S)
-F_closef "closeF" FUNCTION I|A(1,I)
-F_readl "readL" FUNCTION S|A(1,I)
-F_induce "induce" FUNCTION I|A(1,G)
-F_isdirect "isDirect" FUNCTION I|A(1,G)
-F_isstrict "isStrict" FUNCTION I|A(1,G)
-F_delete "delete" FUNCTION I|A(1,G)|A(2,O)
-F_clone "clone" FUNCTION O|A(1,G)|A(2,O)
-F_cloneG "cloneG" FUNCTION G|A(1,G)|A(2,S)
-F_copy "copy" FUNCTION O|A(1,G)|A(2,O)
-F_copya "copyA" FUNCTION I|A(1,O)|A(2,O)
-F_lock "lock" FUNCTION I|A(1,G)|A(2,I)
-F_nnodes "nNodes" FUNCTION I|A(1,G)
-F_nedges "nEdges" FUNCTION I|A(1,G)
-F_sqrt "sqrt" FUNCTION F|A(1,F)
-F_cos "cos" FUNCTION F|A(1,F)
-F_sin "sin" FUNCTION F|A(1,F)
-F_atan2 "atan2" FUNCTION F|A(1,F)|A(2,F)
-F_exp "exp" FUNCTION F|A(1,F)
-F_pow "pow" FUNCTION F|A(1,F)|A(2,F)
-F_log "log" FUNCTION F|A(1,F)
-F_min "MIN" FUNCTION F|A(1,F)|A(2,F)
-F_max "MAX" FUNCTION F|A(1,F)|A(2,F)
-F_sys "system" FUNCTION I|A(1,S)
-F_xof "xOf" FUNCTION S|A(1,S)
-F_yof "yOf" FUNCTION S|A(1,S)
-F_llof "llOf" FUNCTION S|A(1,S)
-F_urof "urOf" FUNCTION S|A(1,S)
-F_html "html" FUNCTION S|A(1,G)|A(2,S)
-F_ishtml "ishtml" FUNCTION I|A(1,S)
-F_canon "canon" FUNCTION S|A(1,S)
-F_get "aget" FUNCTION S|A(1,O)|A(2,S)
-F_set "aset" FUNCTION I|A(1,O)|A(2,S)|A(3,S)
-F_dget "getDflt" FUNCTION S|A(1,G)|A(2,S)|A(3,S)
-F_dset "setDflt" FUNCTION I|A(1,G)|A(2,S)|A(3,S)|A(4,S)
-F_hasattr "hasAttr" FUNCTION I|A(1,O)|A(2,S)
-F_isattr "isAttr" FUNCTION I|A(1,G)|A(2,S)|A(3,S)
-F_fstattr "fstAttr" FUNCTION S|A(1,G)|A(2,S)
-F_nxtattr "nxtAttr" FUNCTION S|A(1,G)|A(2,S)|A(3,S)
-F_tolower "tolower" FUNCTION S|A(1,S)
-F_toupper "toupper" FUNCTION S|A(1,S)
-F_strcmp "strcmp" FUNCTION I|A(1,S)|A(2,S)
-F_atoi "atoi" FUNCTION I|A(1,S)
-F_atof "atof" FUNCTION F|A(1,S)
-F_colorx "colorx" FUNCTION S|A(1,S)|A(2,S)
-F_call "call" FUNCTION I|A(1,S)|A(2,S)
-C_flat "TV_flat" CONSTANT T_tvtyp
-C_ne "TV_ne" CONSTANT T_tvtyp
-C_en "TV_en" CONSTANT T_tvtyp
-C_bfs "TV_bfs" CONSTANT T_tvtyp
-C_dfs "TV_dfs" CONSTANT T_tvtyp
-C_fwd "TV_fwd" CONSTANT T_tvtyp
-C_rev "TV_rev" CONSTANT T_tvtyp
-C_postdfs "TV_postdfs" CONSTANT T_tvtyp
-C_postfwd "TV_postfwd" CONSTANT T_tvtyp
-C_postrev "TV_postrev" CONSTANT T_tvtyp
-C_prepostdfs "TV_prepostdfs" CONSTANT T_tvtyp
-C_prepostfwd "TV_prepostfwd" CONSTANT T_tvtyp
-C_prepostrev "TV_prepostrev" CONSTANT T_tvtyp
-C_null "NULL" CONSTANT T_obj
--- /dev/null
+X(V_, this, "$", ID, T_obj, 0, YALL)
+X(V_, thisg, "$G", ID, T_graph, 0, Y(G))
+X(V_, nextg, "$NG", ID, T_graph, 0, Y(G))
+X(V_, targt, "$T", ID, T_graph, 0, Y(G))
+X(V_, outgraph, "$O", ID, T_graph, 0, Y(G))
+X(V_, tgtname, "$tgtname", ID, STRING, 0, Y(S))
+X(V_, infname, "$F", ID, STRING, 0, Y(S))
+X(V_, travroot, "$tvroot", ID, T_node, 0, Y(V))
+X(V_, travnext, "$tvnext", ID, T_node, 0, Y(V))
+X(V_, travedge, "$tvedge", ID, T_edge, 0, Y(E))
+X(V_, travtype, "$tvtype", ID, T_tvtyp, 0, Y(TV))
+X(V_, ARGC, "ARGC", ID, INTEGER, 0, Y(I))
+X(M_, degree, "degree", ID, INTEGER, Y(V), Y(I))
+X(M_, X, "X", ID, FLOATING, Y(V), Y(F))
+X(M_, Y, "Y", ID, FLOATING, Y(V), Y(F))
+X(M_, head, "head", ID, T_node, Y(E), Y(V))
+X(M_, tail, "tail", ID, T_node, Y(E), Y(V))
+X(M_, name, "name", ID, STRING, YALL, Y(S))
+X(M_, indegree, "indegree", ID, INTEGER, Y(V), Y(I))
+X(M_, outdegree, "outdegree", ID, INTEGER, Y(V), Y(I))
+X(M_, root, "root", ID, T_graph, YALL, Y(G))
+X(M_, parent, "parent", ID, T_graph, Y(G), Y(G))
+X(M_, n_edges, "n_edges", ID, INTEGER, Y(G), Y(I))
+X(M_, n_nodes, "n_nodes", ID, INTEGER, Y(G), Y(I))
+X(M_, directed, "directed", ID, INTEGER, Y(G), Y(I))
+X(M_, strict, "strict", ID, INTEGER, Y(G), Y(I))
+X(T_, node, "node_t", DECLARE, T_node)
+X(T_, edge, "edge_t", DECLARE, T_edge)
+X(T_, graph, "graph_t", DECLARE, T_graph)
+X(T_, obj, "obj_t", DECLARE, T_obj)
+X(T_, tvtyp, "tvtype_t", DECLARE, T_tvtyp)
+X(A_, ARGV, "ARGV", ARRAY, S|A(1,I))
+X(F_, graph, "graph", FUNCTION, G|A(1,S)|A(2,S))
+X(F_, subg, "subg", FUNCTION, G|A(1,G)|A(2,S))
+X(F_, issubg, "isSubg", FUNCTION, G|A(1,G)|A(2,S))
+X(F_, fstsubg, "fstsubg", FUNCTION, G|A(1,G))
+X(F_, nxtsubg, "nxtsubg", FUNCTION, G|A(1,G))
+X(F_, node, "node", FUNCTION, V|A(1,G)|A(2,S))
+X(F_, addnode, "subnode", FUNCTION, V|A(1,G)|A(2,V))
+X(F_, fstnode, "fstnode", FUNCTION, V|A(1,G))
+X(F_, nxtnode, "nxtnode", FUNCTION, V|A(1,V))
+X(F_, nxtnodesg, "nxtnode_sg", FUNCTION, V|A(1,G)|A(2,V))
+X(F_, isnode, "isNode", FUNCTION, V|A(1,G)|A(2,S))
+X(F_, issubnode, "isSubnode", FUNCTION, I|A(1,G)|A(2,V))
+X(F_, indegree, "indegreeOf", FUNCTION, I|A(1,G)|A(2,V))
+X(F_, outdegree, "outdegreeOf", FUNCTION, I|A(1,G)|A(2,V))
+X(F_, degree, "degreeOf", FUNCTION, I|A(1,G)|A(2,V))
+X(F_, isin, "isIn", FUNCTION, I|A(1,G)|A(2,O))
+X(F_, edge, "edge", FUNCTION, E|A(1,V)|A(2,V)|A(3,S))
+X(F_, edgesg, "edge_sg", FUNCTION, E|A(1,G)|A(2,V)|A(3,V)|A(4,S))
+X(F_, addedge, "subedge", FUNCTION, E|A(1,G)|A(2,E))
+X(F_, opp, "opp", FUNCTION, V|A(1,E)|A(2,V))
+X(F_, fstout, "fstout", FUNCTION, E|A(1,V))
+X(F_, nxtout, "nxtout", FUNCTION, E|A(1,E))
+X(F_, fstin, "fstin", FUNCTION, E|A(1,V))
+X(F_, nxtin, "nxtin", FUNCTION, E|A(1,E))
+X(F_, fstedge, "fstedge", FUNCTION, E|A(1,V))
+X(F_, nxtedge, "nxtedge", FUNCTION, E|A(1,E)|A(2,V))
+X(F_, fstoutsg, "fstout_sg", FUNCTION, E|A(1,G)|A(2,V))
+X(F_, nxtoutsg, "nxtout_sg", FUNCTION, E|A(1,G)|A(2,E))
+X(F_, fstinsg, "fstin_sg", FUNCTION, E|A(1,G)|A(2,V))
+X(F_, nxtinsg, "nxtin_sg", FUNCTION, E|A(1,G)|A(2,E))
+X(F_, fstedgesg, "fstedge_sg", FUNCTION, E|A(1,G)|A(2,V))
+X(F_, nxtedgesg, "nxtedge_sg", FUNCTION, E|A(1,G)|A(2,E)|A(3,V))
+X(F_, compof, "compOf", FUNCTION, G|A(1,G)|A(2,V))
+X(F_, kindof, "kindOf", FUNCTION, S|A(1,O))
+X(F_, index, "index", FUNCTION, I|A(1,S)|A(2,S))
+X(F_, rindex, "rindex", FUNCTION, I|A(1,S)|A(2,S))
+X(F_, isedge, "isEdge", FUNCTION, E|A(1,V)|A(2,V)|A(3,S))
+X(F_, isedgesg, "isEdge_sg", FUNCTION, E|A(1,G)|A(2,V)|A(3,V)|A(4,S))
+X(F_, issubedge, "isSubedge", FUNCTION, I|A(1,G)|A(2,E))
+X(F_, length, "length", FUNCTION, I|A(1,S))
+X(F_, match, "match", FUNCTION, I|A(1,S)|A(2,S))
+X(F_, write, "write", FUNCTION, I|A(1,G))
+X(F_, writeg, "writeG", FUNCTION, I|A(1,G)|A(2,S))
+X(F_, readg, "readG", FUNCTION, G|A(1,S))
+X(F_, fwriteg, "fwriteG", FUNCTION, I|A(1,G)|A(2,I))
+X(F_, freadg, "freadG", FUNCTION, G|A(1,I))
+X(F_, openf, "openF", FUNCTION, I|A(1,S)|A(2,S))
+X(F_, closef, "closeF", FUNCTION, I|A(1,I))
+X(F_, readl, "readL", FUNCTION, S|A(1,I))
+X(F_, induce, "induce", FUNCTION, I|A(1,G))
+X(F_, isdirect, "isDirect", FUNCTION, I|A(1,G))
+X(F_, isstrict, "isStrict", FUNCTION, I|A(1,G))
+X(F_, delete, "delete", FUNCTION, I|A(1,G)|A(2,O))
+X(F_, clone, "clone", FUNCTION, O|A(1,G)|A(2,O))
+X(F_, cloneG, "cloneG", FUNCTION, G|A(1,G)|A(2,S))
+X(F_, copy, "copy", FUNCTION, O|A(1,G)|A(2,O))
+X(F_, copya, "copyA", FUNCTION, I|A(1,O)|A(2,O))
+X(F_, lock, "lock", FUNCTION, I|A(1,G)|A(2,I))
+X(F_, nnodes, "nNodes", FUNCTION, I|A(1,G))
+X(F_, nedges, "nEdges", FUNCTION, I|A(1,G))
+X(F_, sqrt, "sqrt", FUNCTION, F|A(1,F))
+X(F_, cos, "cos", FUNCTION, F|A(1,F))
+X(F_, sin, "sin", FUNCTION, F|A(1,F))
+X(F_, atan2, "atan2", FUNCTION, F|A(1,F)|A(2,F))
+X(F_, exp, "exp", FUNCTION, F|A(1,F))
+X(F_, pow, "pow", FUNCTION, F|A(1,F)|A(2,F))
+X(F_, log, "log", FUNCTION, F|A(1,F))
+X(F_, min, "MIN", FUNCTION, F|A(1,F)|A(2,F))
+X(F_, max, "MAX", FUNCTION, F|A(1,F)|A(2,F))
+X(F_, sys, "system", FUNCTION, I|A(1,S))
+X(F_, xof, "xOf", FUNCTION, S|A(1,S))
+X(F_, yof, "yOf", FUNCTION, S|A(1,S))
+X(F_, llof, "llOf", FUNCTION, S|A(1,S))
+X(F_, urof, "urOf", FUNCTION, S|A(1,S))
+X(F_, html, "html", FUNCTION, S|A(1,G)|A(2,S))
+X(F_, ishtml, "ishtml", FUNCTION, I|A(1,S))
+X(F_, canon, "canon", FUNCTION, S|A(1,S))
+X(F_, get, "aget", FUNCTION, S|A(1,O)|A(2,S))
+X(F_, set, "aset", FUNCTION, I|A(1,O)|A(2,S)|A(3,S))
+X(F_, dget, "getDflt", FUNCTION, S|A(1,G)|A(2,S)|A(3,S))
+X(F_, dset, "setDflt", FUNCTION, I|A(1,G)|A(2,S)|A(3,S)|A(4,S))
+X(F_, hasattr, "hasAttr", FUNCTION, I|A(1,O)|A(2,S))
+X(F_, isattr, "isAttr", FUNCTION, I|A(1,G)|A(2,S)|A(3,S))
+X(F_, fstattr, "fstAttr", FUNCTION, S|A(1,G)|A(2,S))
+X(F_, nxtattr, "nxtAttr", FUNCTION, S|A(1,G)|A(2,S)|A(3,S))
+X(F_, tolower, "tolower", FUNCTION, S|A(1,S))
+X(F_, toupper, "toupper", FUNCTION, S|A(1,S))
+X(F_, strcmp, "strcmp", FUNCTION, I|A(1,S)|A(2,S))
+X(F_, atoi, "atoi", FUNCTION, I|A(1,S))
+X(F_, atof, "atof", FUNCTION, F|A(1,S))
+X(F_, colorx, "colorx", FUNCTION, S|A(1,S)|A(2,S))
+X(F_, call, "call", FUNCTION, I|A(1,S)|A(2,S))
+X(C_, flat, "TV_flat", CONSTANT, T_tvtyp)
+X(C_, ne, "TV_ne", CONSTANT, T_tvtyp)
+X(C_, en, "TV_en", CONSTANT, T_tvtyp)
+X(C_, bfs, "TV_bfs", CONSTANT, T_tvtyp)
+X(C_, dfs, "TV_dfs", CONSTANT, T_tvtyp)
+X(C_, fwd, "TV_fwd", CONSTANT, T_tvtyp)
+X(C_, rev, "TV_rev", CONSTANT, T_tvtyp)
+X(C_, postdfs, "TV_postdfs", CONSTANT, T_tvtyp)
+X(C_, postfwd, "TV_postfwd", CONSTANT, T_tvtyp)
+X(C_, postrev, "TV_postrev", CONSTANT, T_tvtyp)
+X(C_, prepostdfs, "TV_prepostdfs", CONSTANT, T_tvtyp)
+X(C_, prepostfwd, "TV_prepostfwd", CONSTANT, T_tvtyp)
+X(C_, prepostrev, "TV_prepostrev", CONSTANT, T_tvtyp)
+X(C_, null, "NULL", CONSTANT, T_obj)
<ItemGroup>
<ClInclude Include="actions.h" />
<ClInclude Include="compile.h" />
+ <ClInclude Include="gdefs.h" />
+ <ClInclude Include="gprdata.inc" />
<ClInclude Include="gprstate.h" />
<ClInclude Include="gvpr.h" />
<ClInclude Include="parse.h" />
<ClCompile Include="compile.c" />
<ClCompile Include="gprstate.c" />
<ClCompile Include="gvpr.c" />
- <ClCompile Include="mkdefs.c" />
<ClCompile Include="parse.c" />
<ClCompile Include="queue.c" />
</ItemGroup>
<ClInclude Include="compile.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="gdefs.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="gprdata.inc">
+ <Filter>Header Files</Filter>
+ </ClInclude>
<ClInclude Include="gprstate.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClCompile Include="gvpr.c">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="mkdefs.c">
- <Filter>Source Files</Filter>
- </ClCompile>
<ClCompile Include="parse.c">
<Filter>Source Files</Filter>
</ClCompile>
+++ /dev/null
-/*************************************************************************
- * Copyright (c) 2011 AT&T Intellectual Property
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors: Details at https://graphviz.org
- *************************************************************************/
-
-
-/*
- * Generator of gpr include file from table data
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-/******** Parameters **********/
-
-#define MINNAME 1
-
-/*************************/
-
-static char *header = "#ifndef %s\n\
-#define %s\n\n\
-/* generated by mkdefs; do not edit */\n\n";
-
-static char *prefix = "#define Y(i) (1<<(i))\n\
-\n\
-#define V 0x4 /* NODE */\n\
-#define E 0x5 /* EDGE */\n\
-#define G 0x6 /* GRAPH */\n\
-#define O 0x7 /* OBJECT */\n\
-#define TV 0x8 /* TV_ */\n\
-#define YALL (Y(V)|Y(E)|Y(G))\n\
-\n";
-
-/*************************/
-
-#define BSIZE 512
-
-#define K_val 1
-#define K_member 2
-
-typedef struct rec record;
-
-struct rec {
- record *next;
- char *symbol;
- char *name;
- char *lex;
- char *type;
- char *domain;
- char *range;
- char *data;
- int kind;
-};
-
-static int lineno;
-static int tokno;
-
-static record *newRec(record * curr)
-{
- record *newr;
-
- newr = malloc(sizeof(record));
- if (!newr) {
- fprintf(stderr, "mkdefs: out of memory, line %d\n", lineno);
- exit(1);
- }
- curr->next = newr;
- newr->next = 0;
- return newr;
-}
-
-static void genGuard(char *filename, char *guard)
-{
- char c;
-
- while ((c = *filename++)) {
- if (c == '.')
- *guard++ = '_';
- else
- *guard++ = toupper(c);
- }
- *guard = '\0';
-}
-
-static char *strTok(char *str)
-{
- char *tk;
-
- tokno++;
- tk = strtok(str, " \t\n");
- return tk;
-}
-
-int main(int argc, char *argv[])
-{
- char *filename;
- char *buf;
- char *tk;
- record vals;
- record *recp = &vals;
- FILE *fp;
- char guard[100];
- int idx = MINNAME;
- int lastval = 0;
- int lastmem = 0;
-
- if (argc != 2) {
- fprintf(stderr, "mkdefs: 1 argument necessary\n");
- exit(1);
- }
- filename = argv[1];
-
- vals.next = 0;
- buf = malloc(BSIZE);
- while (fgets(buf, BSIZE, stdin)) {
- lineno++;
- tokno = 0;
- tk = strTok(buf);
- if ((!tk) || (*tk == '#'))
- continue; /* comment */
- recp = newRec(recp);
- if (*tk == 'V')
- recp->kind = K_val;
- else if (*tk == 'M')
- recp->kind = K_member;
- else
- recp->kind = 0;
- recp->data = buf;
- recp->symbol = tk;
- recp->name = strTok(0);
- recp->lex = strTok(0);
- recp->type = strTok(0);
- if (recp->kind) {
- recp->domain = strTok(0);
- recp->range = strTok(0);
- }
- buf = malloc(BSIZE);
- }
-
- fp = fopen(filename, "w");
- if (!fp) {
- fprintf(stderr, "mkdefs: Could not open %s for writing\n",
- filename);
- exit(1);
- }
-
- genGuard(filename, guard);
- fprintf(fp, header, guard, guard);
- fputs(prefix, fp);
-
- for (recp = vals.next; recp; recp = recp->next) {
- if (recp->kind == K_val)
- lastval = idx;
- else if (recp->kind == K_member)
- lastmem = idx;
- fprintf(fp, "#define\t%s\t% 5d\n", recp->symbol, idx++);
- }
- idx--;
- fprintf(fp, "\n#define LAST_V %d\n", lastval);
- fprintf(fp, "#define LAST_M %d\n", lastmem);
- fprintf(fp, "#define MINNAME %d\n#define MAXNAME %d\n\n", MINNAME,
- idx);
-
- fprintf(fp, "static Exid_t symbols[] = {\n");
- for (recp = vals.next; recp; recp = recp->next) {
- fprintf(fp, "\tEX_ID ( %s, %s, %s, %s, 0),\n",
- recp->name, recp->lex, recp->symbol, recp->type);
- }
- fprintf(fp, "\tEX_ID ( {0}, 0, 0, 0, 0)\n};\n");
-
- fprintf(fp, "\nstatic char* typenames[] = {\n");
- for (recp = vals.next; recp; recp = recp->next) {
- if (*(recp->symbol) == 'T')
- fprintf(fp, "\t%s,\n", recp->name);
- }
- fprintf(fp, "};\n");
-
- fprintf(fp, "\n#ifdef DEBUG\nstatic char* gprnames[] = {\n\t\"\",\n");
- for (recp = vals.next; recp; recp = recp->next) {
- fprintf(fp, "\t\"%s\",\n", recp->symbol);
- }
- fprintf(fp, "};\n#endif\n");
-
- fprintf(fp, "\ntypedef unsigned short tctype;\n");
- fprintf(fp, "\nstatic tctype tchk[][2] = {\n\t{ 0, 0 },\n");
- for (recp = vals.next; recp; recp = recp->next) {
- if (recp->kind)
- fprintf(fp, "\t{ %s, %s },\n", recp->domain, recp->range);
- }
- fprintf(fp, "};\n");
-
- fprintf(fp, "\n#endif\n");
- fclose(fp);
-
- /* clean up */
- for (recp = vals.next; recp; recp = vals.next) {
- free(recp->data);
- vals.next = recp->next;
- free(recp);
- }
- free(buf);
-
- exit(0);
-}
+++ /dev/null
-#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_targt 3
-#define V_outgraph 4
-#define V_tgtname 5
-#define V_infname 6
-#define V_travroot 7
-#define V_travtype 8
-#define V_ARGC 9
-#define M_degree 10
-#define M_head 11
-#define M_tail 12
-#define M_name 13
-#define M_indegree 14
-#define M_outdegree 15
-#define M_root 16
-#define M_parent 17
-#define M_n_edges 18
-#define M_n_nodes 19
-#define M_directed 20
-#define M_strict 21
-#define T_node 22
-#define T_edge 23
-#define T_graph 24
-#define T_obj 25
-#define T_tvtyp 26
-#define A_ARGV 27
-#define F_graph 28
-#define F_subg 29
-#define F_issubg 30
-#define F_fstsubg 31
-#define F_nxtsubg 32
-#define F_node 33
-#define F_addnode 34
-#define F_fstnode 35
-#define F_nxtnode 36
-#define F_nxtnodesg 37
-#define F_isnode 38
-#define F_issubnode 39
-#define F_indegree 40
-#define F_outdegree 41
-#define F_degree 42
-#define F_isin 43
-#define F_edge 44
-#define F_edgesg 45
-#define F_addedge 46
-#define F_fstout 47
-#define F_nxtout 48
-#define F_fstin 49
-#define F_nxtin 50
-#define F_fstedge 51
-#define F_nxtedge 52
-#define F_fstoutsg 53
-#define F_nxtoutsg 54
-#define F_fstinsg 55
-#define F_nxtinsg 56
-#define F_fstedgesg 57
-#define F_nxtedgesg 58
-#define F_compof 59
-#define F_kindof 60
-#define F_index 61
-#define F_isedge 62
-#define F_isedgesg 63
-#define F_issubedge 64
-#define F_length 65
-#define F_match 66
-#define F_write 67
-#define F_writeg 68
-#define F_readg 69
-#define F_fwriteg 70
-#define F_freadg 71
-#define F_openf 72
-#define F_closef 73
-#define F_readl 74
-#define F_induce 75
-#define F_isdirect 76
-#define F_isstrict 77
-#define F_delete 78
-#define F_clone 79
-#define F_copy 80
-#define F_copya 81
-#define F_lock 82
-#define F_nnodes 83
-#define F_nedges 84
-#define F_sqrt 85
-#define F_cos 86
-#define F_sin 87
-#define F_atan2 88
-#define F_exp 89
-#define F_pow 90
-#define F_log 91
-#define F_xof 92
-#define F_yof 93
-#define F_llof 94
-#define F_urof 95
-#define F_canon 96
-#define F_get 97
-#define F_set 98
-#define F_dget 99
-#define F_dset 100
-#define F_hasattr 101
-#define F_isattr 102
-#define F_fstattr 103
-#define F_nxtattr 104
-#define C_flat 105
-#define C_ne 106
-#define C_en 107
-#define C_bfs 108
-#define C_dfs 109
-#define C_fwd 110
-#define C_rev 111
-#define C_postdfs 112
-#define C_postfwd 113
-#define C_postrev 114
-#define C_prepostdfs 115
-#define C_prepostfwd 116
-#define C_prepostrev 117
-#define C_null 118
-
-#define LAST_V 9
-#define LAST_M 21
-#define MINNAME 1
-#define MAXNAME 118
-
-static Exid_t symbols[] = {
- EX_ID ( "$", ID, V_this, T_obj, 0),
- EX_ID ( "$G", ID, V_thisg, 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 ( "$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 ( "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 ( "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 ( "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 ( "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 ( "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 ( "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 ( "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",
-};
-
-typedef unsigned short tctype;
-
-static tctype tchk[][2] = {
- { 0, 0 },
- { 0, YALL },
- { 0, Y(G) },
- { 0, Y(G) },
- { 0, Y(G) },
- { 0, Y(S) },
- { 0, Y(S) },
- { 0, Y(V) },
- { 0, Y(TV) },
- { 0, Y(I) },
- { Y(V), Y(I) },
- { 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
+++ /dev/null
-#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