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>
|