[Tinyos-commits] CVS: tinyos-1.x/tos/lib/VM/languages/tinysql
lex.mll, 1.1, 1.2 sqlgen.ml, 1.4, 1.5
David Gay
idgay at users.sourceforge.net
Fri Sep 23 09:17:37 PDT 2005
Update of /cvsroot/tinyos/tinyos-1.x/tos/lib/VM/languages/tinysql
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22057
Modified Files:
lex.mll sqlgen.ml
Log Message:
syntax change
print query in generated code
Index: lex.mll
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/tos/lib/VM/languages/tinysql/lex.mll,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** lex.mll 11 Jan 2005 18:52:07 -0000 1.1
--- lex.mll 23 Sep 2005 16:17:35 -0000 1.2
***************
*** 9,12 ****
--- 9,13 ----
| "where" { WHERE }
| "interval" { INTERVAL }
+ | "sample"' '+"period" { INTERVAL }
| ',' { SCOMMA }
| '<' { SLT }
Index: sqlgen.ml
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/tos/lib/VM/languages/tinysql/sqlgen.ml,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** sqlgen.ml 12 Apr 2005 23:54:30 -0000 1.4
--- sqlgen.ml 23 Sep 2005 16:17:35 -0000 1.5
***************
*** 42,49 ****
let condprint = optionfn "" (function c -> " WHERE " ^ cprint c)
let sqlprint { fields = f; cond = c; interval = i } =
printf "// SELECT %s%s INTERVAL %d\n"
(concat ", " (map valprint f))
! (condprint c) i
let sqlheader interval global vars msgvars allvars =
--- 42,72 ----
let condprint = optionfn "" (function c -> " WHERE " ^ cprint c)
+ let schemaprint schemanames =
+ let rec schemaname basename =
+ if (Hashtbl.mem schemanames basename) then
+ let next = Hashtbl.find schemanames basename in
+ Hashtbl.replace schemanames basename (next + 1);
+ sprintf "%s%d" basename next
+ else
+ begin
+ Hashtbl.replace schemanames basename 1;
+ basename
+ end
+ and sprint = function
+ Attribute s -> s
+ | Number n -> "number"
+ | Op (name, args, _) -> sprintf "%s_%s" name (sprint (hd args))
+ | GOp (name, args, _) -> sprintf "%s_%s" name (sprint (hd args))
+ in
+ function s -> schemaname (sprint s)
+
+
let sqlprint { fields = f; cond = c; interval = i } =
printf "// SELECT %s%s INTERVAL %d\n"
(concat ", " (map valprint f))
! (condprint c) i;
! let schemanames = Hashtbl.create 16 in
! printf "// SCHEMA: %s\n"
! (concat " " (map (schemaprint schemanames) f))
let sqlheader interval global vars msgvars allvars =
More information about the Tinyos-commits
mailing list