Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv22818/compiler/mil
Modified Files:
milgen.brg milprint.c
Log Message:
implementation for id/idref...
works only for elements for now, but I wanted to commit before the branching.
U milprint.c
Index: milprint.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint.c,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- milprint.c 21 May 2008 10:10:49 -0000 1.77
+++ milprint.c 23 May 2008 20:46:41 -0000 1.78
@@ -1062,7 +1062,7 @@
print_expression (n->child[5]);
milprintf (", ");
print_expression (n->child[6]);
- milprintf (", ");
+ milprintf (")");
break;
/* expression : 'htordered_unique_thetajoin (' exp ',' exp ','
U milgen.brg
Index: milgen.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milgen.brg,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -d -r1.156 -r1.157
--- milgen.brg 21 May 2008 10:10:49 -0000 1.156
+++ milgen.brg 23 May 2008 20:46:40 -0000 1.157
@@ -204,6 +204,7 @@
%term fun_call = 150
%term fun_param = 151
%term string_join = 160
+%term findnodes = 170
/* fold) */
/** @cond GRAMMAR */ /* make doxygen ignore the grammar */
@@ -300,6 +301,7 @@
Param: nil = 154 (10);
Rel: string_join (Rel, Rel) = 160 (10);
+Rel: findnodes (Rel) = 170 (10);
/* fold) */
%%
@@ -9152,6 +9154,51 @@
env_add (p->env, p->sem.ii.item, aat_str, item);
} break; /* fold) */
+ /* Rel: findnodes (Rel) */
+ case 170: /* fold( */
+ {
+ mvar_t *nodes = new_var (1);
+ mvar_t *iter = new_var (p->refctr);
+ mvar_t *item_res = new_var (p->refctr);
+
+ PFmil_t *pre = VAR (L(p)->env,
+ p->sem.findnodes.item_doc,
+ aat_pre),
+ *pre_cont = VAR (L(p)->env,
+ p->sem.findnodes.item_doc,
+ aat_frag);
+
+ execute (
+ assgn (var (nodes->name),
+ ws_findnodes (
+ var (PF_MIL_VAR_WS),
+ VAR (L(p)->env, p->sem.findnodes.iter, aat_nat),
+ pre,
+ set_kind (pre_cont, var (PF_MIL_VAR_ELEM)),
+ /*mposjoin (
+ pre,
+ pre_cont,
+ fetch (var (PF_MIL_VAR_WS),*/
+ pre_cont,
+ VAR (L(p)->env, p->sem.findnodes.item, aat_str),
+ p->sem.findnodes.id == la_dj_id ? lit_bit (true) :
+ lit_bit (false)
+ )));
+
+ execute (
+ assgn (var (iter->name),
+ hmark ( var (nodes->name), lit_oid(0))),
+ assgn (var (item_res->name),
+ tmark ( var (nodes->name), lit_oid(0))));
+
+ env_add (p->env, p->sem.findnodes.iter, aat_nat, iter);
+ env_add (p->env, p->sem.findnodes.item_res, aat_pre, item_res);
+ env_add (p->env, p->sem.findnodes.item_res, aat_frag, item_res);
+
+ unpin (nodes, 1);
+
+ } break; /* fold) */
+
default:
PFoops (OOPS_FATAL, "unknown rule %u", rule);
break;
-------------------------------------------------------------------------
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