flora-commits Mailing List for Flora-2
Brought to you by:
kifer
You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(59) |
Jun
(43) |
Jul
(4) |
Aug
(4) |
Sep
(102) |
Oct
(20) |
Nov
(47) |
Dec
(32) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(24) |
Feb
(34) |
Mar
(72) |
Apr
(36) |
May
(10) |
Jun
(46) |
Jul
(36) |
Aug
(24) |
Sep
(37) |
Oct
(27) |
Nov
(43) |
Dec
(40) |
| 2004 |
Jan
(35) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(30) |
Aug
(83) |
Sep
(68) |
Oct
(38) |
Nov
(3) |
Dec
(7) |
| 2005 |
Jan
(9) |
Feb
(31) |
Mar
(46) |
Apr
(73) |
May
(21) |
Jun
(1) |
Jul
(32) |
Aug
(33) |
Sep
(3) |
Oct
(28) |
Nov
(4) |
Dec
(23) |
| 2006 |
Jan
(22) |
Feb
(2) |
Mar
(12) |
Apr
(23) |
May
(73) |
Jun
(14) |
Jul
|
Aug
(20) |
Sep
(14) |
Oct
(5) |
Nov
|
Dec
(14) |
| 2007 |
Jan
(54) |
Feb
(81) |
Mar
(286) |
Apr
(313) |
May
(154) |
Jun
(85) |
Jul
(8) |
Aug
(11) |
Sep
(12) |
Oct
(14) |
Nov
(6) |
Dec
(6) |
| 2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
(12) |
May
(4) |
Jun
|
Jul
(13) |
Aug
(22) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(46) |
Jun
(43) |
Jul
(46) |
Aug
(9) |
Sep
(13) |
Oct
(31) |
Nov
(42) |
Dec
(18) |
| 2014 |
Jan
(7) |
Feb
(7) |
Mar
(11) |
Apr
(13) |
May
(16) |
Jun
(6) |
Jul
(17) |
Aug
|
Sep
(2) |
Oct
|
Nov
(1) |
Dec
|
| 2015 |
Jan
|
Feb
(17) |
Mar
(4) |
Apr
(3) |
May
(2) |
Jun
(3) |
Jul
(2) |
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
| 2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
|
2
|
3
|
4
|
5
|
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
|
20
|
21
(10) |
22
(1) |
23
|
24
|
25
|
26
|
|
27
|
28
(2) |
29
|
30
|
31
|
|
|
|
From: Michael K. <ki...@us...> - 2008-07-28 20:18:25
|
Update of /cvsroot/flora/flora-website In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv22116 Modified Files: relatedWorks.php Log Message: fixed links Index: relatedWorks.php =================================================================== RCS file: /cvsroot/flora/flora-website/relatedWorks.php,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- relatedWorks.php 28 Jul 2008 20:11:29 -0000 1.11 +++ relatedWorks.php 28 Jul 2008 20:18:33 -0000 1.12 @@ -24,7 +24,7 @@ <h3>Web information systems:</h3> <ul> <li> - <a href="http://citeseer.ist.psu.com/425424.html"> + <a href="http://citeseer.ist.psu.edu/425424.html"> Ontobroker: How to Make the WWW Intelligent. </a> European Conference on Digital Libraries, 1998. @@ -36,7 +36,7 @@ </a> </li> <li> - <a href="http://citeseer.ist.psu.com/davulcu99layered.html"> + <a href="http://citeseer.ist.psu.edu/davulcu99layered.html"> A Layered Architecture for Querying Dynamic Web. </a> Proceedings of SIGMOD 1999. |
|
From: Michael K. <ki...@us...> - 2008-07-28 20:11:31
|
Update of /cvsroot/flora/flora-website In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv18997 Modified Files: aboutFlogic.php aboutTR.php relatedWorks.php Log Message: fixed links Index: relatedWorks.php =================================================================== RCS file: /cvsroot/flora/flora-website/relatedWorks.php,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- relatedWorks.php 18 Sep 2007 18:36:29 -0000 1.10 +++ relatedWorks.php 28 Jul 2008 20:11:29 -0000 1.11 @@ -24,7 +24,7 @@ <h3>Web information systems:</h3> <ul> <li> - <a href="http://citeseer.nj.nec.com/425424.html"> + <a href="http://citeseer.ist.psu.com/425424.html"> Ontobroker: How to Make the WWW Intelligent. </a> European Conference on Digital Libraries, 1998. @@ -36,7 +36,7 @@ </a> </li> <li> - <a href="http://citeseer.nj.nec.com/davulcu99layered.html"> + <a href="http://citeseer.ist.psu.com/davulcu99layered.html"> A Layered Architecture for Querying Dynamic Web. </a> Proceedings of SIGMOD 1999. @@ -50,7 +50,7 @@ In Int'l Conference on Computational Logic (DOOD-2000 Stream), July 2000. </li> <li> - <a href="http://citeseer.nj.nec.com/himmeroder98querying.html"> + <a href="http://citeseer.ist.psu.edu/himmeroder98querying.html"> Querying the Web with FLORID </a> </li> @@ -62,7 +62,7 @@ Web Services Modeling Ontology</a> project. </li> <li> - <a href="CTR-S: A Logic for Specifying Contracts in Semantic Web Services"> + <a href="http://citeseer.ist.psu.edu/davulcu04ctrs.html"> CTR-S: A Logic for Specifying Contracts in Semantic Web Services </a> Proceddings of the 13-th World Wide Web Conference (WWW2004), May 2004. @@ -71,13 +71,13 @@ <h3>Workflow modeling:</h3> <ul> <li> - <a href="http://citeseer.nj.nec.com/davulcu98logic.html"> + <a href="http://citeseer.ist.psu.edu/davulcu98logic.html"> Logic-based modeling and analysis of workflows. </a> Proceedings of PODS 1998. </li> <li> - <a href="http://citeseer.nj.nec.com/50366.html"> + <a href="http://citeseer.ist.psu.edu/50366.html"> Workflow, Transactions, and Datalog. </a> Proceedings of PODS 1999. @@ -108,7 +108,7 @@ <h3>Reasoning:</h3> <ul> <li> - <a href="http://citeseer.nj.nec.com/balaban93flogic.html"> + <a href="http://citeseer.ist.psu.edu/balaban93flogic.html"> The F-Logic Approach for Description Languages. </a> Annals of Mathematics and Artificial Intelligence, 1993. Index: aboutTR.php =================================================================== RCS file: /cvsroot/flora/flora-website/aboutTR.php,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- aboutTR.php 18 Sep 2007 18:36:29 -0000 1.10 +++ aboutTR.php 28 Jul 2008 20:11:29 -0000 1.11 @@ -59,7 +59,7 @@ FLORA-2, but an independent implementation can be found <a href="http://www.cs.toronto.edu/~bonner/ctr/index.html">here</a>. One important use of Concurrent Transaction Logic is in - <a href="http://citeseer.nj.nec.com/davulcu98logic.html"> + <a href="http://citeseer.ist.psu.edu/davulcu98logic.html"> modeling and verification of workflows</a> (Intl. ACM Conference on Principles of Database Systems, 1998). </li> Index: aboutFlogic.php =================================================================== RCS file: /cvsroot/flora/flora-website/aboutFlogic.php,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- aboutFlogic.php 6 Mar 2008 20:37:49 -0000 1.12 +++ aboutFlogic.php 28 Jul 2008 20:11:29 -0000 1.13 @@ -31,7 +31,7 @@ SIGMOD 1989. </li> <li> - <a href="http://citeseer.nj.nec.com/frohn94acces.html"> + <a href="http://citeseer.ist.psu.edu/frohn94acces.html"> Access to Objects by Path Expressions and Rules </a>. Proceedings of VLDB 1994. <br> @@ -39,7 +39,7 @@ is used in FLORA-2. These path expressions are a precursor to XPath. </li> <li> - <a href="http://citeseer.nj.nec.com/ludascher98managing.html"> + <a href="http://citeseer.ist.psu.edu/ludascher98managing.html"> Managing Semistructured Data With Florid: A Deductive Object-Oriented Perspective</a>. Information Systems 23(8), 1998. |
|
From: Michael K. <ki...@us...> - 2008-07-22 05:25:30
|
Update of /cvsroot/flora/flora2/lib In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv10318/lib Modified Files: flrsystem.flr Log Message: work around an xsb bug Index: flrsystem.flr =================================================================== RCS file: /cvsroot/flora/flora2/lib/flrsystem.flr,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- flrsystem.flr 17 Apr 2007 23:11:48 -0000 1.21 +++ flrsystem.flr 22 Jul 2008 05:25:38 -0000 1.22 @@ -203,23 +203,20 @@ then ( flora_decode_goal_as_atom(?Pred,?PredString)@_prolog(flrdecode), %abort(['Invalid argument in Method[%_mustDefine(off,', ?PredString, ')]@_system']) - ) else ( - ( flora_is_system_module_name(?Mod)@_prolog(flrwrapper), - (flora_module_registry(?Mod)@_prolog(flrregistry), ! - ; - flora_load_system_module_internal(?Mod)@_prolog(flrutils) - ) - ; \+ flora_is_system_module_name(?Mod)@_prolog(flrwrapper) - ), - if flora_module_registry(?Mod)@_prolog(flrregistry) - then( - flora_module_predicate(FLORA_IGNORE_UNDEFCHECK,[?Callable], - ?Mod,?Entry)@_prolog(flrwrapper), - assert(?Entry)@_prolog - ) else ( - flora_decode_goal_as_atom(?Pred,?PredString)@_prolog(flrdecode), - %abort(['Invalid argument in Method[%_mustDefine(off,', ?PredString, ')]@_system : Module ', ?Mod,' is unloaded']) - ) + ), + ( flora_is_system_module_name(?Mod)@_prolog(flrwrapper), + unless flora_module_registry(?Mod)@_prolog(flrregistry) + do flora_load_system_module_internal(?Mod)@_prolog(flrutils) + ; \+ flora_is_system_module_name(?Mod)@_prolog(flrwrapper) + ), + if flora_module_registry(?Mod)@_prolog(flrregistry) + then( + flora_module_predicate(FLORA_IGNORE_UNDEFCHECK,[?Callable], + ?Mod,?Entry)@_prolog(flrwrapper), + assert(?Entry)@_prolog + ) else ( + flora_decode_goal_as_atom(?Pred,?PredString)@_prolog(flrdecode), + %abort(['Invalid argument in Method[%_mustDefine(off,', ?PredString, ')]@_system : Module ', ?Mod,' is unloaded']) ). |
|
From: Michael K. <ki...@us...> - 2008-07-21 05:46:37
|
Update of /cvsroot/flora/flora-testsuite/general_tests In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv25438/general_tests Added Files: typelist.flr typelist_old Log Message: test for lists of types --- NEW FILE: typelist.flr --- %test1 :- ?X = [a,b]^^foo, write('test01 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test2 :- ?X = ["a","b"]^^foo, write('test02 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test3 :- ?V="1:2:3"^^_t, ?X = ["12:33:44"^^_t, ?V^^_t]^^foo, write('test03 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test4 :- ?X=123, ?Y="abc"^^moo, ?W="234"^^_integer, ?WW="342"^^_integer, ?Z=[?X,?Y^^moo, ?W^^_integer, ?WW]^^foo, write('test04 = ')@_plg, flora_write_oid(?Z)@_plg(flrdecode), nl@_plg. %test5 :- ?X = "abc"^^abc, write('test05 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test6 :- ?X = "abc"^^_string, write('test06 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test7 :- ?X = ["abc"^^_string,"prq"^^_string]^^foo, write('test07 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test8 :- ?X = [1,2]^^foo, write('test08 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test9 :- ?X = [1,"prq"^^_string]^^foo, write('test09 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test10 :- ?X = ["prq"^^_string, 1]^^foo, write('test10 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test11 :- ?X = ["12:33:44"^^_t,"12:33:49"^^_t]^^foo, write('test11 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %test12 :- ?X = ["12:33:44"^^_t,"2002-11-02T12:33:49"^^_dt]^^foo, write('test12 = ')@_plg, flora_write_oid(?X)@_plg(flrdecode), nl@_plg. %pretest :- %test1, %test2 and %test3 and %test4, %test5, %test6, %test7, %test8, %test9, %test10, %test11, %test12. %test :- tell(temp)@_plg(), Method[%_mustDefine(on)]@_sys, %pretest, Method[%_mustDefine(off)]@_sys, Tables[%abolish]@_sys, %pretest, told@_plg(). --- NEW FILE: typelist_old --- test01 = [a, b]^^foo test02 = ["a", "b"]^^foo test03 = ["12:33:44"^^_time, "01:02:03"^^_time]^^foo test04 = [123, "abc"^^moo, "234"^^_integer, "342"^^_integer]^^foo test05 = "abc"^^abc test06 = "abc"^^_string test07 = ["abc"^^_string, "prq"^^_string]^^foo test08 = [1, 2]^^foo test09 = [1, "prq"^^_string]^^foo test10 = ["prq"^^_string, 1]^^foo test11 = ["12:33:44"^^_time, "12:33:49"^^_time]^^foo test12 = ["12:33:44"^^_time, "2002-11-02T12:33:49"^^_dateTime]^^foo test01 = [a, b]^^foo test02 = ["a", "b"]^^foo test03 = ["12:33:44"^^_time, "01:02:03"^^_time]^^foo test04 = [123, "abc"^^moo, "234"^^_integer, "342"^^_integer]^^foo test05 = "abc"^^abc test06 = "abc"^^_string test07 = ["abc"^^_string, "prq"^^_string]^^foo test08 = [1, 2]^^foo test09 = [1, "prq"^^_string]^^foo test10 = ["prq"^^_string, 1]^^foo test11 = ["12:33:44"^^_time, "12:33:49"^^_time]^^foo test12 = ["12:33:44"^^_time, "2002-11-02T12:33:49"^^_dateTime]^^foo |
|
From: Michael K. <ki...@us...> - 2008-07-21 05:46:16
|
Update of /cvsroot/flora/flora-testsuite In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv25399 Modified Files: test_dir.sh Log Message: minor fix Index: test_dir.sh =================================================================== RCS file: /cvsroot/flora/flora-testsuite/test_dir.sh,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- test_dir.sh 17 Apr 2007 23:15:19 -0000 1.18 +++ test_dir.sh 21 Jul 2008 05:46:23 -0000 1.19 @@ -14,10 +14,11 @@ file_list=*.flr # abp.flr does not work. Perhaps the program is wrong. +# trailer.flr is disabled: since there is no "SINGLE-valued" methods now, +# the related trailer is not used. # btupdates.flr is loaded using btupdates_load.flr # tabledupdates.flr is loaded using tabledupdates_load.flr # add1.flr and add2.flr is loaded or added using add_load.flr -# trailer.flr is disabled, because there is no "SINGLE-valued" method now, the related trailer is not working. # ruleupdates.flr is loaded using ruleupdates_load.flr # compile_control.flr is loaded using compiletst.flr exclude_list="clptest.flr \ |
|
From: Michael K. <ki...@us...> - 2008-07-21 04:49:08
|
Update of /cvsroot/flora/flora-testsuite/general_tests In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv2190/general_tests Modified Files: mon_inherit_old pretty_old tabledupdates.flr typecheck_old Log Message: update for the new flora changes Index: pretty_old =================================================================== RCS file: /cvsroot/flora/flora-testsuite/general_tests/pretty_old,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- pretty_old 7 Jun 2007 07:01:30 -0000 1.10 +++ pretty_old 21 Jul 2008 04:49:15 -0000 1.11 @@ -1,6 +1,5 @@ Self info: 'student' : '_symbol'. -'student' : '_object'. 'student'[ canteach *-> {''}, defense *-> {'nottaken'}, @@ -16,7 +15,6 @@ Class info: 'student' : '_symbol'. -'student' : '_object'. 'student'[ canteach *-> {''}, defense *-> {'nottaken'}, @@ -32,7 +30,6 @@ 'john' : 'student'. 'john' : '_symbol'. -'john' : '_object'. 'john'[ advisor -> {'ad1'}, canteach -> {[cse127, cse230, cse214]}, @@ -52,7 +49,6 @@ 'mary' : 'student'. 'mary' : '_symbol'. -'mary' : '_object'. 'mary'[ advisor -> {'ad2'}, canteach -> {''}, Index: tabledupdates.flr =================================================================== RCS file: /cvsroot/flora/flora-testsuite/general_tests/tabledupdates.flr,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- tabledupdates.flr 3 Jun 2007 09:19:40 -0000 1.13 +++ tabledupdates.flr 21 Jul 2008 04:49:15 -0000 1.14 @@ -52,6 +52,7 @@ else writeln(passed)@_plg(). %test7 :- write('tst7: ')@_plg(), + a:?X, atom(?X)@_plg, if (a:?X, \+ member(?X, [_string,_symbol,_object])@_plg(basics)) then writeln(failed)@_plg() else writeln(passed)@_plg(). Index: mon_inherit_old =================================================================== RCS file: /cvsroot/flora/flora-testsuite/general_tests/mon_inherit_old,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- mon_inherit_old 22 Dec 2005 23:31:10 -0000 1.4 +++ mon_inherit_old 21 Jul 2008 04:49:15 -0000 1.5 @@ -10,6 +10,10 @@ b1 (c1 ';' A) b1 (c1 ';' A) b1 (c1 ';' A) +b1 _object +b1 _object +b1 _object +b1 _object b (A ';' c) b (A ';' c) b (A ';' c) @@ -22,12 +26,18 @@ b (c ';' A) b (c ';' A) b (c ';' A) +b _object +b _object +b _object +b _object bs1 (A ';' e1) bs1 (A ';' e1) bs1 e1 bs1 e1 bs1 (e1 ';' A) bs1 (e1 ';' A) +bs1 _object +bs1 _object tst1: tst1: tst2: Index: typecheck_old =================================================================== RCS file: /cvsroot/flora/flora-testsuite/general_tests/typecheck_old,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- typecheck_old 15 Feb 2007 02:02:27 -0000 1.2 +++ typecheck_old 21 Jul 2008 04:49:16 -0000 1.3 @@ -5,38 +5,70 @@ Test2: (${cc[*h(a,d)]}, ${cc[ *=> h(aaa,bbb)]}) Test3: (${cc[*h(a,d)]}, ${cc[ *=> h(aaa,bbb)]}) Test4: (${a[b -> e]}, ${a[b => d]}) -Test4: (${a[b -> e]}, ${a[b => (?_h0; d)]}) -Test4: (${a[b -> e]}, ${a[b => (d; ?_h0)]}) Test4: ${a[foo -> e]} Test4: ${q[foo -> bar]} Test5: (${a[b -> e]}, ${a[b => d]}) -Test5: (${a[b -> e]}, ${a[b => (?_h0; d)]}) -Test5: (${a[b -> e]}, ${a[b => (d; ?_h0)]}) Test6: ${q[foo -> bar]} Test7: o Test7: o Test7: o +Test7: o +Test7: o +Test7: o +Test7: o +Test7: a +Test7: a Test7: a Test7: a Test7: a +Test7: a +Test7: a +Test8: cc +Test8: cc +Test8: cc Test8: cc Test8: cc Test8: cc +Test8: cc +Test8: c +Test8: c +Test8: c +Test8: c Test8: c Test8: c Test8: c Test9: o + 2 + ok Test9: o + 2 + ok Test9: o + 2 + ok +Test9: o + 2 + ok +Test9: o + 2 + ok +Test9: o + 2 + ok +Test9: o + 2 + ok +Test9: a + 2 + ok Test9: a + 2 + ok Test9: a + 2 + ok Test9: a + 2 + ok +Test9: a + 2 + ok +Test9: a + 2 + ok +Test9: a + 2 + ok +Test10: c + 1 + ok +Test10: c + 1 + ok Test10: c + 1 + ok Test10: c + 1 + ok Test10: c + 1 + ok +Test10: c + 1 + ok +Test10: c + 1 + ok +Test11: o + ok + 1 +Test11: o + ok + 1 +Test11: o + ok + 1 Test11: o + ok + 1 Test11: o + ok + 1 Test11: o + ok + 1 +Test11: o + ok + 1 +Test11: a + ok + 1 +Test11: a + ok + 1 +Test11: a + ok + 1 +Test11: a + ok + 1 Test11: a + ok + 1 Test11: a + ok + 1 Test11: a + ok + 1 @@ -47,38 +79,70 @@ Test2: (${cc[*h(a,d)]}, ${cc[ *=> h(aaa,bbb)]}) Test3: (${cc[*h(a,d)]}, ${cc[ *=> h(aaa,bbb)]}) Test4: (${a[b -> e]}, ${a[b => d]}) -Test4: (${a[b -> e]}, ${a[b => (?_h0; d)]}) -Test4: (${a[b -> e]}, ${a[b => (d; ?_h0)]}) Test4: ${a[foo -> e]} Test4: ${q[foo -> bar]} Test5: (${a[b -> e]}, ${a[b => d]}) -Test5: (${a[b -> e]}, ${a[b => (?_h0; d)]}) -Test5: (${a[b -> e]}, ${a[b => (d; ?_h0)]}) Test6: ${q[foo -> bar]} Test7: o Test7: o Test7: o +Test7: o +Test7: o +Test7: o +Test7: o +Test7: a +Test7: a Test7: a Test7: a Test7: a +Test7: a +Test7: a +Test8: cc +Test8: cc +Test8: cc Test8: cc Test8: cc Test8: cc +Test8: cc +Test8: c +Test8: c +Test8: c +Test8: c Test8: c Test8: c Test8: c Test9: o + 2 + ok Test9: o + 2 + ok Test9: o + 2 + ok +Test9: o + 2 + ok +Test9: o + 2 + ok +Test9: o + 2 + ok +Test9: o + 2 + ok +Test9: a + 2 + ok Test9: a + 2 + ok Test9: a + 2 + ok Test9: a + 2 + ok +Test9: a + 2 + ok +Test9: a + 2 + ok +Test9: a + 2 + ok +Test10: c + 1 + ok +Test10: c + 1 + ok Test10: c + 1 + ok Test10: c + 1 + ok Test10: c + 1 + ok +Test10: c + 1 + ok +Test10: c + 1 + ok +Test11: o + ok + 1 +Test11: o + ok + 1 +Test11: o + ok + 1 Test11: o + ok + 1 Test11: o + ok + 1 Test11: o + ok + 1 +Test11: o + ok + 1 +Test11: a + ok + 1 +Test11: a + ok + 1 +Test11: a + ok + 1 +Test11: a + ok + 1 Test11: a + ok + 1 Test11: a + ok + 1 Test11: a + ok + 1 |
|
From: Michael K. <ki...@us...> - 2008-07-21 04:49:08
|
Update of /cvsroot/flora/flora-testsuite/exporttest In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv2190/exporttest Modified Files: importmodule_old Log Message: update for the new flora changes Index: importmodule_old =================================================================== RCS file: /cvsroot/flora/flora-testsuite/exporttest/importmodule_old,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- importmodule_old 22 Apr 2007 21:28:31 -0000 1.2 +++ importmodule_old 21 Jul 2008 04:49:15 -0000 1.3 @@ -24,6 +24,6 @@ tst13: Undefined predicate ppp/20 in module main tst14: Undefined predicate rrr/0 in module main tst15: Undefined method ?[moo->?] in module main -tst16: bbb / fff / 0 / * / _int || bob / phones / 1 / 2 / _integer || ok -tst17: bbb / fff / 0 / * / person || person / name / 1 / 2 / _string || ok +tst16: bbb / fff / 0 / * / _object || bbb / fff / 0 / * / _int || bob / phones / 1 / 2 / _decimal || bob / phones / 1 / 2 / _object || bob / phones / 1 / 2 / _integer || ok +tst17: bbb / fff / 0 / * / _object || bbb / fff / 0 / * / person || person / name / 1 / 2 / _object || person / name / 1 / 2 / _string || ok tst18: 1999 / 1 / 5400 || 1999 / 2 / 5200 || 1999 / 3 / 5500 || ok |
|
From: Michael K. <ki...@us...> - 2008-07-21 04:47:55
|
Update of /cvsroot/flora/flora2 In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv1295 Modified Files: flrcoder.H flrcoder.P flrcompiler.P flrparser.P flrwrapper.P version.flh Log Message: allow data types, which are themselves lists of data types. Index: flrcompiler.P =================================================================== RCS file: /cvsroot/flora/flora2/flrcompiler.P,v retrieving revision 1.102 retrieving revision 1.103 diff -u -d -r1.102 -r1.103 --- flrcompiler.P 30 Jul 2007 21:50:18 -0000 1.102 +++ flrcompiler.P 21 Jul 2008 04:47:31 -0000 1.103 @@ -381,13 +381,20 @@ strobj_struct(FLSTRING(String,I),PRSTRING(String,I)). transactionalstrobj_struct(FLTRANSACTIONALSTRING(String,I),PRSTRING(String,I)). -datatypeobj_struct(FLDATATYPE(Sort,Lit,Idx),PRDATATYPE(SortCode,LitCode,OutIdx)) :- +datatypeobj_struct(FLDATATYPE(Sort,Lit,Idx), + PRDATATYPE(SortCode,LitCode,OutIdx), + Status) :- compile_pathexp(Sort,SortCode,_,_,_), (is_flvar(Lit,VarName,VarIdx) -> add_underscore(VarName,InDataTypeVarName), varobj_struct(InDataTypeVarName,VarIdx,LitCode), - OutIdx = VarIdx - ; LitCode = Lit, OutIdx=Idx + OutIdx = VarIdx, Status = [] + ; datatype_list_value(Lit,ListOfLits) + -> compile_datatype_list(ListOfLits,LitCode0,Status), + datatype_listvalue_struct(LitCode0,LitCode), + OutIdx=Idx + ; + LitCode = Lit, OutIdx=Idx, Status = [] ). @@ -1126,6 +1133,12 @@ (is_varobj_struct(Lit,_Name,_Indx) -> NewVars = [Lit|Vars] + ; is_list(Lit) + -> allvars(Lit,AddlVars), + append(AddlVars,Vars,NewVars) + ; is_datatype_listvalue_struct(Lit,LitList) + -> allvars(LitList,AddlVars), + append(AddlVars,Vars,NewVars) ; NewVars=Vars ). @@ -1186,6 +1199,10 @@ !, (is_flvar(Lit,_Name,_Indx) -> NewVars = [Lit|Vars] + ; is_list(Lit) + -> collect_vars(Lit,NewVars,Vars) + ; datatype_listvalue_struct(Lit,ListLit) + -> collect_vars(ListLit,NewVars,Vars) ; NewVars=Vars ). @@ -1238,6 +1255,12 @@ prologterm_struct(UnivEQCode,2, [UsrGivenVarCode,DataTypeVarStruct], DatatypeVarCode), NewVars = [DatatypeVarCode|Vars] + ; is_list(VarCode) + -> collect_datatype_var_terms(VarCode,AddlVars), + append(AddlVars,Vars,NewVars) + ; is_datatype_listvalue_struct(VarCode,ListOfLits) + -> collect_datatype_var_terms(ListOfLits,AddlVars), + append(AddlVars,Vars,NewVars) ; NewVars=Vars ). @@ -2465,49 +2488,61 @@ vars, strings ****************************************************************************/ %% ParserTerm is a primitive object -- no oid code and no spec code results -compile_pathexp(ParserTerm,Object,NULL,NULL,[]) :- +compile_pathexp(ParserTerm,Object,NULL,NULL,Status) :- ( is_flatom(ParserTerm,_A) -> - atomobj_struct(ParserTerm,Object) + atomobj_struct(ParserTerm,Object), + Status=[] ; is_fltransactionalatom(ParserTerm,_A) -> - transactionalatomobj_struct(ParserTerm,Object) + transactionalatomobj_struct(ParserTerm,Object), + Status=[] ; is_fltoken(ParserTerm,FL_THISMODULE,_Index) -> - thismodule_struct(Object) + thismodule_struct(Object), + Status=[] %% Anonymous OIDs can appear in the "body": they can appear %% in reified formulas, which are compiled as body literals ; is_fltoken(ParserTerm,FL_NEWOID,Index) -> - new_oidobj(Index,Object) + new_oidobj(Index,Object), + Status=[] %% A numbered OID, which appears in a reified formula in rule body ; is_fltoken(ParserTerm,FL_NEWOID,Num,Index) -> flora_get_counter(RULE_NUM, Rule_num), - new_oidobj(Rule_num,Num,Index,Object) + new_oidobj(Rule_num,Num,Index,Object), + Status=[] ; is_flnumber(ParserTerm,_N) -> - numobj_struct(ParserTerm,Object) + numobj_struct(ParserTerm,Object), + Status=[] ; is_flvar(ParserTerm,Name,Index) -> - compile_flvar(Name,Index,Object) + compile_flvar(Name,Index,Object), + Status=[] ; is_fltransactionalvar(ParserTerm,Name,Index) -> - compile_fltransactionalvar_without_trans(Name,Index,Object) + compile_fltransactionalvar_without_trans(Name,Index,Object), + Status=[] ; is_flstring(ParserTerm,_S) -> - strobj_struct(ParserTerm,Object) + strobj_struct(ParserTerm,Object), + Status=[] ; is_flbuiltin_identifier(ParserTerm,_Ident) -> - builtin_identifier_struct(ParserTerm,Object) + builtin_identifier_struct(ParserTerm,Object), + Status=[] ; is_fldatatype(ParserTerm,_Sort,_Lit,_Index) -> - datatypeobj_struct(ParserTerm,Object) + datatypeobj_struct(ParserTerm,Object,Status) ; is_flurisq(ParserTerm,_P,_L) -> - urisqobj_struct(ParserTerm,Object) + urisqobj_struct(ParserTerm,Object), + Status=[] ; is_fltransactionalstring(ParserTerm,_S) -> - transactionalstrobj_struct(ParserTerm,Object) + transactionalstrobj_struct(ParserTerm,Object), + Status=[] ), !. @@ -3305,42 +3340,53 @@ Note: It is for skolemization. ****************************************************************************/ -compile_head_pathexp(ParserTerm,Object,NULL,NULL,NULL,[]) :- +compile_head_pathexp(ParserTerm,Object,NULL,NULL,NULL,Status) :- ( is_flatom(ParserTerm,_A) -> - atomobj_struct(ParserTerm,Object) + atomobj_struct(ParserTerm,Object), + Status=[] ; is_fltransactionalatom(ParserTerm,_A) -> - transactionalatomobj_struct(ParserTerm,Object) + transactionalatomobj_struct(ParserTerm,Object), + Status=[] ; is_flnumber(ParserTerm,_N) -> - numobj_struct(ParserTerm,Object) + numobj_struct(ParserTerm,Object), + Status=[] ; is_flvar(ParserTerm,Name,Index) -> - compile_flvar(Name,Index,Object) + compile_flvar(Name,Index,Object), + Status=[] ; is_fltransactionalvar(ParserTerm,Name,Index) -> - compile_fltransactionalvar_without_trans(Name,Index,Object) + compile_fltransactionalvar_without_trans(Name,Index,Object), + Status=[] ; is_flbuiltin_identifier(ParserTerm,_Ident) -> - builtin_identifier_struct(ParserTerm,Object) + builtin_identifier_struct(ParserTerm,Object), + Status=[] ; is_fldatatype(ParserTerm,_Sort,_Lit,_Index) -> - datatypeobj_struct(ParserTerm,Object) + datatypeobj_struct(ParserTerm,Object,Status) ; is_flurisq(ParserTerm,_P,_L) -> - urisqobj_struct(ParserTerm,Object) + urisqobj_struct(ParserTerm,Object), + Status=[] ; is_flstring(ParserTerm,_S) -> - strobj_struct(ParserTerm,Object) + strobj_struct(ParserTerm,Object), + Status=[] ; is_fltransactionalstring(ParserTerm,_S) -> - transactionalstrobj_struct(ParserTerm,Object) + transactionalstrobj_struct(ParserTerm,Object), + Status=[] ; is_fltoken(ParserTerm,Token,Index) -> - compile_head_fltoken(Token,Index,Object) + compile_head_fltoken(Token,Index,Object), + Status=[] ; is_fltoken(ParserTerm,Token,Num,Index) -> - compile_head_fltoken(Token,Num,Index,Object) + compile_head_fltoken(Token,Num,Index,Object), + Status=[] ), !. @@ -5723,3 +5769,24 @@ ; Code = ObjectCode, Status = Status1 ). + + +datatype_list_value(DTListVal,List) :- + nonvar(DTListVal), + DTListVal = FLDATATYPELIST(List). +datatype_listvalue_struct(ListLit,PRDATATYPELIST(ListLit)). + +is_datatype_listvalue_struct(PRDATATYPELIST(ListLit),ListLit). + +%% list of data type literals +compile_datatype_list([],[],[]) :- !. +compile_datatype_list([H|Tail],[HCode|TailCode],Status) :- + (integer(H) -> HCode = H, S1=[] %% list of characters inside DATATYPE + ; + compile_pathexp(H,HCode,_,_,S1) + ), + (S1==[] + -> compile_datatype_list(Tail,TailCode,Status) + ; + Status=S1 + ). Index: flrparser.P =================================================================== RCS file: /cvsroot/flora/flora2/flrparser.P,v retrieving revision 1.116 retrieving revision 1.117 diff -u -d -r1.116 -r1.117 --- flrparser.P 3 Aug 2007 14:17:51 -0000 1.116 +++ flrparser.P 21 Jul 2008 04:47:31 -0000 1.117 @@ -75,13 +75,16 @@ %% clear that they are part of the language syntax, not of the grammar. %% However, FLORA these symbols can be used with or without the quotes. +Statement := (Rule | Query | Directive) '.' -Rule := Head (':-' Body)? . +Rule := Head (':-' Body)? -Query := '?-' Body. +Query := '?-' Body Directive := ':-' ExportDirective | OperatorDirective | SetSemanticsDirective - | IgnoreDependencyCheckDirective | PrologDirective + | IgnoreDependencyCheckDirective | ImportModuleDirective + | PrefixDirective | CompilerDirective | IndexDirective + Head := HeadLiteral Head := Head (',' | 'and') Head @@ -89,13 +92,13 @@ HeadLiteral := BinaryRelationship | ObjectSpecification | Term Body := BodyLiteral -Body := BodyConjunt | BodyDisjunct | BodyNegative | ControlFlowStatement +Body := BodyConjunct | BodyDisjunct | BodyNegative | ControlFlowStatement Body := Body '@' ModuleName Body := BodyConstraint ModuleName := atom | atom '(' ')' | atom '(' atom ')' | thisModuleName -BodyConjuct := Body (',' | 'and') Body +BodyConjunct := Body (',' | 'and') Body BodyDisjunct := Body (';' | 'or') Body BodyNegative := (('not' | '\+') Body) | 'false{' Body '}' BodyConstraint := '{' CLPR-style constraint '}' @@ -111,7 +114,8 @@ LoopUntil := 'loop' Body 'until' Body BodyLiteral := BinaryRelationship | ObjectSpecification | Term - | DBUpdate | Refresh | NewoidOp | Builtin | Loading + | DBUpdate | RuleUpdate | Refresh + | NewoidOp | Builtin | Loading | CatchExpr | ThrowExpr | TruthTest Builtin := ArithmeticComparison, Unification, MetaUnification, etc. @@ -124,7 +128,7 @@ ObjectSpecification := PathExpression '[' SpecBody ']' -SpecBody := 'not' MethodSpecification +SpecBody := ('not')? MethodSpecification SpecBody := SpecBody ',' SpecBody SpecBody := SpecBody ';' SpecBody @@ -154,7 +158,7 @@ specialOidToken := anonymousOid | numberedOid | thisModuleName -ReifiedFormula := ${ (Body | '(' Rule ')')+ } +ReifiedFormula := '${' (Body | '(' Rule ')') '}' %% No quotes are allowed in the following special tokens! %% No space alowed between _# and integer @@ -645,6 +649,7 @@ flnewoidop_struct(Var,FLNEWOIDOP(Var)). fldatatype_struct(Sort,Literal,Idx,FLDATATYPE(Sort,Literal,Idx)). +fldatatype_listvalue_struct(ListLit,FLDATATYPELIST(ListLit)). %% flora_compiler_options flcmpoptdirect_struct(OptList,FLCMPOPT(OptList)). @@ -716,8 +721,12 @@ is_anonymous_flvar_struct(FLVAR(FL_UNDERSCORE,_I)). is_anonymous_fltransactionalvar_struct(FLTRANSACTIONALVAR(FL_UNDERSCORE,_I)). -fllist_struct(L,T,Index,FLLIST(L,T,Index)). -is_fllist_struct(FLLIST(_L,_T,_I)). +%% In a list, Front is the part before | and Tail the part after | +%% For instance, in [a,b|[c,d]], front=[flatom(a,9),flatom(b,11)] +%% Tail = fllist([flatom(r,14),flatom(v,16)],[],13)) +fllist_struct(Front,Tail,Index,FLLIST(Front,Tail,Index)). +is_fllist_struct(FLLIST(_Front,_Tail,_Idx)). +is_fllist_struct(FLLIST(Front,Tail,Idx), Front, Tail, Idx). flcut_struct(Index,FLCUT(Index)). %% primitive structures with index for textual information @@ -4011,6 +4020,12 @@ ; is_flvar_struct(LiteralCode,_,Idx) -> fldatatype_struct(SortCode,LiteralCode,Idx,Code), Status = [] + %% In datatype lists allow only explicit enumerations, no [...|...] + ; is_fllist_struct(LiteralCode, FrontCode, [], Idx) + -> + fldatatype_listvalue_struct(FrontCode,FrontCodeListval), + fldatatype_struct(SortCode,FrontCodeListval,Idx,Code), + Status = [] ; parsing_error(If,ERROR_DATATYPE_LITERAL,Status) ) Index: flrcoder.H =================================================================== RCS file: /cvsroot/flora/flora2/flrcoder.H,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- flrcoder.H 23 Dec 2007 07:52:49 -0000 1.25 +++ flrcoder.H 21 Jul 2008 04:47:30 -0000 1.26 @@ -30,7 +30,11 @@ :- import format/2 from format. -:- import append/3, member/2 from basics. +:- import + append/3 + from basics. + +:- import term_to_atom/3 from string. :- import flora_write_quoted_atom/1, @@ -52,7 +56,11 @@ :- dynamic using_debug_prefix(_). :- import flora_parse_datatype/4 from flrdatatype_parse. -:- import flora_canonical_type_name/2 from flrdatatype. +:- import + flora_canonical_type_name/2, + flora_datatypelitlist/2, + is_flora_datatypelitlist/1 + from flrdatatype. :- import flora_runtime_uriprefix_expansion/3, Index: flrcoder.P =================================================================== RCS file: /cvsroot/flora/flora2/flrcoder.P,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- flrcoder.P 3 Aug 2007 14:17:52 -0000 1.60 +++ flrcoder.P 21 Jul 2008 04:47:31 -0000 1.61 @@ -101,8 +101,7 @@ DTObject = FL_DATATYPE(ParsedDT,TypeName). %% datatype_struct(+ParsedDT,-TypeName,-Args,-DTObject) datatype_struct(ParsedDT,TypeName,Args,DTObject) :- - ( %% one of the non-system data types - ParsedDT = FL_DATATYPE(TypeName,Args) + ( ParsedDT = FL_DATATYPE(TypeName,Args) % a non-builtin data type -> true ; %% parsed system data type ParsedDT =.. [TypeName|Args] @@ -529,6 +528,21 @@ flora_write_quoted_atom(CanonTypeName), put(CH_RPAREN), Status=[] + ; is_flora_datatypelitlist(Literal) + -> + parse_datatype_list(Literal,_Prefix,ParsedLit,Stat2), + (Stat2==[] + -> flora_parse_datatype(DATATYPE(CanonTypeName,ParsedLit), + Index,ParsedDT,Status), + (Status==[] + -> datatype_struct(ParsedDT,CanonTypeName,_,DTCode), + term_to_atom(DTCode,OutDTCode, + [quoted(true),numbervars(true)]), + write(OutDTCode) + ; true + ) + ; Status=Stat2 + ) ; flora_parse_datatype(DATATYPE(CanonTypeName,Literal), Index,ParsedDT,Status), @@ -1365,6 +1379,18 @@ -> flora_build_variable(VarName,VarList,VarCode), datatype_struct(VarCode,CanonTypeName,[],Code), Status=[] + ; is_flora_datatypelitlist(Literal) + -> + build_datatype_list(Literal,DWS,VarList,ParsedDTlist,Stat2), + (Stat2==[] + -> flora_parse_datatype(DATATYPE(CanonTypeName,ParsedDTlist), + Index,ParsedDT,Status), + (Status==[] + -> datatype_struct(ParsedDT,CanonTypeName,_,Code) + ; true + ) + ; Status=Stat2 + ) ; flora_parse_datatype(DATATYPE(CanonTypeName,Literal), Index,ParsedDT,Status), @@ -1436,6 +1462,7 @@ !, flora_build_variable(Term,VarList,Code). +%% string(Code) is somehow used in dependency checking (was added in v. 1.23) flora_build_struct(Term,_DWS,_Prefix,_VarList,Code,(string(Code),Index),[]) :- is_prstring(Term,Code,Index), !. @@ -1662,7 +1689,7 @@ flora_build_wsstruct(Term,WS,DWS,Prefix,VarList,Code,CodeInd,Status) :- ( is_prfloralib(WS,WSAtom,_) -> flora_build_sysmod(Term,WSAtom,DWS,Prefix,VarList,Code,CodeInd,Status) - %% If this module, then use the method for writing with THIS workspace + %% If this is a module, use the method for writing with THIS workspace ; is_prthismodule(WS) -> flora_build_struct(Term,DWS,Prefix,VarList,Code,CodeInd,Status) @@ -2056,3 +2083,37 @@ is_pratom(PrefixName,NameAtom,_Index1), is_pratom(PrefixBody,BodyAtom,_Index2), FLLIBPREFIXDEF(NameAtom,BodyAtom). + + +%% list of data type literals +build_datatype_list(ListLit,DWS,VarList,Parsed,Status) :- + flora_datatypelitlist(ListLit,InList), + build_datatype_list1(InList,DWS,VarList,OutList,Status), + flora_datatypelitlist(Parsed,OutList). +build_datatype_list1([],_,_,[],[]) :- !. +build_datatype_list1([H|Tail],DWS,VarList,[ParsedH|ParsedTail],Status) :- + flora_build_struct(H,DWS,_Prefix,VarList,ParsedH,_CodeInd,S1), + (S1==[] + -> build_datatype_list1(Tail,DWS,VarList,ParsedTail,Status) + ; + Status=S1 + ). + +parse_datatype_list(L,Prefix,Parsed,Status) :- + build_datatype_list(L,Prefix,Varlist,Parsed,Status), + instantiate_varlist(Varlist). + +instantiate_varlist([]) :- !. +instantiate_varlist([H|Tail]) :- + (nonvar(H), H = (VarAtom=Var) + -> + atom_codes(VarAtom,VarAtomChars), + append("__",VarAtomChars,VarAtomChars2), + %% '$VAR'(charstring) is output by term_to_atom as an atom + %% corresponding to charstring. This is used in flora_write_struct. + '$VAR'(VarAtomChars2)=Var, % replace var with the variable + instantiate_varlist(Tail) + ; + true + ). + Index: version.flh =================================================================== RCS file: /cvsroot/flora/flora2/version.flh,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- version.flh 9 Oct 2007 07:12:25 -0000 1.25 +++ version.flh 21 Jul 2008 04:47:31 -0000 1.26 @@ -1,2 +1,2 @@ -#define FLORA_VERSION '0.96devel (Callistephus Daintiness) of September 2007' +#define FLORA_VERSION '0.96devel (Callistephus Daintiness) of January 2008' Index: flrwrapper.P =================================================================== RCS file: /cvsroot/flora/flora2/flrwrapper.P,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- flrwrapper.P 21 Apr 2008 03:46:05 -0000 1.43 +++ flrwrapper.P 21 Jul 2008 04:47:31 -0000 1.44 @@ -428,8 +428,13 @@ skeletonize_prolog_call(Call,Skeleton,PredName,ArgList) :- functor(Call,_,Arity), - (Arity==0 -> Skeleton=Call, PredName=Call, ArgList=[] + (Arity==0 -> Skeleton = Call, PredName = Call, ArgList = [] + ; Call = [Arg1|Arg2] + %% XSB crashes when term_psc/psc_name get a list as an arg + -> Skeleton = [_|_], PredName = '.', ArgList = [Arg1,Arg2] ; + %% This trickery is needed because we want the skeleton + %% and PredName to be in the same XSB module as Call. term_psc(Call,PSC), psc_name(PSC,PredName), term_new(PSC,Skeleton), |
|
From: Michael K. <ki...@us...> - 2008-07-21 04:47:55
|
Update of /cvsroot/flora/flora2/closure In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv1295/closure Modified Files: flrcommon.fli flrtypes.fli Log Message: allow data types, which are themselves lists of data types. Index: flrtypes.fli =================================================================== RCS file: /cvsroot/flora/flora2/closure/flrtypes.fli,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- flrtypes.fli 25 Jun 2007 13:56:30 -0000 1.25 +++ flrtypes.fli 21 Jul 2008 04:47:32 -0000 1.26 @@ -9,73 +9,88 @@ ***************************************************************************/ -%% We don't want the silent isa relationships to be shown by the debugger -silent_sub(C,FL_TOPTYPE,_Caller) :- C \= FL_TOPTYPE. +:- table builtin_sub/2. +%% We don't want the silent ISA relationships to be shown by the debugger +builtin_sub(C,FL_TOPTYPE) :- C \= FL_TOPTYPE. +builtin_sub(FL_LONG,FL_INTEGER). +builtin_sub(FL_INTEGER,FL_DECIMAL). +builtin_sub(FL_FLOAT,FL_DOUBLE). +builtin_sub(FL_IRI,FL_SYMBOL). -silent_isa(X,FL_TOPTYPE,_Caller). +builtin_sub(X,Y) :- builtin_sub(X,Z), builtin_sub(Z,Y). -silent_isa(X,FL_LONG,_Caller) :- integer(X). -silent_isa(X,FL_LONG,_Caller) :- flora_datatype_name(X,FL_LONG). -silent_isa(X,FL_INTEGER,_Caller) :- flora_datatype_name(X,FL_INTEGER). -silent_isa(X,FL_INTEGER,_Caller) :- silent_isa(X,FL_LONG,_Caller). +%%silent_sub(X,Y,_Caller) :- builtin_sub(X,Y). +FLTRAILERPREFIX(WRAP_SUB)(X,Y,_Caller) :- builtin_sub(X,Y). -silent_isa(X,FL_DOUBLE,_Caller) :- float(X). -silent_isa(X,FL_DOUBLE,_Caller) :- flora_datatype_name(X,FL_FLOAT). -silent_isa(X,FL_DOUBLE,_Caller) :- flora_datatype_name(X,FL_DOUBLE). -silent_isa(X,FL_DECIMAL,_Caller) :- flora_datatype_name(X,FL_DECIMAL). -silent_isa(X,FL_DECIMAL,_Caller) :- silent_isa(X,FL_DOUBLE,_Caller). -silent_isa(X,FL_DECIMAL,_Caller) :- silent_isa(X,FL_INTEGER,_Caller). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FLTRAILERPREFIX(WRAP_ISA)(X,FL_TOPTYPE,_Caller). + +FLTRAILERPREFIX(WRAP_ISA)(X,FL_LONG,_Caller) :- integer(X). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_LONG,_Caller) :- flora_datatype_name(X,FL_LONG). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_INTEGER,_Caller) :- flora_datatype_name(X,FL_INTEGER). +%%FLTRAILERPREFIX(WRAP_ISA)(X,FL_INTEGER,_Caller) :- FLTRAILERPREFIX(WRAP_ISA)(X,FL_LONG,_Caller). + +FLTRAILERPREFIX(WRAP_ISA)(X,FL_FLOAT,_Caller) :- float(X). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_FLOAT,_Caller) :- flora_datatype_name(X,FL_FLOAT). + +%%FLTRAILERPREFIX(WRAP_ISA)(X,FL_DOUBLE,_Caller) :- FLTRAILERPREFIX(WRAP_ISA)(X,FL_FLOAT,_Caller). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_DOUBLE,_Caller) :- flora_datatype_name(X,FL_DOUBLE). + +FLTRAILERPREFIX(WRAP_ISA)(X,FL_DECIMAL,_Caller) :- flora_datatype_name(X,FL_DECIMAL). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_DECIMAL,_Caller) :- FLTRAILERPREFIX(WRAP_ISA)(X,FL_DOUBLE,_Caller). +%%FLTRAILERPREFIX(WRAP_ISA)(X,FL_DECIMAL,_Caller) :- FLTRAILERPREFIX(WRAP_ISA)(X,FL_INTEGER,_Caller). %% '...' is not a string but a symbol -silent_isa(X,FL_SYMBOL,_Caller) :- atom(X). -silent_isa(X,FL_SYMBOL,_Caller) :- flora_datatype_name(X,FL_SYMBOL). -silent_isa(X,FL_SYMBOL,_Caller) :- flora_datatype_name(X,FL_IRI). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_SYMBOL,_Caller) :- atom(X). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_SYMBOL,_Caller) :- flora_datatype_name(X,FL_SYMBOL). +%%FLTRAILERPREFIX(WRAP_ISA)(X,FL_SYMBOL,_Caller) :- flora_datatype_name(X,FL_IRI). -silent_isa(X,FL_STRING,_Caller) :- flora_datatype_name(X,FL_STRING). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_STRING,_Caller) :- flora_datatype_name(X,FL_STRING). -silent_isa(X,FL_BOOL,_Caller) :- flora_datatype_name(X,FL_BOOL). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_BOOL,_Caller) :- flora_datatype_name(X,FL_BOOL). -silent_isa(X,FL_LISTTYPE,_Caller) :- is_list(X). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_LISTTYPE,_Caller) :- is_list(X). -silent_isa(X,FL_DATETIME,_Caller) :- flora_datatype_name(X,FL_DATETIME). -silent_isa(X,FL_TIME,_Caller) :- flora_datatype_name(X,FL_TIME). -silent_isa(X,FL_IRI,_Caller) :- flora_datatype_name(X,FL_URI). -silent_isa(X,FL_DATE,_Caller) :- flora_datatype_name(X,FL_DATE). -silent_isa(X,FL_DURATION,_Caller) :- flora_datatype_name(X,FL_DURATION). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_DATETIME,_Caller) :- flora_datatype_name(X,FL_DATETIME). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_TIME,_Caller) :- flora_datatype_name(X,FL_TIME). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_IRI,_Caller) :- flora_datatype_name(X,FL_IRI). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_DATE,_Caller) :- flora_datatype_name(X,FL_DATE). +FLTRAILERPREFIX(WRAP_ISA)(X,FL_DURATION,_Caller) :- flora_datatype_name(X,FL_DURATION). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Type combinators %% Restrictions on C1, C2 are precautions against infinite loops %% due to things like (_string,(_string,(_string,...)...)) -FLTRAILERPREFIX(isa)(X, (C1,C2),_Caller) :- +FLTRAILERPREFIX(WRAP_ISA)(X, (C1,C2),_Caller) :- (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; (C1 \= (_,_), C1 \= (_;_), C1 \= (_-_) -> true ; ground(C1)), (C2 \= (_,_), C2 \= (_;_), C2 \= (_-_) -> true ; ground(C2)), - isa(X,C1,_Caller), - isa(X,C2,_Caller) + WRAP_ISA(X,C1,_Caller), + WRAP_ISA(X,C2,_Caller) ). %% The glb rule -FLTRAILERPREFIX(sub)(X, (C1,C2),_Caller) :- +FLTRAILERPREFIX(WRAP_SUB)(X, (C1,C2),_Caller) :- X \== FL_TOPTYPE, (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; (C1 \= (_,_), C1 \= (_;_), C1 \= (_-_) -> true ; ground(C1)), (C2 \= (_,_), C2 \= (_;_), C2 \= (_-_) -> true ; ground(C2)), - sub(X,C1,_Caller), - sub(X,C2,_Caller), + WRAP_SUB(X,C1,_Caller), + WRAP_SUB(X,C2,_Caller), X \= (C1,C2), X \= (C2,C1) ). -FLTRAILERPREFIX(sub)((C1,C2),C1,_Caller) :- +FLTRAILERPREFIX(WRAP_SUB)((C1,C2),C1,_Caller) :- C2 \== FL_TOPTYPE, (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; (C1 \= (_,_), C1 \= (_;_), C1 \= (_-_) -> true ; ground(C1)) ). -FLTRAILERPREFIX(sub)((C1,C2),C2,_Caller) :- +FLTRAILERPREFIX(WRAP_SUB)((C1,C2),C2,_Caller) :- C1 \== FL_TOPTYPE, (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; @@ -84,37 +99,37 @@ %% Restrictions on C1, C2 are precautions against infinite loops %% due to things like (_string,(_string,(_string,...)...)) -FLTRAILERPREFIX(isa)(X, (C1;C2),_Caller) :- +FLTRAILERPREFIX(WRAP_ISA)(X, (C1;C2),_Caller) :- (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; ( (C1 \= (_,_), C1 \= (_;_), C1 \= (_-_) -> true ; ground(C1)), - isa(X,C1,_Caller) + WRAP_ISA(X,C1,_Caller) ; (C2 \= (_,_), C2 \= (_;_), C2 \= (_-_) -> true ; ground(C2)), - isa(X,C2,_Caller) + WRAP_ISA(X,C2,_Caller) ) ). %% The lub rule -FLTRAILERPREFIX(sub)((C1;C2),X,_Caller) :- +FLTRAILERPREFIX(WRAP_SUB)((C1;C2),X,_Caller) :- (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; (C1 \= (_;_), C1 \= (_,_), C1 \= (_-_) -> true ; ground(C1)), (C2 \= (_;_), C2 \= (_,_), C2 \= (_-_) -> true ; ground(C2)), - sub(C1,X,_Caller), - sub(C2,X,_Caller), + WRAP_SUB(C1,X,_Caller), + WRAP_SUB(C2,X,_Caller), X \= (C1;C2), X \= (C2;C1) ). -FLTRAILERPREFIX(sub)(C1,(C1;C2),_Caller) :- +FLTRAILERPREFIX(WRAP_SUB)(C1,(C1;C2),_Caller) :- C1 \== FL_TOPTYPE, (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; (C1 \= (_;_), C1 \= (_,_), C1 \= (_-_) -> true ; ground(C1)) ). -FLTRAILERPREFIX(sub)(C2,(C1;C2),_Caller) :- +FLTRAILERPREFIX(WRAP_SUB)(C2,(C1;C2),_Caller) :- C2 \== FL_TOPTYPE, (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; @@ -124,15 +139,15 @@ %% C2 must be ground, since they are under NOT %% (semantics for non-ground NOT is NOT EXISTS) -FLTRAILERPREFIX(isa)(X, (C1-C2),_Caller) :- +FLTRAILERPREFIX(WRAP_ISA)(X, (C1-C2),_Caller) :- (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; ground(C2), - isa(X,C1,_Caller), - FLORA_TNOT(isa(X,C2,_Caller)) + WRAP_ISA(X,C1,_Caller), + FLORA_TNOT(WRAP_ISA(X,C2,_Caller)) ). -FLTRAILERPREFIX(sub)((C1-C2),C1,_Caller) :- +FLTRAILERPREFIX(WRAP_SUB)((C1-C2),C1,_Caller) :- (flora_optimizer_registry(FLORA_CLASS_EXPRESSIONS,'FLORA_THIS_MODULE_NAME')->fail ; (C1 \= (_-_), C1 \= (_;_), C1 \= (_,_) -> true ; ground(C1)) Index: flrcommon.fli =================================================================== RCS file: /cvsroot/flora/flora2/closure/flrcommon.fli,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- flrcommon.fli 10 Jun 2007 08:18:42 -0000 1.36 +++ flrcommon.fli 21 Jul 2008 04:47:32 -0000 1.37 @@ -175,10 +175,10 @@ WRAP_EXISTS(X,CallerInfo) :- WRAP_IMVD(X,_,_,CallerInfo). WRAP_EXISTS(X,CallerInfo) :- WRAP_IMVD(_,_,X,CallerInfo). WRAP_EXISTS(X,CallerInfo) :- WRAP_IMVDDEF(X,_,CallerInfo). -WRAP_EXISTS(X,CallerInfo) :- WRAP_ISA(X,C,CallerInfo), \+ silent_isa(X,C,CallerInfo). -WRAP_EXISTS(X,CallerInfo) :- WRAP_ISA(O,X,CallerInfo), \+ silent_isa(O,X,CallerInfo). -WRAP_EXISTS(X,CallerInfo) :- WRAP_SUB(X,C,CallerInfo), \+ silent_sub(X,C,CallerInfo). -WRAP_EXISTS(X,CallerInfo) :- WRAP_SUB(C,X,CallerInfo), \+ silent_sub(C,X,CallerInfo). +WRAP_EXISTS(X,CallerInfo) :- WRAP_ISA(X,C,CallerInfo). %%, \+ silent_isa(X,C,CallerInfo). +WRAP_EXISTS(X,CallerInfo) :- WRAP_ISA(O,X,CallerInfo). %%, \+ silent_isa(O,X,CallerInfo). +WRAP_EXISTS(X,CallerInfo) :- WRAP_SUB(X,C,CallerInfo). %%, \+ silent_sub(X,C,CallerInfo). +WRAP_EXISTS(X,CallerInfo) :- WRAP_SUB(C,X,CallerInfo). %%, \+ silent_sub(C,X,CallerInfo). WRAP_EXISTS(X,CallerInfo) :- WRAP_METH(X,_,CallerInfo). WRAP_EXISTS(X,CallerInfo) :- WRAP_IMETH(X,_,CallerInfo). @@ -212,7 +212,7 @@ ****************************************************************************/ %% like WRAP_SUB, but the debugger won't trace it silent_sub(C,S,CallerInfo) :- WRAP_SUB(C,S,CallerInfo). -WRAP_ISA(O,C,CallerInfo) :- silent_isa(O,C,CallerInfo). +%%WRAP_ISA(O,C,CallerInfo) :- silent_isa(O,C,CallerInfo). %% like WRAP_SUB, but the debugger will print it specially and won't trace inside inheritance_sub(C,S,CallerInfo) :- WRAP_SUB(C,S,CallerInfo). inheritance_isa(C,S,CallerInfo) :- WRAP_ISA(C,S,CallerInfo). |
|
From: Michael K. <ki...@us...> - 2008-07-21 04:47:34
|
Update of /cvsroot/flora/flora2/datatypes In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv1295/datatypes Modified Files: flrdatatype.P flrdatatype_parse.P flrdatatype_utils.P Log Message: allow data types, which are themselves lists of data types. Index: flrdatatype_utils.P =================================================================== RCS file: /cvsroot/flora/flora2/datatypes/flrdatatype_utils.P,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- flrdatatype_utils.P 11 Jun 2007 17:06:40 -0000 1.4 +++ flrdatatype_utils.P 21 Jul 2008 04:47:33 -0000 1.5 @@ -55,8 +55,15 @@ pad_with(PaddedLst,CharCode,PadNum1,Result). %% representation for seconds -flora_second_repr(Sec,Sec) :- +flora_second_repr(Sec,Repr) :- atom(Sec), + atom_codes(Sec,SecLst), + (SecLst==[] + -> Num = 0 + ; + number_codes(Num,SecLst) + ), + flora_second_repr(Num,Repr), !. flora_second_repr(Sec,Repr) :- number(Sec), Index: flrdatatype_parse.P =================================================================== RCS file: /cvsroot/flora/flora2/datatypes/flrdatatype_parse.P,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- flrdatatype_parse.P 19 Aug 2007 19:56:57 -0000 1.16 +++ flrdatatype_parse.P 21 Jul 2008 04:47:32 -0000 1.17 @@ -43,7 +43,11 @@ flora_cut_off_trailing_zeros/2 from flrdatatype_utils. -:- import flora_canonical_type_name/2 from flrdatatype. +:- import + is_flora_datatypelitlist/1, + flora_datatypelitlist/2, + flora_canonical_type_name/2 + from flrdatatype. :- import flora_atom_to_number/2, @@ -207,11 +211,19 @@ ). %% Catchall -flora_parse_datatype(DATATYPE(TypeName,LitChars),Idx,ParsedDT,[]) :- - (LitChars=VARIABLE(VarName) - -> ParsedDT = FL_DATATYPE(TypeName, FLVAR(VarName,Idx)) - ; - make_datatype(TypeName,(LitChars),ParsedDT) +flora_parse_datatype(DATATYPE(TypeName,DTLiteral),Idx,ParsedDT,Status) :- + (DTLiteral=VARIABLE(VarName) + -> ParsedDT = FL_DATATYPE(TypeName, FLVAR(VarName,Idx)), + Status = [] + ; is_charlist(DTLiteral) + -> + make_datatype(TypeName,(DTLiteral),ParsedDT), + Status = [] + ; is_flora_datatypelitlist(DTLiteral) + -> + datatype_litlist_value(DTLiteral,LitListVal), + make_datatype(TypeName,LitListVal,ParsedDT), + Status = [] ). @@ -766,3 +778,7 @@ convert_dt_arguments_if_necessary(_Type,Args,Args). + + +datatype_litlist_value(LitListDT,FL_DATATYPELIST(LitList)) :- + flora_datatypelitlist(LitListDT,LitList). Index: flrdatatype.P =================================================================== RCS file: /cvsroot/flora/flora2/datatypes/flrdatatype.P,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- flrdatatype.P 23 Jul 2007 18:07:09 -0000 1.22 +++ flrdatatype.P 21 Jul 2008 04:47:32 -0000 1.23 @@ -26,6 +26,7 @@ :- compiler_options([xpp_on]). #include "flora_terms.flh" #include "flora_characters.flh" +#include "flora_errors.flh" :- import flora_concat_atoms/2, @@ -56,7 +57,7 @@ from basics. -%%:- import flora_abort/1 from flrutils. +:- import flora_abort/1 from flrutils. :- export flora_same_type/2, @@ -67,7 +68,10 @@ flora_printable_type_representation/2, flora_datatype_raw_value/2, flora_datatype_name/2, - flora_dt_add/3. + flora_dt_add/3, + flora_datatypelitlist/2, + is_flora_datatypelitlist/1, + parsed_flora_datatypelist/2. :- export datesign/2, @@ -75,6 +79,17 @@ zoneSign/2, zoneHour/2, zoneMinute/2, scheme/2, user/2, host/2, port/2, path/2, query/2, fragment/2. +is_flora_datatypelitlist(LitList) :- + nonvar(LitList), + LitList = PRDATATYPELIST(_). + +flora_datatypelitlist(DtLst,LitList) :- + DtLst = PRDATATYPELIST(LitList). + +parsed_flora_datatypelist(DtLst,LitList) :- + nonvar(DtLst), + DtLst = FL_DATATYPELIST(LitList). + /* We represent only nontrivial data types, like dateTime, time, etc. Strings, integers, floats are considered trivial and are treated @@ -186,7 +201,6 @@ flora_builtin_datatype(FL_BOOL). flora_builtin_datatype(FL_CHARLIST). flora_builtin_datatype(FL_LISTTYPE). -flora_builtin_datatype(FL_NUMBER). flora_primitive_datatype(FL_STRING). flora_primitive_datatype(FL_INTEGER). @@ -297,11 +311,23 @@ !, flora_decode_oid_as_atom(Val,ValP). +%% Lists of types +flora_printable_type_representation(FL_DATATYPE(TypeName,LitList), + [TypeName,LitList]) :- + parsed_flora_datatypelist(LitList,_), + !. + %% Catch-all -%% Literals are represented as charlists? +%% Literals are represented as charlists flora_printable_type_representation(FL_DATATYPE(TypeName,Literal), [TypeName,LiteralAtm]) :- - atom_codes(LiteralAtm,Literal). + is_charlist(Literal), + atom_codes(LiteralAtm,Literal), + !. + +flora_printable_type_representation(FL_DATATYPE(TypeName,Literal),_) :- + flora_abort([Literal,'^^',TypeName,': ', ERROR_DATATYPE_LITERAL]). + timezone_repr(ZSign,ZH,ZM,Repr) :- (ZH=0, ZM=0 -> Repr = '' |
|
From: Michael K. <ki...@us...> - 2008-07-21 04:47:34
|
Update of /cvsroot/flora/flora2/docs In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv1295/docs Modified Files: flora2.tex Log Message: allow data types, which are themselves lists of data types. Index: flora2.tex =================================================================== RCS file: /cvsroot/flora/flora2/docs/flora2.tex,v retrieving revision 1.189 retrieving revision 1.190 diff -u -d -r1.189 -r1.190 --- flora2.tex 27 Apr 2008 21:08:15 -0000 1.189 +++ flora2.tex 21 Jul 2008 04:47:33 -0000 1.190 @@ -3715,7 +3715,7 @@ (atomic) molecules. The meta-decomposition operator uses special conventions for these new cases. -For HiLog terms, the head of the list on the fight-hand side of {\tt =..} +For HiLog terms, the head of the list on the right-hand side of {\tt =..} has the form {\tt hilog(HiLogPredicateName)}. For instance, %% \begin{verbatim} @@ -9697,12 +9697,15 @@ %% clear that they are part of the language syntax, not of the grammar. %% However, in FLORA these symbols can be used with or without the quotes. -Rule := Head (':-' Body)? . +Statement := (Rule | Query | Directive) '.' -Query := '?-' Body. +Rule := Head (':-' Body)? + +Query := '?-' Body Directive := ':-' ExportDirective | OperatorDirective | SetSemanticsDirective - | IgnoreDependencyCheckDirective | PrologDirective + | IgnoreDependencyCheckDirective | ImportModuleDirective + | PrefixDirective | CompilerDirective | IndexDirective Head := HeadLiteral Head := Head (',' | 'and') Head @@ -9716,10 +9719,10 @@ ModuleName := atom | 'atom()' | atom '(' atom ')' | thisModuleName -BodyConjuct := Body (',' | 'and') Body +BodyConjunct := Body (',' | 'and') Body BodyDisjunct := Body (';' | 'or') Body -BodyNegative := (('not' | '\ensuremath{\backslash}+') Body) | 'false{' Body '}' -BodyConstraint := '{' CLPR-style constraint '}' +BodyNegative := (('not' | '\ensuremath{\backslash}+') Body) | 'false\{' Body '\}' +BodyConstraint := '\{' CLPR-style constraint '\}' ControlFlowStatement := IfThenElse | UnlessDo | WhileDo | WhileLoop @@ -9732,7 +9735,8 @@ LoopUntil := 'loop' Body 'until' Body BodyLiteral := BinaryRelationship | ObjectSpecification | Term - | DBUpdate | Refresh | NewoidOp | Builtin | Loading + | DBUpdate | RuleUpdate | Refresh + | NewoidOp | Builtin | Loading | CatchExpr | ThrowExpr | TruthTest Builtin := ArithmeticComparison, Unification, MetaUnification, etc. @@ -9745,7 +9749,7 @@ ObjectSpecification := PathExpression '[' SpecBody ']' -SpecBody := 'not' MethodSpecification +SpecBody := ('not')? MethodSpecification SpecBody := SpecBody ',' SpecBody SpecBody := SpecBody ';' SpecBody @@ -9766,7 +9770,7 @@ specialOidToken := anonymousOid | numberedOid | thisModuleName -ReifiedFormula := ${ (Body | '(' Rule ')')+ } +ReifiedFormula := '$\{' (Body | '(' Rule ')') '\}' %% No quotes are allowed in the following special tokens! %% No space allowed between _# and integer @@ -9787,31 +9791,31 @@ Arguments := PathExpression (',' PathExpression)* -Aggregate := AggregateOperator '{' TargetVariable (GroupingVariables)? '|' Body '}' +Aggregate := AggregateOperator '\{' TargetVariable (GroupingVariables)? '|' Body '\}' AggregateOperator := 'max' | 'min' | 'avg' | 'sum' | 'collectset' | 'collectbag' %% Note: only one TargetVariable is permitted. %% It must be a variable, not a term. If you need to aggregate over terms, %% as for example, in collectset/collectbag, use the following idiom: -%% S = collectset{ V | ... , V=Term } +%% S = collectset\{ V | ... , V=Term \} TargetVariable := variable GroupingVariables := '[' variable, (',' variable)* ']' -DBUpdate := DBOp '{' UpdateList ('|' Body)? '}' +DBUpdate := DBOp '\{' UpdateList ('|' Body)? '\}' DBOp := 'insert' | 'insertall' | 'delete' | 'deleteall' | 'erase' | 'eraseall' UpdateList := HeadLiteral ('@' atom)? UpdateList := UpdateList (',' | 'and') UpdateList -Refresh := 'refresh{' UpdateList '}' +Refresh := 'refresh\{' UpdateList '\}' -RuleUpdate := RuleOp '{' RuleList '}' +RuleUpdate := RuleOp '\{' RuleList '\}' RuleOp := 'insertrule' | 'insertrule_a' | 'insertrule_z' | 'deleterule' | 'deleterule_a' | 'deleterule_z' RuleList := Rule | '(' Rule ')' ( (',' | 'and') '(' Rule ')' )* -NewoidOp := 'newoid{' Variable '}' +NewoidOp := 'newoid\{' Variable '\}' -CatchExpr := 'catch{' Body, Term, Body '}' -ThrowExpr := 'throw{' Term '}' -TruthTest := 'true{' Body '}' | 'unknown{' Body '}' | 'false{' Body '}' +CatchExpr := 'catch\{' Body, Term, Body '\}' +ThrowExpr := 'throw\{' Term '\}' +TruthTest := 'true\{' Body '\}' | 'unknown\{' Body '\}' | 'false\{' Body '\}' \end{alltt} %% $ |
|
From: Michael K. <ki...@us...> - 2008-07-21 04:47:34
|
Update of /cvsroot/flora/flora2/flrincludes In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv1295/flrincludes Modified Files: flora_datatype_symbols.flh Log Message: allow data types, which are themselves lists of data types. Index: flora_datatype_symbols.flh =================================================================== RCS file: /cvsroot/flora/flora2/flrincludes/flora_datatype_symbols.flh,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- flora_datatype_symbols.flh 23 Dec 2007 07:55:33 -0000 1.5 +++ flora_datatype_symbols.flh 21 Jul 2008 04:47:34 -0000 1.6 @@ -28,8 +28,6 @@ /* Data types */ #define FL_DATATYPE_CONNECTOR '^^' -#define FL_DATATYPE '_datatype' -#define FL_DATATYPELIST '_datatypelist' #define FL_URI '_uri' #define FL_IRI '_iri' #define FL_DATETIME '_dateTime' @@ -53,3 +51,11 @@ #define FL_TOPTYPE '_object' + +/* constants used for parsing */ +#define FLDATATYPELIST 'fldatatypelist' +#define PRDATATYPELIST 'prdatatypelist' + +/* Constant used in the parsed result */ +#define FL_DATATYPE '_datatype' +#define FL_DATATYPELIST '_datatypelist' |
|
From: Michael K. <ki...@us...> - 2008-07-21 04:47:34
|
Update of /cvsroot/flora/flora2/syslib In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv1295/syslib Modified Files: flrdecode.P Log Message: allow data types, which are themselves lists of data types. Index: flrdecode.P =================================================================== RCS file: /cvsroot/flora/flora2/syslib/flrdecode.P,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- flrdecode.P 23 Dec 2007 07:56:09 -0000 1.54 +++ flrdecode.P 21 Jul 2008 04:47:34 -0000 1.55 @@ -47,7 +47,10 @@ :- import flora_prlgdef/2 from flrprolog. :- import flora_opdef/3 from flroperator. -:- import flora_printable_type_representation/2 from flrdatatype. +:- import + flora_printable_type_representation/2, + parsed_flora_datatypelist/2 + from flrdatatype. :- import flora_concat_items/2, @@ -797,9 +800,9 @@ (var(Term) -> Code = ['?', Term, FL_DATATYPE_CONNECTOR, Type] ; flora_printable_type_representation(Term,[TypeName,TypeLit]), - (TypeLit=FL_DATATYPELIST(TypeLit2) + (parsed_flora_datatypelist(TypeLit,LitList) -> - decode_literal_internal(TypeLit2,TypeLitDecoded,Level,Depth), + decode_literal_internal(LitList,TypeLitDecoded,Level,Depth), Code = [TypeLitDecoded,FL_DATATYPE_CONNECTOR,TypeName] ; Code = ['"',TypeLit,'"',FL_DATATYPE_CONNECTOR,TypeName] |