Update of /cvsroot/monetdb/pathfinder/compiler/debug
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv14645/compiler/debug
Modified Files:
Tag: PF_ROX
coreprint.c logdebug.c physdebug.c
Removed Files:
Tag: PF_ROX
mildebug.c
Log Message:
propagated changes of Friday 15 Feb 2008 - Monday Feb 18 2008
from the development trunk to the PF_ROX branch
--- mildebug.c DELETED ---
Index: logdebug.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/debug/logdebug.c,v
retrieving revision 1.89.2.1
retrieving revision 1.89.2.2
diff -u -d -r1.89.2.1 -r1.89.2.2
--- logdebug.c 9 Feb 2008 08:40:29 -0000 1.89.2.1
+++ logdebug.c 18 Feb 2008 16:57:26 -0000 1.89.2.2
@@ -44,7 +44,6 @@
#include "mem.h"
#include "prettyp.h"
#include "oops.h"
-#include "subtyping.h" /* step printing */
#include "pfstrings.h"
/** Node names to print out for all the Algebra tree nodes. */
@@ -307,6 +306,55 @@
}
static char *
+xml_literal_list (PFalg_simple_type_t ty)
+{
+ bool first = true;
+ PFarray_t *s = PFarray (sizeof (char));
+
+ if (ty & aat_update)
+ PFarray_printf (s, "update");
+ else if (ty & aat_docmgmt)
+ PFarray_printf (s, "docmgmt");
+ else
+ for (PFalg_simple_type_t t = 1; t; t <<= 1) {
+ if (t & ty) {
+ /* hide fragment information */
+ switch (t) {
+ case aat_pre:
+ case aat_frag:
+ case aat_qname_loc:
+ continue;
+ default:
+ break;
+ }
+
+ /* start printing spaces only after the first type */
+ if (!first)
+ PFarray_printf (s, " ");
+ else
+ first = false;
+
+ /* print the different types */
+ switch (t) {
+ case aat_nat: PFarray_printf (s, "nat"); break;
+ case aat_int: PFarray_printf (s, "int"); break;
+ case aat_str: PFarray_printf (s, "str"); break;
+ case aat_dec: PFarray_printf (s, "dec"); break;
+ case aat_dbl: PFarray_printf (s, "dbl"); break;
+ case aat_bln: PFarray_printf (s, "bool"); break;
+ case aat_uA: PFarray_printf (s, "uA"); break;
+ case aat_qname_id: PFarray_printf (s, "qname"); break;
+ case aat_attr: PFarray_printf (s, "attr"); break;
+ case aat_nkind: PFarray_printf (s, "pnode"); break;
+ default: break;
+ }
+ }
+ }
+
+ return (char *) s->base;
+}
+
+static char *
comp_str (PFalg_comp_t comp) {
switch (comp) {
case alg_comp_eq: return "eq";
@@ -714,52 +762,21 @@
PFarray_printf (dot, "\", fontcolor=\"#FFFFFF\", label=\"");
case la_step:
case la_step_join:
- PFarray_printf (dot, "%s ", a_id[n->kind]);
+ PFarray_printf (dot, "%s %s::%s",
+ a_id[n->kind],
+ PFalg_axis_str (n->sem.step.spec.axis),
+ PFalg_node_kind_str (n->sem.step.spec.kind));
+
+ if (n->sem.step.spec.kind == node_kind_elem ||
+ n->sem.step.spec.kind == node_kind_attr)
+ PFarray_printf (dot, "(%s)",
+ PFqname_str (n->sem.step.spec.qname));
+ else if (n->sem.step.spec.kind == node_kind_pi &&
+ PFqname_loc (n->sem.step.spec.qname))
+ PFarray_printf (dot, "(%s)", PFqname_loc
(n->sem.step.spec.qname));
+ else
+ PFarray_printf (dot, "()");
- /* print out XPath axis */
- switch (n->sem.step.axis)
- {
- case alg_anc:
- PFarray_printf (dot, "ancestor::");
- break;
- case alg_anc_s:
- PFarray_printf (dot, "anc-or-self::");
- break;
- case alg_attr:
- PFarray_printf (dot, "attribute::");
- break;
- case alg_chld:
- PFarray_printf (dot, "child::");
- break;
- case alg_desc:
- PFarray_printf (dot, "descendant::");
- break;
- case alg_desc_s:
- PFarray_printf (dot, "desc-or-self::");
- break;
- case alg_fol:
- PFarray_printf (dot, "following::");
- break;
- case alg_fol_s:
- PFarray_printf (dot, "fol-sibling::");
- break;
- case alg_par:
- PFarray_printf (dot, "parent::");
- break;
- case alg_prec:
- PFarray_printf (dot, "preceding::");
- break;
- case alg_prec_s:
- PFarray_printf (dot, "prec-sibling::");
- break;
- case alg_self:
- PFarray_printf (dot, "self::");
- break;
- default: PFoops (OOPS_FATAL,
- "unknown XPath axis in dot output");
- }
- PFarray_printf (dot, "%s ", PFty_str (n->sem.step.ty));
-
/* print guide info */
if (n->kind == la_guide_step ||
n->kind == la_guide_step_join) {
@@ -1325,52 +1342,10 @@
* </schema>
*/
PFarray_printf (xml, " <schema>\n");
- for (unsigned int i = 0; i < n->schema.count; i++) {
- bool first = true;
-
- PFarray_printf (xml, " <col name=\"%s\" types=\"",
- PFatt_str (n->schema.items[i].name));
-
- if (n->schema.items[i].type & aat_update)
- PFarray_printf (xml, "update");
- else if (n->schema.items[i].type & aat_docmgmt)
- PFarray_printf (xml, "docmgmt");
- else
- for (PFalg_simple_type_t t = 1; t; t <<= 1) {
- if (t & n->schema.items[i].type) {
- /* hide fragment information */
- switch (t) {
- case aat_afrag:
- case aat_pfrag:
- continue;
- default:
- break;
- }
-
- /* start printing spaces only after the first type */
- if (!first)
- PFarray_printf (xml, " ");
- else
- first = false;
-
- /* print the different types */
- switch (t) {
- case aat_nat: PFarray_printf (xml, "nat"); break;
- case aat_int: PFarray_printf (xml, "int"); break;
- case aat_str: PFarray_printf (xml, "str"); break;
- case aat_dec: PFarray_printf (xml, "dec"); break;
- case aat_dbl: PFarray_printf (xml, "dbl"); break;
- case aat_bln: PFarray_printf (xml, "bln"); break;
- case aat_qname: PFarray_printf (xml, "qname"); break;
- case aat_uA: PFarray_printf (xml, "uA"); break;
- case aat_attr: PFarray_printf (xml, "attr"); break;
- case aat_pre: PFarray_printf (xml, "node"); break;
- default: break;
- }
- }
- }
- PFarray_printf (xml, "\"/>\n");
- }
+ for (unsigned int i = 0; i < n->schema.count; i++)
+ PFarray_printf (xml, " <col name=\"%s\" types=\"%s\"/>\n",
+ PFatt_str (n->schema.items[i].name),
+ xml_literal_list (n->schema.items[i].type));
PFarray_printf (xml, " </schema>\n");
if (PFstate.format) {
@@ -1536,53 +1511,12 @@
PFarray_printf (xml, " <content>\n");
/* list the attributes of this table */
- for (unsigned int i = 0; i < n->schema.count; i++) {
- bool first = true;
-
- PFarray_printf (xml, " <column name=\"%s\" type=\"",
- PFatt_str (n->schema.items[i].name));
-
- if (n->schema.items[i].type & aat_update)
- PFarray_printf (xml, "update");
- else
- for (PFalg_simple_type_t t = 1; t; t <<= 1) {
- if (t & n->schema.items[i].type) {
- /* hide fragment information */
- switch (t) {
- case aat_afrag:
- case aat_pfrag:
- continue;
- default:
- break;
- }
-
- /* start printing spaces only after the first type
*/
- if (!first)
- PFarray_printf (xml, " ");
- else
- first = false;
-
- /* print the different types */
- switch (t) {
- case aat_nat: PFarray_printf (xml, "nat");
break;
- case aat_int: PFarray_printf (xml, "int");
break;
- case aat_str: PFarray_printf (xml, "str");
break;
- case aat_dec: PFarray_printf (xml, "dec");
break;
- case aat_dbl: PFarray_printf (xml, "dbl");
break;
- case aat_bln: PFarray_printf (xml, "bln");
break;
- case aat_qname: PFarray_printf (xml,
"qname"); break;
- case aat_uA: PFarray_printf (xml, "uA");
break;
- case aat_attr: PFarray_printf (xml, "attr");
break;
- case aat_pre: PFarray_printf (xml, "node");
break;
- default:
break;
- }
- }
- }
- PFarray_printf (xml, "\" new=\"true\"/>\n");
- }
-
-
-
+ for (unsigned int i = 0; i < n->schema.count; i++)
+ PFarray_printf (xml,
+ " <column name=\"%s\" type=\"%s\""
+ " new=\"true\"/>\n",
+ PFatt_str (n->schema.items[i].name),
+ xml_literal_list (n->schema.items[i].type));
PFarray_printf (xml, " </content>\n");
break;
@@ -1912,188 +1846,24 @@
case la_guide_step:
case la_guide_step_join:
{
- PFty_t ty = n->sem.step.ty;
- char *kind = NULL,
+ char *axis = PFalg_axis_str (n->sem.step.spec.axis),
+ *kind = PFalg_node_kind_str (n->sem.step.spec.kind),
*prefix = NULL,
*uri = NULL,
*local = NULL;
- PFarray_printf (xml, " <content>\n <step axis=\"");
-
- /* print out XPath axis */
- switch (n->sem.step.axis)
- {
- case alg_anc:
- PFarray_printf (xml, "ancestor");
- break;
- case alg_anc_s:
- PFarray_printf (xml, "ancestor-or-self");
- break;
- case alg_attr:
- PFarray_printf (xml, "attribute");
- break;
- case alg_chld:
- PFarray_printf (xml, "child");
- break;
- case alg_desc:
- PFarray_printf (xml, "descendant");
- break;
- case alg_desc_s:
- PFarray_printf (xml, "descendant-or-self");
- break;
- case alg_fol:
- PFarray_printf (xml, "following");
- break;
- case alg_fol_s:
- PFarray_printf (xml, "following-sibling");
- break;
- case alg_par:
- PFarray_printf (xml, "parent");
- break;
- case alg_prec:
- PFarray_printf (xml, "preceding");
- break;
- case alg_prec_s:
- PFarray_printf (xml, "preceding-sibling");
- break;
- case alg_self:
- PFarray_printf (xml, "self");
- break;
- default: PFoops (OOPS_FATAL,
- "unknown XPath axis in dot output");
- }
-
- if (PFty_subtype (ty, PFty_xs_anyAttribute ())) {
-
- /* This is a test for attribute nodes */
- kind = "attribute";
-
- /* Is it just a generic attribute kind test?
- (e.g. .../attribute()) */
- if (PFty_subtype (PFty_xs_anyAttribute (), ty))
- ;
- /* Is it a test on attribute kind and local name only? */
- else if (PFty_subtype (
- PFty_attr (
- PFqname (PFns_wild,
- PFqname_loc (
- PFty_name (PFty_defn (ty)))),
- PFty_xs_anySimpleType ()),
- ty))
- local = PFqname_loc (PFty_name (PFty_defn (ty)));
- /* Or maybe a test on attribute kind and namespace only? */
- else if (PFty_subtype (
- PFty_attr (
- PFqname (
- PFqname_ns (PFty_name (PFty_defn (ty))),
- NULL),
- PFty_xs_anySimpleType ()),
- ty)) {
- prefix = PFqname_prefix (PFty_name (PFty_defn (ty)));
- uri = PFqname_uri (PFty_name (PFty_defn (ty)));
- }
- /* A test on attribute kind and full QName? */
- else if (PFty_subtype (
- PFty_attr (PFty_name (PFty_defn (ty)),
- PFty_xs_anySimpleType ()),
- ty)) {
- prefix = PFqname_prefix (PFty_name (PFty_defn (ty)));
- uri = PFqname_uri (PFty_name (PFty_defn (ty)));
- local = PFqname_loc (PFty_name (PFty_defn (ty)));
- }
- /*
- * If we couldn't figure out what attribute test we got,
- * give up.
- *
- * NOTE: The surface language actually allows such tests. We
- * just cannot implement them (yet):
- *
- * doc("foo")/attribute::attribute(shoeSize, xs:integer)
- */
- else
- PFoops (OOPS_FATAL,
- "Problem with an XPath step: cannot evaluate "
- "node test `%s'", PFty_str (ty));
- }
- else if (PFty_subtype (ty, PFty_xs_anyElement ())) {
-
- /* This is a test for element nodes */
- kind = "element";
-
- /* Is it just a generic element kind test?
- (e.g. .../element()) */
- if (PFty_subtype (PFty_xs_anyElement (), ty))
- ;
- /* Is it a test on element kind and local name only? */
- else if (PFty_subtype (
- PFty_elem (
- PFqname (PFns_wild,
- PFqname_loc (
- PFty_name (PFty_defn (ty)))),
- PFty_xs_anyType ()),
- ty))
- local = PFqname_loc (PFty_name (PFty_defn (ty)));
- /* Or maybe a test on element kind and namespace only? */
- else if (PFty_subtype (
- PFty_elem (
- PFqname (
- PFqname_ns (PFty_name (PFty_defn (ty))),
- NULL),
- PFty_xs_anyType ()),
- ty)) {
- prefix = PFqname_prefix (PFty_name (PFty_defn (ty)));
- uri = PFqname_uri (PFty_name (PFty_defn (ty)));
- }
- /* A test on element kind and full QName? */
- else if (PFty_subtype (
- PFty_elem (PFty_name (PFty_defn (ty)),
- PFty_xs_anyType ()),
- ty)) {
- prefix = PFqname_prefix (PFty_name (PFty_defn (ty)));
- uri = PFqname_uri (PFty_name (PFty_defn (ty)));
- local = PFqname_loc (PFty_name (PFty_defn (ty)));
- }
- /*
- * If we couldn't figure out what element test we got, give up.
- *
- * NOTE: The surface language actually allows such tests. We
- * just cannot implement them (yet):
- *
- * doc("foo")/child::element(shoeSize, xs:integer)
- */
- else
- PFoops (OOPS_FATAL,
- "Problem with an XPath step: cannot evaluate "
- "node test `%s'", PFty_str (ty));
- }
- else if (PFty_subtype (ty, PFty_text ())) {
- /* This is a test for text nodes */
- kind = "textnode";
- }
- else if (PFty_subtype (ty, PFty_comm ())) {
- /* This is a test for comment nodes */
- kind = "comment";
- }
- else if (PFty_subtype (ty, PFty_pi (NULL))) {
- /* This is a test for processing-instruction nodes */
- kind = "processing-instruction";
-
- /* lookup target if any */
- if (!PFty_subtype (PFty_pi (NULL), ty))
- local = PFqname_loc (PFty_name (PFty_defn (ty)));
- }
- else if (PFty_subtype (PFty_xs_anyNode (), ty)) {
- /* If all these cases did not apply,
- it is probably a node() test. */
- kind = "node";
- }
- /* If we still couldn't find out, we probably need to give up. */
- else
- PFoops (OOPS_FATAL,
- "Problem with an XPath step: cannot evaluate "
- "node test `%s'", PFty_str (ty));
-
- PFarray_printf (xml, "\" kind=\"%s\"", kind);
+ if (n->sem.step.spec.kind == node_kind_elem ||
+ n->sem.step.spec.kind == node_kind_attr) {
+ prefix = PFqname_prefix (n->sem.step.spec.qname);
+ uri = PFqname_uri (n->sem.step.spec.qname);
+ local = PFqname_loc (n->sem.step.spec.qname);
+ } else if (n->sem.step.spec.kind == node_kind_pi)
+ local = PFqname_loc (n->sem.step.spec.qname);
+
+ PFarray_printf (xml,
+ " <content>\n"
+ " <step axis=\"%s\" kind=\"%s\"",
+ axis, kind);
if (prefix) {
PFarray_printf (xml, " prefix=\"%s\"", prefix);
PFarray_printf (xml, " uri=\"%s\"", uri);
Index: physdebug.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/debug/physdebug.c,v
retrieving revision 1.50.2.1
retrieving revision 1.50.2.2
diff -u -d -r1.50.2.1 -r1.50.2.2
--- physdebug.c 9 Feb 2008 08:40:29 -0000 1.50.2.1
+++ physdebug.c 18 Feb 2008 16:57:26 -0000 1.50.2.2
@@ -75,37 +75,24 @@
, [pa_refine_sort] = "refine_sort"
, [pa_fun_1to1] = "1:1 fun"
, [pa_eq] = "="
- , [pa_eq_atom] = "= (atom)"
, [pa_gt] = ">"
- , [pa_gt_atom] = "> (atom)"
, [pa_bool_and] = "AND"
, [pa_bool_or] = "OR"
, [pa_bool_not] = "NOT"
- , [pa_bool_and_atom] = "AND (atom)"
- , [pa_bool_or_atom] = "OR (atom)"
, [pa_to] = "op:to"
, [pa_avg] = "AVG"
, [pa_min] = "MAX"
, [pa_max] = "MIN"
, [pa_sum] = "SUM"
- , [pa_hash_count] = "HASH_COUNT"
+ , [pa_count_ext] = "{COUNT}"
+ , [pa_count] = "COUNT"
, [pa_mark] = "mark"
, [pa_rank] = "rank"
, [pa_mark_grp] = "mark_grp"
, [pa_type] = "TYPE"
, [pa_type_assert] = "type assertion"
, [pa_cast] = "CAST"
- , [pa_llscj_anc] = "//| ancestor"
- , [pa_llscj_anc_self] = "//| anc-self"
- , [pa_llscj_attr] = "//| attr"
- , [pa_llscj_child] = "//| child"
- , [pa_llscj_desc] = "//| descendant"
- , [pa_llscj_desc_self] = "//| desc-self"
- , [pa_llscj_foll] = "//| following"
- , [pa_llscj_foll_sibl] = "//| foll-sibl"
- , [pa_llscj_parent] = "//| parent"
- , [pa_llscj_prec] = "//| preceding"
- , [pa_llscj_prec_sibl] = "//| prec-sibl"
+ , [pa_llscjoin] = "//| "
, [pa_doc_tbl] = "DOC"
, [pa_doc_access] = "access"
, [pa_twig] = "TWIG" /* lawn \"#00FF00\" */
@@ -117,12 +104,8 @@
, [pa_comment] = "COMMENT" /* lawn \"#00FF00\" */
, [pa_processi] = "PI" /* lawn \"#00FF00\" */
, [pa_content] = "CONTENT" /* lawn \"#00FF00\" */
+ , [pa_slim_content] = "content" /* lawn \"#00FF00\" */
, [pa_merge_adjacent] = "#pf:merge-adjacent-text-nodes"
- , [pa_roots] = "ROOTS"
- , [pa_fragment] = "FRAGs"
- , [pa_frag_extract] = "FRAG EXTRACT"
- , [pa_frag_union] = "FRAG_UNION"
- , [pa_empty_frag] = "EMPTY_FRAG"
, [pa_error] = "!ERROR"
, [pa_cond_err] = "!ERROR"
, [pa_nil] = "nil"
@@ -136,7 +119,6 @@
, [pa_rec_border] = "rec border"
, [pa_fun_call] = "fun call"
, [pa_fun_param] = "fun param"
- , [pa_fun_frag_param] = "fun frag param"
, [pa_string_join] = "fn:string-join"
};
@@ -234,37 +216,24 @@
, [pa_refine_sort] = "red"
, [pa_fun_1to1] = "\"#C0C0C0\""
, [pa_eq] = "\"#00DDDD\""
- , [pa_eq_atom] = "\"#00DDDD\""
, [pa_gt] = "\"#00DDDD\""
- , [pa_gt_atom] = "\"#00DDDD\""
, [pa_bool_not] = "\"#C0C0C0\""
, [pa_bool_and] = "\"#C0C0C0\""
, [pa_bool_or] = "\"#C0C0C0\""
- , [pa_bool_and_atom] = "\"#C0C0C0\""
- , [pa_bool_or_atom] = "\"#C0C0C0\""
, [pa_to] = "\"#C0C0C0\""
, [pa_avg] = "\"#A0A0A0\""
, [pa_max] = "\"#A0A0A0\""
, [pa_min] = "\"#A0A0A0\""
, [pa_sum] = "\"#A0A0A0\""
- , [pa_hash_count] = "\"#A0A0A0\""
+ , [pa_count_ext] = "\"#A0A0A0\""
+ , [pa_count] = "\"#A0A0A0\""
, [pa_mark] = "\"#FFBBBB\""
, [pa_rank] = "\"#FFBBBB\""
, [pa_mark_grp] = "\"#FFBBBB\""
, [pa_type] = "\"#C0C0C0\""
, [pa_type_assert] = "\"#C0C0C0\""
, [pa_cast] = "\"#C0C0C0\""
- , [pa_llscj_anc] = "\"#1E90FF\""
- , [pa_llscj_anc_self] = "\"#1E90FF\""
- , [pa_llscj_attr] = "\"#1E90FF\""
- , [pa_llscj_child] = "\"#1E90FF\""
- , [pa_llscj_desc] = "\"#1E90FF\""
- , [pa_llscj_desc_self] = "\"#1E90FF\""
- , [pa_llscj_foll] = "\"#1E90FF\""
- , [pa_llscj_foll_sibl] = "\"#1E90FF\""
- , [pa_llscj_parent] = "\"#1E90FF\""
- , [pa_llscj_prec] = "\"#1E90FF\""
- , [pa_llscj_prec_sibl] = "\"#1E90FF\""
+ , [pa_llscjoin] = "\"#1E90FF\""
, [pa_doc_tbl] = "\"#C0C0C0\""
, [pa_doc_access] = "\"#CCCCFF\""
, [pa_twig] = "\"#00FC59\""
@@ -277,11 +246,6 @@
, [pa_processi] = "\"#00FC59\""
, [pa_content] = "\"#00FC59\""
, [pa_merge_adjacent] = "\"#00D000\""
- , [pa_roots] = "\"#E0E0E0\""
- , [pa_fragment] = "\"#E0E0E0\""
- , [pa_frag_extract] = "\"#DD22DD\""
- , [pa_frag_union] = "\"#E0E0E0\""
- , [pa_empty_frag] = "\"#E0E0E0\""
, [pa_error] = "\"#C0C0C0\""
, [pa_cond_err] = "\"#C0C0C0\""
, [pa_nil] = "\"#FFFFFF\""
@@ -295,7 +259,6 @@
, [pa_rec_border] = "\"#BB00BB\""
, [pa_fun_call] = "\"#BB00BB\""
, [pa_fun_param] = "\"#BB00BB\""
- , [pa_fun_frag_param] = "\"#BB00BB\""
, [pa_string_join] = "\"#C0C0C0\""
};
@@ -462,23 +425,14 @@
PFatt_str (n->sem.binary.att2));
break;
- case pa_eq_atom:
- case pa_gt_atom:
- case pa_bool_and_atom:
- case pa_bool_or_atom:
- PFarray_printf (dot, "%s (%s:<%s, %s>)", a_id[n->kind],
- PFatt_str (n->sem.bin_atom.res),
- PFatt_str (n->sem.bin_atom.att1),
- literal (n->sem.bin_atom.att2));
- break;
-
case pa_bool_not:
PFarray_printf (dot, "%s (%s:<%s>)", a_id[n->kind],
PFatt_str (n->sem.unary.res),
PFatt_str (n->sem.unary.att));
break;
- case pa_hash_count:
+ case pa_count_ext:
+ case pa_count:
if (n->sem.count.part == att_NULL)
PFarray_printf (dot, "%s (%s)", a_id[n->kind],
PFatt_str (n->sem.count.res));
@@ -486,6 +440,9 @@
PFarray_printf (dot, "%s (%s:/%s)", a_id[n->kind],
PFatt_str (n->sem.count.res),
PFatt_str (n->sem.count.part));
+ if (n->sem.count.loop != att_NULL)
+ PFarray_printf (dot, " (%s)",
+ PFatt_str (n->sem.count.loop));
break;
case pa_avg:
@@ -541,19 +498,22 @@
PFalg_simple_type_str (n->sem.cast.ty));
break;
- case pa_llscj_anc:
- case pa_llscj_anc_self:
- case pa_llscj_attr:
- case pa_llscj_child:
- case pa_llscj_desc:
- case pa_llscj_desc_self:
- case pa_llscj_foll:
- case pa_llscj_foll_sibl:
- case pa_llscj_parent:
- case pa_llscj_prec:
- case pa_llscj_prec_sibl:
- PFarray_printf (dot, "%s", a_id[n->kind]);
- PFarray_printf (dot, "::%s", PFty_str (n->sem.scjoin.ty));
+ case pa_llscjoin:
+ PFarray_printf (dot, "%s %s::%s",
+ a_id[n->kind],
+ PFalg_axis_str (n->sem.scjoin.spec.axis),
+ PFalg_node_kind_str (n->sem.scjoin.spec.kind));
+
+ if (n->sem.scjoin.spec.kind == node_kind_elem ||
+ n->sem.scjoin.spec.kind == node_kind_attr)
+ PFarray_printf (dot, "(%s)",
+ PFqname_str (n->sem.scjoin.spec.qname));
+ else if (n->sem.scjoin.spec.kind == node_kind_pi &&
+ PFqname_loc (n->sem.scjoin.spec.qname))
+ PFarray_printf (dot, "(%s)",
+ PFqname_loc (n->sem.scjoin.spec.qname));
+ else
+ PFarray_printf (dot, "()");
break;
case pa_doc_access:
@@ -587,6 +547,7 @@
case pa_textnode:
case pa_comment:
case pa_content:
+ case pa_slim_content:
case pa_trace:
case pa_trace_msg:
PFarray_printf (dot, "%s (%s, %s)",
@@ -650,12 +611,6 @@
PFarray_printf (dot, ")");
break;
- case pa_frag_extract:
- case pa_fun_frag_param:
- PFarray_printf (dot, "%s (referencing column %i)",
- a_id[n->kind], n->sem.col_ref.pos);
- break;
-
case pa_serialize:
case pa_cross:
case pa_append_union:
@@ -664,10 +619,6 @@
case pa_doc_tbl:
case pa_fcns:
case pa_merge_adjacent:
- case pa_roots:
- case pa_fragment:
- case pa_frag_union:
- case pa_empty_frag:
case pa_nil:
case pa_rec_fix:
case pa_rec_param:
Index: coreprint.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/debug/coreprint.c,v
retrieving revision 1.42
retrieving revision 1.42.4.1
diff -u -d -r1.42 -r1.42.4.1
--- coreprint.c 11 Jan 2008 10:47:01 -0000 1.42
+++ coreprint.c 18 Feb 2008 16:57:26 -0000 1.42.4.1
@@ -50,13 +50,8 @@
#include "prettyp.h"
#include <assert.h>
-/*
- * Easily access subtree parts.
- */
-/** starting from p, make a left step */
-#define L(p) ((p)->child[0])
-/** starting from p, make a right step */
-#define R(p) ((p)->child[1])
+/* Easily access subtree-parts */
+#include "child_mnemonic.h"
/** Node names to print out for all the abstract syntax tree nodes. */
char *c_id[] = {
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins