From: William D. <wdo...@us...> - 2006-08-29 14:14:45
|
Update of /cvsroot/flexml/flexml/testbed In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv22138/testbed Modified Files: Makefile Added Files: mixed-enumatt2.act mixed-enumatt2.dtd mixed-enumatt2.in mixed-enumatt2.stdout.expected Log Message: Allow reference to attribute values in end-tag processing methods. --- NEW FILE: mixed-enumatt2.act --- <!DOCTYPE actions SYSTEM "flexml-act.dtd"> <actions> <top><![CDATA[ #include <stdio.h> ]]></top> <end tag='reqatt'><![CDATA[ printf("reqatt pcdata: %s\n", {#PCDATA}); printf("reqatt att: (%s)\n", {att} == {att=val1} ? "val1" : {att} == {att=val2} ? "val2" : {att} == {!att} ? "no att given" : "error in attribute"); ]]></end> <end tag='defatt'><![CDATA[ printf("defatt pcdata: %s\n", {#PCDATA}); printf("defatt att: (%s)\n", {att} == {att=val1} ? "val1" : {att} == {att=val2} ? "val2" : {att} == {!att} ? "no att given" : "error in attribute"); ]]></end> <end tag='optatt'><![CDATA[ printf("optatt pcdata: %s\n", {#PCDATA}); printf("optatt att: (%s)\n", {att} == {att=val1} ? "val1" : {att} == {att=val2} ? "val2" : {att} == {!att} ? "no att given" : "error in attribute"); ]]></end> <end tag='foo'><![CDATA[ printf("foo pcdata: %s\n", {#PCDATA}); ]]></end> <main><![CDATA[ int main(int argc, char **argv) { int retval = yylex(); printf("retval = %d\n", retval); return retval; } ]]></main> </actions> --- NEW FILE: mixed-enumatt2.stdout.expected --- reqatt pcdata: reqatt data reqatt att: (val1) defatt pcdata: defatt data defatt att: (val1) defatt pcdata: defatt data defatt att: (val2) optatt pcdata: optatt data optatt att: (val1) optatt pcdata: optatt data optatt att: (no att given) foo pcdata: foo start data foo end data. retval = 0 Index: Makefile =================================================================== RCS file: /cvsroot/flexml/flexml/testbed/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile 24 Aug 2006 20:36:03 -0000 1.6 +++ Makefile 29 Aug 2006 14:14:40 -0000 1.7 @@ -45,6 +45,7 @@ UNIT_TESTS = \ test_mixed1 \ test_mixed-enumatt \ + test_mixed-enumatt2 \ test_mixed-stratt \ test_mixed-stratt-def @@ -59,6 +60,10 @@ test_mixed-enumatt_cmd = ./mixed-enumatt < mixed-enumatt.in test_mixed-enumatt_deps = mixed-enumatt mixed-enumatt.in +# Test mixed-enumatt2 (mixed content + enumerated attribute, eval'ed in end tag) +test_mixed-enumatt2_cmd = ./mixed-enumatt2 < mixed-enumatt2.in +test_mixed-enumatt2_deps = mixed-enumatt2 mixed-enumatt2.in + # Test mixed-stratt (mixed content + string attribute) test_mixed-stratt_cmd = ./mixed-stratt < mixed-stratt.in test_mixed-stratt_deps = mixed-stratt mixed-stratt.in --- NEW FILE: mixed-enumatt2.dtd --- <!ELEMENT foo (#PCDATA|reqatt|defatt|optatt)*> <!ELEMENT reqatt (#PCDATA)> <!ATTLIST reqatt att (val1 | val2 ) #REQUIRED> <!ELEMENT defatt (#PCDATA)> <!ATTLIST defatt att (val1 | val2 ) 'val2'> <!ELEMENT optatt (#PCDATA)> <!ATTLIST optatt att (val1 | val2 ) #IMPLIED> --- NEW FILE: mixed-enumatt2.in --- <!DOCTYPE foo SYSTEM "mixed-enumatt2.dtd"> <foo>foo start data <reqatt att="val1">reqatt data</reqatt> <defatt att="val1">defatt data</defatt> <defatt>defatt data</defatt> <optatt att="val1">optatt data</optatt> <optatt>optatt data</optatt> foo end data.</foo> |