summaryrefslogtreecommitdiffstats
path: root/src/H5FDmulti.h
blob: 9e908bab453127658e72208f3bc3a0dc81279071 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
 * Copyright © 1999-2001 NCSA
 *                       All rights reserved.
 *
 * Programmer:  Robb Matzke <matzke@llnl.gov>
 *              Monday, August  2, 1999
 *
 * Purpose:	The public header file for the "multi" driver.
 */
#ifndef H5FDmulti_H
#define H5FDmulti_H

#include "H5Ipublic.h"

#define H5FD_MULTI	(H5FD_multi_init())

#ifdef __cplusplus
extern "C" {
#endif
__DLL__ hid_t H5FD_multi_init(void);
__DLL__ herr_t H5Pset_fapl_multi(hid_t fapl_id, const H5FD_mem_t *memb_map,
			 const hid_t *memb_fapl, const char **memb_name,
			 const haddr_t *memb_addr, hbool_t relax);
__DLL__ herr_t H5Pget_fapl_multi(hid_t fapl_id, H5FD_mem_t *memb_map/*out*/,
			 hid_t *memb_fapl/*out*/, char **memb_name/*out*/,
			 haddr_t *memb_addr/*out*/, hbool_t *relax/*out*/);
__DLL__ herr_t H5Pset_dxpl_multi(hid_t dxpl_id, const hid_t *memb_dxpl);
__DLL__ herr_t H5Pget_dxpl_multi(hid_t dxpl_id, hid_t *memb_dxpl/*out*/);

__DLL__ herr_t H5Pset_fapl_split(hid_t fapl, const char *meta_ext,
			 hid_t meta_plist_id, const char *raw_ext,
			 hid_t raw_plist_id);
#ifdef __cplusplus
}
#endif

#endif
-umundo-map-demo.scxml | 71 - test/samples/uscxml/test-umundo-pingpong.scxml | 21 - test/samples/uscxml/test-umundo-rpc.scxml | 60 - test/samples/uscxml/test-umundo-s11n-chat.scxml | 16 - test/samples/uscxml/test-umundo-s11n.scxml | 58 - test/samples/uscxml/test-xhtml-invoker.scxml | 33 - test/samples/w3c/confEcma.xsl | 720 - test/samples/w3c/confXPath.xsl | 630 - test/samples/w3c/convert-tests.sh | 23 - test/samples/w3c/draft/calc.scxml | 158 - test/samples/w3c/ecma/robots.txt | 96 - test/samples/w3c/ecma/test144.scxml | 23 - test/samples/w3c/ecma/test147.scxml | 30 - test/samples/w3c/ecma/test148.scxml | 31 - test/samples/w3c/ecma/test149.scxml | 25 - test/samples/w3c/ecma/test150.scxml | 41 - test/samples/w3c/ecma/test151.scxml | 41 - test/samples/w3c/ecma/test152.scxml | 48 - test/samples/w3c/ecma/test153.scxml | 35 - test/samples/w3c/ecma/test155.scxml | 26 - test/samples/w3c/ecma/test156.scxml | 28 - test/samples/w3c/ecma/test158.scxml | 23 - test/samples/w3c/ecma/test159.scxml | 20 - test/samples/w3c/ecma/test172.scxml | 20 - test/samples/w3c/ecma/test173.scxml | 21 - test/samples/w3c/ecma/test174.scxml | 21 - test/samples/w3c/ecma/test175.scxml | 27 - test/samples/w3c/ecma/test176.scxml | 30 - test/samples/w3c/ecma/test178.scxml | 27 - test/samples/w3c/ecma/test179.scxml | 18 - test/samples/w3c/ecma/test183.scxml | 21 - test/samples/w3c/ecma/test185.scxml | 23 - test/samples/w3c/ecma/test186.scxml | 31 - test/samples/w3c/ecma/test187.scxml | 33 - test/samples/w3c/ecma/test189.scxml | 22 - test/samples/w3c/ecma/test190.scxml | 35 - test/samples/w3c/ecma/test191.scxml | 31 - test/samples/w3c/ecma/test192.scxml | 55 - test/samples/w3c/ecma/test193.scxml | 19 - test/samples/w3c/ecma/test194.scxml | 22 - test/samples/w3c/ecma/test198.scxml | 19 - test/samples/w3c/ecma/test199.scxml | 18 - test/samples/w3c/ecma/test200.scxml | 18 - test/samples/w3c/ecma/test201.scxml | 19 - test/samples/w3c/ecma/test205.scxml | 30 - test/samples/w3c/ecma/test207.scxml | 56 - test/samples/w3c/ecma/test208.scxml | 21 - test/samples/w3c/ecma/test210.scxml | 24 - test/samples/w3c/ecma/test215.scxml | 29 - test/samples/w3c/ecma/test216.scxml | 22 - test/samples/w3c/ecma/test216sub1.scxml | 5 - test/samples/w3c/ecma/test220.scxml | 21 - test/samples/w3c/ecma/test223.scxml | 29 - test/samples/w3c/ecma/test224.scxml | 31 - test/samples/w3c/ecma/test225.scxml | 38 - test/samples/w3c/ecma/test226.scxml | 23 - test/samples/w3c/ecma/test226sub1.scxml | 16 - test/samples/w3c/ecma/test228.scxml | 33 - test/samples/w3c/ecma/test229.scxml | 42 - test/samples/w3c/ecma/test230.scxml | 62 - test/samples/w3c/ecma/test232.scxml | 40 - test/samples/w3c/ecma/test233.scxml | 35 - test/samples/w3c/ecma/test234.scxml | 66 - test/samples/w3c/ecma/test235.scxml | 23 - test/samples/w3c/ecma/test236.scxml | 39 - test/samples/w3c/ecma/test237.scxml | 41 - test/samples/w3c/ecma/test239.scxml | 32 - test/samples/w3c/ecma/test239sub1.scxml | 5 - test/samples/w3c/ecma/test240.scxml | 67 - test/samples/w3c/ecma/test241.scxml | 98 - test/samples/w3c/ecma/test242.scxml | 53 - test/samples/w3c/ecma/test242sub1.scxml | 5 - test/samples/w3c/ecma/test243.scxml | 36 - test/samples/w3c/ecma/test244.scxml | 39 - test/samples/w3c/ecma/test245.scxml | 34 - test/samples/w3c/ecma/test247.scxml | 22 - test/samples/w3c/ecma/test250.scxml | 42 - test/samples/w3c/ecma/test252.scxml | 47 - test/samples/w3c/ecma/test253.scxml | 79 - test/samples/w3c/ecma/test276.scxml | 17 - test/samples/w3c/ecma/test276sub1.scxml | 21 - test/samples/w3c/ecma/test277.scxml | 28 - test/samples/w3c/ecma/test278.scxml | 21 - test/samples/w3c/ecma/test279.scxml | 21 - test/samples/w3c/ecma/test280.scxml | 28 - test/samples/w3c/ecma/test286.scxml | 18 - test/samples/w3c/ecma/test287.scxml | 19 - test/samples/w3c/ecma/test294.scxml | 46 - test/samples/w3c/ecma/test298.scxml | 23 - test/samples/w3c/ecma/test301.scxml | 13 - test/samples/w3c/ecma/test302.scxml | 15 - test/samples/w3c/ecma/test303.scxml | 20 - test/samples/w3c/ecma/test304.scxml | 13 - test/samples/w3c/ecma/test307.scxml | 42 - test/samples/w3c/ecma/test309.scxml | 12 - test/samples/w3c/ecma/test310.scxml | 18 - test/samples/w3c/ecma/test311.scxml | 16 - test/samples/w3c/ecma/test312.scxml | 20 - test/samples/w3c/ecma/test313.scxml | 21 - test/samples/w3c/ecma/test314.scxml | 34 - test/samples/w3c/ecma/test318.scxml | 27 - test/samples/w3c/ecma/test319.scxml | 20 - test/samples/w3c/ecma/test321.scxml | 15 - test/samples/w3c/ecma/test322.scxml | 33 - test/samples/w3c/ecma/test323.scxml | 15 - test/samples/w3c/ecma/test324.scxml | 21 - test/samples/w3c/ecma/test325.scxml | 18 - test/samples/w3c/ecma/test326.scxml | 35 - test/samples/w3c/ecma/test329.scxml | 53 - test/samples/w3c/ecma/test330.scxml | 23 - test/samples/w3c/ecma/test331.scxml | 60 - test/samples/w3c/ecma/test332.scxml | 29 - test/samples/w3c/ecma/test333.scxml | 16 - test/samples/w3c/ecma/test335.scxml | 16 - test/samples/w3c/ecma/test336.scxml | 25 - test/samples/w3c/ecma/test337.scxml | 16 - test/samples/w3c/ecma/test338.scxml | 39 - test/samples/w3c/ecma/test339.scxml | 16 - test/samples/w3c/ecma/test342.scxml | 25 - test/samples/w3c/ecma/test343.scxml | 34 - test/samples/w3c/ecma/test344.scxml | 23 - test/samples/w3c/ecma/test346.scxml | 53 - test/samples/w3c/ecma/test347.scxml | 40 - test/samples/w3c/ecma/test348.scxml | 18 - test/samples/w3c/ecma/test349.scxml | 29 - test/samples/w3c/ecma/test350.scxml | 22 - test/samples/w3c/ecma/test351.scxml | 48 - test/samples/w3c/ecma/test352.scxml | 29 - test/samples/w3c/ecma/test354.scxml | 52 - test/samples/w3c/ecma/test355.scxml | 14 - test/samples/w3c/ecma/test364.scxml | 73 - test/samples/w3c/ecma/test372.scxml | 28 - test/samples/w3c/ecma/test375.scxml | 26 - test/samples/w3c/ecma/test376.scxml | 22 - test/samples/w3c/ecma/test377.scxml | 31 - test/samples/w3c/ecma/test378.scxml | 25 - test/samples/w3c/ecma/test387.scxml | 97 - test/samples/w3c/ecma/test388.scxml | 76 - test/samples/w3c/ecma/test396.scxml | 16 - test/samples/w3c/ecma/test399.scxml | 66 - test/samples/w3c/ecma/test401.scxml | 21 - test/samples/w3c/ecma/test402.scxml | 40 - test/samples/w3c/ecma/test403a.scxml | 43 - test/samples/w3c/ecma/test403b.scxml | 40 - test/samples/w3c/ecma/test403c.scxml | 54 - test/samples/w3c/ecma/test404.scxml | 60 - test/samples/w3c/ecma/test405.scxml | 67 - test/samples/w3c/ecma/test406.scxml | 64 - test/samples/w3c/ecma/test407.scxml | 20 - test/samples/w3c/ecma/test409.scxml | 32 - test/samples/w3c/ecma/test411.scxml | 32 - test/samples/w3c/ecma/test412.scxml | 52 - test/samples/w3c/ecma/test413.scxml | 45 - test/samples/w3c/ecma/test415.scxml | 12 - test/samples/w3c/ecma/test416.scxml | 22 - test/samples/w3c/ecma/test417.scxml | 34 - test/samples/w3c/ecma/test419.scxml | 17 - test/samples/w3c/ecma/test421.scxml | 28 - test/samples/w3c/ecma/test422.scxml | 75 - test/samples/w3c/ecma/test423.scxml | 25 - test/samples/w3c/ecma/test436.scxml | 21 - test/samples/w3c/ecma/test444.scxml | 16 - test/samples/w3c/ecma/test445.scxml | 16 - test/samples/w3c/ecma/test448.scxml | 31 - test/samples/w3c/ecma/test449.scxml | 11 - test/samples/w3c/ecma/test451.scxml | 18 - test/samples/w3c/ecma/test452.scxml | 24 - test/samples/w3c/ecma/test453.scxml | 19 - test/samples/w3c/ecma/test456.scxml | 19 - test/samples/w3c/ecma/test457.scxml | 59 - test/samples/w3c/ecma/test460.scxml | 24 - test/samples/w3c/ecma/test463.scxml | 17 - test/samples/w3c/ecma/test464.scxml | 16 - test/samples/w3c/ecma/test465.scxml | 22 - test/samples/w3c/ecma/test466.scxml | 14 - test/samples/w3c/ecma/test467.scxml | 12 - test/samples/w3c/ecma/test468.scxml | 23 - test/samples/w3c/ecma/test469.scxml | 25 - test/samples/w3c/ecma/test470.scxml | 24 - test/samples/w3c/ecma/test473.scxml | 37 - test/samples/w3c/ecma/test474.scxml | 36 - test/samples/w3c/ecma/test475.scxml | 36 - test/samples/w3c/ecma/test476.scxml | 36 - test/samples/w3c/ecma/test477.scxml | 36 - test/samples/w3c/ecma/test478.scxml | 36 - test/samples/w3c/ecma/test479.scxml | 36 - test/samples/w3c/ecma/test480.scxml | 32 - test/samples/w3c/ecma/test481.scxml | 37 - test/samples/w3c/ecma/test482.scxml | 16 - test/samples/w3c/ecma/test483.scxml | 27 - test/samples/w3c/ecma/test487.scxml | 17 - test/samples/w3c/ecma/test488.scxml | 34 - test/samples/w3c/ecma/test495.scxml | 23 - test/samples/w3c/ecma/test500.scxml | 15 - test/samples/w3c/ecma/test501.scxml | 19 - test/samples/w3c/ecma/test503.scxml | 37 - test/samples/w3c/ecma/test504.scxml | 75 - test/samples/w3c/ecma/test505.scxml | 47 - test/samples/w3c/ecma/test506.scxml | 53 - test/samples/w3c/ecma/test509.scxml | 17 - test/samples/w3c/ecma/test510.scxml | 24 - test/samples/w3c/ecma/test513.scxml | 50 - test/samples/w3c/ecma/test518.scxml | 20 - test/samples/w3c/ecma/test519.scxml | 19 - test/samples/w3c/ecma/test520.scxml | 19 - test/samples/w3c/ecma/test521.scxml | 23 - test/samples/w3c/ecma/test522.scxml | 22 - test/samples/w3c/ecma/test525.scxml | 26 - test/samples/w3c/ecma/test527.scxml | 25 - test/samples/w3c/ecma/test528.scxml | 33 - test/samples/w3c/ecma/test529.scxml | 25 - test/samples/w3c/ecma/test530.scxml | 26 - test/samples/w3c/ecma/test531.scxml | 20 - test/samples/w3c/ecma/test532.scxml | 20 - test/samples/w3c/ecma/test533.scxml | 62 - test/samples/w3c/ecma/test534.scxml | 18 - test/samples/w3c/ecma/test537.scxml | 17 - test/samples/w3c/ecma/test539.scxml | 26 - test/samples/w3c/ecma/test539.txt | 4 - test/samples/w3c/ecma/test540.scxml | 21 - test/samples/w3c/ecma/test540.txt | 3 - test/samples/w3c/ecma/test542.scxml | 34 - test/samples/w3c/ecma/test543.scxml | 18 - test/samples/w3c/ecma/test544.scxml | 17 - test/samples/w3c/ecma/test546.scxml | 17 - test/samples/w3c/ecma/test547.scxml | 33 - test/samples/w3c/ecma/test550.scxml | 20 - test/samples/w3c/ecma/test551.scxml | 23 - test/samples/w3c/ecma/test552.scxml | 18 - test/samples/w3c/ecma/test552.txt | 1 - test/samples/w3c/ecma/test553.scxml | 23 - test/samples/w3c/ecma/test554.scxml | 25 - test/samples/w3c/ecma/test555.scxml | 27 - test/samples/w3c/ecma/test557.scxml | 26 - test/samples/w3c/ecma/test557.txt | 4 - test/samples/w3c/ecma/test558.scxml | 24 - test/samples/w3c/ecma/test558.txt | 3 - test/samples/w3c/ecma/test560.scxml | 19 - test/samples/w3c/ecma/test561.scxml | 24 - test/samples/w3c/ecma/test562.scxml | 22 - test/samples/w3c/ecma/test567.scxml | 30 - test/samples/w3c/ecma/test568.scxml | 15 - test/samples/w3c/ecma/test569.scxml | 15 - test/samples/w3c/ecma/test570.scxml | 45 - test/samples/w3c/ecma/test576.scxml | 37 - test/samples/w3c/ecma/test578.scxml | 19 - test/samples/w3c/txml/robots.txt | 96 - test/samples/w3c/txml/test144.txml | 27 - test/samples/w3c/txml/test147.txml | 34 - test/samples/w3c/txml/test148.txml | 35 - test/samples/w3c/txml/test149.txml | 28 - test/samples/w3c/txml/test150.txml | 45 - test/samples/w3c/txml/test151.txml | 45 - test/samples/w3c/txml/test152.txml | 52 - test/samples/w3c/txml/test153.txml | 39 - test/samples/w3c/txml/test155.txml | 30 - test/samples/w3c/txml/test156.txml | 32 - test/samples/w3c/txml/test158.txml | 27 - test/samples/w3c/txml/test159.txml | 24 - test/samples/w3c/txml/test172.txml | 23 - test/samples/w3c/txml/test173.txml | 24 - test/samples/w3c/txml/test174.txml | 24 - test/samples/w3c/txml/test175.txml | 30 - test/samples/w3c/txml/test176.txml | 33 - test/samples/w3c/txml/test178.txml | 31 - test/samples/w3c/txml/test179.txml | 21 - test/samples/w3c/txml/test183.txml | 24 - test/samples/w3c/txml/test185.txml | 26 - test/samples/w3c/txml/test186.txml | 34 - test/samples/w3c/txml/test187.txml | 36 - test/samples/w3c/txml/test189.txml | 25 - test/samples/w3c/txml/test190.txml | 38 - test/samples/w3c/txml/test191.txml | 34 - test/samples/w3c/txml/test192.txml | 58 - test/samples/w3c/txml/test193.txml | 22 - test/samples/w3c/txml/test194.txml | 26 - test/samples/w3c/txml/test198.txml | 23 - test/samples/w3c/txml/test199.txml | 22 - test/samples/w3c/txml/test200.txml | 22 - test/samples/w3c/txml/test201.txml | 25 - test/samples/w3c/txml/test205.txml | 34 - test/samples/w3c/txml/test207.txml | 60 - test/samples/w3c/txml/test208.txml | 25 - test/samples/w3c/txml/test210.txml | 28 - test/samples/w3c/txml/test215.txml | 33 - test/samples/w3c/txml/test216.txml | 26 - test/samples/w3c/txml/test216sub1.txml | 9 - test/samples/w3c/txml/test220.txml | 25 - test/samples/w3c/txml/test223.txml | 33 - test/samples/w3c/txml/test224.txml | 35 - test/samples/w3c/txml/test225.txml | 42 - test/samples/w3c/txml/test226.txml | 27 - test/samples/w3c/txml/test226sub1.txml | 20 - test/samples/w3c/txml/test228.txml | 37 - test/samples/w3c/txml/test229.txml | 46 - test/samples/w3c/txml/test230.txml | 66 - test/samples/w3c/txml/test232.txml | 44 - test/samples/w3c/txml/test233.txml | 39 - test/samples/w3c/txml/test234.txml | 70 - test/samples/w3c/txml/test235.txml | 27 - test/samples/w3c/txml/test236.txml | 43 - test/samples/w3c/txml/test237.txml | 45 - test/samples/w3c/txml/test239.txml | 36 - test/samples/w3c/txml/test239sub1.txml | 9 - test/samples/w3c/txml/test240.txml | 71 - test/samples/w3c/txml/test241.txml | 102 - test/samples/w3c/txml/test242.txml | 57 - test/samples/w3c/txml/test242sub1.txml | 9 - test/samples/w3c/txml/test243.txml | 40 - test/samples/w3c/txml/test244.txml | 43 - test/samples/w3c/txml/test245.txml | 38 - test/samples/w3c/txml/test247.txml | 26 - test/samples/w3c/txml/test250.txml | 46 - test/samples/w3c/txml/test252.txml | 51 - test/samples/w3c/txml/test253.txml | 83 - test/samples/w3c/txml/test276.txml | 21 - test/samples/w3c/txml/test276sub1.txml | 24 - test/samples/w3c/txml/test277.txml | 32 - test/samples/w3c/txml/test278.txml | 22 - test/samples/w3c/txml/test279.txml | 25 - test/samples/w3c/txml/test280.txml | 34 - test/samples/w3c/txml/test286.txml | 23 - test/samples/w3c/txml/test287.txml | 23 - test/samples/w3c/txml/test294.txml | 49 - test/samples/w3c/txml/test298.txml | 28 - test/samples/w3c/txml/test301.txml | 17 - test/samples/w3c/txml/test302.txml | 20 - test/samples/w3c/txml/test303.txml | 25 - test/samples/w3c/txml/test304.txml | 18 - test/samples/w3c/txml/test307.txml | 43 - test/samples/w3c/txml/test309.txml | 16 - test/samples/w3c/txml/test310.txml | 23 - test/samples/w3c/txml/test311.txml | 21 - test/samples/w3c/txml/test312.txml | 25 - test/samples/w3c/txml/test313.txml | 26 - test/samples/w3c/txml/test314.txml | 39 - test/samples/w3c/txml/test318.txml | 31 - test/samples/w3c/txml/test319.txml | 25 - test/samples/w3c/txml/test321.txml | 19 - test/samples/w3c/txml/test322.txml | 37 - test/samples/w3c/txml/test323.txml | 19 - test/samples/w3c/txml/test324.txml | 25 - test/samples/w3c/txml/test325.txml | 22 - test/samples/w3c/txml/test326.txml | 38 - test/samples/w3c/txml/test329.txml | 55 - test/samples/w3c/txml/test330.txml | 27 - test/samples/w3c/txml/test331.txml | 62 - test/samples/w3c/txml/test332.txml | 33 - test/samples/w3c/txml/test333.txml | 20 - test/samples/w3c/txml/test335.txml | 20 - test/samples/w3c/txml/test336.txml | 29 - test/samples/w3c/txml/test337.txml | 20 - test/samples/w3c/txml/test338.txml | 43 - test/samples/w3c/txml/test339.txml | 20 - test/samples/w3c/txml/test342.txml | 28 - test/samples/w3c/txml/test343.txml | 37 - test/samples/w3c/txml/test344.txml | 27 - test/samples/w3c/txml/test346.txml | 57 - test/samples/w3c/txml/test347.txml | 44 - test/samples/w3c/txml/test348.txml | 20 - test/samples/w3c/txml/test349.txml | 33 - test/samples/w3c/txml/test350.txml | 26 - test/samples/w3c/txml/test351.txml | 52 - test/samples/w3c/txml/test352.txml | 32 - test/samples/w3c/txml/test354.txml | 56 - test/samples/w3c/txml/test355.txml | 18 - test/samples/w3c/txml/test364.txml | 77 - test/samples/w3c/txml/test372.txml | 32 - test/samples/w3c/txml/test375.txml | 30 - test/samples/w3c/txml/test376.txml | 26 - test/samples/w3c/txml/test377.txml | 35 - test/samples/w3c/txml/test378.txml | 29 - test/samples/w3c/txml/test387.txml | 101 - test/samples/w3c/txml/test388.txml | 80 - test/samples/w3c/txml/test396.txml | 20 - test/samples/w3c/txml/test399.txml | 70 - test/samples/w3c/txml/test401.txml | 25 - test/samples/w3c/txml/test402.txml | 44 - test/samples/w3c/txml/test403a.txml | 47 - test/samples/w3c/txml/test403b.txml | 44 - test/samples/w3c/txml/test403c.txml | 58 - test/samples/w3c/txml/test404.txml | 64 - test/samples/w3c/txml/test405.txml | 71 - test/samples/w3c/txml/test406.txml | 68 - test/samples/w3c/txml/test407.txml | 24 - test/samples/w3c/txml/test409.txml | 36 - test/samples/w3c/txml/test411.txml | 36 - test/samples/w3c/txml/test412.txml | 56 - test/samples/w3c/txml/test413.txml | 49 - test/samples/w3c/txml/test415.txml | 15 - test/samples/w3c/txml/test416.txml | 26 - test/samples/w3c/txml/test417.txml | 39 - test/samples/w3c/txml/test419.txml | 22 - test/samples/w3c/txml/test421.txml | 33 - test/samples/w3c/txml/test422.txml | 78 - test/samples/w3c/txml/test423.txml | 28 - test/samples/w3c/txml/test436.txml | 24 - test/samples/w3c/txml/test444.txml | 20 - test/samples/w3c/txml/test445.txml | 20 - test/samples/w3c/txml/test448.txml | 35 - test/samples/w3c/txml/test449.txml | 15 - test/samples/w3c/txml/test451.txml | 23 - test/samples/w3c/txml/test452.txml | 27 - test/samples/w3c/txml/test453.txml | 22 - test/samples/w3c/txml/test456.txml | 22 - test/samples/w3c/txml/test457.txml | 62 - test/samples/w3c/txml/test460.txml | 26 - test/samples/w3c/txml/test463.txml | 22 - test/samples/w3c/txml/test464.txml | 21 - test/samples/w3c/txml/test465.txml | 27 - test/samples/w3c/txml/test466.txml | 19 - test/samples/w3c/txml/test467.txml | 17 - test/samples/w3c/txml/test468.txml | 28 - test/samples/w3c/txml/test469.txml | 29 - test/samples/w3c/txml/test470.txml | 28 - test/samples/w3c/txml/test473.txml | 44 - test/samples/w3c/txml/test474.txml | 43 - test/samples/w3c/txml/test475.txml | 43 - test/samples/w3c/txml/test476.txml | 43 - test/samples/w3c/txml/test477.txml | 43 - test/samples/w3c/txml/test478.txml | 40 - test/samples/w3c/txml/test479.txml | 40 - test/samples/w3c/txml/test480.txml | 36 - test/samples/w3c/txml/test481.txml | 41 - test/samples/w3c/txml/test482.txml | 23 - test/samples/w3c/txml/test483.txml | 31 - test/samples/w3c/txml/test487.txml | 21 - test/samples/w3c/txml/test488.txml | 37 - test/samples/w3c/txml/test495.txml | 26 - test/samples/w3c/txml/test500.txml | 19 - test/samples/w3c/txml/test501.txml | 23 - test/samples/w3c/txml/test503.txml | 41 - test/samples/w3c/txml/test504.txml | 79 - test/samples/w3c/txml/test505.txml | 51 - test/samples/w3c/txml/test506.txml | 57 - test/samples/w3c/txml/test509.txml | 21 - test/samples/w3c/txml/test510.txml | 28 - test/samples/w3c/txml/test513.txml | 54 - test/samples/w3c/txml/test518.txml | 25 - test/samples/w3c/txml/test519.txml | 21 - test/samples/w3c/txml/test520.txml | 21 - test/samples/w3c/txml/test521.txml | 27 - test/samples/w3c/txml/test522.txml | 27 - test/samples/w3c/txml/test525.txml | 30 - test/samples/w3c/txml/test527.txml | 28 - test/samples/w3c/txml/test528.txml | 36 - test/samples/w3c/txml/test529.txml | 28 - test/samples/w3c/txml/test530.txml | 30 - test/samples/w3c/txml/test531.txml | 22 - test/samples/w3c/txml/test532.txml | 22 - test/samples/w3c/txml/test533.txml | 66 - test/samples/w3c/txml/test534.txml | 20 - test/samples/w3c/txml/test537.txml | 22 - test/samples/w3c/txml/test539.txml | 30 - test/samples/w3c/txml/test539.txt | 4 - test/samples/w3c/txml/test540.txml | 25 - test/samples/w3c/txml/test540.txt | 3 - test/samples/w3c/txml/test542.txml | 38 - test/samples/w3c/txml/test543.txml | 22 - test/samples/w3c/txml/test544.txml | 21 - test/samples/w3c/txml/test546.txml | 21 - test/samples/w3c/txml/test547.txml | 38 - test/samples/w3c/txml/test550.txml | 24 - test/samples/w3c/txml/test551.txml | 27 - test/samples/w3c/txml/test552.txml | 22 - test/samples/w3c/txml/test552.txt | 1 - test/samples/w3c/txml/test553.txml | 27 - test/samples/w3c/txml/test554.txml | 29 - test/samples/w3c/txml/test555.txml | 31 - test/samples/w3c/txml/test557.txml | 30 - test/samples/w3c/txml/test557.txt | 4 - test/samples/w3c/txml/test558.txml | 28 - test/samples/w3c/txml/test558.txt | 3 - test/samples/w3c/txml/test560.txml | 23 - test/samples/w3c/txml/test561.txml | 29 - test/samples/w3c/txml/test562.txml | 26 - test/samples/w3c/txml/test567.txml | 32 - test/samples/w3c/txml/test568.txml | 19 - test/samples/w3c/txml/test569.txml | 19 - test/samples/w3c/txml/test570.txml | 49 - test/samples/w3c/txml/test576.txml | 41 - test/samples/w3c/txml/test578.txml | 24 - test/samples/w3c/update-txml.sh | 7 - test/samples/w3c/xpath/robots.txt | 96 - test/samples/w3c/xpath/test144.scxml | 23 - test/samples/w3c/xpath/test147.scxml | 30 - test/samples/w3c/xpath/test148.scxml | 31 - test/samples/w3c/xpath/test149.scxml | 25 - test/samples/w3c/xpath/test150.scxml | 41 - test/samples/w3c/xpath/test151.scxml | 41 - test/samples/w3c/xpath/test152.scxml | 48 - test/samples/w3c/xpath/test153.scxml | 35 - test/samples/w3c/xpath/test155.scxml | 26 - test/samples/w3c/xpath/test156.scxml | 28 - test/samples/w3c/xpath/test158.scxml | 23 - test/samples/w3c/xpath/test159.scxml | 20 - test/samples/w3c/xpath/test172.scxml | 20 - test/samples/w3c/xpath/test173.scxml | 21 - test/samples/w3c/xpath/test174.scxml | 21 - test/samples/w3c/xpath/test175.scxml | 27 - test/samples/w3c/xpath/test176.scxml | 30 - test/samples/w3c/xpath/test178.scxml | 27 - test/samples/w3c/xpath/test179.scxml | 18 - test/samples/w3c/xpath/test183.scxml | 21 - test/samples/w3c/xpath/test185.scxml | 23 - test/samples/w3c/xpath/test186.scxml | 31 - test/samples/w3c/xpath/test187.scxml | 33 - test/samples/w3c/xpath/test189.scxml | 22 - test/samples/w3c/xpath/test190.scxml | 35 - test/samples/w3c/xpath/test191.scxml | 31 - test/samples/w3c/xpath/test192.scxml | 55 - test/samples/w3c/xpath/test193.scxml | 19 - test/samples/w3c/xpath/test194.scxml | 22 - test/samples/w3c/xpath/test198.scxml | 19 - test/samples/w3c/xpath/test199.scxml | 18 - test/samples/w3c/xpath/test200.scxml | 18 - test/samples/w3c/xpath/test201.scxml | 19 - test/samples/w3c/xpath/test205.scxml | 30 - test/samples/w3c/xpath/test207.scxml | 56 - test/samples/w3c/xpath/test208.scxml | 21 - test/samples/w3c/xpath/test210.scxml | 24 - test/samples/w3c/xpath/test215.scxml | 29 - test/samples/w3c/xpath/test216.scxml | 22 - test/samples/w3c/xpath/test216sub1.scxml | 5 - test/samples/w3c/xpath/test220.scxml | 21 - test/samples/w3c/xpath/test223.scxml | 29 - test/samples/w3c/xpath/test224.scxml | 31 - test/samples/w3c/xpath/test225.scxml | 38 - test/samples/w3c/xpath/test226.scxml | 23 - test/samples/w3c/xpath/test226sub1.scxml | 16 - test/samples/w3c/xpath/test228.scxml | 33 - test/samples/w3c/xpath/test229.scxml | 42 - test/samples/w3c/xpath/test230.scxml | 62 - test/samples/w3c/xpath/test232.scxml | 40 - test/samples/w3c/xpath/test233.scxml | 35 - test/samples/w3c/xpath/test234.scxml | 66 - test/samples/w3c/xpath/test235.scxml | 23 - test/samples/w3c/xpath/test236.scxml | 39 - test/samples/w3c/xpath/test237.scxml | 41 - test/samples/w3c/xpath/test239.scxml | 32 - test/samples/w3c/xpath/test239sub1.scxml | 5 - test/samples/w3c/xpath/test240.scxml | 67 - test/samples/w3c/xpath/test241.scxml | 98 - test/samples/w3c/xpath/test242.scxml | 53 - test/samples/w3c/xpath/test242sub1.scxml | 5 - test/samples/w3c/xpath/test243.scxml | 36 - test/samples/w3c/xpath/test244.scxml | 39 - test/samples/w3c/xpath/test245.scxml | 34 - test/samples/w3c/xpath/test247.scxml | 22 - test/samples/w3c/xpath/test250.scxml | 42 - test/samples/w3c/xpath/test252.scxml | 47 - test/samples/w3c/xpath/test253.scxml | 79 - test/samples/w3c/xpath/test276.scxml | 17 - test/samples/w3c/xpath/test276sub1.scxml | 21 - test/samples/w3c/xpath/test277.scxml | 28 - test/samples/w3c/xpath/test278.scxml | 21 - test/samples/w3c/xpath/test279.scxml | 21 - test/samples/w3c/xpath/test280.scxml | 28 - test/samples/w3c/xpath/test286.scxml | 18 - test/samples/w3c/xpath/test287.scxml | 19 - test/samples/w3c/xpath/test294.scxml | 46 - test/samples/w3c/xpath/test298.scxml | 23 - test/samples/w3c/xpath/test301.scxml | 13 - test/samples/w3c/xpath/test302.scxml | 15 - test/samples/w3c/xpath/test303.scxml | 20 - test/samples/w3c/xpath/test304.scxml | 13 - test/samples/w3c/xpath/test307.scxml | 42 - test/samples/w3c/xpath/test309.scxml | 12 - test/samples/w3c/xpath/test310.scxml | 18 - test/samples/w3c/xpath/test311.scxml | 16 - test/samples/w3c/xpath/test312.scxml | 20 - test/samples/w3c/xpath/test313.scxml | 21 - test/samples/w3c/xpath/test314.scxml | 34 - test/samples/w3c/xpath/test318.scxml | 27 - test/samples/w3c/xpath/test319.scxml | 20 - test/samples/w3c/xpath/test321.scxml | 15 - test/samples/w3c/xpath/test322.scxml | 33 - test/samples/w3c/xpath/test323.scxml | 15 - test/samples/w3c/xpath/test324.scxml | 21 - test/samples/w3c/xpath/test325.scxml | 18 - test/samples/w3c/xpath/test326.scxml | 35 - test/samples/w3c/xpath/test329.scxml | 53 - test/samples/w3c/xpath/test330.scxml | 23 - test/samples/w3c/xpath/test331.scxml | 60 - test/samples/w3c/xpath/test332.scxml | 29 - test/samples/w3c/xpath/test333.scxml | 16 - test/samples/w3c/xpath/test335.scxml | 16 - test/samples/w3c/xpath/test336.scxml | 25 - test/samples/w3c/xpath/test337.scxml | 16 - test/samples/w3c/xpath/test338.scxml | 39 - test/samples/w3c/xpath/test339.scxml | 16 - test/samples/w3c/xpath/test342.scxml | 25 - test/samples/w3c/xpath/test343.scxml | 34 - test/samples/w3c/xpath/test344.scxml | 23 - test/samples/w3c/xpath/test346.scxml | 53 - test/samples/w3c/xpath/test347.scxml | 40 - test/samples/w3c/xpath/test348.scxml | 18 - test/samples/w3c/xpath/test349.scxml | 29 - test/samples/w3c/xpath/test350.scxml | 22 - test/samples/w3c/xpath/test351.scxml | 48 - test/samples/w3c/xpath/test352.scxml | 29 - test/samples/w3c/xpath/test354.scxml | 52 - test/samples/w3c/xpath/test355.scxml | 14 - test/samples/w3c/xpath/test364.scxml | 73 - test/samples/w3c/xpath/test372.scxml | 28 - test/samples/w3c/xpath/test375.scxml | 26 - test/samples/w3c/xpath/test376.scxml | 22 - test/samples/w3c/xpath/test377.scxml | 31 - test/samples/w3c/xpath/test378.scxml | 25 - test/samples/w3c/xpath/test387.scxml | 97 - test/samples/w3c/xpath/test388.scxml | 76 - test/samples/w3c/xpath/test396.scxml | 16 - test/samples/w3c/xpath/test399.scxml | 66 - test/samples/w3c/xpath/test401.scxml | 21 - test/samples/w3c/xpath/test402.scxml | 40 - test/samples/w3c/xpath/test403a.scxml | 43 - test/samples/w3c/xpath/test403b.scxml | 40 - test/samples/w3c/xpath/test403c.scxml | 54 - test/samples/w3c/xpath/test404.scxml | 60 - test/samples/w3c/xpath/test405.scxml | 67 - test/samples/w3c/xpath/test406.scxml | 64 - test/samples/w3c/xpath/test407.scxml | 20 - test/samples/w3c/xpath/test409.scxml | 32 - test/samples/w3c/xpath/test411.scxml | 32 - test/samples/w3c/xpath/test412.scxml | 52 - test/samples/w3c/xpath/test413.scxml | 45 - test/samples/w3c/xpath/test415.scxml | 12 - test/samples/w3c/xpath/test416.scxml | 22 - test/samples/w3c/xpath/test417.scxml | 34 - test/samples/w3c/xpath/test419.scxml | 17 - test/samples/w3c/xpath/test421.scxml | 28 - test/samples/w3c/xpath/test422.scxml | 75 - test/samples/w3c/xpath/test423.scxml | 25 - test/samples/w3c/xpath/test436.scxml | 21 - test/samples/w3c/xpath/test444.scxml | 16 - test/samples/w3c/xpath/test445.scxml | 16 - test/samples/w3c/xpath/test448.scxml | 31 - test/samples/w3c/xpath/test449.scxml | 11 - test/samples/w3c/xpath/test451.scxml | 18 - test/samples/w3c/xpath/test452.scxml | 24 - test/samples/w3c/xpath/test453.scxml | 19 - test/samples/w3c/xpath/test456.scxml | 19 - test/samples/w3c/xpath/test457.scxml | 59 - test/samples/w3c/xpath/test460.scxml | 24 - test/samples/w3c/xpath/test463.scxml | 17 - test/samples/w3c/xpath/test464.scxml | 16 - test/samples/w3c/xpath/test465.scxml | 22 - test/samples/w3c/xpath/test466.scxml | 14 - test/samples/w3c/xpath/test467.scxml | 12 - test/samples/w3c/xpath/test468.scxml | 23 - test/samples/w3c/xpath/test469.scxml | 25 - test/samples/w3c/xpath/test470.scxml | 24 - test/samples/w3c/xpath/test473.scxml | 37 - test/samples/w3c/xpath/test474.scxml | 36 - test/samples/w3c/xpath/test475.scxml | 36 - test/samples/w3c/xpath/test476.scxml | 36 - test/samples/w3c/xpath/test477.scxml | 36 - test/samples/w3c/xpath/test478.scxml | 36 - test/samples/w3c/xpath/test479.scxml | 36 - test/samples/w3c/xpath/test480.scxml | 32 - test/samples/w3c/xpath/test481.scxml | 37 - test/samples/w3c/xpath/test482.scxml | 16 - test/samples/w3c/xpath/test483.scxml | 27 - test/samples/w3c/xpath/test487.scxml | 17 - test/samples/w3c/xpath/test488.scxml | 34 - test/samples/w3c/xpath/test495.scxml | 23 - test/samples/w3c/xpath/test500.scxml | 15 - test/samples/w3c/xpath/test501.scxml | 19 - test/samples/w3c/xpath/test503.scxml | 37 - test/samples/w3c/xpath/test504.scxml | 75 - test/samples/w3c/xpath/test505.scxml | 47 - test/samples/w3c/xpath/test506.scxml | 53 - test/samples/w3c/xpath/test509.scxml | 17 - test/samples/w3c/xpath/test510.scxml | 24 - test/samples/w3c/xpath/test513.scxml | 50 - test/samples/w3c/xpath/test518.scxml | 20 - test/samples/w3c/xpath/test519.scxml | 19 - test/samples/w3c/xpath/test520.scxml | 19 - test/samples/w3c/xpath/test521.scxml | 23 - test/samples/w3c/xpath/test522.scxml | 22 - test/samples/w3c/xpath/test525.scxml | 26 - test/samples/w3c/xpath/test527.scxml | 25 - test/samples/w3c/xpath/test528.scxml | 33 - test/samples/w3c/xpath/test529.scxml | 25 - test/samples/w3c/xpath/test530.scxml | 26 - test/samples/w3c/xpath/test531.scxml | 20 - test/samples/w3c/xpath/test532.scxml | 20 - test/samples/w3c/xpath/test533.scxml | 62 - test/samples/w3c/xpath/test534.scxml | 18 - test/samples/w3c/xpath/test537.scxml | 17 - test/samples/w3c/xpath/test539.scxml | 26 - test/samples/w3c/xpath/test539.txt | 4 - test/samples/w3c/xpath/test540.scxml | 21 - test/samples/w3c/xpath/test540.txt | 3 - test/samples/w3c/xpath/test542.scxml | 34 - test/samples/w3c/xpath/test543.scxml | 18 - test/samples/w3c/xpath/test544.scxml | 17 - test/samples/w3c/xpath/test546.scxml | 17 - test/samples/w3c/xpath/test547.scxml | 33 - test/samples/w3c/xpath/test550.scxml | 20 - test/samples/w3c/xpath/test551.scxml | 23 - test/samples/w3c/xpath/test552.scxml | 18 - test/samples/w3c/xpath/test552.txt | 1 - test/samples/w3c/xpath/test553.scxml | 23 - test/samples/w3c/xpath/test554.scxml | 25 - test/samples/w3c/xpath/test555.scxml | 27 - test/samples/w3c/xpath/test557.scxml | 26 - test/samples/w3c/xpath/test557.txt | 4 - test/samples/w3c/xpath/test558.scxml | 24 - test/samples/w3c/xpath/test558.txt | 3 - test/samples/w3c/xpath/test560.scxml | 19 - test/samples/w3c/xpath/test561.scxml | 24 - test/samples/w3c/xpath/test562.scxml | 22 - test/samples/w3c/xpath/test567.scxml | 30 - test/samples/w3c/xpath/test568.scxml | 15 - test/samples/w3c/xpath/test569.scxml | 15 - test/samples/w3c/xpath/test570.scxml | 45 - test/samples/w3c/xpath/test576.scxml | 37 - test/samples/w3c/xpath/test578.scxml | 19 - test/schema/scxml-attribs.xsd | 57 - test/schema/scxml-contentmodels.xsd | 35 - test/schema/scxml-datatypes.xsd | 203 - test/schema/scxml-module-core.xsd | 405 - test/schema/scxml-module-data.xsd | 151 - test/schema/scxml-module-external.xsd | 152 - test/schema/scxml.xsd | 88 - test/src/test-arabica-namespaces.cpp | 221 + test/src/test-promela-parser.cpp | 89 +- test/src/test-trie.cpp | 92 + test/src/test-w3c.cpp | 16 +- test/uscxml/applications/SpatialMapTicker.java | 153 + test/uscxml/applications/click.wav | Bin 0 -> 5058 bytes test/uscxml/applications/spoken-map-ticker.scxml | 78 + test/uscxml/applications/spoken-map-ticker.xhtml | 240 + test/uscxml/arabica/test-arabica-events.xml | 10 + test/uscxml/arabica/test-arabica-parsing.xml | 6 + test/uscxml/audio/click.wav | Bin 0 -> 5058 bytes .../chartToFSM/test-event-desc-merging.scxml | 17 + .../chartToFSM/test-event-set-conflict.scxml | 19 + test/uscxml/chartToFSM/test-flattening.scxml | 35 + test/uscxml/prolog/likes.pl | 38 + test/uscxml/promela/test-invokers.scxml | 21 + test/uscxml/promela/test-non-progress.scxml | 17 + test/uscxml/promela/test-progress-label.scxml | 20 + test/uscxml/promela/test-simple.scxml | 15 + test/uscxml/promela/test-syntax.scxml | 122 + test/uscxml/proto/3DViewer/CameraPos.proto | 9 + .../proto/3DViewer/DirectoryListingService.proto | 48 + test/uscxml/proto/3DViewer/LinearAlgebra.proto | 18 + test/uscxml/proto/3DViewer/ModelInfo.proto | 10 + test/uscxml/proto/3DViewer/Pose.proto | 22 + test/uscxml/proto/3DViewer/SceneSetup.proto | 8 + test/uscxml/proto/3DViewer/SceneShotService.proto | 24 + test/uscxml/proto/Dependee.proto | 3 + test/uscxml/proto/Depender.proto | 5 + test/uscxml/proto/JSON.proto | 6 + test/uscxml/proto/Test.proto | 37 + test/uscxml/proto/TestServices.proto | 23 + test/uscxml/scenegraph/HARD_MP_VAL_000.wrl | 33435 +++++++++++++++++++ test/uscxml/scripts/GreatCircle.js | 46 + test/uscxml/scripts/test-simple-ecmascript.scxml | 12 + test/uscxml/scxml-gui-test.scxml | 13 + test/uscxml/templates/mc-html.html | 348 + test/uscxml/templates/xhtml-invoker.html | 228 + test/uscxml/test-calendar.scxml | 93 + test/uscxml/test-communication.scxml | 65 + test/uscxml/test-custom-executable-content.scxml | 19 + test/uscxml/test-dirmon.scxml | 16 + test/uscxml/test-dom.scxml | 19 + test/uscxml/test-donedata.scxml | 37 + test/uscxml/test-ecmascript.scxml | 110 + test/uscxml/test-execution.scxml | 60 + test/uscxml/test-expect.scxml | 64 + test/uscxml/test-ffmpeg.scxml | 5 + test/uscxml/test-file-element.scxml | 17 + test/uscxml/test-http-servlet.scxml | 41 + test/uscxml/test-imap.scxml | 42 + test/uscxml/test-initial-config.scxml | 58 + test/uscxml/test-instant-messaging.scxml | 54 + test/uscxml/test-invoked.scxml | 29 + test/uscxml/test-java-datamodel.scxml | 106 + test/uscxml/test-java-invoker.scxml | 40 + test/uscxml/test-jvoicexml.scxml | 57 + test/uscxml/test-markup-passing.scxml | 54 + test/uscxml/test-markup.xml | 6 + test/uscxml/test-mmi-events.scxml | 88 + test/uscxml/test-mmi-im.scxml | 76 + test/uscxml/test-mmi-mc.scxml | 83 + test/uscxml/test-openal.scxml | 125 + test/uscxml/test-osgconvert.scxml | 40 + test/uscxml/test-performance.scxml | 16 + test/uscxml/test-postpone-element.scxml | 41 + test/uscxml/test-predicates.scxml | 9 + test/uscxml/test-prolog.scxml | 89 + test/uscxml/test-response-element.scxml | 14 + test/uscxml/test-scenegraph.scxml | 70 + test/uscxml/test-simplest.scxml | 3 + test/uscxml/test-smtp.scxml | 52 + test/uscxml/test-spatial-audio.scxml | 75 + test/uscxml/test-startup-time.scxml | 4 + test/uscxml/test-umundo-map-demo.scxml | 71 + test/uscxml/test-umundo-pingpong.scxml | 21 + test/uscxml/test-umundo-rpc.scxml | 60 + test/uscxml/test-umundo-s11n-chat.scxml | 16 + test/uscxml/test-umundo-s11n.scxml | 58 + test/uscxml/test-xhtml-invoker.scxml | 33 + test/w3c/confEcma.xsl | 720 + test/w3c/confXPath.xsl | 630 + test/w3c/convert-tests.sh | 23 + test/w3c/draft/calc.scxml | 158 + test/w3c/ecma/robots.txt | 96 + test/w3c/ecma/test144.scxml | 23 + test/w3c/ecma/test147.scxml | 30 + test/w3c/ecma/test148.scxml | 31 + test/w3c/ecma/test149.scxml | 25 + test/w3c/ecma/test150.scxml | 41 + test/w3c/ecma/test151.scxml | 41 + test/w3c/ecma/test152.scxml | 48 + test/w3c/ecma/test153.scxml | 35 + test/w3c/ecma/test155.scxml | 26 + test/w3c/ecma/test156.scxml | 28 + test/w3c/ecma/test158.scxml | 23 + test/w3c/ecma/test159.scxml | 20 + test/w3c/ecma/test172.scxml | 20 + test/w3c/ecma/test173.scxml | 21 + test/w3c/ecma/test174.scxml | 21 + test/w3c/ecma/test175.scxml | 27 + test/w3c/ecma/test176.scxml | 30 + test/w3c/ecma/test178.scxml | 27 + test/w3c/ecma/test179.scxml | 18 + test/w3c/ecma/test183.scxml | 21 + test/w3c/ecma/test185.scxml | 23 + test/w3c/ecma/test186.scxml | 31 + test/w3c/ecma/test187.scxml | 33 + test/w3c/ecma/test189.scxml | 22 + test/w3c/ecma/test190.scxml | 35 + test/w3c/ecma/test191.scxml | 31 + test/w3c/ecma/test192.scxml | 55 + test/w3c/ecma/test193.scxml | 19 + test/w3c/ecma/test194.scxml | 22 + test/w3c/ecma/test198.scxml | 19 + test/w3c/ecma/test199.scxml | 18 + test/w3c/ecma/test200.scxml | 18 + test/w3c/ecma/test201.scxml | 19 + test/w3c/ecma/test205.scxml | 30 + test/w3c/ecma/test207.scxml | 56 + test/w3c/ecma/test208.scxml | 21 + test/w3c/ecma/test210.scxml | 24 + test/w3c/ecma/test215.scxml | 29 + test/w3c/ecma/test216.scxml | 22 + test/w3c/ecma/test216sub1.scxml | 5 + test/w3c/ecma/test220.scxml | 21 + test/w3c/ecma/test223.scxml | 29 + test/w3c/ecma/test224.scxml | 31 + test/w3c/ecma/test225.scxml | 38 + test/w3c/ecma/test226.scxml | 23 + test/w3c/ecma/test226sub1.scxml | 16 + test/w3c/ecma/test228.scxml | 33 + test/w3c/ecma/test229.scxml | 42 + test/w3c/ecma/test230.scxml | 62 + test/w3c/ecma/test232.scxml | 40 + test/w3c/ecma/test233.scxml | 35 + test/w3c/ecma/test234.scxml | 66 + test/w3c/ecma/test235.scxml | 23 + test/w3c/ecma/test236.scxml | 39 + test/w3c/ecma/test237.scxml | 41 + test/w3c/ecma/test239.scxml | 32 + test/w3c/ecma/test239sub1.scxml | 5 + test/w3c/ecma/test240.scxml | 67 + test/w3c/ecma/test241.scxml | 98 + test/w3c/ecma/test242.scxml | 53 + test/w3c/ecma/test242sub1.scxml | 5 + test/w3c/ecma/test243.scxml | 36 + test/w3c/ecma/test244.scxml | 39 + test/w3c/ecma/test245.scxml | 34 + test/w3c/ecma/test247.scxml | 22 + test/w3c/ecma/test250.scxml | 42 + test/w3c/ecma/test252.scxml | 47 + test/w3c/ecma/test253.scxml | 79 + test/w3c/ecma/test276.scxml | 17 + test/w3c/ecma/test276sub1.scxml | 21 + test/w3c/ecma/test277.scxml | 28 + test/w3c/ecma/test278.scxml | 21 + test/w3c/ecma/test279.scxml | 21 + test/w3c/ecma/test280.scxml | 28 + test/w3c/ecma/test286.scxml | 18 + test/w3c/ecma/test287.scxml | 19 + test/w3c/ecma/test294.scxml | 46 + test/w3c/ecma/test298.scxml | 23 + test/w3c/ecma/test301.scxml | 13 + test/w3c/ecma/test302.scxml | 15 + test/w3c/ecma/test303.scxml | 20 + test/w3c/ecma/test304.scxml | 13 + test/w3c/ecma/test307.scxml | 42 + test/w3c/ecma/test309.scxml | 12 + test/w3c/ecma/test310.scxml | 18 + test/w3c/ecma/test311.scxml | 16 + test/w3c/ecma/test312.scxml | 20 + test/w3c/ecma/test313.scxml | 21 + test/w3c/ecma/test314.scxml | 34 + test/w3c/ecma/test318.scxml | 27 + test/w3c/ecma/test319.scxml | 20 + test/w3c/ecma/test321.scxml | 15 + test/w3c/ecma/test322.scxml | 33 + test/w3c/ecma/test323.scxml | 15 + test/w3c/ecma/test324.scxml | 21 + test/w3c/ecma/test325.scxml | 18 + test/w3c/ecma/test326.scxml | 35 + test/w3c/ecma/test329.scxml | 53 + test/w3c/ecma/test330.scxml | 23 + test/w3c/ecma/test331.scxml | 60 + test/w3c/ecma/test332.scxml | 29 + test/w3c/ecma/test333.scxml | 16 + test/w3c/ecma/test335.scxml | 16 + test/w3c/ecma/test336.scxml | 25 + test/w3c/ecma/test337.scxml | 16 + test/w3c/ecma/test338.scxml | 39 + test/w3c/ecma/test339.scxml | 16 + test/w3c/ecma/test342.scxml | 25 + test/w3c/ecma/test343.scxml | 34 + test/w3c/ecma/test344.scxml | 23 + test/w3c/ecma/test346.scxml | 53 + test/w3c/ecma/test347.scxml | 40 + test/w3c/ecma/test348.scxml | 18 + test/w3c/ecma/test349.scxml | 29 + test/w3c/ecma/test350.scxml | 22 + test/w3c/ecma/test351.scxml | 48 + test/w3c/ecma/test352.scxml | 29 + test/w3c/ecma/test354.scxml | 52 + test/w3c/ecma/test355.scxml | 14 + test/w3c/ecma/test364.scxml | 73 + test/w3c/ecma/test372.scxml | 28 + test/w3c/ecma/test375.scxml | 26 + test/w3c/ecma/test376.scxml | 22 + test/w3c/ecma/test377.scxml | 31 + test/w3c/ecma/test378.scxml | 25 + test/w3c/ecma/test387.scxml | 97 + test/w3c/ecma/test388.scxml | 76 + test/w3c/ecma/test396.scxml | 16 + test/w3c/ecma/test399.scxml | 66 + test/w3c/ecma/test401.scxml | 21 + test/w3c/ecma/test402.scxml | 40 + test/w3c/ecma/test403a.scxml | 43 + test/w3c/ecma/test403b.scxml | 40 + test/w3c/ecma/test403c.scxml | 54 + test/w3c/ecma/test404.scxml | 60 + test/w3c/ecma/test405.scxml | 67 + test/w3c/ecma/test406.scxml | 64 + test/w3c/ecma/test407.scxml | 20 + test/w3c/ecma/test409.scxml | 32 + test/w3c/ecma/test411.scxml | 32 + test/w3c/ecma/test412.scxml | 52 + test/w3c/ecma/test413.scxml | 45 + test/w3c/ecma/test415.scxml | 12 + test/w3c/ecma/test416.scxml | 22 + test/w3c/ecma/test417.scxml | 34 + test/w3c/ecma/test419.scxml | 17 + test/w3c/ecma/test421.scxml | 28 + test/w3c/ecma/test422.scxml | 75 + test/w3c/ecma/test423.scxml | 25 + test/w3c/ecma/test436.scxml | 21 + test/w3c/ecma/test444.scxml | 16 + test/w3c/ecma/test445.scxml | 16 + test/w3c/ecma/test448.scxml | 31 + test/w3c/ecma/test449.scxml | 11 + test/w3c/ecma/test451.scxml | 18 + test/w3c/ecma/test452.scxml | 24 + test/w3c/ecma/test453.scxml | 19 + test/w3c/ecma/test456.scxml | 19 + test/w3c/ecma/test457.scxml | 59 + test/w3c/ecma/test460.scxml | 24 + test/w3c/ecma/test463.scxml | 17 + test/w3c/ecma/test464.scxml | 16 + test/w3c/ecma/test465.scxml | 22 + test/w3c/ecma/test466.scxml | 14 + test/w3c/ecma/test467.scxml | 12 + test/w3c/ecma/test468.scxml | 23 + test/w3c/ecma/test469.scxml | 25 + test/w3c/ecma/test470.scxml | 24 + test/w3c/ecma/test473.scxml | 37 + test/w3c/ecma/test474.scxml | 36 + test/w3c/ecma/test475.scxml | 36 + test/w3c/ecma/test476.scxml | 36 + test/w3c/ecma/test477.scxml | 36 + test/w3c/ecma/test478.scxml | 36 + test/w3c/ecma/test479.scxml | 36 + test/w3c/ecma/test480.scxml | 32 + test/w3c/ecma/test481.scxml | 37 + test/w3c/ecma/test482.scxml | 16 + test/w3c/ecma/test483.scxml | 27 + test/w3c/ecma/test487.scxml | 17 + test/w3c/ecma/test488.scxml | 34 + test/w3c/ecma/test495.scxml | 23 + test/w3c/ecma/test500.scxml | 15 + test/w3c/ecma/test501.scxml | 19 + test/w3c/ecma/test503.scxml | 37 + test/w3c/ecma/test504.scxml | 75 + test/w3c/ecma/test505.scxml | 47 + test/w3c/ecma/test506.scxml | 53 + test/w3c/ecma/test509.scxml | 17 + test/w3c/ecma/test510.scxml | 24 + test/w3c/ecma/test513.scxml | 50 + test/w3c/ecma/test518.scxml | 20 + test/w3c/ecma/test519.scxml | 19 + test/w3c/ecma/test520.scxml | 19 + test/w3c/ecma/test521.scxml | 23 + test/w3c/ecma/test522.scxml | 22 + test/w3c/ecma/test525.scxml | 26 + test/w3c/ecma/test527.scxml | 25 + test/w3c/ecma/test528.scxml | 33 + test/w3c/ecma/test529.scxml | 25 + test/w3c/ecma/test530.scxml | 26 + test/w3c/ecma/test531.scxml | 20 + test/w3c/ecma/test532.scxml | 20 + test/w3c/ecma/test533.scxml | 62 + test/w3c/ecma/test534.scxml | 18 + test/w3c/ecma/test537.scxml | 17 + test/w3c/ecma/test539.scxml | 26 + test/w3c/ecma/test539.txt | 4 + test/w3c/ecma/test540.scxml | 21 + test/w3c/ecma/test540.txt | 3 + test/w3c/ecma/test542.scxml | 34 + test/w3c/ecma/test543.scxml | 18 + test/w3c/ecma/test544.scxml | 17 + test/w3c/ecma/test546.scxml | 17 + test/w3c/ecma/test547.scxml | 33 + test/w3c/ecma/test550.scxml | 20 + test/w3c/ecma/test551.scxml | 23 + test/w3c/ecma/test552.scxml | 18 + test/w3c/ecma/test552.txt | 1 + test/w3c/ecma/test553.scxml | 23 + test/w3c/ecma/test554.scxml | 25 + test/w3c/ecma/test555.scxml | 27 + test/w3c/ecma/test557.scxml | 26 + test/w3c/ecma/test557.txt | 4 + test/w3c/ecma/test558.scxml | 24 + test/w3c/ecma/test558.txt | 3 + test/w3c/ecma/test560.scxml | 19 + test/w3c/ecma/test561.scxml | 24 + test/w3c/ecma/test562.scxml | 22 + test/w3c/ecma/test567.scxml | 30 + test/w3c/ecma/test568.scxml | 15 + test/w3c/ecma/test569.scxml | 15 + test/w3c/ecma/test570.scxml | 45 + test/w3c/ecma/test576.scxml | 37 + test/w3c/ecma/test578.scxml | 19 + test/w3c/txml/robots.txt | 96 + test/w3c/txml/test144.txml | 27 + test/w3c/txml/test147.txml | 34 + test/w3c/txml/test148.txml | 35 + test/w3c/txml/test149.txml | 28 + test/w3c/txml/test150.txml | 45 + test/w3c/txml/test151.txml | 45 + test/w3c/txml/test152.txml | 52 + test/w3c/txml/test153.txml | 39 + test/w3c/txml/test155.txml | 30 + test/w3c/txml/test156.txml | 32 + test/w3c/txml/test158.txml | 27 + test/w3c/txml/test159.txml | 24 + test/w3c/txml/test172.txml | 23 + test/w3c/txml/test173.txml | 24 + test/w3c/txml/test174.txml | 24 + test/w3c/txml/test175.txml | 30 + test/w3c/txml/test176.txml | 33 + test/w3c/txml/test178.txml | 31 + test/w3c/txml/test179.txml | 21 + test/w3c/txml/test183.txml | 24 + test/w3c/txml/test185.txml | 26 + test/w3c/txml/test186.txml | 34 + test/w3c/txml/test187.txml | 36 + test/w3c/txml/test189.txml | 25 + test/w3c/txml/test190.txml | 38 + test/w3c/txml/test191.txml | 34 + test/w3c/txml/test192.txml | 58 + test/w3c/txml/test193.txml | 22 + test/w3c/txml/test194.txml | 26 + test/w3c/txml/test198.txml | 23 + test/w3c/txml/test199.txml | 22 + test/w3c/txml/test200.txml | 22 + test/w3c/txml/test201.txml | 25 + test/w3c/txml/test205.txml | 34 + test/w3c/txml/test207.txml | 60 + test/w3c/txml/test208.txml | 25 + test/w3c/txml/test210.txml | 28 + test/w3c/txml/test215.txml | 33 + test/w3c/txml/test216.txml | 26 + test/w3c/txml/test216sub1.txml | 9 + test/w3c/txml/test220.txml | 25 + test/w3c/txml/test223.txml | 33 + test/w3c/txml/test224.txml | 35 + test/w3c/txml/test225.txml | 42 + test/w3c/txml/test226.txml | 27 + test/w3c/txml/test226sub1.txml | 20 + test/w3c/txml/test228.txml | 37 + test/w3c/txml/test229.txml | 46 + test/w3c/txml/test230.txml | 66 + test/w3c/txml/test232.txml | 44 + test/w3c/txml/test233.txml | 39 + test/w3c/txml/test234.txml | 70 + test/w3c/txml/test235.txml | 27 + test/w3c/txml/test236.txml | 43 + test/w3c/txml/test237.txml | 45 + test/w3c/txml/test239.txml | 36 + test/w3c/txml/test239sub1.txml | 9 + test/w3c/txml/test240.txml | 71 + test/w3c/txml/test241.txml | 102 + test/w3c/txml/test242.txml | 57 + test/w3c/txml/test242sub1.txml | 9 + test/w3c/txml/test243.txml | 40 + test/w3c/txml/test244.txml | 43 + test/w3c/txml/test245.txml | 38 + test/w3c/txml/test247.txml | 26 + test/w3c/txml/test250.txml | 46 + test/w3c/txml/test252.txml | 51 + test/w3c/txml/test253.txml | 83 + test/w3c/txml/test276.txml | 21 + test/w3c/txml/test276sub1.txml | 24 + test/w3c/txml/test277.txml | 32 + test/w3c/txml/test278.txml | 22 + test/w3c/txml/test279.txml | 25 + test/w3c/txml/test280.txml | 34 + test/w3c/txml/test286.txml | 23 + test/w3c/txml/test287.txml | 23 + test/w3c/txml/test294.txml | 49 + test/w3c/txml/test298.txml | 28 + test/w3c/txml/test301.txml | 17 + test/w3c/txml/test302.txml | 20 + test/w3c/txml/test303.txml | 25 + test/w3c/txml/test304.txml | 18 + test/w3c/txml/test307.txml | 43 + test/w3c/txml/test309.txml | 16 + test/w3c/txml/test310.txml | 23 + test/w3c/txml/test311.txml | 21 + test/w3c/txml/test312.txml | 25 + test/w3c/txml/test313.txml | 26 + test/w3c/txml/test314.txml | 39 + test/w3c/txml/test318.txml | 31 + test/w3c/txml/test319.txml | 25 + test/w3c/txml/test321.txml | 19 + test/w3c/txml/test322.txml | 37 + test/w3c/txml/test323.txml | 19 + test/w3c/txml/test324.txml | 25 + test/w3c/txml/test325.txml | 22 + test/w3c/txml/test326.txml | 38 + test/w3c/txml/test329.txml | 55 + test/w3c/txml/test330.txml | 27 + test/w3c/txml/test331.txml | 62 + test/w3c/txml/test332.txml | 33 + test/w3c/txml/test333.txml | 20 + test/w3c/txml/test335.txml | 20 + test/w3c/txml/test336.txml | 29 + test/w3c/txml/test337.txml | 20 + test/w3c/txml/test338.txml | 43 + test/w3c/txml/test339.txml | 20 + test/w3c/txml/test342.txml | 28 + test/w3c/txml/test343.txml | 37 + test/w3c/txml/test344.txml | 27 + test/w3c/txml/test346.txml | 57 + test/w3c/txml/test347.txml | 44 + test/w3c/txml/test348.txml | 20 + test/w3c/txml/test349.txml | 33 + test/w3c/txml/test350.txml | 26 + test/w3c/txml/test351.txml | 52 + test/w3c/txml/test352.txml | 32 + test/w3c/txml/test354.txml | 56 + test/w3c/txml/test355.txml | 18 + test/w3c/txml/test364.txml | 77 + test/w3c/txml/test372.txml | 32 + test/w3c/txml/test375.txml | 30 + test/w3c/txml/test376.txml | 26 + test/w3c/txml/test377.txml | 35 + test/w3c/txml/test378.txml | 29 + test/w3c/txml/test387.txml | 101 + test/w3c/txml/test388.txml | 80 + test/w3c/txml/test396.txml | 20 + test/w3c/txml/test399.txml | 70 + test/w3c/txml/test401.txml | 25 + test/w3c/txml/test402.txml | 44 + test/w3c/txml/test403a.txml | 47 + test/w3c/txml/test403b.txml | 44 + test/w3c/txml/test403c.txml | 58 + test/w3c/txml/test404.txml | 64 + test/w3c/txml/test405.txml | 71 + test/w3c/txml/test406.txml | 68 + test/w3c/txml/test407.txml | 24 + test/w3c/txml/test409.txml | 36 + test/w3c/txml/test411.txml | 36 + test/w3c/txml/test412.txml | 56 + test/w3c/txml/test413.txml | 49 + test/w3c/txml/test415.txml | 15 + test/w3c/txml/test416.txml | 26 + test/w3c/txml/test417.txml | 39 + test/w3c/txml/test419.txml | 22 + test/w3c/txml/test421.txml | 33 + test/w3c/txml/test422.txml | 78 + test/w3c/txml/test423.txml | 28 + test/w3c/txml/test436.txml | 24 + test/w3c/txml/test444.txml | 20 + test/w3c/txml/test445.txml | 20 + test/w3c/txml/test448.txml | 35 + test/w3c/txml/test449.txml | 15 + test/w3c/txml/test451.txml | 23 + test/w3c/txml/test452.txml | 27 + test/w3c/txml/test453.txml | 22 + test/w3c/txml/test456.txml | 22 + test/w3c/txml/test457.txml | 62 + test/w3c/txml/test460.txml | 26 + test/w3c/txml/test463.txml | 22 + test/w3c/txml/test464.txml | 21 + test/w3c/txml/test465.txml | 27 + test/w3c/txml/test466.txml | 19 + test/w3c/txml/test467.txml | 17 + test/w3c/txml/test468.txml | 28 + test/w3c/txml/test469.txml | 29 + test/w3c/txml/test470.txml | 28 + test/w3c/txml/test473.txml | 44 + test/w3c/txml/test474.txml | 43 + test/w3c/txml/test475.txml | 43 + test/w3c/txml/test476.txml | 43 + test/w3c/txml/test477.txml | 43 + test/w3c/txml/test478.txml | 40 + test/w3c/txml/test479.txml | 40 + test/w3c/txml/test480.txml | 36 + test/w3c/txml/test481.txml | 41 + test/w3c/txml/test482.txml | 23 + test/w3c/txml/test483.txml | 31 + test/w3c/txml/test487.txml | 21 + test/w3c/txml/test488.txml | 37 + test/w3c/txml/test495.txml | 26 + test/w3c/txml/test500.txml | 19 + test/w3c/txml/test501.txml | 23 + test/w3c/txml/test503.txml | 41 + test/w3c/txml/test504.txml | 79 + test/w3c/txml/test505.txml | 51 + test/w3c/txml/test506.txml | 57 + test/w3c/txml/test509.txml | 21 + test/w3c/txml/test510.txml | 28 + test/w3c/txml/test513.txml | 54 + test/w3c/txml/test518.txml | 25 + test/w3c/txml/test519.txml | 21 + test/w3c/txml/test520.txml | 21 + test/w3c/txml/test521.txml | 27 + test/w3c/txml/test522.txml | 27 + test/w3c/txml/test525.txml | 30 + test/w3c/txml/test527.txml | 28 + test/w3c/txml/test528.txml | 36 + test/w3c/txml/test529.txml | 28 + test/w3c/txml/test530.txml | 30 + test/w3c/txml/test531.txml | 22 + test/w3c/txml/test532.txml | 22 + test/w3c/txml/test533.txml | 66 + test/w3c/txml/test534.txml | 20 + test/w3c/txml/test537.txml | 22 + test/w3c/txml/test539.txml | 30 + test/w3c/txml/test539.txt | 4 + test/w3c/txml/test540.txml | 25 + test/w3c/txml/test540.txt | 3 + test/w3c/txml/test542.txml | 38 + test/w3c/txml/test543.txml | 22 + test/w3c/txml/test544.txml | 21 + test/w3c/txml/test546.txml | 21 + test/w3c/txml/test547.txml | 38 + test/w3c/txml/test550.txml | 24 + test/w3c/txml/test551.txml | 27 + test/w3c/txml/test552.txml | 22 + test/w3c/txml/test552.txt | 1 + test/w3c/txml/test553.txml | 27 + test/w3c/txml/test554.txml | 29 + test/w3c/txml/test555.txml | 31 + test/w3c/txml/test557.txml | 30 + test/w3c/txml/test557.txt | 4 + test/w3c/txml/test558.txml | 28 + test/w3c/txml/test558.txt | 3 + test/w3c/txml/test560.txml | 23 + test/w3c/txml/test561.txml | 29 + test/w3c/txml/test562.txml | 26 + test/w3c/txml/test567.txml | 32 + test/w3c/txml/test568.txml | 19 + test/w3c/txml/test569.txml | 19 + test/w3c/txml/test570.txml | 49 + test/w3c/txml/test576.txml | 41 + test/w3c/txml/test578.txml | 24 + test/w3c/update-txml.sh | 7 + test/w3c/xpath/robots.txt | 96 + test/w3c/xpath/test144.scxml | 23 + test/w3c/xpath/test147.scxml | 30 + test/w3c/xpath/test148.scxml | 31 + test/w3c/xpath/test149.scxml | 25 + test/w3c/xpath/test150.scxml | 41 + test/w3c/xpath/test151.scxml | 41 + test/w3c/xpath/test152.scxml | 48 + test/w3c/xpath/test153.scxml | 35 + test/w3c/xpath/test155.scxml | 26 + test/w3c/xpath/test156.scxml | 28 + test/w3c/xpath/test158.scxml | 23 + test/w3c/xpath/test159.scxml | 20 + test/w3c/xpath/test172.scxml | 20 + test/w3c/xpath/test173.scxml | 21 + test/w3c/xpath/test174.scxml | 21 + test/w3c/xpath/test175.scxml | 27 + test/w3c/xpath/test176.scxml | 30 + test/w3c/xpath/test178.scxml | 27 + test/w3c/xpath/test179.scxml | 18 + test/w3c/xpath/test183.scxml | 21 + test/w3c/xpath/test185.scxml | 23 + test/w3c/xpath/test186.scxml | 31 + test/w3c/xpath/test187.scxml | 33 + test/w3c/xpath/test189.scxml | 22 + test/w3c/xpath/test190.scxml | 35 + test/w3c/xpath/test191.scxml | 31 + test/w3c/xpath/test192.scxml | 55 + test/w3c/xpath/test193.scxml | 19 + test/w3c/xpath/test194.scxml | 22 + test/w3c/xpath/test198.scxml | 19 + test/w3c/xpath/test199.scxml | 18 + test/w3c/xpath/test200.scxml | 18 + test/w3c/xpath/test201.scxml | 19 + test/w3c/xpath/test205.scxml | 30 + test/w3c/xpath/test207.scxml | 56 + test/w3c/xpath/test208.scxml | 21 + test/w3c/xpath/test210.scxml | 24 + test/w3c/xpath/test215.scxml | 29 + test/w3c/xpath/test216.scxml | 22 + test/w3c/xpath/test216sub1.scxml | 5 + test/w3c/xpath/test220.scxml | 21 + test/w3c/xpath/test223.scxml | 29 + test/w3c/xpath/test224.scxml | 31 + test/w3c/xpath/test225.scxml | 38 + test/w3c/xpath/test226.scxml | 23 + test/w3c/xpath/test226sub1.scxml | 16 + test/w3c/xpath/test228.scxml | 33 + test/w3c/xpath/test229.scxml | 42 + test/w3c/xpath/test230.scxml | 62 + test/w3c/xpath/test232.scxml | 40 + test/w3c/xpath/test233.scxml | 35 + test/w3c/xpath/test234.scxml | 66 + test/w3c/xpath/test235.scxml | 23 + test/w3c/xpath/test236.scxml | 39 + test/w3c/xpath/test237.scxml | 41 + test/w3c/xpath/test239.scxml | 32 + test/w3c/xpath/test239sub1.scxml | 5 + test/w3c/xpath/test240.scxml | 67 + test/w3c/xpath/test241.scxml | 98 + test/w3c/xpath/test242.scxml | 53 + test/w3c/xpath/test242sub1.scxml | 5 + test/w3c/xpath/test243.scxml | 36 + test/w3c/xpath/test244.scxml | 39 + test/w3c/xpath/test245.scxml | 34 + test/w3c/xpath/test247.scxml | 22 + test/w3c/xpath/test250.scxml | 42 + test/w3c/xpath/test252.scxml | 47 + test/w3c/xpath/test253.scxml | 79 + test/w3c/xpath/test276.scxml | 17 + test/w3c/xpath/test276sub1.scxml | 21 + test/w3c/xpath/test277.scxml | 28 + test/w3c/xpath/test278.scxml | 21 + test/w3c/xpath/test279.scxml | 21 + test/w3c/xpath/test280.scxml | 28 + test/w3c/xpath/test286.scxml | 18 + test/w3c/xpath/test287.scxml | 19 + test/w3c/xpath/test294.scxml | 46 + test/w3c/xpath/test298.scxml | 23 + test/w3c/xpath/test301.scxml | 13 + test/w3c/xpath/test302.scxml | 15 + test/w3c/xpath/test303.scxml | 20 + test/w3c/xpath/test304.scxml | 13 + test/w3c/xpath/test307.scxml | 42 + test/w3c/xpath/test309.scxml | 12 + test/w3c/xpath/test310.scxml | 18 + test/w3c/xpath/test311.scxml | 16 + test/w3c/xpath/test312.scxml | 20 + test/w3c/xpath/test313.scxml | 21 + test/w3c/xpath/test314.scxml | 34 + test/w3c/xpath/test318.scxml | 27 + test/w3c/xpath/test319.scxml | 20 + test/w3c/xpath/test321.scxml | 15 + test/w3c/xpath/test322.scxml | 33 + test/w3c/xpath/test323.scxml | 15 + test/w3c/xpath/test324.scxml | 21 + test/w3c/xpath/test325.scxml | 18 + test/w3c/xpath/test326.scxml | 35 + test/w3c/xpath/test329.scxml | 53 + test/w3c/xpath/test330.scxml | 23 + test/w3c/xpath/test331.scxml | 60 + test/w3c/xpath/test332.scxml | 29 + test/w3c/xpath/test333.scxml | 16 + test/w3c/xpath/test335.scxml | 16 + test/w3c/xpath/test336.scxml | 25 + test/w3c/xpath/test337.scxml | 16 + test/w3c/xpath/test338.scxml | 39 + test/w3c/xpath/test339.scxml | 16 + test/w3c/xpath/test342.scxml | 25 + test/w3c/xpath/test343.scxml | 34 + test/w3c/xpath/test344.scxml | 23 + test/w3c/xpath/test346.scxml | 53 + test/w3c/xpath/test347.scxml | 40 + test/w3c/xpath/test348.scxml | 18 + test/w3c/xpath/test349.scxml | 29 + test/w3c/xpath/test350.scxml | 22 + test/w3c/xpath/test351.scxml | 48 + test/w3c/xpath/test352.scxml | 29 + test/w3c/xpath/test354.scxml | 52 + test/w3c/xpath/test355.scxml | 14 + test/w3c/xpath/test364.scxml | 73 + test/w3c/xpath/test372.scxml | 28 + test/w3c/xpath/test375.scxml | 26 + test/w3c/xpath/test376.scxml | 22 + test/w3c/xpath/test377.scxml | 31 + test/w3c/xpath/test378.scxml | 25 + test/w3c/xpath/test387.scxml | 97 + test/w3c/xpath/test388.scxml | 76 + test/w3c/xpath/test396.scxml | 16 + test/w3c/xpath/test399.scxml | 66 + test/w3c/xpath/test401.scxml | 21 + test/w3c/xpath/test402.scxml | 40 + test/w3c/xpath/test403a.scxml | 43 + test/w3c/xpath/test403b.scxml | 40 + test/w3c/xpath/test403c.scxml | 54 + test/w3c/xpath/test404.scxml | 60 + test/w3c/xpath/test405.scxml | 67 + test/w3c/xpath/test406.scxml | 64 + test/w3c/xpath/test407.scxml | 20 + test/w3c/xpath/test409.scxml | 32 + test/w3c/xpath/test411.scxml | 32 + test/w3c/xpath/test412.scxml | 52 + test/w3c/xpath/test413.scxml | 45 + test/w3c/xpath/test415.scxml | 12 + test/w3c/xpath/test416.scxml | 22 + test/w3c/xpath/test417.scxml | 34 + test/w3c/xpath/test419.scxml | 17 + test/w3c/xpath/test421.scxml | 28 + test/w3c/xpath/test422.scxml | 75 + test/w3c/xpath/test423.scxml | 25 + test/w3c/xpath/test436.scxml | 21 + test/w3c/xpath/test444.scxml | 16 + test/w3c/xpath/test445.scxml | 16 + test/w3c/xpath/test448.scxml | 31 + test/w3c/xpath/test449.scxml | 11 + test/w3c/xpath/test451.scxml | 18 + test/w3c/xpath/test452.scxml | 24 + test/w3c/xpath/test453.scxml | 19 + test/w3c/xpath/test456.scxml | 19 + test/w3c/xpath/test457.scxml | 59 + test/w3c/xpath/test460.scxml | 24 + test/w3c/xpath/test463.scxml | 17 + test/w3c/xpath/test464.scxml | 16 + test/w3c/xpath/test465.scxml | 22 + test/w3c/xpath/test466.scxml | 14 + test/w3c/xpath/test467.scxml | 12 + test/w3c/xpath/test468.scxml | 23 + test/w3c/xpath/test469.scxml | 25 + test/w3c/xpath/test470.scxml | 24 + test/w3c/xpath/test473.scxml | 37 + test/w3c/xpath/test474.scxml | 36 + test/w3c/xpath/test475.scxml | 36 + test/w3c/xpath/test476.scxml | 36 + test/w3c/xpath/test477.scxml | 36 + test/w3c/xpath/test478.scxml | 36 + test/w3c/xpath/test479.scxml | 36 + test/w3c/xpath/test480.scxml | 32 + test/w3c/xpath/test481.scxml | 37 + test/w3c/xpath/test482.scxml | 16 + test/w3c/xpath/test483.scxml | 27 + test/w3c/xpath/test487.scxml | 17 + test/w3c/xpath/test488.scxml | 34 + test/w3c/xpath/test495.scxml | 23 + test/w3c/xpath/test500.scxml | 15 + test/w3c/xpath/test501.scxml | 19 + test/w3c/xpath/test503.scxml | 37 + test/w3c/xpath/test504.scxml | 75 + test/w3c/xpath/test505.scxml | 47 + test/w3c/xpath/test506.scxml | 53 + test/w3c/xpath/test509.scxml | 17 + test/w3c/xpath/test510.scxml | 24 + test/w3c/xpath/test513.scxml | 50 + test/w3c/xpath/test518.scxml | 20 + test/w3c/xpath/test519.scxml | 19 + test/w3c/xpath/test520.scxml | 19 + test/w3c/xpath/test521.scxml | 23 + test/w3c/xpath/test522.scxml | 22 + test/w3c/xpath/test525.scxml | 26 + test/w3c/xpath/test527.scxml | 25 + test/w3c/xpath/test528.scxml | 33 + test/w3c/xpath/test529.scxml | 25 + test/w3c/xpath/test530.scxml | 26 + test/w3c/xpath/test531.scxml | 20 + test/w3c/xpath/test532.scxml | 20 + test/w3c/xpath/test533.scxml | 62 + test/w3c/xpath/test534.scxml | 18 + test/w3c/xpath/test537.scxml | 17 + test/w3c/xpath/test539.scxml | 26 + test/w3c/xpath/test539.txt | 4 + test/w3c/xpath/test540.scxml | 21 + test/w3c/xpath/test540.txt | 3 + test/w3c/xpath/test542.scxml | 34 + test/w3c/xpath/test543.scxml | 18 + test/w3c/xpath/test544.scxml | 17 + test/w3c/xpath/test546.scxml | 17 + test/w3c/xpath/test547.scxml | 33 + test/w3c/xpath/test550.scxml | 20 + test/w3c/xpath/test551.scxml | 23 + test/w3c/xpath/test552.scxml | 18 + test/w3c/xpath/test552.txt | 1 + test/w3c/xpath/test553.scxml | 23 + test/w3c/xpath/test554.scxml | 25 + test/w3c/xpath/test555.scxml | 27 + test/w3c/xpath/test557.scxml | 26 + test/w3c/xpath/test557.txt | 4 + test/w3c/xpath/test558.scxml | 24 + test/w3c/xpath/test558.txt | 3 + test/w3c/xpath/test560.scxml | 19 + test/w3c/xpath/test561.scxml | 24 + test/w3c/xpath/test562.scxml | 22 + test/w3c/xpath/test567.scxml | 30 + test/w3c/xpath/test568.scxml | 15 + test/w3c/xpath/test569.scxml | 15 + test/w3c/xpath/test570.scxml | 45 + test/w3c/xpath/test576.scxml | 37 + test/w3c/xpath/test578.scxml | 19 + 1729 files changed, 66157 insertions(+), 70216 deletions(-) create mode 100644 src/uscxml/util/Trie.cpp create mode 100644 src/uscxml/util/Trie.h delete mode 100644 test/samples/apache/actions-initial-test.xml delete mode 100644 test/samples/apache/actions-parallel-test.xml delete mode 100644 test/samples/apache/actions-state-test.xml delete mode 100644 test/samples/apache/assign-test-01.xml delete mode 100644 test/samples/apache/assign-test-02.xml delete mode 100644 test/samples/apache/bar.xml delete mode 100644 test/samples/apache/custom-hello-world-01.xml delete mode 100644 test/samples/apache/custom-hello-world-02.xml delete mode 100644 test/samples/apache/custom-hello-world-03.xml delete mode 100644 test/samples/apache/custom-hello-world-04-el.xml delete mode 100644 test/samples/apache/custom-hello-world-04-jexl.xml delete mode 100644 test/samples/apache/datamodel-01.xml delete mode 100644 test/samples/apache/datamodel-02.xml delete mode 100644 test/samples/apache/datamodel-03.xml delete mode 100644 test/samples/apache/datamodel-04.xml delete mode 100644 test/samples/apache/edit-profile-config.xml delete mode 100644 test/samples/apache/eventdata-01.xml delete mode 100644 test/samples/apache/eventdata-02.xml delete mode 100644 test/samples/apache/eventdata-03.xml delete mode 100644 test/samples/apache/eventdata-04.xml delete mode 100644 test/samples/apache/external-hello-world.xml delete mode 100644 test/samples/apache/foo.xml delete mode 100644 test/samples/apache/hello-world.xml delete mode 100644 test/samples/apache/history-deep-01.xml delete mode 100644 test/samples/apache/history-default-01.xml delete mode 100644 test/samples/apache/history-shallow-01.xml delete mode 100644 test/samples/apache/invoked-01.xml delete mode 100644 test/samples/apache/invoked-02.xml delete mode 100644 test/samples/apache/invoked-03-01.xml delete mode 100644 test/samples/apache/invoked-03.xml delete mode 100644 test/samples/apache/invoker-01.xml delete mode 100644 test/samples/apache/invoker-02.xml delete mode 100644 test/samples/apache/invoker-03.xml delete mode 100644 test/samples/apache/invoker-04.xml delete mode 100644 test/samples/apache/issue62-01-ext.xml delete mode 100644 test/samples/apache/issue62-01.xml delete mode 100644 test/samples/apache/issue62-02-ext.xml delete mode 100644 test/samples/apache/issue62-02.xml delete mode 100644 test/samples/apache/issue62-03-ext.xml delete mode 100644 test/samples/apache/issue62-03.xml delete mode 100644 test/samples/apache/issue64-01.xml delete mode 100644 test/samples/apache/issue64-02.xml delete mode 100644 test/samples/apache/jsp-rootctx-test.xml delete mode 100644 test/samples/apache/log-on-config.xml delete mode 100644 test/samples/apache/microwave-01.xml delete mode 100644 test/samples/apache/microwave-02-legacy.xml delete mode 100644 test/samples/apache/microwave-02.xml delete mode 100644 test/samples/apache/microwave-03.xml delete mode 100644 test/samples/apache/microwave-04.xml delete mode 100644 test/samples/apache/microwave-05.xml delete mode 100644 test/samples/apache/parallel-01.xml delete mode 100644 test/samples/apache/parallel-02.xml delete mode 100644 test/samples/apache/parallel-03.xml delete mode 100644 test/samples/apache/prefix-01.xml delete mode 100644 test/samples/apache/scxml-initial-attr.xml delete mode 100644 test/samples/apache/send-01.xml delete mode 100644 test/samples/apache/send-02.xml delete mode 100644 test/samples/apache/src-test-1.xml delete mode 100644 test/samples/apache/src-test-2.xml delete mode 100644 test/samples/apache/src-test-3.xml delete mode 100644 test/samples/apache/src-test-4.xml delete mode 100644 test/samples/apache/src-test-5.xml delete mode 100644 test/samples/apache/state-01.xml delete mode 100644 test/samples/apache/stateless-01.xml delete mode 100644 test/samples/apache/stateless-parallel-01.xml delete mode 100644 test/samples/apache/static-method.xml delete mode 100644 test/samples/apache/stopwatch.xml delete mode 100644 test/samples/apache/tie-breaker-01.xml delete mode 100644 test/samples/apache/tie-breaker-02.xml delete mode 100644 test/samples/apache/tie-breaker-03.xml delete mode 100644 test/samples/apache/tie-breaker-04.xml delete mode 100644 test/samples/apache/tie-breaker-05.xml delete mode 100644 test/samples/apache/tie-breaker-06.xml delete mode 100644 test/samples/apache/transitions-01-legacy.xml delete mode 100644 test/samples/apache/transitions-01.xml delete mode 100644 test/samples/apache/transitions-02.xml delete mode 100644 test/samples/apache/transitions-03.xml delete mode 100644 test/samples/apache/transitions-04.xml delete mode 100644 test/samples/apache/transitions-05.xml delete mode 100644 test/samples/apache/travel-dialog.xml delete mode 100644 test/samples/apache/wildcard-01.xml delete mode 100644 test/samples/apache/wildcard-02.xml delete mode 100644 test/samples/apache/wizard-01.xml delete mode 100644 test/samples/apache/wizard-02.xml delete mode 100644 test/samples/uscxml/applications/SpatialMapTicker.java delete mode 100644 test/samples/uscxml/applications/click.wav delete mode 100644 test/samples/uscxml/applications/spoken-map-ticker.scxml delete mode 100644 test/samples/uscxml/applications/spoken-map-ticker.xhtml delete mode 100644 test/samples/uscxml/arabica/test-arabica-events.xml delete mode 100644 test/samples/uscxml/arabica/test-arabica-parsing.xml delete mode 100644 test/samples/uscxml/audio/click.wav delete mode 100644 test/samples/uscxml/chartToFSM/test-event-desc-merging.scxml delete mode 100644 test/samples/uscxml/chartToFSM/test-event-set-conflict.scxml delete mode 100644 test/samples/uscxml/chartToFSM/test-flattening.scxml delete mode 100644 test/samples/uscxml/prolog/likes.pl delete mode 100644 test/samples/uscxml/promela/test-simple-promela.scxml delete mode 100644 test/samples/uscxml/proto/3DViewer/CameraPos.proto delete mode 100644 test/samples/uscxml/proto/3DViewer/DirectoryListingService.proto delete mode 100644 test/samples/uscxml/proto/3DViewer/LinearAlgebra.proto delete mode 100644 test/samples/uscxml/proto/3DViewer/ModelInfo.proto delete mode 100644 test/samples/uscxml/proto/3DViewer/Pose.proto delete mode 100644 test/samples/uscxml/proto/3DViewer/SceneSetup.proto delete mode 100644 test/samples/uscxml/proto/3DViewer/SceneShotService.proto delete mode 100644 test/samples/uscxml/proto/Dependee.proto delete mode 100644 test/samples/uscxml/proto/Depender.proto delete mode 100644 test/samples/uscxml/proto/JSON.proto delete mode 100644 test/samples/uscxml/proto/Test.proto delete mode 100644 test/samples/uscxml/proto/TestServices.proto delete mode 100644 test/samples/uscxml/scenegraph/HARD_MP_VAL_000.wrl delete mode 100644 test/samples/uscxml/scripts/GreatCircle.js delete mode 100644 test/samples/uscxml/scripts/test-simple-ecmascript.scxml delete mode 100644 test/samples/uscxml/scxml-gui-test.scxml delete mode 100644 test/samples/uscxml/templates/mc-html.html delete mode 100644 test/samples/uscxml/templates/xhtml-invoker.html delete mode 100644 test/samples/uscxml/test-calendar.scxml delete mode 100644 test/samples/uscxml/test-communication.scxml delete mode 100644 test/samples/uscxml/test-custom-executable-content.scxml delete mode 100644 test/samples/uscxml/test-dirmon.scxml delete mode 100644 test/samples/uscxml/test-dom.scxml delete mode 100644 test/samples/uscxml/test-donedata.scxml delete mode 100644 test/samples/uscxml/test-ecmascript.scxml delete mode 100644 test/samples/uscxml/test-execution.scxml delete mode 100644 test/samples/uscxml/test-expect.scxml delete mode 100644 test/samples/uscxml/test-ffmpeg.scxml delete mode 100644 test/samples/uscxml/test-file-element.scxml delete mode 100644 test/samples/uscxml/test-http-servlet.scxml delete mode 100644 test/samples/uscxml/test-imap.scxml delete mode 100644 test/samples/uscxml/test-initial-config.scxml delete mode 100644 test/samples/uscxml/test-instant-messaging.scxml delete mode 100644 test/samples/uscxml/test-invoked.scxml delete mode 100644 test/samples/uscxml/test-java-datamodel.scxml delete mode 100644 test/samples/uscxml/test-java-invoker.scxml delete mode 100644 test/samples/uscxml/test-jvoicexml.scxml delete mode 100644 test/samples/uscxml/test-markup-passing.scxml delete mode 100644 test/samples/uscxml/test-markup.xml delete mode 100644 test/samples/uscxml/test-mmi-events.scxml delete mode 100644 test/samples/uscxml/test-mmi-im.scxml delete mode 100644 test/samples/uscxml/test-mmi-mc.scxml delete mode 100644 test/samples/uscxml/test-openal.scxml delete mode 100644 test/samples/uscxml/test-osgconvert.scxml delete mode 100644 test/samples/uscxml/test-performance.scxml delete mode 100644 test/samples/uscxml/test-postpone-element.scxml delete mode 100644 test/samples/uscxml/test-predicates.scxml delete mode 100644 test/samples/uscxml/test-prolog.scxml delete mode 100644 test/samples/uscxml/test-response-element.scxml delete mode 100644 test/samples/uscxml/test-scenegraph.scxml delete mode 100644 test/samples/uscxml/test-simplest.scxml delete mode 100644 test/samples/uscxml/test-smtp.scxml delete mode 100644 test/samples/uscxml/test-spatial-audio.scxml delete mode 100644 test/samples/uscxml/test-startup-time.scxml delete mode 100644 test/samples/uscxml/test-umundo-map-demo.scxml delete mode 100644 test/samples/uscxml/test-umundo-pingpong.scxml delete mode 100644 test/samples/uscxml/test-umundo-rpc.scxml delete mode 100644 test/samples/uscxml/test-umundo-s11n-chat.scxml delete mode 100644 test/samples/uscxml/test-umundo-s11n.scxml delete mode 100644 test/samples/uscxml/test-xhtml-invoker.scxml delete mode 100644 test/samples/w3c/confEcma.xsl delete mode 100644 test/samples/w3c/confXPath.xsl delete mode 100755 test/samples/w3c/convert-tests.sh delete mode 100644 test/samples/w3c/draft/calc.scxml delete mode 100644 test/samples/w3c/ecma/robots.txt delete mode 100644 test/samples/w3c/ecma/test144.scxml delete mode 100644 test/samples/w3c/ecma/test147.scxml delete mode 100644 test/samples/w3c/ecma/test148.scxml delete mode 100644 test/samples/w3c/ecma/test149.scxml delete mode 100644 test/samples/w3c/ecma/test150.scxml delete mode 100644 test/samples/w3c/ecma/test151.scxml delete mode 100644 test/samples/w3c/ecma/test152.scxml delete mode 100644 test/samples/w3c/ecma/test153.scxml delete mode 100644 test/samples/w3c/ecma/test155.scxml delete mode 100644 test/samples/w3c/ecma/test156.scxml delete mode 100644 test/samples/w3c/ecma/test158.scxml delete mode 100644 test/samples/w3c/ecma/test159.scxml delete mode 100644 test/samples/w3c/ecma/test172.scxml delete mode 100644 test/samples/w3c/ecma/test173.scxml delete mode 100644 test/samples/w3c/ecma/test174.scxml delete mode 100644 test/samples/w3c/ecma/test175.scxml delete mode 100644 test/samples/w3c/ecma/test176.scxml delete mode 100644 test/samples/w3c/ecma/test178.scxml delete mode 100644 test/samples/w3c/ecma/test179.scxml delete mode 100644 test/samples/w3c/ecma/test183.scxml delete mode 100644 test/samples/w3c/ecma/test185.scxml delete mode 100644 test/samples/w3c/ecma/test186.scxml delete mode 100644 test/samples/w3c/ecma/test187.scxml delete mode 100644 test/samples/w3c/ecma/test189.scxml delete mode 100644 test/samples/w3c/ecma/test190.scxml delete mode 100644 test/samples/w3c/ecma/test191.scxml delete mode 100644 test/samples/w3c/ecma/test192.scxml delete mode 100644 test/samples/w3c/ecma/test193.scxml delete mode 100644 test/samples/w3c/ecma/test194.scxml delete mode 100644 test/samples/w3c/ecma/test198.scxml delete mode 100644 test/samples/w3c/ecma/test199.scxml delete mode 100644 test/samples/w3c/ecma/test200.scxml delete mode 100644 test/samples/w3c/ecma/test201.scxml delete mode 100644 test/samples/w3c/ecma/test205.scxml delete mode 100644 test/samples/w3c/ecma/test207.scxml delete mode 100644 test/samples/w3c/ecma/test208.scxml delete mode 100644 test/samples/w3c/ecma/test210.scxml delete mode 100644 test/samples/w3c/ecma/test215.scxml delete mode 100644 test/samples/w3c/ecma/test216.scxml delete mode 100644 test/samples/w3c/ecma/test216sub1.scxml delete mode 100644 test/samples/w3c/ecma/test220.scxml delete mode 100644 test/samples/w3c/ecma/test223.scxml delete mode 100644 test/samples/w3c/ecma/test224.scxml delete mode 100644 test/samples/w3c/ecma/test225.scxml delete mode 100644 test/samples/w3c/ecma/test226.scxml delete mode 100644 test/samples/w3c/ecma/test226sub1.scxml delete mode 100644 test/samples/w3c/ecma/test228.scxml delete mode 100644 test/samples/w3c/ecma/test229.scxml delete mode 100644 test/samples/w3c/ecma/test230.scxml delete mode 100644 test/samples/w3c/ecma/test232.scxml delete mode 100644 test/samples/w3c/ecma/test233.scxml delete mode 100644 test/samples/w3c/ecma/test234.scxml delete mode 100644 test/samples/w3c/ecma/test235.scxml delete mode 100644 test/samples/w3c/ecma/test236.scxml delete mode 100644 test/samples/w3c/ecma/test237.scxml delete mode 100644 test/samples/w3c/ecma/test239.scxml delete mode 100644 test/samples/w3c/ecma/test239sub1.scxml delete mode 100644 test/samples/w3c/ecma/test240.scxml delete mode 100644 test/samples/w3c/ecma/test241.scxml delete mode 100644 test/samples/w3c/ecma/test242.scxml delete mode 100644 test/samples/w3c/ecma/test242sub1.scxml delete mode 100644 test/samples/w3c/ecma/test243.scxml delete mode 100644 test/samples/w3c/ecma/test244.scxml delete mode 100644 test/samples/w3c/ecma/test245.scxml delete mode 100644 test/samples/w3c/ecma/test247.scxml delete mode 100644 test/samples/w3c/ecma/test250.scxml delete mode 100644 test/samples/w3c/ecma/test252.scxml delete mode 100644 test/samples/w3c/ecma/test253.scxml delete mode 100644 test/samples/w3c/ecma/test276.scxml delete mode 100644 test/samples/w3c/ecma/test276sub1.scxml delete mode 100644 test/samples/w3c/ecma/test277.scxml delete mode 100644 test/samples/w3c/ecma/test278.scxml delete mode 100644 test/samples/w3c/ecma/test279.scxml delete mode 100644 test/samples/w3c/ecma/test280.scxml delete mode 100644 test/samples/w3c/ecma/test286.scxml delete mode 100644 test/samples/w3c/ecma/test287.scxml delete mode 100644 test/samples/w3c/ecma/test294.scxml delete mode 100644 test/samples/w3c/ecma/test298.scxml delete mode 100644 test/samples/w3c/ecma/test301.scxml delete mode 100644 test/samples/w3c/ecma/test302.scxml delete mode 100644 test/samples/w3c/ecma/test303.scxml delete mode 100644 test/samples/w3c/ecma/test304.scxml delete mode 100644 test/samples/w3c/ecma/test307.scxml delete mode 100644 test/samples/w3c/ecma/test309.scxml delete mode 100644 test/samples/w3c/ecma/test310.scxml delete mode 100644 test/samples/w3c/ecma/test311.scxml delete mode 100644 test/samples/w3c/ecma/test312.scxml delete mode 100644 test/samples/w3c/ecma/test313.scxml delete mode 100644 test/samples/w3c/ecma/test314.scxml delete mode 100644 test/samples/w3c/ecma/test318.scxml delete mode 100644 test/samples/w3c/ecma/test319.scxml delete mode 100644 test/samples/w3c/ecma/test321.scxml delete mode 100644 test/samples/w3c/ecma/test322.scxml delete mode 100644 test/samples/w3c/ecma/test323.scxml delete mode 100644 test/samples/w3c/ecma/test324.scxml delete mode 100644 test/samples/w3c/ecma/test325.scxml delete mode 100644 test/samples/w3c/ecma/test326.scxml delete mode 100644 test/samples/w3c/ecma/test329.scxml delete mode 100644 test/samples/w3c/ecma/test330.scxml delete mode 100644 test/samples/w3c/ecma/test331.scxml delete mode 100644 test/samples/w3c/ecma/test332.scxml delete mode 100644 test/samples/w3c/ecma/test333.scxml delete mode 100644 test/samples/w3c/ecma/test335.scxml delete mode 100644 test/samples/w3c/ecma/test336.scxml delete mode 100644 test/samples/w3c/ecma/test337.scxml delete mode 100644 test/samples/w3c/ecma/test338.scxml delete mode 100644 test/samples/w3c/ecma/test339.scxml delete mode 100644 test/samples/w3c/ecma/test342.scxml delete mode 100644 test/samples/w3c/ecma/test343.scxml delete mode 100644 test/samples/w3c/ecma/test344.scxml delete mode 100644 test/samples/w3c/ecma/test346.scxml delete mode 100644 test/samples/w3c/ecma/test347.scxml delete mode 100644 test/samples/w3c/ecma/test348.scxml delete mode 100644 test/samples/w3c/ecma/test349.scxml delete mode 100644 test/samples/w3c/ecma/test350.scxml delete mode 100644 test/samples/w3c/ecma/test351.scxml delete mode 100644 test/samples/w3c/ecma/test352.scxml delete mode 100644 test/samples/w3c/ecma/test354.scxml delete mode 100644 test/samples/w3c/ecma/test355.scxml delete mode 100644 test/samples/w3c/ecma/test364.scxml delete mode 100644 test/samples/w3c/ecma/test372.scxml delete mode 100644 test/samples/w3c/ecma/test375.scxml delete mode 100644 test/samples/w3c/ecma/test376.scxml delete mode 100644 test/samples/w3c/ecma/test377.scxml delete mode 100644 test/samples/w3c/ecma/test378.scxml delete mode 100644 test/samples/w3c/ecma/test387.scxml delete mode 100644 test/samples/w3c/ecma/test388.scxml delete mode 100644 test/samples/w3c/ecma/test396.scxml delete mode 100644 test/samples/w3c/ecma/test399.scxml delete mode 100644 test/samples/w3c/ecma/test401.scxml delete mode 100644 test/samples/w3c/ecma/test402.scxml delete mode 100644 test/samples/w3c/ecma/test403a.scxml delete mode 100644 test/samples/w3c/ecma/test403b.scxml delete mode 100644 test/samples/w3c/ecma/test403c.scxml delete mode 100644 test/samples/w3c/ecma/test404.scxml delete mode 100644 test/samples/w3c/ecma/test405.scxml delete mode 100644 test/samples/w3c/ecma/test406.scxml delete mode 100644 test/samples/w3c/ecma/test407.scxml delete mode 100644 test/samples/w3c/ecma/test409.scxml delete mode 100644 test/samples/w3c/ecma/test411.scxml delete mode 100644 test/samples/w3c/ecma/test412.scxml delete mode 100644 test/samples/w3c/ecma/test413.scxml delete mode 100644 test/samples/w3c/ecma/test415.scxml delete mode 100644 test/samples/w3c/ecma/test416.scxml delete mode 100644 test/samples/w3c/ecma/test417.scxml delete mode 100644 test/samples/w3c/ecma/test419.scxml delete mode 100644 test/samples/w3c/ecma/test421.scxml delete mode 100644 test/samples/w3c/ecma/test422.scxml delete mode 100644 test/samples/w3c/ecma/test423.scxml delete mode 100644 test/samples/w3c/ecma/test436.scxml delete mode 100644 test/samples/w3c/ecma/test444.scxml delete mode 100644 test/samples/w3c/ecma/test445.scxml delete mode 100644 test/samples/w3c/ecma/test448.scxml delete mode 100644 test/samples/w3c/ecma/test449.scxml delete mode 100644 test/samples/w3c/ecma/test451.scxml delete mode 100644 test/samples/w3c/ecma/test452.scxml delete mode 100644 test/samples/w3c/ecma/test453.scxml delete mode 100644 test/samples/w3c/ecma/test456.scxml delete mode 100644 test/samples/w3c/ecma/test457.scxml delete mode 100644 test/samples/w3c/ecma/test460.scxml delete mode 100644 test/samples/w3c/ecma/test463.scxml delete mode 100644 test/samples/w3c/ecma/test464.scxml delete mode 100644 test/samples/w3c/ecma/test465.scxml delete mode 100644 test/samples/w3c/ecma/test466.scxml delete mode 100644 test/samples/w3c/ecma/test467.scxml delete mode 100644 test/samples/w3c/ecma/test468.scxml delete mode 100644 test/samples/w3c/ecma/test469.scxml delete mode 100644 test/samples/w3c/ecma/test470.scxml delete mode 100644 test/samples/w3c/ecma/test473.scxml delete mode 100644 test/samples/w3c/ecma/test474.scxml delete mode 100644 test/samples/w3c/ecma/test475.scxml delete mode 100644 test/samples/w3c/ecma/test476.scxml delete mode 100644 test/samples/w3c/ecma/test477.scxml delete mode 100644 test/samples/w3c/ecma/test478.scxml delete mode 100644 test/samples/w3c/ecma/test479.scxml delete mode 100644 test/samples/w3c/ecma/test480.scxml delete mode 100644 test/samples/w3c/ecma/test481.scxml delete mode 100644 test/samples/w3c/ecma/test482.scxml delete mode 100644 test/samples/w3c/ecma/test483.scxml delete mode 100644 test/samples/w3c/ecma/test487.scxml delete mode 100644 test/samples/w3c/ecma/test488.scxml delete mode 100644 test/samples/w3c/ecma/test495.scxml delete mode 100644 test/samples/w3c/ecma/test500.scxml delete mode 100644 test/samples/w3c/ecma/test501.scxml delete mode 100644 test/samples/w3c/ecma/test503.scxml delete mode 100644 test/samples/w3c/ecma/test504.scxml delete mode 100644 test/samples/w3c/ecma/test505.scxml delete mode 100644 test/samples/w3c/ecma/test506.scxml delete mode 100644 test/samples/w3c/ecma/test509.scxml delete mode 100644 test/samples/w3c/ecma/test510.scxml delete mode 100644 test/samples/w3c/ecma/test513.scxml delete mode 100644 test/samples/w3c/ecma/test518.scxml delete mode 100644 test/samples/w3c/ecma/test519.scxml delete mode 100644 test/samples/w3c/ecma/test520.scxml delete mode 100644 test/samples/w3c/ecma/test521.scxml delete mode 100644 test/samples/w3c/ecma/test522.scxml delete mode 100644 test/samples/w3c/ecma/test525.scxml delete mode 100644 test/samples/w3c/ecma/test527.scxml delete mode 100644 test/samples/w3c/ecma/test528.scxml delete mode 100644 test/samples/w3c/ecma/test529.scxml delete mode 100644 test/samples/w3c/ecma/test530.scxml delete mode 100644 test/samples/w3c/ecma/test531.scxml delete mode 100644 test/samples/w3c/ecma/test532.scxml delete mode 100644 test/samples/w3c/ecma/test533.scxml delete mode 100644 test/samples/w3c/ecma/test534.scxml delete mode 100644 test/samples/w3c/ecma/test537.scxml delete mode 100644 test/samples/w3c/ecma/test539.scxml delete mode 100644 test/samples/w3c/ecma/test539.txt delete mode 100644 test/samples/w3c/ecma/test540.scxml delete mode 100644 test/samples/w3c/ecma/test540.txt delete mode 100644 test/samples/w3c/ecma/test542.scxml delete mode 100644 test/samples/w3c/ecma/test543.scxml delete mode 100644 test/samples/w3c/ecma/test544.scxml delete mode 100644 test/samples/w3c/ecma/test546.scxml delete mode 100644 test/samples/w3c/ecma/test547.scxml delete mode 100644 test/samples/w3c/ecma/test550.scxml delete mode 100644 test/samples/w3c/ecma/test551.scxml delete mode 100644 test/samples/w3c/ecma/test552.scxml delete mode 100644 test/samples/w3c/ecma/test552.txt delete mode 100644 test/samples/w3c/ecma/test553.scxml delete mode 100644 test/samples/w3c/ecma/test554.scxml delete mode 100644 test/samples/w3c/ecma/test555.scxml delete mode 100644 test/samples/w3c/ecma/test557.scxml delete mode 100644 test/samples/w3c/ecma/test557.txt delete mode 100644 test/samples/w3c/ecma/test558.scxml delete mode 100644 test/samples/w3c/ecma/test558.txt delete mode 100644 test/samples/w3c/ecma/test560.scxml delete mode 100644 test/samples/w3c/ecma/test561.scxml delete mode 100644 test/samples/w3c/ecma/test562.scxml delete mode 100644 test/samples/w3c/ecma/test567.scxml delete mode 100644 test/samples/w3c/ecma/test568.scxml delete mode 100644 test/samples/w3c/ecma/test569.scxml delete mode 100644 test/samples/w3c/ecma/test570.scxml delete mode 100644 test/samples/w3c/ecma/test576.scxml delete mode 100644 test/samples/w3c/ecma/test578.scxml delete mode 100644 test/samples/w3c/txml/robots.txt delete mode 100644 test/samples/w3c/txml/test144.txml delete mode 100644 test/samples/w3c/txml/test147.txml delete mode 100644 test/samples/w3c/txml/test148.txml delete mode 100644 test/samples/w3c/txml/test149.txml delete mode 100644 test/samples/w3c/txml/test150.txml delete mode 100644 test/samples/w3c/txml/test151.txml delete mode 100644 test/samples/w3c/txml/test152.txml delete mode 100644 test/samples/w3c/txml/test153.txml delete mode 100644 test/samples/w3c/txml/test155.txml delete mode 100644 test/samples/w3c/txml/test156.txml delete mode 100644 test/samples/w3c/txml/test158.txml delete mode 100644 test/samples/w3c/txml/test159.txml delete mode 100644 test/samples/w3c/txml/test172.txml delete mode 100644 test/samples/w3c/txml/test173.txml delete mode 100644 test/samples/w3c/txml/test174.txml delete mode 100644 test/samples/w3c/txml/test175.txml delete mode 100644 test/samples/w3c/txml/test176.txml delete mode 100644 test/samples/w3c/txml/test178.txml delete mode 100644 test/samples/w3c/txml/test179.txml delete mode 100644 test/samples/w3c/txml/test183.txml delete mode 100644 test/samples/w3c/txml/test185.txml delete mode 100644 test/samples/w3c/txml/test186.txml delete mode 100644 test/samples/w3c/txml/test187.txml delete mode 100644 test/samples/w3c/txml/test189.txml delete mode 100644 test/samples/w3c/txml/test190.txml delete mode 100644 test/samples/w3c/txml/test191.txml delete mode 100644 test/samples/w3c/txml/test192.txml delete mode 100644 test/samples/w3c/txml/test193.txml delete mode 100644 test/samples/w3c/txml/test194.txml delete mode 100644 test/samples/w3c/txml/test198.txml delete mode 100644 test/samples/w3c/txml/test199.txml delete mode 100644 test/samples/w3c/txml/test200.txml delete mode 100644 test/samples/w3c/txml/test201.txml delete mode 100644 test/samples/w3c/txml/test205.txml delete mode 100644 test/samples/w3c/txml/test207.txml delete mode 100644 test/samples/w3c/txml/test208.txml delete mode 100644 test/samples/w3c/txml/test210.txml delete mode 100644 test/samples/w3c/txml/test215.txml delete mode 100644 test/samples/w3c/txml/test216.txml delete mode 100644 test/samples/w3c/txml/test216sub1.txml delete mode 100644 test/samples/w3c/txml/test220.txml delete mode 100644 test/samples/w3c/txml/test223.txml delete mode 100644 test/samples/w3c/txml/test224.txml delete mode 100644 test/samples/w3c/txml/test225.txml delete mode 100644 test/samples/w3c/txml/test226.txml delete mode 100644 test/samples/w3c/txml/test226sub1.txml delete mode 100644 test/samples/w3c/txml/test228.txml delete mode 100644 test/samples/w3c/txml/test229.txml delete mode 100644 test/samples/w3c/txml/test230.txml delete mode 100644 test/samples/w3c/txml/test232.txml delete mode 100644 test/samples/w3c/txml/test233.txml delete mode 100644 test/samples/w3c/txml/test234.txml delete mode 100644 test/samples/w3c/txml/test235.txml delete mode 100644 test/samples/w3c/txml/test236.txml delete mode 100644 test/samples/w3c/txml/test237.txml delete mode 100644 test/samples/w3c/txml/test239.txml delete mode 100644 test/samples/w3c/txml/test239sub1.txml delete mode 100644 test/samples/w3c/txml/test240.txml delete mode 100644 test/samples/w3c/txml/test241.txml delete mode 100644 test/samples/w3c/txml/test242.txml delete mode 100644 test/samples/w3c/txml/test242sub1.txml delete mode 100644 test/samples/w3c/txml/test243.txml delete mode 100644 test/samples/w3c/txml/test244.txml delete mode 100644 test/samples/w3c/txml/test245.txml delete mode 100644 test/samples/w3c/txml/test247.txml delete mode 100644 test/samples/w3c/txml/test250.txml delete mode 100644 test/samples/w3c/txml/test252.txml delete mode 100644 test/samples/w3c/txml/test253.txml delete mode 100644 test/samples/w3c/txml/test276.txml delete mode 100644 test/samples/w3c/txml/test276sub1.txml delete mode 100644 test/samples/w3c/txml/test277.txml delete mode 100644 test/samples/w3c/txml/test278.txml delete mode 100644 test/samples/w3c/txml/test279.txml delete mode 100644 test/samples/w3c/txml/test280.txml delete mode 100644 test/samples/w3c/txml/test286.txml delete mode 100644 test/samples/w3c/txml/test287.txml delete mode 100644 test/samples/w3c/txml/test294.txml delete mode 100644 test/samples/w3c/txml/test298.txml delete mode 100644 test/samples/w3c/txml/test301.txml delete mode 100644 test/samples/w3c/txml/test302.txml delete mode 100644 test/samples/w3c/txml/test303.txml delete mode 100644 test/samples/w3c/txml/test304.txml delete mode 100644 test/samples/w3c/txml/test307.txml delete mode 100644 test/samples/w3c/txml/test309.txml delete mode 100644 test/samples/w3c/txml/test310.txml delete mode 100644 test/samples/w3c/txml/test311.txml delete mode 100644 test/samples/w3c/txml/test312.txml delete mode 100644 test/samples/w3c/txml/test313.txml delete mode 100644 test/samples/w3c/txml/test314.txml delete mode 100644 test/samples/w3c/txml/test318.txml delete mode 100644 test/samples/w3c/txml/test319.txml delete mode 100644 test/samples/w3c/txml/test321.txml delete mode 100644 test/samples/w3c/txml/test322.txml delete mode 100644 test/samples/w3c/txml/test323.txml delete mode 100644 test/samples/w3c/txml/test324.txml delete mode 100644 test/samples/w3c/txml/test325.txml delete mode 100644 test/samples/w3c/txml/test326.txml delete mode 100644 test/samples/w3c/txml/test329.txml delete mode 100644 test/samples/w3c/txml/test330.txml delete mode 100644 test/samples/w3c/txml/test331.txml delete mode 100644 test/samples/w3c/txml/test332.txml delete mode 100644 test/samples/w3c/txml/test333.txml delete mode 100644 test/samples/w3c/txml/test335.txml delete mode 100644 test/samples/w3c/txml/test336.txml delete mode 100644 test/samples/w3c/txml/test337.txml delete mode 100644 test/samples/w3c/txml/test338.txml delete mode 100644 test/samples/w3c/txml/test339.txml delete mode 100644 test/samples/w3c/txml/test342.txml delete mode 100644 test/samples/w3c/txml/test343.txml delete mode 100644 test/samples/w3c/txml/test344.txml delete mode 100644 test/samples/w3c/txml/test346.txml delete mode 100644 test/samples/w3c/txml/test347.txml delete mode 100644 test/samples/w3c/txml/test348.txml delete mode 100644 test/samples/w3c/txml/test349.txml delete mode 100644 test/samples/w3c/txml/test350.txml delete mode 100644 test/samples/w3c/txml/test351.txml delete mode 100644 test/samples/w3c/txml/test352.txml delete mode 100644 test/samples/w3c/txml/test354.txml delete mode 100644 test/samples/w3c/txml/test355.txml delete mode 100644 test/samples/w3c/txml/test364.txml delete mode 100644 test/samples/w3c/txml/test372.txml delete mode 100644 test/samples/w3c/txml/test375.txml delete mode 100644 test/samples/w3c/txml/test376.txml delete mode 100644 test/samples/w3c/txml/test377.txml delete mode 100644 test/samples/w3c/txml/test378.txml delete mode 100644 test/samples/w3c/txml/test387.txml delete mode 100644 test/samples/w3c/txml/test388.txml delete mode 100644 test/samples/w3c/txml/test396.txml delete mode 100644 test/samples/w3c/txml/test399.txml delete mode 100644 test/samples/w3c/txml/test401.txml delete mode 100644 test/samples/w3c/txml/test402.txml delete mode 100644 test/samples/w3c/txml/test403a.txml delete mode 100644 test/samples/w3c/txml/test403b.txml delete mode 100644 test/samples/w3c/txml/test403c.txml delete mode 100644 test/samples/w3c/txml/test404.txml delete mode 100644 test/samples/w3c/txml/test405.txml delete mode 100644 test/samples/w3c/txml/test406.txml delete mode 100644 test/samples/w3c/txml/test407.txml delete mode 100644 test/samples/w3c/txml/test409.txml delete mode 100644 test/samples/w3c/txml/test411.txml delete mode 100644 test/samples/w3c/txml/test412.txml delete mode 100644 test/samples/w3c/txml/test413.txml delete mode 100644 test/samples/w3c/txml/test415.txml delete mode 100644 test/samples/w3c/txml/test416.txml delete mode 100644 test/samples/w3c/txml/test417.txml delete mode 100644 test/samples/w3c/txml/test419.txml delete mode 100644 test/samples/w3c/txml/test421.txml delete mode 100644 test/samples/w3c/txml/test422.txml delete mode 100644 test/samples/w3c/txml/test423.txml delete mode 100644 test/samples/w3c/txml/test436.txml delete mode 100644 test/samples/w3c/txml/test444.txml delete mode 100644 test/samples/w3c/txml/test445.txml delete mode 100644 test/samples/w3c/txml/test448.txml delete mode 100644 test/samples/w3c/txml/test449.txml delete mode 100644 test/samples/w3c/txml/test451.txml delete mode 100644 test/samples/w3c/txml/test452.txml delete mode 100644 test/samples/w3c/txml/test453.txml delete mode 100644 test/samples/w3c/txml/test456.txml delete mode 100644 test/samples/w3c/txml/test457.txml delete mode 100644 test/samples/w3c/txml/test460.txml delete mode 100644 test/samples/w3c/txml/test463.txml delete mode 100644 test/samples/w3c/txml/test464.txml delete mode 100644 test/samples/w3c/txml/test465.txml delete mode 100644 test/samples/w3c/txml/test466.txml delete mode 100644 test/samples/w3c/txml/test467.txml delete mode 100644 test/samples/w3c/txml/test468.txml delete mode 100644 test/samples/w3c/txml/test469.txml delete mode 100644 test/samples/w3c/txml/test470.txml delete mode 100644 test/samples/w3c/txml/test473.txml delete mode 100644 test/samples/w3c/txml/test474.txml delete mode 100644 test/samples/w3c/txml/test475.txml delete mode 100644 test/samples/w3c/txml/test476.txml delete mode 100644 test/samples/w3c/txml/test477.txml delete mode 100644 test/samples/w3c/txml/test478.txml delete mode 100644 test/samples/w3c/txml/test479.txml delete mode 100644 test/samples/w3c/txml/test480.txml delete mode 100644 test/samples/w3c/txml/test481.txml delete mode 100644 test/samples/w3c/txml/test482.txml delete mode 100644 test/samples/w3c/txml/test483.txml delete mode 100644 test/samples/w3c/txml/test487.txml delete mode 100644 test/samples/w3c/txml/test488.txml delete mode 100644 test/samples/w3c/txml/test495.txml delete mode 100644 test/samples/w3c/txml/test500.txml delete mode 100644 test/samples/w3c/txml/test501.txml delete mode 100644 test/samples/w3c/txml/test503.txml delete mode 100644 test/samples/w3c/txml/test504.txml delete mode 100644 test/samples/w3c/txml/test505.txml delete mode 100644 test/samples/w3c/txml/test506.txml delete mode 100644 test/samples/w3c/txml/test509.txml delete mode 100644 test/samples/w3c/txml/test510.txml delete mode 100644 test/samples/w3c/txml/test513.txml delete mode 100644 test/samples/w3c/txml/test518.txml delete mode 100644 test/samples/w3c/txml/test519.txml delete mode 100644 test/samples/w3c/txml/test520.txml delete mode 100644 test/samples/w3c/txml/test521.txml delete mode 100644 test/samples/w3c/txml/test522.txml delete mode 100644 test/samples/w3c/txml/test525.txml delete mode 100644 test/samples/w3c/txml/test527.txml delete mode 100644 test/samples/w3c/txml/test528.txml delete mode 100644 test/samples/w3c/txml/test529.txml delete mode 100644 test/samples/w3c/txml/test530.txml delete mode 100644 test/samples/w3c/txml/test531.txml delete mode 100644 test/samples/w3c/txml/test532.txml delete mode 100644 test/samples/w3c/txml/test533.txml delete mode 100644 test/samples/w3c/txml/test534.txml delete mode 100644 test/samples/w3c/txml/test537.txml delete mode 100644 test/samples/w3c/txml/test539.txml delete mode 100644 test/samples/w3c/txml/test539.txt delete mode 100644 test/samples/w3c/txml/test540.txml delete mode 100644 test/samples/w3c/txml/test540.txt delete mode 100644 test/samples/w3c/txml/test542.txml delete mode 100644 test/samples/w3c/txml/test543.txml delete mode 100644 test/samples/w3c/txml/test544.txml delete mode 100644 test/samples/w3c/txml/test546.txml delete mode 100644 test/samples/w3c/txml/test547.txml delete mode 100644 test/samples/w3c/txml/test550.txml delete mode 100644 test/samples/w3c/txml/test551.txml delete mode 100644 test/samples/w3c/txml/test552.txml delete mode 100644 test/samples/w3c/txml/test552.txt delete mode 100644 test/samples/w3c/txml/test553.txml delete mode 100644 test/samples/w3c/txml/test554.txml delete mode 100644 test/samples/w3c/txml/test555.txml delete mode 100644 test/samples/w3c/txml/test557.txml delete mode 100644 test/samples/w3c/txml/test557.txt delete mode 100644 test/samples/w3c/txml/test558.txml delete mode 100644 test/samples/w3c/txml/test558.txt delete mode 100644 test/samples/w3c/txml/test560.txml delete mode 100644 test/samples/w3c/txml/test561.txml delete mode 100644 test/samples/w3c/txml/test562.txml delete mode 100644 test/samples/w3c/txml/test567.txml delete mode 100644 test/samples/w3c/txml/test568.txml delete mode 100644 test/samples/w3c/txml/test569.txml delete mode 100644 test/samples/w3c/txml/test570.txml delete mode 100644 test/samples/w3c/txml/test576.txml delete mode 100644 test/samples/w3c/txml/test578.txml delete mode 100755 test/samples/w3c/update-txml.sh delete mode 100644 test/samples/w3c/xpath/robots.txt delete mode 100644 test/samples/w3c/xpath/test144.scxml delete mode 100644 test/samples/w3c/xpath/test147.scxml delete mode 100644 test/samples/w3c/xpath/test148.scxml delete mode 100644 test/samples/w3c/xpath/test149.scxml delete mode 100644 test/samples/w3c/xpath/test150.scxml delete mode 100644 test/samples/w3c/xpath/test151.scxml delete mode 100644 test/samples/w3c/xpath/test152.scxml delete mode 100644 test/samples/w3c/xpath/test153.scxml delete mode 100644 test/samples/w3c/xpath/test155.scxml delete mode 100644 test/samples/w3c/xpath/test156.scxml delete mode 100644 test/samples/w3c/xpath/test158.scxml delete mode 100644 test/samples/w3c/xpath/test159.scxml delete mode 100644 test/samples/w3c/xpath/test172.scxml delete mode 100644 test/samples/w3c/xpath/test173.scxml delete mode 100644 test/samples/w3c/xpath/test174.scxml delete mode 100644 test/samples/w3c/xpath/test175.scxml delete mode 100644 test/samples/w3c/xpath/test176.scxml delete mode 100644 test/samples/w3c/xpath/test178.scxml delete mode 100644 test/samples/w3c/xpath/test179.scxml delete mode 100644 test/samples/w3c/xpath/test183.scxml delete mode 100644 test/samples/w3c/xpath/test185.scxml delete mode 100644 test/samples/w3c/xpath/test186.scxml delete mode 100644 test/samples/w3c/xpath/test187.scxml delete mode 100644 test/samples/w3c/xpath/test189.scxml delete mode 100644 test/samples/w3c/xpath/test190.scxml delete mode 100644 test/samples/w3c/xpath/test191.scxml delete mode 100644 test/samples/w3c/xpath/test192.scxml delete mode 100644 test/samples/w3c/xpath/test193.scxml delete mode 100644 test/samples/w3c/xpath/test194.scxml delete mode 100644 test/samples/w3c/xpath/test198.scxml delete mode 100644 test/samples/w3c/xpath/test199.scxml delete mode 100644 test/samples/w3c/xpath/test200.scxml delete mode 100644 test/samples/w3c/xpath/test201.scxml delete mode 100644 test/samples/w3c/xpath/test205.scxml delete mode 100644 test/samples/w3c/xpath/test207.scxml delete mode 100644 test/samples/w3c/xpath/test208.scxml delete mode 100644 test/samples/w3c/xpath/test210.scxml delete mode 100644 test/samples/w3c/xpath/test215.scxml delete mode 100644 test/samples/w3c/xpath/test216.scxml delete mode 100644 test/samples/w3c/xpath/test216sub1.scxml delete mode 100644 test/samples/w3c/xpath/test220.scxml delete mode 100644 test/samples/w3c/xpath/test223.scxml delete mode 100644 test/samples/w3c/xpath/test224.scxml delete mode 100644 test/samples/w3c/xpath/test225.scxml delete mode 100644 test/samples/w3c/xpath/test226.scxml delete mode 100644 test/samples/w3c/xpath/test226sub1.scxml delete mode 100644 test/samples/w3c/xpath/test228.scxml delete mode 100644 test/samples/w3c/xpath/test229.scxml delete mode 100644 test/samples/w3c/xpath/test230.scxml delete mode 100644 test/samples/w3c/xpath/test232.scxml delete mode 100644 test/samples/w3c/xpath/test233.scxml delete mode 100644 test/samples/w3c/xpath/test234.scxml delete mode 100644 test/samples/w3c/xpath/test235.scxml delete mode 100644 test/samples/w3c/xpath/test236.scxml delete mode 100644 test/samples/w3c/xpath/test237.scxml delete mode 100644 test/samples/w3c/xpath/test239.scxml delete mode 100644 test/samples/w3c/xpath/test239sub1.scxml delete mode 100644 test/samples/w3c/xpath/test240.scxml delete mode 100644 test/samples/w3c/xpath/test241.scxml delete mode 100644 test/samples/w3c/xpath/test242.scxml delete mode 100644 test/samples/w3c/xpath/test242sub1.scxml delete mode 100644 test/samples/w3c/xpath/test243.scxml delete mode 100644 test/samples/w3c/xpath/test244.scxml delete mode 100644 test/samples/w3c/xpath/test245.scxml delete mode 100644 test/samples/w3c/xpath/test247.scxml delete mode 100644 test/samples/w3c/xpath/test250.scxml delete mode 100644 test/samples/w3c/xpath/test252.scxml delete mode 100644 test/samples/w3c/xpath/test253.scxml delete mode 100644 test/samples/w3c/xpath/test276.scxml delete mode 100644 test/samples/w3c/xpath/test276sub1.scxml delete mode 100644 test/samples/w3c/xpath/test277.scxml delete mode 100644 test/samples/w3c/xpath/test278.scxml delete mode 100644 test/samples/w3c/xpath/test279.scxml delete mode 100644 test/samples/w3c/xpath/test280.scxml delete mode 100644 test/samples/w3c/xpath/test286.scxml delete mode 100644 test/samples/w3c/xpath/test287.scxml delete mode 100644 test/samples/w3c/xpath/test294.scxml delete mode 100644 test/samples/w3c/xpath/test298.scxml delete mode 100644 test/samples/w3c/xpath/test301.scxml delete mode 100644 test/samples/w3c/xpath/test302.scxml delete mode 100644 test/samples/w3c/xpath/test303.scxml delete mode 100644 test/samples/w3c/xpath/test304.scxml delete mode 100644 test/samples/w3c/xpath/test307.scxml delete mode 100644 test/samples/w3c/xpath/test309.scxml delete mode 100644 test/samples/w3c/xpath/test310.scxml delete mode 100644 test/samples/w3c/xpath/test311.scxml delete mode 100644 test/samples/w3c/xpath/test312.scxml delete mode 100644 test/samples/w3c/xpath/test313.scxml delete mode 100644 test/samples/w3c/xpath/test314.scxml delete mode 100644 test/samples/w3c/xpath/test318.scxml delete mode 100644 test/samples/w3c/xpath/test319.scxml delete mode 100644 test/samples/w3c/xpath/test321.scxml delete mode 100644 test/samples/w3c/xpath/test322.scxml delete mode 100644 test/samples/w3c/xpath/test323.scxml delete mode 100644 test/samples/w3c/xpath/test324.scxml delete mode 100644 test/samples/w3c/xpath/test325.scxml delete mode 100644 test/samples/w3c/xpath/test326.scxml delete mode 100644 test/samples/w3c/xpath/test329.scxml delete mode 100644 test/samples/w3c/xpath/test330.scxml delete mode 100644 test/samples/w3c/xpath/test331.scxml delete mode 100644 test/samples/w3c/xpath/test332.scxml delete mode 100644 test/samples/w3c/xpath/test333.scxml delete mode 100644 test/samples/w3c/xpath/test335.scxml delete mode 100644 test/samples/w3c/xpath/test336.scxml delete mode 100644 test/samples/w3c/xpath/test337.scxml delete mode 100644 test/samples/w3c/xpath/test338.scxml delete mode 100644 test/samples/w3c/xpath/test339.scxml delete mode 100644 test/samples/w3c/xpath/test342.scxml delete mode 100644 test/samples/w3c/xpath/test343.scxml delete mode 100644 test/samples/w3c/xpath/test344.scxml delete mode 100644 test/samples/w3c/xpath/test346.scxml delete mode 100644 test/samples/w3c/xpath/test347.scxml delete mode 100644 test/samples/w3c/xpath/test348.scxml delete mode 100644 test/samples/w3c/xpath/test349.scxml delete mode 100644 test/samples/w3c/xpath/test350.scxml delete mode 100644 test/samples/w3c/xpath/test351.scxml delete mode 100644 test/samples/w3c/xpath/test352.scxml delete mode 100644 test/samples/w3c/xpath/test354.scxml delete mode 100644 test/samples/w3c/xpath/test355.scxml delete mode 100644 test/samples/w3c/xpath/test364.scxml delete mode 100644 test/samples/w3c/xpath/test372.scxml delete mode 100644 test/samples/w3c/xpath/test375.scxml delete mode 100644 test/samples/w3c/xpath/test376.scxml delete mode 100644 test/samples/w3c/xpath/test377.scxml delete mode 100644 test/samples/w3c/xpath/test378.scxml delete mode 100644 test/samples/w3c/xpath/test387.scxml delete mode 100644 test/samples/w3c/xpath/test388.scxml delete mode 100644 test/samples/w3c/xpath/test396.scxml delete mode 100644 test/samples/w3c/xpath/test399.scxml delete mode 100644 test/samples/w3c/xpath/test401.scxml delete mode 100644 test/samples/w3c/xpath/test402.scxml delete mode 100644 test/samples/w3c/xpath/test403a.scxml delete mode 100644 test/samples/w3c/xpath/test403b.scxml delete mode 100644 test/samples/w3c/xpath/test403c.scxml delete mode 100644 test/samples/w3c/xpath/test404.scxml delete mode 100644 test/samples/w3c/xpath/test405.scxml delete mode 100644 test/samples/w3c/xpath/test406.scxml delete mode 100644 test/samples/w3c/xpath/test407.scxml delete mode 100644 test/samples/w3c/xpath/test409.scxml delete mode 100644 test/samples/w3c/xpath/test411.scxml delete mode 100644 test/samples/w3c/xpath/test412.scxml delete mode 100644 test/samples/w3c/xpath/test413.scxml delete mode 100644 test/samples/w3c/xpath/test415.scxml delete mode 100644 test/samples/w3c/xpath/test416.scxml delete mode 100644 test/samples/w3c/xpath/test417.scxml delete mode 100644 test/samples/w3c/xpath/test419.scxml delete mode 100644 test/samples/w3c/xpath/test421.scxml delete mode 100644 test/samples/w3c/xpath/test422.scxml delete mode 100644 test/samples/w3c/xpath/test423.scxml delete mode 100644 test/samples/w3c/xpath/test436.scxml delete mode 100644 test/samples/w3c/xpath/test444.scxml delete mode 100644 test/samples/w3c/xpath/test445.scxml delete mode 100644 test/samples/w3c/xpath/test448.scxml delete mode 100644 test/samples/w3c/xpath/test449.scxml delete mode 100644 test/samples/w3c/xpath/test451.scxml delete mode 100644 test/samples/w3c/xpath/test452.scxml delete mode 100644 test/samples/w3c/xpath/test453.scxml delete mode 100644 test/samples/w3c/xpath/test456.scxml delete mode 100644 test/samples/w3c/xpath/test457.scxml delete mode 100644 test/samples/w3c/xpath/test460.scxml delete mode 100644 test/samples/w3c/xpath/test463.scxml delete mode 100644 test/samples/w3c/xpath/test464.scxml delete mode 100644 test/samples/w3c/xpath/test465.scxml delete mode 100644 test/samples/w3c/xpath/test466.scxml delete mode 100644 test/samples/w3c/xpath/test467.scxml delete mode 100644 test/samples/w3c/xpath/test468.scxml delete mode 100644 test/samples/w3c/xpath/test469.scxml delete mode 100644 test/samples/w3c/xpath/test470.scxml delete mode 100644 test/samples/w3c/xpath/test473.scxml delete mode 100644 test/samples/w3c/xpath/test474.scxml delete mode 100644 test/samples/w3c/xpath/test475.scxml delete mode 100644 test/samples/w3c/xpath/test476.scxml delete mode 100644 test/samples/w3c/xpath/test477.scxml delete mode 100644 test/samples/w3c/xpath/test478.scxml delete mode 100644 test/samples/w3c/xpath/test479.scxml delete mode 100644 test/samples/w3c/xpath/test480.scxml delete mode 100644 test/samples/w3c/xpath/test481.scxml delete mode 100644 test/samples/w3c/xpath/test482.scxml delete mode 100644 test/samples/w3c/xpath/test483.scxml delete mode 100644 test/samples/w3c/xpath/test487.scxml delete mode 100644 test/samples/w3c/xpath/test488.scxml delete mode 100644 test/samples/w3c/xpath/test495.scxml delete mode 100644 test/samples/w3c/xpath/test500.scxml delete mode 100644 test/samples/w3c/xpath/test501.scxml delete mode 100644 test/samples/w3c/xpath/test503.scxml delete mode 100644 test/samples/w3c/xpath/test504.scxml delete mode 100644 test/samples/w3c/xpath/test505.scxml delete mode 100644 test/samples/w3c/xpath/test506.scxml delete mode 100644 test/samples/w3c/xpath/test509.scxml delete mode 100644 test/samples/w3c/xpath/test510.scxml delete mode 100644 test/samples/w3c/xpath/test513.scxml delete mode 100644 test/samples/w3c/xpath/test518.scxml delete mode 100644 test/samples/w3c/xpath/test519.scxml delete mode 100644 test/samples/w3c/xpath/test520.scxml delete mode 100644 test/samples/w3c/xpath/test521.scxml delete mode 100644 test/samples/w3c/xpath/test522.scxml delete mode 100644 test/samples/w3c/xpath/test525.scxml delete mode 100644 test/samples/w3c/xpath/test527.scxml delete mode 100644 test/samples/w3c/xpath/test528.scxml delete mode 100644 test/samples/w3c/xpath/test529.scxml delete mode 100644 test/samples/w3c/xpath/test530.scxml delete mode 100644 test/samples/w3c/xpath/test531.scxml delete mode 100644 test/samples/w3c/xpath/test532.scxml delete mode 100644 test/samples/w3c/xpath/test533.scxml delete mode 100644 test/samples/w3c/xpath/test534.scxml delete mode 100644 test/samples/w3c/xpath/test537.scxml delete mode 100644 test/samples/w3c/xpath/test539.scxml delete mode 100644 test/samples/w3c/xpath/test539.txt delete mode 100644 test/samples/w3c/xpath/test540.scxml delete mode 100644 test/samples/w3c/xpath/test540.txt delete mode 100644 test/samples/w3c/xpath/test542.scxml delete mode 100644 test/samples/w3c/xpath/test543.scxml delete mode 100644 test/samples/w3c/xpath/test544.scxml delete mode 100644 test/samples/w3c/xpath/test546.scxml delete mode 100644 test/samples/w3c/xpath/test547.scxml delete mode 100644 test/samples/w3c/xpath/test550.scxml delete mode 100644 test/samples/w3c/xpath/test551.scxml delete mode 100644 test/samples/w3c/xpath/test552.scxml delete mode 100644 test/samples/w3c/xpath/test552.txt delete mode 100644 test/samples/w3c/xpath/test553.scxml delete mode 100644 test/samples/w3c/xpath/test554.scxml delete mode 100644 test/samples/w3c/xpath/test555.scxml delete mode 100644 test/samples/w3c/xpath/test557.scxml delete mode 100644 test/samples/w3c/xpath/test557.txt delete mode 100644 test/samples/w3c/xpath/test558.scxml delete mode 100644 test/samples/w3c/xpath/test558.txt delete mode 100644 test/samples/w3c/xpath/test560.scxml delete mode 100644 test/samples/w3c/xpath/test561.scxml delete mode 100644 test/samples/w3c/xpath/test562.scxml delete mode 100644 test/samples/w3c/xpath/test567.scxml delete mode 100644 test/samples/w3c/xpath/test568.scxml delete mode 100644 test/samples/w3c/xpath/test569.scxml delete mode 100644 test/samples/w3c/xpath/test570.scxml delete mode 100644 test/samples/w3c/xpath/test576.scxml delete mode 100644 test/samples/w3c/xpath/test578.scxml delete mode 100644 test/schema/scxml-attribs.xsd delete mode 100644 test/schema/scxml-contentmodels.xsd delete mode 100644 test/schema/scxml-datatypes.xsd delete mode 100644 test/schema/scxml-module-core.xsd delete mode 100644 test/schema/scxml-module-data.xsd delete mode 100644 test/schema/scxml-module-external.xsd delete mode 100644 test/schema/scxml.xsd create mode 100644 test/src/test-arabica-namespaces.cpp create mode 100644 test/src/test-trie.cpp create mode 100644 test/uscxml/applications/SpatialMapTicker.java create mode 100644 test/uscxml/applications/click.wav create mode 100644 test/uscxml/applications/spoken-map-ticker.scxml create mode 100644 test/uscxml/applications/spoken-map-ticker.xhtml create mode 100644 test/uscxml/arabica/test-arabica-events.xml create mode 100644 test/uscxml/arabica/test-arabica-parsing.xml create mode 100644 test/uscxml/audio/click.wav create mode 100644 test/uscxml/chartToFSM/test-event-desc-merging.scxml create mode 100644 test/uscxml/chartToFSM/test-event-set-conflict.scxml create mode 100644 test/uscxml/chartToFSM/test-flattening.scxml create mode 100644 test/uscxml/prolog/likes.pl create mode 100644 test/uscxml/promela/test-invokers.scxml create mode 100644 test/uscxml/promela/test-non-progress.scxml create mode 100644 test/uscxml/promela/test-progress-label.scxml create mode 100644 test/uscxml/promela/test-simple.scxml create mode 100644 test/uscxml/promela/test-syntax.scxml create mode 100644 test/uscxml/proto/3DViewer/CameraPos.proto create mode 100644 test/uscxml/proto/3DViewer/DirectoryListingService.proto create mode 100644 test/uscxml/proto/3DViewer/LinearAlgebra.proto create mode 100644 test/uscxml/proto/3DViewer/ModelInfo.proto create mode 100644 test/uscxml/proto/3DViewer/Pose.proto create mode 100644 test/uscxml/proto/3DViewer/SceneSetup.proto create mode 100644 test/uscxml/proto/3DViewer/SceneShotService.proto create mode 100644 test/uscxml/proto/Dependee.proto create mode 100644 test/uscxml/proto/Depender.proto create mode 100644 test/uscxml/proto/JSON.proto create mode 100644 test/uscxml/proto/Test.proto create mode 100644 test/uscxml/proto/TestServices.proto create mode 100644 test/uscxml/scenegraph/HARD_MP_VAL_000.wrl create mode 100644 test/uscxml/scripts/GreatCircle.js create mode 100644 test/uscxml/scripts/test-simple-ecmascript.scxml create mode 100644 test/uscxml/scxml-gui-test.scxml create mode 100644 test/uscxml/templates/mc-html.html create mode 100644 test/uscxml/templates/xhtml-invoker.html create mode 100644 test/uscxml/test-calendar.scxml create mode 100644 test/uscxml/test-communication.scxml create mode 100644 test/uscxml/test-custom-executable-content.scxml create mode 100644 test/uscxml/test-dirmon.scxml create mode 100644 test/uscxml/test-dom.scxml create mode 100644 test/uscxml/test-donedata.scxml create mode 100644 test/uscxml/test-ecmascript.scxml create mode 100644 test/uscxml/test-execution.scxml create mode 100644 test/uscxml/test-expect.scxml create mode 100644 test/uscxml/test-ffmpeg.scxml create mode 100644 test/uscxml/test-file-element.scxml create mode 100644 test/uscxml/test-http-servlet.scxml create mode 100644 test/uscxml/test-imap.scxml create mode 100644 test/uscxml/test-initial-config.scxml create mode 100644 test/uscxml/test-instant-messaging.scxml create mode 100644 test/uscxml/test-invoked.scxml create mode 100644 test/uscxml/test-java-datamodel.scxml create mode 100644 test/uscxml/test-java-invoker.scxml create mode 100644 test/uscxml/test-jvoicexml.scxml create mode 100644 test/uscxml/test-markup-passing.scxml create mode 100644 test/uscxml/test-markup.xml create mode 100644 test/uscxml/test-mmi-events.scxml create mode 100644 test/uscxml/test-mmi-im.scxml create mode 100644 test/uscxml/test-mmi-mc.scxml create mode 100644 test/uscxml/test-openal.scxml create mode 100644 test/uscxml/test-osgconvert.scxml create mode 100644 test/uscxml/test-performance.scxml create mode 100644 test/uscxml/test-postpone-element.scxml create mode 100644 test/uscxml/test-predicates.scxml create mode 100644 test/uscxml/test-prolog.scxml create mode 100644 test/uscxml/test-response-element.scxml create mode 100644 test/uscxml/test-scenegraph.scxml create mode 100644 test/uscxml/test-simplest.scxml create mode 100644 test/uscxml/test-smtp.scxml create mode 100644 test/uscxml/test-spatial-audio.scxml create mode 100644 test/uscxml/test-startup-time.scxml create mode 100644 test/uscxml/test-umundo-map-demo.scxml create mode 100644 test/uscxml/test-umundo-pingpong.scxml create mode 100644 test/uscxml/test-umundo-rpc.scxml create mode 100644 test/uscxml/test-umundo-s11n-chat.scxml create mode 100644 test/uscxml/test-umundo-s11n.scxml create mode 100644 test/uscxml/test-xhtml-invoker.scxml create mode 100644 test/w3c/confEcma.xsl create mode 100644 test/w3c/confXPath.xsl create mode 100755 test/w3c/convert-tests.sh create mode 100644 test/w3c/draft/calc.scxml create mode 100644 test/w3c/ecma/robots.txt create mode 100644 test/w3c/ecma/test144.scxml create mode 100644 test/w3c/ecma/test147.scxml create mode 100644 test/w3c/ecma/test148.scxml create mode 100644 test/w3c/ecma/test149.scxml create mode 100644 test/w3c/ecma/test150.scxml create mode 100644 test/w3c/ecma/test151.scxml create mode 100644 test/w3c/ecma/test152.scxml create mode 100644 test/w3c/ecma/test153.scxml create mode 100644 test/w3c/ecma/test155.scxml create mode 100644 test/w3c/ecma/test156.scxml create mode 100644 test/w3c/ecma/test158.scxml create mode 100644 test/w3c/ecma/test159.scxml create mode 100644 test/w3c/ecma/test172.scxml create mode 100644 test/w3c/ecma/test173.scxml create mode 100644 test/w3c/ecma/test174.scxml create mode 100644 test/w3c/ecma/test175.scxml create mode 100644 test/w3c/ecma/test176.scxml create mode 100644 test/w3c/ecma/test178.scxml create mode 100644 test/w3c/ecma/test179.scxml create mode 100644 test/w3c/ecma/test183.scxml create mode 100644 test/w3c/ecma/test185.scxml create mode 100644 test/w3c/ecma/test186.scxml create mode 100644 test/w3c/ecma/test187.scxml create mode 100644 test/w3c/ecma/test189.scxml create mode 100644 test/w3c/ecma/test190.scxml create mode 100644 test/w3c/ecma/test191.scxml create mode 100644 test/w3c/ecma/test192.scxml create mode 100644 test/w3c/ecma/test193.scxml create mode 100644 test/w3c/ecma/test194.scxml create mode 100644 test/w3c/ecma/test198.scxml create mode 100644 test/w3c/ecma/test199.scxml create mode 100644 test/w3c/ecma/test200.scxml create mode 100644 test/w3c/ecma/test201.scxml create mode 100644 test/w3c/ecma/test205.scxml create mode 100644 test/w3c/ecma/test207.scxml create mode 100644 test/w3c/ecma/test208.scxml create mode 100644 test/w3c/ecma/test210.scxml create mode 100644 test/w3c/ecma/test215.scxml create mode 100644 test/w3c/ecma/test216.scxml create mode 100644 test/w3c/ecma/test216sub1.scxml create mode 100644 test/w3c/ecma/test220.scxml create mode 100644 test/w3c/ecma/test223.scxml create mode 100644 test/w3c/ecma/test224.scxml create mode 100644 test/w3c/ecma/test225.scxml create mode 100644 test/w3c/ecma/test226.scxml create mode 100644 test/w3c/ecma/test226sub1.scxml create mode 100644 test/w3c/ecma/test228.scxml create mode 100644 test/w3c/ecma/test229.scxml create mode 100644 test/w3c/ecma/test230.scxml create mode 100644 test/w3c/ecma/test232.scxml create mode 100644 test/w3c/ecma/test233.scxml create mode 100644 test/w3c/ecma/test234.scxml create mode 100644 test/w3c/ecma/test235.scxml create mode 100644 test/w3c/ecma/test236.scxml create mode 100644 test/w3c/ecma/test237.scxml create mode 100644 test/w3c/ecma/test239.scxml create mode 100644 test/w3c/ecma/test239sub1.scxml create mode 100644 test/w3c/ecma/test240.scxml create mode 100644 test/w3c/ecma/test241.scxml create mode 100644 test/w3c/ecma/test242.scxml create mode 100644 test/w3c/ecma/test242sub1.scxml create mode 100644 test/w3c/ecma/test243.scxml create mode 100644 test/w3c/ecma/test244.scxml create mode 100644 test/w3c/ecma/test245.scxml create mode 100644 test/w3c/ecma/test247.scxml create mode 100644 test/w3c/ecma/test250.scxml create mode 100644 test/w3c/ecma/test252.scxml create mode 100644 test/w3c/ecma/test253.scxml create mode 100644 test/w3c/ecma/test276.scxml create mode 100644 test/w3c/ecma/test276sub1.scxml create mode 100644 test/w3c/ecma/test277.scxml create mode 100644 test/w3c/ecma/test278.scxml create mode 100644 test/w3c/ecma/test279.scxml create mode 100644 test/w3c/ecma/test280.scxml create mode 100644 test/w3c/ecma/test286.scxml create mode 100644 test/w3c/ecma/test287.scxml create mode 100644 test/w3c/ecma/test294.scxml create mode 100644 test/w3c/ecma/test298.scxml create mode 100644 test/w3c/ecma/test301.scxml create mode 100644 test/w3c/ecma/test302.scxml create mode 100644 test/w3c/ecma/test303.scxml create mode 100644 test/w3c/ecma/test304.scxml create mode 100644 test/w3c/ecma/test307.scxml create mode 100644 test/w3c/ecma/test309.scxml create mode 100644 test/w3c/ecma/test310.scxml create mode 100644 test/w3c/ecma/test311.scxml create mode 100644 test/w3c/ecma/test312.scxml create mode 100644 test/w3c/ecma/test313.scxml create mode 100644 test/w3c/ecma/test314.scxml create mode 100644 test/w3c/ecma/test318.scxml create mode 100644 test/w3c/ecma/test319.scxml create mode 100644 test/w3c/ecma/test321.scxml create mode 100644 test/w3c/ecma/test322.scxml create mode 100644 test/w3c/ecma/test323.scxml create mode 100644 test/w3c/ecma/test324.scxml create mode 100644 test/w3c/ecma/test325.scxml create mode 100644 test/w3c/ecma/test326.scxml create mode 100644 test/w3c/ecma/test329.scxml create mode 100644 test/w3c/ecma/test330.scxml create mode 100644 test/w3c/ecma/test331.scxml create mode 100644 test/w3c/ecma/test332.scxml create mode 100644 test/w3c/ecma/test333.scxml create mode 100644 test/w3c/ecma/test335.scxml create mode 100644 test/w3c/ecma/test336.scxml create mode 100644 test/w3c/ecma/test337.scxml create mode 100644 test/w3c/ecma/test338.scxml create mode 100644 test/w3c/ecma/test339.scxml create mode 100644 test/w3c/ecma/test342.scxml create mode 100644 test/w3c/ecma/test343.scxml create mode 100644 test/w3c/ecma/test344.scxml create mode 100644 test/w3c/ecma/test346.scxml create mode 100644 test/w3c/ecma/test347.scxml create mode 100644 test/w3c/ecma/test348.scxml create mode 100644 test/w3c/ecma/test349.scxml create mode 100644 test/w3c/ecma/test350.scxml create mode 100644 test/w3c/ecma/test351.scxml create mode 100644 test/w3c/ecma/test352.scxml create mode 100644 test/w3c/ecma/test354.scxml create mode 100644 test/w3c/ecma/test355.scxml create mode 100644 test/w3c/ecma/test364.scxml create mode 100644 test/w3c/ecma/test372.scxml create mode 100644 test/w3c/ecma/test375.scxml create mode 100644 test/w3c/ecma/test376.scxml create mode 100644 test/w3c/ecma/test377.scxml create mode 100644 test/w3c/ecma/test378.scxml create mode 100644 test/w3c/ecma/test387.scxml create mode 100644 test/w3c/ecma/test388.scxml create mode 100644 test/w3c/ecma/test396.scxml create mode 100644 test/w3c/ecma/test399.scxml create mode 100644 test/w3c/ecma/test401.scxml create mode 100644 test/w3c/ecma/test402.scxml create mode 100644 test/w3c/ecma/test403a.scxml create mode 100644 test/w3c/ecma/test403b.scxml create mode 100644 test/w3c/ecma/test403c.scxml create mode 100644 test/w3c/ecma/test404.scxml create mode 100644 test/w3c/ecma/test405.scxml create mode 100644 test/w3c/ecma/test406.scxml create mode 100644 test/w3c/ecma/test407.scxml create mode 100644 test/w3c/ecma/test409.scxml create mode 100644 test/w3c/ecma/test411.scxml create mode 100644 test/w3c/ecma/test412.scxml create mode 100644 test/w3c/ecma/test413.scxml create mode 100644 test/w3c/ecma/test415.scxml create mode 100644 test/w3c/ecma/test416.scxml create mode 100644 test/w3c/ecma/test417.scxml create mode 100644 test/w3c/ecma/test419.scxml create mode 100644 test/w3c/ecma/test421.scxml create mode 100644 test/w3c/ecma/test422.scxml create mode 100644 test/w3c/ecma/test423.scxml create mode 100644 test/w3c/ecma/test436.scxml create mode 100644 test/w3c/ecma/test444.scxml create mode 100644 test/w3c/ecma/test445.scxml create mode 100644 test/w3c/ecma/test448.scxml create mode 100644 test/w3c/ecma/test449.scxml create mode 100644 test/w3c/ecma/test451.scxml create mode 100644 test/w3c/ecma/test452.scxml create mode 100644 test/w3c/ecma/test453.scxml create mode 100644 test/w3c/ecma/test456.scxml create mode 100644 test/w3c/ecma/test457.scxml create mode 100644 test/w3c/ecma/test460.scxml create mode 100644 test/w3c/ecma/test463.scxml create mode 100644 test/w3c/ecma/test464.scxml create mode 100644 test/w3c/ecma/test465.scxml create mode 100644 test/w3c/ecma/test466.scxml create mode 100644 test/w3c/ecma/test467.scxml create mode 100644 test/w3c/ecma/test468.scxml create mode 100644 test/w3c/ecma/test469.scxml create mode 100644 test/w3c/ecma/test470.scxml create mode 100644 test/w3c/ecma/test473.scxml create mode 100644 test/w3c/ecma/test474.scxml create mode 100644 test/w3c/ecma/test475.scxml create mode 100644 test/w3c/ecma/test476.scxml create mode 100644 test/w3c/ecma/test477.scxml create mode 100644 test/w3c/ecma/test478.scxml create mode 100644 test/w3c/ecma/test479.scxml create mode 100644 test/w3c/ecma/test480.scxml create mode 100644 test/w3c/ecma/test481.scxml create mode 100644 test/w3c/ecma/test482.scxml create mode 100644 test/w3c/ecma/test483.scxml create mode 100644 test/w3c/ecma/test487.scxml create mode 100644 test/w3c/ecma/test488.scxml create mode 100644 test/w3c/ecma/test495.scxml create mode 100644 test/w3c/ecma/test500.scxml create mode 100644 test/w3c/ecma/test501.scxml create mode 100644 test/w3c/ecma/test503.scxml create mode 100644 test/w3c/ecma/test504.scxml create mode 100644 test/w3c/ecma/test505.scxml create mode 100644 test/w3c/ecma/test506.scxml create mode 100644 test/w3c/ecma/test509.scxml create mode 100644 test/w3c/ecma/test510.scxml create mode 100644 test/w3c/ecma/test513.scxml create mode 100644 test/w3c/ecma/test518.scxml create mode 100644 test/w3c/ecma/test519.scxml create mode 100644 test/w3c/ecma/test520.scxml create mode 100644 test/w3c/ecma/test521.scxml create mode 100644 test/w3c/ecma/test522.scxml create mode 100644 test/w3c/ecma/test525.scxml create mode 100644 test/w3c/ecma/test527.scxml create mode 100644 test/w3c/ecma/test528.scxml create mode 100644 test/w3c/ecma/test529.scxml create mode 100644 test/w3c/ecma/test530.scxml create mode 100644 test/w3c/ecma/test531.scxml create mode 100644 test/w3c/ecma/test532.scxml create mode 100644 test/w3c/ecma/test533.scxml create mode 100644 test/w3c/ecma/test534.scxml create mode 100644 test/w3c/ecma/test537.scxml create mode 100644 test/w3c/ecma/test539.scxml create mode 100644 test/w3c/ecma/test539.txt create mode 100644 test/w3c/ecma/test540.scxml create mode 100644 test/w3c/ecma/test540.txt create mode 100644 test/w3c/ecma/test542.scxml create mode 100644 test/w3c/ecma/test543.scxml create mode 100644 test/w3c/ecma/test544.scxml create mode 100644 test/w3c/ecma/test546.scxml create mode 100644 test/w3c/ecma/test547.scxml create mode 100644 test/w3c/ecma/test550.scxml create mode 100644 test/w3c/ecma/test551.scxml create mode 100644 test/w3c/ecma/test552.scxml create mode 100644 test/w3c/ecma/test552.txt create mode 100644 test/w3c/ecma/test553.scxml create mode 100644 test/w3c/ecma/test554.scxml create mode 100644 test/w3c/ecma/test555.scxml create mode 100644 test/w3c/ecma/test557.scxml create mode 100644 test/w3c/ecma/test557.txt create mode 100644 test/w3c/ecma/test558.scxml create mode 100644 test/w3c/ecma/test558.txt create mode 100644 test/w3c/ecma/test560.scxml create mode 100644 test/w3c/ecma/test561.scxml create mode 100644 test/w3c/ecma/test562.scxml create mode 100644 test/w3c/ecma/test567.scxml create mode 100644 test/w3c/ecma/test568.scxml create mode 100644 test/w3c/ecma/test569.scxml create mode 100644 test/w3c/ecma/test570.scxml create mode 100644 test/w3c/ecma/test576.scxml create mode 100644 test/w3c/ecma/test578.scxml create mode 100644 test/w3c/txml/robots.txt create mode 100644 test/w3c/txml/test144.txml create mode 100644 test/w3c/txml/test147.txml create mode 100644 test/w3c/txml/test148.txml create mode 100644 test/w3c/txml/test149.txml create mode 100644 test/w3c/txml/test150.txml create mode 100644 test/w3c/txml/test151.txml create mode 100644 test/w3c/txml/test152.txml create mode 100644 test/w3c/txml/test153.txml create mode 100644 test/w3c/txml/test155.txml create mode 100644 test/w3c/txml/test156.txml create mode 100644 test/w3c/txml/test158.txml create mode 100644 test/w3c/txml/test159.txml create mode 100644 test/w3c/txml/test172.txml create mode 100644 test/w3c/txml/test173.txml create mode 100644 test/w3c/txml/test174.txml create mode 100644 test/w3c/txml/test175.txml create mode 100644 test/w3c/txml/test176.txml create mode 100644 test/w3c/txml/test178.txml create mode 100644 test/w3c/txml/test179.txml create mode 100644 test/w3c/txml/test183.txml create mode 100644 test/w3c/txml/test185.txml create mode 100644 test/w3c/txml/test186.txml create mode 100644 test/w3c/txml/test187.txml create mode 100644 test/w3c/txml/test189.txml create mode 100644 test/w3c/txml/test190.txml create mode 100644 test/w3c/txml/test191.txml create mode 100644 test/w3c/txml/test192.txml create mode 100644 test/w3c/txml/test193.txml create mode 100644 test/w3c/txml/test194.txml create mode 100644 test/w3c/txml/test198.txml create mode 100644 test/w3c/txml/test199.txml create mode 100644 test/w3c/txml/test200.txml create mode 100644 test/w3c/txml/test201.txml create mode 100644 test/w3c/txml/test205.txml create mode 100644 test/w3c/txml/test207.txml create mode 100644 test/w3c/txml/test208.txml create mode 100644 test/w3c/txml/test210.txml create mode 100644 test/w3c/txml/test215.txml create mode 100644 test/w3c/txml/test216.txml create mode 100644 test/w3c/txml/test216sub1.txml create mode 100644 test/w3c/txml/test220.txml create mode 100644 test/w3c/txml/test223.txml create mode 100644 test/w3c/txml/test224.txml create mode 100644 test/w3c/txml/test225.txml create mode 100644 test/w3c/txml/test226.txml create mode 100644 test/w3c/txml/test226sub1.txml create mode 100644 test/w3c/txml/test228.txml create mode 100644 test/w3c/txml/test229.txml create mode 100644 test/w3c/txml/test230.txml create mode 100644 test/w3c/txml/test232.txml create mode 100644 test/w3c/txml/test233.txml create mode 100644 test/w3c/txml/test234.txml create mode 100644 test/w3c/txml/test235.txml create mode 100644 test/w3c/txml/test236.txml create mode 100644 test/w3c/txml/test237.txml create mode 100644 test/w3c/txml/test239.txml create mode 100644 test/w3c/txml/test239sub1.txml create mode 100644 test/w3c/txml/test240.txml create mode 100644 test/w3c/txml/test241.txml create mode 100644 test/w3c/txml/test242.txml create mode 100644 test/w3c/txml/test242sub1.txml create mode 100644 test/w3c/txml/test243.txml create mode 100644 test/w3c/txml/test244.txml create mode 100644 test/w3c/txml/test245.txml create mode 100644 test/w3c/txml/test247.txml create mode 100644 test/w3c/txml/test250.txml create mode 100644 test/w3c/txml/test252.txml create mode 100644 test/w3c/txml/test253.txml create mode 100644 test/w3c/txml/test276.txml create mode 100644 test/w3c/txml/test276sub1.txml create mode 100644 test/w3c/txml/test277.txml create mode 100644 test/w3c/txml/test278.txml create mode 100644 test/w3c/txml/test279.txml create mode 100644 test/w3c/txml/test280.txml create mode 100644 test/w3c/txml/test286.txml create mode 100644 test/w3c/txml/test287.txml create mode 100644 test/w3c/txml/test294.txml create mode 100644 test/w3c/txml/test298.txml create mode 100644 test/w3c/txml/test301.txml create mode 100644 test/w3c/txml/test302.txml create mode 100644 test/w3c/txml/test303.txml create mode 100644 test/w3c/txml/test304.txml create mode 100644 test/w3c/txml/test307.txml create mode 100644 test/w3c/txml/test309.txml create mode 100644 test/w3c/txml/test310.txml create mode 100644 test/w3c/txml/test311.txml create mode 100644 test/w3c/txml/test312.txml create mode 100644 test/w3c/txml/test313.txml create mode 100644 test/w3c/txml/test314.txml create mode 100644 test/w3c/txml/test318.txml create mode 100644 test/w3c/txml/test319.txml create mode 100644 test/w3c/txml/test321.txml create mode 100644 test/w3c/txml/test322.txml create mode 100644 test/w3c/txml/test323.txml create mode 100644 test/w3c/txml/test324.txml create mode 100644 test/w3c/txml/test325.txml create mode 100644 test/w3c/txml/test326.txml create mode 100644 test/w3c/txml/test329.txml create mode 100644 test/w3c/txml/test330.txml create mode 100644 test/w3c/txml/test331.txml create mode 100644 test/w3c/txml/test332.txml create mode 100644 test/w3c/txml/test333.txml create mode 100644 test/w3c/txml/test335.txml create mode 100644 test/w3c/txml/test336.txml create mode 100644 test/w3c/txml/test337.txml create mode 100644 test/w3c/txml/test338.txml create mode 100644 test/w3c/txml/test339.txml create mode 100644 test/w3c/txml/test342.txml create mode 100644 test/w3c/txml/test343.txml create mode 100644 test/w3c/txml/test344.txml create mode 100644 test/w3c/txml/test346.txml create mode 100644 test/w3c/txml/test347.txml create mode 100644 test/w3c/txml/test348.txml create mode 100644 test/w3c/txml/test349.txml create mode 100644 test/w3c/txml/test350.txml create mode 100644 test/w3c/txml/test351.txml create mode 100644 test/w3c/txml/test352.txml create mode 100644 test/w3c/txml/test354.txml create mode 100644 test/w3c/txml/test355.txml create mode 100644 test/w3c/txml/test364.txml create mode 100644 test/w3c/txml/test372.txml create mode 100644 test/w3c/txml/test375.txml create mode 100644 test/w3c/txml/test376.txml create mode 100644 test/w3c/txml/test377.txml create mode 100644 test/w3c/txml/test378.txml create mode 100644 test/w3c/txml/test387.txml create mode 100644 test/w3c/txml/test388.txml create mode 100644 test/w3c/txml/test396.txml create mode 100644 test/w3c/txml/test399.txml create mode 100644 test/w3c/txml/test401.txml create mode 100644 test/w3c/txml/test402.txml create mode 100644 test/w3c/txml/test403a.txml create mode 100644 test/w3c/txml/test403b.txml create mode 100644 test/w3c/txml/test403c.txml create mode 100644 test/w3c/txml/test404.txml create mode 100644 test/w3c/txml/test405.txml create mode 100644 test/w3c/txml/test406.txml create mode 100644 test/w3c/txml/test407.txml create mode 100644 test/w3c/txml/test409.txml create mode 100644 test/w3c/txml/test411.txml create mode 100644 test/w3c/txml/test412.txml create mode 100644 test/w3c/txml/test413.txml create mode 100644 test/w3c/txml/test415.txml create mode 100644 test/w3c/txml/test416.txml create mode 100644 test/w3c/txml/test417.txml create mode 100644 test/w3c/txml/test419.txml create mode 100644 test/w3c/txml/test421.txml create mode 100644 test/w3c/txml/test422.txml create mode 100644 test/w3c/txml/test423.txml create mode 100644 test/w3c/txml/test436.txml create mode 100644 test/w3c/txml/test444.txml create mode 100644 test/w3c/txml/test445.txml create mode 100644 test/w3c/txml/test448.txml create mode 100644 test/w3c/txml/test449.txml create mode 100644 test/w3c/txml/test451.txml create mode 100644 test/w3c/txml/test452.txml create mode 100644 test/w3c/txml/test453.txml create mode 100644 test/w3c/txml/test456.txml create mode 100644 test/w3c/txml/test457.txml create mode 100644 test/w3c/txml/test460.txml create mode 100644 test/w3c/txml/test463.txml create mode 100644 test/w3c/txml/test464.txml create mode 100644 test/w3c/txml/test465.txml create mode 100644 test/w3c/txml/test466.txml create mode 100644 test/w3c/txml/test467.txml create mode 100644 test/w3c/txml/test468.txml create mode 100644 test/w3c/txml/test469.txml create mode 100644 test/w3c/txml/test470.txml create mode 100644 test/w3c/txml/test473.txml create mode 100644 test/w3c/txml/test474.txml create mode 100644 test/w3c/txml/test475.txml create mode 100644 test/w3c/txml/test476.txml create mode 100644 test/w3c/txml/test477.txml create mode 100644 test/w3c/txml/test478.txml create mode 100644 test/w3c/txml/test479.txml create mode 100644 test/w3c/txml/test480.txml create mode 100644 test/w3c/txml/test481.txml create mode 100644 test/w3c/txml/test482.txml create mode 100644 test/w3c/txml/test483.txml create mode 100644 test/w3c/txml/test487.txml create mode 100644 test/w3c/txml/test488.txml create mode 100644 test/w3c/txml/test495.txml create mode 100644 test/w3c/txml/test500.txml create mode 100644 test/w3c/txml/test501.txml create mode 100644 test/w3c/txml/test503.txml create mode 100644 test/w3c/txml/test504.txml create mode 100644 test/w3c/txml/test505.txml create mode 100644 test/w3c/txml/test506.txml create mode 100644 test/w3c/txml/test509.txml create mode 100644 test/w3c/txml/test510.txml create mode 100644 test/w3c/txml/test513.txml create mode 100644 test/w3c/txml/test518.txml create mode 100644 test/w3c/txml/test519.txml create mode 100644 test/w3c/txml/test520.txml create mode 100644 test/w3c/txml/test521.txml create mode 100644 test/w3c/txml/test522.txml create mode 100644 test/w3c/txml/test525.txml create mode 100644 test/w3c/txml/test527.txml create mode 100644 test/w3c/txml/test528.txml create mode 100644 test/w3c/txml/test529.txml create mode 100644 test/w3c/txml/test530.txml create mode 100644 test/w3c/txml/test531.txml create mode 100644 test/w3c/txml/test532.txml create mode 100644 test/w3c/txml/test533.txml create mode 100644 test/w3c/txml/test534.txml create mode 100644 test/w3c/txml/test537.txml create mode 100644 test/w3c/txml/test539.txml create mode 100644 test/w3c/txml/test539.txt create mode 100644 test/w3c/txml/test540.txml create mode 100644 test/w3c/txml/test540.txt create mode 100644 test/w3c/txml/test542.txml create mode 100644 test/w3c/txml/test543.txml create mode 100644 test/w3c/txml/test544.txml create mode 100644 test/w3c/txml/test546.txml create mode 100644 test/w3c/txml/test547.txml create mode 100644 test/w3c/txml/test550.txml create mode 100644 test/w3c/txml/test551.txml create mode 100644 test/w3c/txml/test552.txml create mode 100644 test/w3c/txml/test552.txt create mode 100644 test/w3c/txml/test553.txml create mode 100644 test/w3c/txml/test554.txml create mode 100644 test/w3c/txml/test555.txml create mode 100644 test/w3c/txml/test557.txml create mode 100644 test/w3c/txml/test557.txt create mode 100644 test/w3c/txml/test558.txml create mode 100644 test/w3c/txml/test558.txt create mode 100644 test/w3c/txml/test560.txml create mode 100644 test/w3c/txml/test561.txml create mode 100644 test/w3c/txml/test562.txml create mode 100644 test/w3c/txml/test567.txml create mode 100644 test/w3c/txml/test568.txml create mode 100644 test/w3c/txml/test569.txml create mode 100644 test/w3c/txml/test570.txml create mode 100644 test/w3c/txml/test576.txml create mode 100644 test/w3c/txml/test578.txml create mode 100755 test/w3c/update-txml.sh create mode 100644 test/w3c/xpath/robots.txt create mode 100644 test/w3c/xpath/test144.scxml create mode 100644 test/w3c/xpath/test147.scxml create mode 100644 test/w3c/xpath/test148.scxml create mode 100644 test/w3c/xpath/test149.scxml create mode 100644 test/w3c/xpath/test150.scxml create mode 100644 test/w3c/xpath/test151.scxml create mode 100644 test/w3c/xpath/test152.scxml create mode 100644 test/w3c/xpath/test153.scxml create mode 100644 test/w3c/xpath/test155.scxml create mode 100644 test/w3c/xpath/test156.scxml create mode 100644 test/w3c/xpath/test158.scxml create mode 100644 test/w3c/xpath/test159.scxml create mode 100644 test/w3c/xpath/test172.scxml create mode 100644 test/w3c/xpath/test173.scxml create mode 100644 test/w3c/xpath/test174.scxml create mode 100644 test/w3c/xpath/test175.scxml create mode 100644 test/w3c/xpath/test176.scxml create mode 100644 test/w3c/xpath/test178.scxml create mode 100644 test/w3c/xpath/test179.scxml create mode 100644 test/w3c/xpath/test183.scxml create mode 100644 test/w3c/xpath/test185.scxml create mode 100644 test/w3c/xpath/test186.scxml create mode 100644 test/w3c/xpath/test187.scxml create mode 100644 test/w3c/xpath/test189.scxml create mode 100644 test/w3c/xpath/test190.scxml create mode 100644 test/w3c/xpath/test191.scxml create mode 100644 test/w3c/xpath/test192.scxml create mode 100644 test/w3c/xpath/test193.scxml create mode 100644 test/w3c/xpath/test194.scxml create mode 100644 test/w3c/xpath/test198.scxml create mode 100644 test/w3c/xpath/test199.scxml create mode 100644 test/w3c/xpath/test200.scxml create mode 100644 test/w3c/xpath/test201.scxml create mode 100644 test/w3c/xpath/test205.scxml create mode 100644 test/w3c/xpath/test207.scxml create mode 100644 test/w3c/xpath/test208.scxml create mode 100644 test/w3c/xpath/test210.scxml create mode 100644 test/w3c/xpath/test215.scxml create mode 100644 test/w3c/xpath/test216.scxml create mode 100644 test/w3c/xpath/test216sub1.scxml create mode 100644 test/w3c/xpath/test220.scxml create mode 100644 test/w3c/xpath/test223.scxml create mode 100644 test/w3c/xpath/test224.scxml create mode 100644 test/w3c/xpath/test225.scxml create mode 100644 test/w3c/xpath/test226.scxml create mode 100644 test/w3c/xpath/test226sub1.scxml create mode 100644 test/w3c/xpath/test228.scxml create mode 100644 test/w3c/xpath/test229.scxml create mode 100644 test/w3c/xpath/test230.scxml create mode 100644 test/w3c/xpath/test232.scxml create mode 100644 test/w3c/xpath/test233.scxml create mode 100644 test/w3c/xpath/test234.scxml create mode 100644 test/w3c/xpath/test235.scxml create mode 100644 test/w3c/xpath/test236.scxml create mode 100644 test/w3c/xpath/test237.scxml create mode 100644 test/w3c/xpath/test239.scxml create mode 100644 test/w3c/xpath/test239sub1.scxml create mode 100644 test/w3c/xpath/test240.scxml create mode 100644 test/w3c/xpath/test241.scxml create mode 100644 test/w3c/xpath/test242.scxml create mode 100644 test/w3c/xpath/test242sub1.scxml create mode 100644 test/w3c/xpath/test243.scxml create mode 100644 test/w3c/xpath/test244.scxml create mode 100644 test/w3c/xpath/test245.scxml create mode 100644 test/w3c/xpath/test247.scxml create mode 100644 test/w3c/xpath/test250.scxml create mode 100644 test/w3c/xpath/test252.scxml create mode 100644 test/w3c/xpath/test253.scxml create mode 100644 test/w3c/xpath/test276.scxml create mode 100644 test/w3c/xpath/test276sub1.scxml create mode 100644 test/w3c/xpath/test277.scxml create mode 100644 test/w3c/xpath/test278.scxml create mode 100644 test/w3c/xpath/test279.scxml create mode 100644 test/w3c/xpath/test280.scxml create mode 100644 test/w3c/xpath/test286.scxml create mode 100644 test/w3c/xpath/test287.scxml create mode 100644 test/w3c/xpath/test294.scxml create mode 100644 test/w3c/xpath/test298.scxml create mode 100644 test/w3c/xpath/test301.scxml create mode 100644 test/w3c/xpath/test302.scxml create mode 100644 test/w3c/xpath/test303.scxml create mode 100644 test/w3c/xpath/test304.scxml create mode 100644 test/w3c/xpath/test307.scxml create mode 100644 test/w3c/xpath/test309.scxml create mode 100644 test/w3c/xpath/test310.scxml create mode 100644 test/w3c/xpath/test311.scxml create mode 100644 test/w3c/xpath/test312.scxml create mode 100644 test/w3c/xpath/test313.scxml create mode 100644 test/w3c/xpath/test314.scxml create mode 100644 test/w3c/xpath/test318.scxml create mode 100644 test/w3c/xpath/test319.scxml create mode 100644 test/w3c/xpath/test321.scxml create mode 100644 test/w3c/xpath/test322.scxml create mode 100644 test/w3c/xpath/test323.scxml create mode 100644 test/w3c/xpath/test324.scxml create mode 100644 test/w3c/xpath/test325.scxml create mode 100644 test/w3c/xpath/test326.scxml create mode 100644 test/w3c/xpath/test329.scxml create mode 100644 test/w3c/xpath/test330.scxml create mode 100644 test/w3c/xpath/test331.scxml create mode 100644 test/w3c/xpath/test332.scxml create mode 100644 test/w3c/xpath/test333.scxml create mode 100644 test/w3c/xpath/test335.scxml create mode 100644 test/w3c/xpath/test336.scxml create mode 100644 test/w3c/xpath/test337.scxml create mode 100644 test/w3c/xpath/test338.scxml create mode 100644 test/w3c/xpath/test339.scxml create mode 100644 test/w3c/xpath/test342.scxml create mode 100644 test/w3c/xpath/test343.scxml create mode 100644 test/w3c/xpath/test344.scxml create mode 100644 test/w3c/xpath/test346.scxml create mode 100644 test/w3c/xpath/test347.scxml create mode 100644 test/w3c/xpath/test348.scxml create mode 100644 test/w3c/xpath/test349.scxml create mode 100644 test/w3c/xpath/test350.scxml create mode 100644 test/w3c/xpath/test351.scxml create mode 100644 test/w3c/xpath/test352.scxml create mode 100644 test/w3c/xpath/test354.scxml create mode 100644 test/w3c/xpath/test355.scxml create mode 100644 test/w3c/xpath/test364.scxml create mode 100644 test/w3c/xpath/test372.scxml create mode 100644 test/w3c/xpath/test375.scxml create mode 100644 test/w3c/xpath/test376.scxml create mode 100644 test/w3c/xpath/test377.scxml create mode 100644 test/w3c/xpath/test378.scxml create mode 100644 test/w3c/xpath/test387.scxml create mode 100644 test/w3c/xpath/test388.scxml create mode 100644 test/w3c/xpath/test396.scxml create mode 100644 test/w3c/xpath/test399.scxml create mode 100644 test/w3c/xpath/test401.scxml create mode 100644 test/w3c/xpath/test402.scxml create mode 100644 test/w3c/xpath/test403a.scxml create mode 100644 test/w3c/xpath/test403b.scxml create mode 100644 test/w3c/xpath/test403c.scxml create mode 100644 test/w3c/xpath/test404.scxml create mode 100644 test/w3c/xpath/test405.scxml create mode 100644 test/w3c/xpath/test406.scxml create mode 100644 test/w3c/xpath/test407.scxml create mode 100644 test/w3c/xpath/test409.scxml create mode 100644 test/w3c/xpath/test411.scxml create mode 100644 test/w3c/xpath/test412.scxml create mode 100644 test/w3c/xpath/test413.scxml create mode 100644 test/w3c/xpath/test415.scxml create mode 100644 test/w3c/xpath/test416.scxml create mode 100644 test/w3c/xpath/test417.scxml create mode 100644 test/w3c/xpath/test419.scxml create mode 100644 test/w3c/xpath/test421.scxml create mode 100644 test/w3c/xpath/test422.scxml create mode 100644 test/w3c/xpath/test423.scxml create mode 100644 test/w3c/xpath/test436.scxml create mode 100644 test/w3c/xpath/test444.scxml create mode 100644 test/w3c/xpath/test445.scxml create mode 100644 test/w3c/xpath/test448.scxml create mode 100644 test/w3c/xpath/test449.scxml create mode 100644 test/w3c/xpath/test451.scxml create mode 100644 test/w3c/xpath/test452.scxml create mode 100644 test/w3c/xpath/test453.scxml create mode 100644 test/w3c/xpath/test456.scxml create mode 100644 test/w3c/xpath/test457.scxml create mode 100644 test/w3c/xpath/test460.scxml create mode 100644 test/w3c/xpath/test463.scxml create mode 100644 test/w3c/xpath/test464.scxml create mode 100644 test/w3c/xpath/test465.scxml create mode 100644 test/w3c/xpath/test466.scxml create mode 100644 test/w3c/xpath/test467.scxml create mode 100644 test/w3c/xpath/test468.scxml create mode 100644 test/w3c/xpath/test469.scxml create mode 100644 test/w3c/xpath/test470.scxml create mode 100644 test/w3c/xpath/test473.scxml create mode 100644 test/w3c/xpath/test474.scxml create mode 100644 test/w3c/xpath/test475.scxml create mode 100644 test/w3c/xpath/test476.scxml create mode 100644 test/w3c/xpath/test477.scxml create mode 100644 test/w3c/xpath/test478.scxml create mode 100644 test/w3c/xpath/test479.scxml create mode 100644 test/w3c/xpath/test480.scxml create mode 100644 test/w3c/xpath/test481.scxml create mode 100644 test/w3c/xpath/test482.scxml create mode 100644 test/w3c/xpath/test483.scxml create mode 100644 test/w3c/xpath/test487.scxml create mode 100644 test/w3c/xpath/test488.scxml create mode 100644 test/w3c/xpath/test495.scxml create mode 100644 test/w3c/xpath/test500.scxml create mode 100644 test/w3c/xpath/test501.scxml create mode 100644 test/w3c/xpath/test503.scxml create mode 100644 test/w3c/xpath/test504.scxml create mode 100644 test/w3c/xpath/test505.scxml create mode 100644 test/w3c/xpath/test506.scxml create mode 100644 test/w3c/xpath/test509.scxml create mode 100644 test/w3c/xpath/test510.scxml create mode 100644 test/w3c/xpath/test513.scxml create mode 100644 test/w3c/xpath/test518.scxml create mode 100644 test/w3c/xpath/test519.scxml create mode 100644 test/w3c/xpath/test520.scxml create mode 100644 test/w3c/xpath/test521.scxml create mode 100644 test/w3c/xpath/test522.scxml create mode 100644 test/w3c/xpath/test525.scxml create mode 100644 test/w3c/xpath/test527.scxml create mode 100644 test/w3c/xpath/test528.scxml create mode 100644 test/w3c/xpath/test529.scxml create mode 100644 test/w3c/xpath/test530.scxml create mode 100644 test/w3c/xpath/test531.scxml create mode 100644 test/w3c/xpath/test532.scxml create mode 100644 test/w3c/xpath/test533.scxml create mode 100644 test/w3c/xpath/test534.scxml create mode 100644 test/w3c/xpath/test537.scxml create mode 100644 test/w3c/xpath/test539.scxml create mode 100644 test/w3c/xpath/test539.txt create mode 100644 test/w3c/xpath/test540.scxml create mode 100644 test/w3c/xpath/test540.txt create mode 100644 test/w3c/xpath/test542.scxml create mode 100644 test/w3c/xpath/test543.scxml create mode 100644 test/w3c/xpath/test544.scxml create mode 100644 test/w3c/xpath/test546.scxml create mode 100644 test/w3c/xpath/test547.scxml create mode 100644 test/w3c/xpath/test550.scxml create mode 100644 test/w3c/xpath/test551.scxml create mode 100644 test/w3c/xpath/test552.scxml create mode 100644 test/w3c/xpath/test552.txt create mode 100644 test/w3c/xpath/test553.scxml create mode 100644 test/w3c/xpath/test554.scxml create mode 100644 test/w3c/xpath/test555.scxml create mode 100644 test/w3c/xpath/test557.scxml create mode 100644 test/w3c/xpath/test557.txt create mode 100644 test/w3c/xpath/test558.scxml create mode 100644 test/w3c/xpath/test558.txt create mode 100644 test/w3c/xpath/test560.scxml create mode 100644 test/w3c/xpath/test561.scxml create mode 100644 test/w3c/xpath/test562.scxml create mode 100644 test/w3c/xpath/test567.scxml create mode 100644 test/w3c/xpath/test568.scxml create mode 100644 test/w3c/xpath/test569.scxml create mode 100644 test/w3c/xpath/test570.scxml create mode 100644 test/w3c/xpath/test576.scxml create mode 100644 test/w3c/xpath/test578.scxml diff --git a/apps/uscxml-browser.cpp b/apps/uscxml-browser.cpp index d485b3a..037f9a1 100644 --- a/apps/uscxml-browser.cpp +++ b/apps/uscxml-browser.cpp @@ -132,7 +132,7 @@ int main(int argc, char** argv) { if (options.pluginPath.length() > 0) { Factory::pluginPath = options.pluginPath; } - + // setup HTTP server HTTPServer::SSLConfig* sslConf = NULL; if (options.certificate.length() > 0) { @@ -155,7 +155,7 @@ int main(int argc, char** argv) { debugger = new DebuggerServlet(); HTTPServer::getInstance()->registerServlet("/debug", debugger); } - + // instantiate and configure interpreters std::list interpreters; std::map::iterator confIter = options.interpreters.begin(); @@ -212,6 +212,6 @@ int main(int argc, char** argv) { while(true) tthread::this_thread::sleep_for(tthread::chrono::seconds(1)); } - + return EXIT_SUCCESS; } \ No newline at end of file diff --git a/apps/uscxml-transform.cpp b/apps/uscxml-transform.cpp index 15079d6..09da679 100644 --- a/apps/uscxml-transform.cpp +++ b/apps/uscxml-transform.cpp @@ -1,8 +1,10 @@ #include "uscxml/config.h" #include "uscxml/Interpreter.h" #include "uscxml/transform/ChartToFSM.h" +#include "uscxml/transform/FSMToPromela.h" #include "uscxml/DOMUtils.h" #include +#include #ifdef HAS_SIGNAL_H #include @@ -22,7 +24,7 @@ class VerboseMonitor : public uscxml::InterpreterMonitor { } void beforeProcessingEvent(uscxml::Interpreter interpreter, const uscxml::Event& event) { - std::cout << "Event: " << event.name << std::endl; + std::cerr << "Event: " << event.name << std::endl; } void beforeCompletion(uscxml::Interpreter interpreter) { @@ -31,12 +33,12 @@ class VerboseMonitor : public uscxml::InterpreterMonitor { void printConfig(const Arabica::XPath::NodeSet& config) { std::string seperator; - std::cout << "Config: {"; + std::cerr << "Config: {"; for (int i = 0; i < config.size(); i++) { - std::cout << seperator << ATTR(config[i], "id"); + std::cerr << seperator << ATTR(config[i], "id"); seperator = ", "; } - std::cout << "}" << std::endl; + std::cerr << "}" << std::endl; } }; @@ -109,6 +111,33 @@ void customTerminate() { } #endif +void printUsageAndExit(const char* progName) { + // remove path from program name + std::string progStr(progName); + if (progStr.find_last_of(PATH_SEPERATOR) != std::string::npos) { + progStr = progStr.substr(progStr.find_last_of(PATH_SEPERATOR) + 1, progStr.length() - (progStr.find_last_of(PATH_SEPERATOR) + 1)); + } + + printf("%s version " USCXML_VERSION " (" CMAKE_BUILD_TYPE " build - " CMAKE_COMPILER_STRING ")\n", progStr.c_str()); + printf("Usage\n"); + printf("\t%s", progStr.c_str()); + printf(" [-fs] [-v] [-lN]"); +#ifdef BUILD_AS_PLUGINS + printf(" [-p pluginPath]"); +#endif + printf(" [-i URL] [-o FILE]"); + printf("\n"); + printf("Options\n"); + printf("\t-f : flatten to state-machine\n"); + printf("\t-s : convert to spin/promela program\n"); + printf("\t-v : be verbose\n"); + printf("\t-lN : Set loglevel to N\n"); + printf("\t-i URL : Input file (defaults to STDIN)\n"); + printf("\t-o FILE : Output file (defaults to STDOUT)\n"); + printf("\n"); + exit(1); +} + int main(int argc, char** argv) { using namespace uscxml; @@ -118,7 +147,7 @@ int main(int argc, char** argv) { std::string pluginPath; std::string inputFile; std::string outputFile; - + #if defined(HAS_SIGNAL_H) && !defined(WIN32) signal(SIGPIPE, SIG_IGN); #endif @@ -149,42 +178,46 @@ int main(int argc, char** argv) { int optionInd = 0; int option; for (;;) { - option = getopt_long_only(argc, argv, "+vfs:p:i:o:l:", longOptions, &optionInd); + option = getopt_long_only(argc, argv, "+vfsp:i:o:l:", longOptions, &optionInd); if (option == -1) { break; } switch(option) { - // cases without short option - case 0: { - break; - } - // cases with short-hand options - case 'v': - verbose = true; - break; - case 'f': - toFlat = true; - break; - case 's': - toPromela = true; - break; - case 'p': - pluginPath = optarg; - break; - case 'i': - inputFile = optarg; - break; - case 'o': - outputFile = optarg; - break; - case 'l': - break; - case '?': { - break; - } - default: - break; + // cases without short option + case 0: { + break; + } + // cases with short-hand options + case 'v': + verbose = true; + break; + case 'f': + toFlat = true; + break; + case 's': + toPromela = true; + break; + case 'p': + pluginPath = optarg; + break; + case 'i': + inputFile = optarg; + break; + case 'o': + outputFile = optarg; + break; + case 'l': + break; + case '?': { + break; } + default: + break; + } + } + + if (!toPromela && !toFlat) { + printUsageAndExit(argv[0]); } // register plugins @@ -194,7 +227,7 @@ int main(int argc, char** argv) { // start HTTP server HTTPServer::getInstance(30444, 30445, NULL); - + Interpreter interpreter; if (inputFile.size() == 0 || inputFile == "-") { LOG(INFO) << "Reading SCXML from STDIN"; @@ -211,17 +244,26 @@ int main(int argc, char** argv) { LOG(ERROR) << "Cannot create interpreter from " << inputFile; exit(EXIT_FAILURE); } - - if (toFlat) { - std::cout << ChartToFSM::flatten(interpreter.getDocument(), interpreter.getNameSpaceInfo()); + + if (toPromela) { + Interpreter flatInterpreter = ChartToFSM::flatten(interpreter); + + if (outputFile.size() == 0 || outputFile == "-") { + FSMToPromela::writeProgram(std::cout, flatInterpreter); + } else { + std::ofstream outStream; + outStream.open(outputFile.c_str()); + FSMToPromela::writeProgram(outStream, flatInterpreter); + outStream.close(); + } exit(EXIT_SUCCESS); } - if (toPromela) { - std::cout << ChartToFSM::flatten(interpreter.getDocument(), interpreter.getNameSpaceInfo()); + if (toFlat) { + std::cout << ChartToFSM::flatten(interpreter).getDocument(); exit(EXIT_SUCCESS); } - - + + return EXIT_SUCCESS; } \ No newline at end of file diff --git a/contrib/dom/idl/Document.idl b/contrib/dom/idl/Document.idl index 56035b0..e80087a 100644 --- a/contrib/dom/idl/Document.idl +++ b/contrib/dom/idl/Document.idl @@ -22,11 +22,11 @@ interface Document : Node { in boolean deep) raises(DOMException); // Introduced in DOM Level 2: - Element createElementNS(in DOMString namespaceURI, + [Custom] Element createElementNS(in DOMString namespaceURI, in DOMString qualifiedName) raises(DOMException); // Introduced in DOM Level 2: - Attr createAttributeNS(in DOMString namespaceURI, + [Custom] Attr createAttributeNS(in DOMString namespaceURI, in DOMString qualifiedName) raises(DOMException); // Introduced in DOM Level 2: diff --git a/src/uscxml/DOMUtils.cpp b/src/uscxml/DOMUtils.cpp index 1115c1d..0a6e350 100644 --- a/src/uscxml/DOMUtils.cpp +++ b/src/uscxml/DOMUtils.cpp @@ -25,22 +25,22 @@ namespace uscxml { - + bool DOMUtils::attributeIsTrue(const::std::string& value) { return (iequals(value, "on") || - iequals(value, "true") || - iequals(value, "1") || - iequals(value, "yes")); + iequals(value, "true") || + iequals(value, "1") || + iequals(value, "yes")); } std::string DOMUtils::xPathForNode(const Arabica::DOM::Node& node, const std::string& ns) { std::string xPath; std::string nsPrefix; - + if (ns.size() > 0) { nsPrefix = ns + ":"; } - + if (!node || node.getNodeType() != Arabica::DOM::Node_base::ELEMENT_NODE) return xPath; diff --git a/src/uscxml/Factory.cpp b/src/uscxml/Factory.cpp index 5f3d172..289c2bb 100644 --- a/src/uscxml/Factory.cpp +++ b/src/uscxml/Factory.cpp @@ -623,7 +623,7 @@ void DataModelImpl::throwErrorPlatform(const std::string& cause) { throw exc; } - + Factory* Factory::_instance = NULL; std::string Factory::pluginPath; } \ No newline at end of file diff --git a/src/uscxml/Factory.h b/src/uscxml/Factory.h index 14325f1..02ce6b8 100644 --- a/src/uscxml/Factory.h +++ b/src/uscxml/Factory.h @@ -126,7 +126,7 @@ public: void setElement(const Arabica::DOM::Element& element) { _element = element; } - + Arabica::DOM::Element getElement() { return _element; } @@ -181,7 +181,7 @@ public: void setElement(const Arabica::DOM::Element& element) { _impl->setElement(element); } - + Arabica::DOM::Element getElement() { return _impl->getElement(); } @@ -316,11 +316,13 @@ public: _interpreter = interpreter; } - virtual std::string andExpressions(std::list) { return ""; } - + virtual std::string andExpressions(std::list) { + return ""; + } + static void throwErrorExecution(const std::string& cause); static void throwErrorPlatform(const std::string& cause); - + // we need it public for various static functions InterpreterImpl* _interpreter; }; diff --git a/src/uscxml/Interpreter.cpp b/src/uscxml/Interpreter.cpp index ee8c7d0..b7de262 100644 --- a/src/uscxml/Interpreter.cpp +++ b/src/uscxml/Interpreter.cpp @@ -236,6 +236,35 @@ DONE_PARSING_CMD: return options; } + +void NameSpaceInfo::init(const std::map& namespaceInfo) { + nsInfo = namespaceInfo; + nsURL = ""; + nsContext = new Arabica::XPath::StandardNamespaceContext(); + + std::map::const_iterator nsIter = namespaceInfo.begin(); + while(nsIter != namespaceInfo.end()) { + std::string uri = nsIter->first; + std::string prefix = nsIter->second; + if (iequals(uri, "http://www.w3.org/2005/07/scxml")) { + nsURL = uri; + if (prefix.size() == 0) { + xpathPrefix = "scxml:"; + nsContext->addNamespaceDeclaration(uri, "scxml"); + } else { + xpathPrefix = prefix + ":"; + xmlNSPrefix = xpathPrefix; + nsContext->addNamespaceDeclaration(uri, prefix); + nsToPrefix[uri] = prefix; + } + } else { + nsContext->addNamespaceDeclaration(uri, prefix); + nsToPrefix[uri] = prefix; + } + nsIter++; + } +} + std::map > Interpreter::_instances; tthread::recursive_mutex Interpreter::_instanceMutex; @@ -255,7 +284,6 @@ std::map > Interpreter::getInstanc InterpreterImpl::InterpreterImpl() { _lastRunOnMainThread = 0; - _nsURL = "*"; _thread = NULL; _sendQueue = NULL; _parentQueue = NULL; @@ -274,7 +302,7 @@ InterpreterImpl::InterpreterImpl() { #endif } -Interpreter Interpreter::fromDOM(const Arabica::DOM::Document& dom, const std::map& nameSpaceInfo) { +Interpreter Interpreter::fromDOM(const Arabica::DOM::Document& dom, const NameSpaceInfo& nameSpaceInfo) { tthread::lock_guard lock(_instanceMutex); boost::shared_ptr interpreterImpl = boost::shared_ptr(new INTERPRETER_IMPL); Interpreter interpreter(interpreterImpl); @@ -343,6 +371,7 @@ Interpreter Interpreter::fromURI(const std::string& uri) { Interpreter Interpreter::fromInputSource(Arabica::SAX::InputSource& source) { tthread::lock_guard lock(_instanceMutex); + // remove old instances std::map >::iterator instIter = _instances.begin(); while(instIter != _instances.end()) { if (!instIter->second.lock()) { @@ -370,34 +399,60 @@ Interpreter Interpreter::fromInputSource(Arabica::SAX::InputSource& return interpreter; } -void InterpreterImpl::setNameSpaceInfo(const std::map namespaceInfo) { - _nameSpaceInfo = namespaceInfo; - std::map::const_iterator nsIter = namespaceInfo.begin(); - while(nsIter != namespaceInfo.end()) { - std::string uri = nsIter->first; - std::string prefix = nsIter->second; - if (iequals(uri, "http://www.w3.org/2005/07/scxml")) { - _nsURL = uri; - if (prefix.size() == 0) { -// LOG(INFO) << "Mapped default namespace to 'scxml:'"; - _xpathPrefix = "scxml:"; - _nsContext.addNamespaceDeclaration(uri, "scxml"); - _nsToPrefix[uri] = "scxml"; - } else { - _xpathPrefix = prefix + ":"; - _xmlNSPrefix = _xpathPrefix; - _nsContext.addNamespaceDeclaration(uri, prefix); - _nsToPrefix[uri] = prefix; - } +Interpreter Interpreter::fromClone(const Interpreter& other) { + boost::shared_ptr interpreterImpl = boost::shared_ptr(new INTERPRETER_IMPL); + + other.getImpl()->copyTo(interpreterImpl); + Interpreter interpreter(interpreterImpl); + return interpreter; +} + +void InterpreterImpl::copyTo(InterpreterImpl* other) { + if (getDocument()) { +#if 0 + std::stringstream* ss = new std::stringstream(); + (*ss) << getDocument(); + // we need an auto_ptr for arabica to assume ownership + std::auto_ptr ssPtr(ss); + Arabica::SAX::InputSource inputSource; + inputSource.setByteStream(ssPtr); + + NameSpacingParser parser; + if (parser.parse(inputSource) && parser.getDocument() && parser.getDocument().hasChildNodes()) { + other->setNameSpaceInfo(parser.nameSpace); + other->_document = parser.getDocument(); + other->init(); } else { - _nsContext.addNamespaceDeclaration(uri, prefix); - _nsToPrefix[uri] = prefix; + if (parser.errorsReported()) { + LOG(ERROR) << parser.errors(); + } } - nsIter++; + +#else + Arabica::DOM::Document clonedDocument; + DOMImplementation domFactory = Arabica::SimpleDOM::DOMImplementation::getDOMImplementation(); + clonedDocument = domFactory.createDocument(getDocument().getNamespaceURI(), "", 0); + + Node child = getDocument().getFirstChild(); + while (child) { + Node newNode = clonedDocument.importNode(child, true); + clonedDocument.appendChild(newNode); + child = child.getNextSibling(); + } + + other->_document = clonedDocument; + + other->setNameSpaceInfo(_nsInfo); + other->init(); +#endif } +} +void InterpreterImpl::copyTo(boost::shared_ptr other) { + copyTo(other.get()); } + void InterpreterImpl::setName(const std::string& name) { if (!_running) { _name = name; @@ -415,7 +470,7 @@ InterpreterImpl::~InterpreterImpl() { Event event; event.name = "unblock.and.die"; receive(event); - + _thread->join(); delete(_thread); } else { @@ -439,7 +494,7 @@ void InterpreterImpl::stop() { _running = false; } - + void InterpreterImpl::run(void* instance) { try { ((InterpreterImpl*)instance)->interpret(); @@ -489,12 +544,18 @@ bool InterpreterImpl::runOnMainThread(int fps, bool blocking) { void InterpreterImpl::init() { if (_document) { - NodeList scxmls = _document.getElementsByTagNameNS(_nsURL, "scxml"); + NodeList scxmls; + if (_nsInfo.nsURL.size() == 0) { + scxmls = _document.getElementsByTagName("scxml"); + } else { + scxmls = _document.getElementsByTagNameNS(_nsInfo.nsURL, "scxml"); + } if (scxmls.getLength() > 0) { _scxml = (Arabica::DOM::Element)scxmls.item(0); // setup xpath and check that it works - _xpath.setNamespaceContext(_nsContext); + if (_nsInfo.nsContext != NULL) + _xpath.setNamespaceContext(*_nsInfo.nsContext); if (_name.length() == 0) _name = (HAS_ATTR(_scxml, "name") ? ATTR(_scxml, "name") : UUID::getUUID()); @@ -574,7 +635,7 @@ void InterpreterImpl::normalize(Arabica::DOM::Element& scxml) { // TODO: Resolve XML includes // make sure every state has an id and set isFirstEntry to true (replaced by _alreadyEntered NodeSet) - Arabica::XPath::NodeSet states = _xpath.evaluate("//" + _xpathPrefix + "state", _scxml).asNodeSet(); + Arabica::XPath::NodeSet states = _xpath.evaluate("//" + _nsInfo.xpathPrefix + "state", _scxml).asNodeSet(); for (int i = 0; i < states.size(); i++) { Arabica::DOM::Element stateElem = Arabica::DOM::Element(states[i]); // stateElem.setAttribute("isFirstEntry", "true"); @@ -584,7 +645,7 @@ void InterpreterImpl::normalize(Arabica::DOM::Element& scxml) { } // make sure every invoke has an idlocation or id - Arabica::XPath::NodeSet invokes = _xpath.evaluate("//" + _xpathPrefix + "invoke", _scxml).asNodeSet(); + Arabica::XPath::NodeSet invokes = _xpath.evaluate("//" + _nsInfo.xpathPrefix + "invoke", _scxml).asNodeSet(); for (int i = 0; i < invokes.size(); i++) { Arabica::DOM::Element invokeElem = Arabica::DOM::Element(invokes[i]); if (!invokeElem.hasAttribute("id") && !invokeElem.hasAttribute("idlocation")) { @@ -598,7 +659,7 @@ void InterpreterImpl::normalize(Arabica::DOM::Element& scxml) { // } } - Arabica::XPath::NodeSet finals = _xpath.evaluate("//" + _xpathPrefix + "final", _scxml).asNodeSet(); + Arabica::XPath::NodeSet finals = _xpath.evaluate("//" + _nsInfo.xpathPrefix + "final", _scxml).asNodeSet(); for (int i = 0; i < finals.size(); i++) { Arabica::DOM::Element finalElem = Arabica::DOM::Element(finals[i]); // finalElem.setAttribute("isFirstEntry", "true"); @@ -607,7 +668,7 @@ void InterpreterImpl::normalize(Arabica::DOM::Element& scxml) { } } - Arabica::XPath::NodeSet histories = _xpath.evaluate("//" + _xpathPrefix + "history", _scxml).asNodeSet(); + Arabica::XPath::NodeSet histories = _xpath.evaluate("//" + _nsInfo.xpathPrefix + "history", _scxml).asNodeSet(); for (int i = 0; i < histories.size(); i++) { Arabica::DOM::Element historyElem = Arabica::DOM::Element(histories[i]); if (!historyElem.hasAttribute("id")) { @@ -619,16 +680,6 @@ void InterpreterImpl::normalize(Arabica::DOM::Element& scxml) { scxml.setAttribute("id", UUID::getUUID()); } - // create a pseudo initial and transition element -#if 0 - Arabica::DOM::Element initialState = (Arabica::DOM::Element)getInitialState(); - Arabica::DOM::Element initialElem = _document.createElement("initial"); - Arabica::DOM::Element transitionElem = _document.createElement("transition"); - transitionElem.setAttribute("target", initialState.getAttribute("id")); - initialElem.appendChild(transitionElem); - _scxml.appendChild(initialElem); - std::cout << _scxml <& st Arabica::DOM::Element parent = (Arabica::DOM::Element)stateElem.getParentNode(); Event event; - Arabica::XPath::NodeSet doneDatas = filterChildElements(_xmlNSPrefix + "donedata", stateElem); + Arabica::XPath::NodeSet doneDatas = filterChildElements(_nsInfo.xmlNSPrefix + "donedata", stateElem); if (doneDatas.size() > 0) { // only process first donedata element Arabica::DOM::Node doneData = doneDatas[0]; processParamChilds(doneData, event.params); - Arabica::XPath::NodeSet contents = filterChildElements(_xmlNSPrefix + "content", doneDatas[0]); + Arabica::XPath::NodeSet contents = filterChildElements(_nsInfo.xmlNSPrefix + "content", doneDatas[0]); if (contents.size() > 1) LOG(ERROR) << "Only a single content element is allowed for send elements - using first one"; if (contents.size() > 0) { @@ -793,7 +844,7 @@ void InterpreterImpl::processDOMorText(const Arabica::DOM::Node& el } void InterpreterImpl::processParamChilds(const Arabica::DOM::Node& element, std::multimap& params) { - NodeSet paramElems = filterChildElements(_xmlNSPrefix + "param", element); + NodeSet paramElems = filterChildElements(_nsInfo.xmlNSPrefix + "param", element); for (int i = 0; i < paramElems.size(); i++) { try { if (!HAS_ATTR(paramElems[i], "name")) { @@ -953,7 +1004,7 @@ void InterpreterImpl::send(const Arabica::DOM::Node& element) { } try { // content - NodeSet contents = filterChildElements(_xmlNSPrefix + "content", element); + NodeSet contents = filterChildElements(_nsInfo.xmlNSPrefix + "content", element); if (contents.size() > 1) LOG(ERROR) << "Only a single content element is allowed for send elements " << DOMUtils::xPathForNode(element) << " - using first one"; if (contents.size() > 0) { @@ -1095,7 +1146,7 @@ void InterpreterImpl::invoke(const Arabica::DOM::Node& element) { // content try { - NodeSet contents = filterChildElements(_xmlNSPrefix + "content", element); + NodeSet contents = filterChildElements(_nsInfo.xmlNSPrefix + "content", element); if (contents.size() > 1) LOG(ERROR) << "Only a single content element is allowed for send elements - using first one"; if (contents.size() > 0) { @@ -1140,12 +1191,13 @@ void InterpreterImpl::invoke(const Arabica::DOM::Node& element) { invoker.setElement(Element(element)); _invokers[invokeReq.invokeid] = invoker; try { - + // --- MONITOR: beforeInvoking ------------------------------ for(monIter_t monIter = _monitors.begin(); monIter != _monitors.end(); monIter++) { try { (*monIter)->beforeInvoking(shared_from_this(), Element(element), invokeReq.invokeid); - } USCXML_MONITOR_CATCH_BLOCK(beforeInvoking) + } + USCXML_MONITOR_CATCH_BLOCK(beforeInvoking) } invoker.invoke(invokeReq); @@ -1155,7 +1207,8 @@ void InterpreterImpl::invoke(const Arabica::DOM::Node& element) { for(monIter_t monIter = _monitors.begin(); monIter != _monitors.end(); monIter++) { try { (*monIter)->afterInvoking(shared_from_this(), Element(element), invokeReq.invokeid); - } USCXML_MONITOR_CATCH_BLOCK(afterInvoking) + } + USCXML_MONITOR_CATCH_BLOCK(afterInvoking) } // this is out of draft but so useful to know when an invoker started @@ -1205,12 +1258,13 @@ void InterpreterImpl::cancelInvoke(const Arabica::DOM::Node& elemen LOG(ERROR) << "Syntax when removing invoker:" << std::endl << e << std::endl; } } - + // --- MONITOR: beforeUninvoking ------------------------------ for(monIter_t monIter = _monitors.begin(); monIter != _monitors.end(); monIter++) { try { (*monIter)->beforeUninvoking(shared_from_this(), Element(element), invokeId); - } USCXML_MONITOR_CATCH_BLOCK(beforeUninvoking) + } + USCXML_MONITOR_CATCH_BLOCK(beforeUninvoking) } _invokers.erase(invokeId); @@ -1219,7 +1273,8 @@ void InterpreterImpl::cancelInvoke(const Arabica::DOM::Node& elemen for(monIter_t monIter = _monitors.begin(); monIter != _monitors.end(); monIter++) { try { (*monIter)->afterUninvoking(shared_from_this(), Element(element), invokeId); - } USCXML_MONITOR_CATCH_BLOCK(beforeUninvoking) + } + USCXML_MONITOR_CATCH_BLOCK(beforeUninvoking) } } else { @@ -1321,10 +1376,10 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont if (content.getNodeType() != Node_base::ELEMENT_NODE) return; - if (iequals(TAGNAME(content), _xmlNSPrefix + "onentry") || - iequals(TAGNAME(content), _xmlNSPrefix + "onexit") || - iequals(TAGNAME(content), _xmlNSPrefix + "finalize") || - iequals(TAGNAME(content), _xmlNSPrefix + "transition")) { + if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "onentry") || + iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "onexit") || + iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "finalize") || + iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "transition")) { // --- CONVENIENCE LOOP -------------------------- NodeList executable = content.getChildNodes(); for (int i = 0; i < executable.getLength(); i++) { @@ -1337,11 +1392,12 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont for(monIter_t monIter = _monitors.begin(); monIter != _monitors.end(); monIter++) { try { (*monIter)->beforeExecutingContent(shared_from_this(), Element(content)); - } USCXML_MONITOR_CATCH_BLOCK(beforeExecutingContent) + } + USCXML_MONITOR_CATCH_BLOCK(beforeExecutingContent) } if (false) { - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "raise")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "raise")) { // --- RAISE -------------------------- #if 0 if (HAS_ATTR(content, "event")) { @@ -1354,7 +1410,7 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont try { // content processParamChilds(content, raised.params); - NodeSet contents = filterChildElements(_xmlNSPrefix + "content", content); + NodeSet contents = filterChildElements(_nsInfo.xmlNSPrefix + "content", content); if (contents.size() > 1) LOG(ERROR) << "Only a single content element is allowed for raise elements " << DOMUtils::xPathForNode(content) << " - using first one"; if (contents.size() > 0) { @@ -1379,7 +1435,7 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont LOG(ERROR) << "Syntax error in send element " << DOMUtils::xPathForNode(content) << " content:" << std::endl << raised << std::endl; return; } - + if (raised.dom) { std::stringstream ss; ss << raised.dom; @@ -1389,7 +1445,7 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont receiveInternal(raised); } #endif - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "if")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "if")) { // --- IF / ELSEIF / ELSE -------------- Arabica::DOM::Element ifElem = (Arabica::DOM::Element)content; #if 0 @@ -1406,8 +1462,8 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont for (unsigned int i = 0; i < childs.getLength(); i++) { if (childs.item(i).getNodeType() != Node_base::ELEMENT_NODE) continue; - if (iequals(TAGNAME(childs.item(i)), _xmlNSPrefix + "elseif") || - iequals(TAGNAME(childs.item(i)), _xmlNSPrefix + "else")) { + if (iequals(TAGNAME(childs.item(i)), _nsInfo.xmlNSPrefix + "elseif") || + iequals(TAGNAME(childs.item(i)), _nsInfo.xmlNSPrefix + "else")) { if (blockIsTrue) { // last block was true, break here break; @@ -1422,11 +1478,11 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont } } } - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "elseif")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "elseif")) { std::cerr << "Found single elsif to evaluate!" << std::endl; - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "else")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "else")) { std::cerr << "Found single else to evaluate!" << std::endl; - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "foreach")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "foreach")) { // --- FOREACH -------------------------- if (_dataModel) { if (HAS_ATTR(content, "array") && HAS_ATTR(content, "item")) { @@ -1456,7 +1512,7 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont LOG(ERROR) << "Expected array and item attributes with foreach element!" << std::endl; } } - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "log")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "log")) { // --- LOG -------------------------- Arabica::DOM::Element logElem = (Arabica::DOM::Element)content; if (logElem.hasAttribute("label")) @@ -1470,7 +1526,7 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont if (logElem.hasAttribute("label")) std::cout << std::endl; } - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "assign")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "assign")) { // --- ASSIGN -------------------------- if (_dataModel && HAS_ATTR(content, "location")) { try { @@ -1487,14 +1543,14 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont } CATCH_AND_DISTRIBUTE2("Syntax error in attributes of assign element", content) } - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "validate")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "validate")) { // --- VALIDATE -------------------------- if (_dataModel) { std::string location = (HAS_ATTR(content, "location") ? ATTR(content, "location") : ""); std::string schema = (HAS_ATTR(content, "schema") ? ATTR(content, "schema") : ""); _dataModel.validate(location, schema); } - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "script")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "script")) { // --- SCRIPT -------------------------- if (_dataModel) { if (HAS_ATTR(content, "src")) { @@ -1545,13 +1601,13 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont } } } - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "send")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "send")) { // --- SEND -------------------------- try { send(content); } CATCH_AND_DISTRIBUTE2("Error while sending content", content) - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "cancel")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "cancel")) { // --- CANCEL -------------------------- std::string sendId; try { @@ -1567,7 +1623,7 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont } CATCH_AND_DISTRIBUTE2("Syntax error while executing cancel element", content) - } else if (iequals(TAGNAME(content), _xmlNSPrefix + "invoke")) { + } else if (iequals(TAGNAME(content), _nsInfo.xmlNSPrefix + "invoke")) { // --- INVOKE -------------------------- } else { // --- Custom Executable Content @@ -1593,12 +1649,13 @@ void InterpreterImpl::executeContent(const Arabica::DOM::Node& cont } execContent.exitElement(content); } - + // --- MONITOR: afterExecutingContent ------------------------------ for(monIter_t monIter = _monitors.begin(); monIter != _monitors.end(); monIter++) { try { (*monIter)->afterExecutingContent(shared_from_this(), Element(content)); - } USCXML_MONITOR_CATCH_BLOCK(afterExecutingContent) + } + USCXML_MONITOR_CATCH_BLOCK(afterExecutingContent) } } @@ -1615,7 +1672,7 @@ void InterpreterImpl::returnDoneEvent(const Arabica::DOM::Node& sta bool InterpreterImpl::parentIsScxmlState(const Arabica::DOM::Node& state) { Arabica::DOM::Element stateElem = (Arabica::DOM::Element)state; Arabica::DOM::Element parentElem = (Arabica::DOM::Element)state.getParentNode(); - if (iequals(TAGNAME(parentElem), _xmlNSPrefix + "scxml")) + if (iequals(TAGNAME(parentElem), _nsInfo.xmlNSPrefix + "scxml")) return true; return false; } @@ -1665,7 +1722,7 @@ Arabica::XPath::NodeSet InterpreterImpl::getChildStates(const Arabi } return childs; } - + Arabica::DOM::Node InterpreterImpl::getParentState(const Arabica::DOM::Node& element) { Arabica::DOM::Node parent = element.getParentNode(); while(parent && !isState(parent)) { @@ -1749,22 +1806,22 @@ Arabica::DOM::Node InterpreterImpl::getState(const std::string& sta } // first try atomic and compound states - NodeSet target = _xpath.evaluate("//" + _xpathPrefix + "state[@id='" + stateId + "']", _scxml).asNodeSet(); + NodeSet target = _xpath.evaluate("//" + _nsInfo.xpathPrefix + "state[@id='" + stateId + "']", _scxml).asNodeSet(); if (target.size() > 0) goto FOUND; // now parallel states - target = _xpath.evaluate("//" + _xpathPrefix + "parallel[@id='" + stateId + "']", _scxml).asNodeSet(); + target = _xpath.evaluate("//" + _nsInfo.xpathPrefix + "parallel[@id='" + stateId + "']", _scxml).asNodeSet(); if (target.size() > 0) goto FOUND; // now final states - target = _xpath.evaluate("//" + _xpathPrefix + "final[@id='" + stateId + "']", _scxml).asNodeSet(); + target = _xpath.evaluate("//" + _nsInfo.xpathPrefix + "final[@id='" + stateId + "']", _scxml).asNodeSet(); if (target.size() > 0) goto FOUND; // now history states - target = _xpath.evaluate("//" + _xpathPrefix + "history[@id='" + stateId + "']", _scxml).asNodeSet(); + target = _xpath.evaluate("//" + _nsInfo.xpathPrefix + "history[@id='" + stateId + "']", _scxml).asNodeSet(); if (target.size() > 0) goto FOUND; @@ -1791,15 +1848,15 @@ FOUND: Arabica::XPath::NodeSet InterpreterImpl::getAllStates() { NodeSet states; - states.push_back(_xpath.evaluate("//" + _xpathPrefix + "state", _scxml).asNodeSet()); - states.push_back(_xpath.evaluate("//" + _xpathPrefix + "parallel", _scxml).asNodeSet()); - states.push_back(_xpath.evaluate("//" + _xpathPrefix + "final", _scxml).asNodeSet()); - states.push_back(_xpath.evaluate("//" + _xpathPrefix + "history", _scxml).asNodeSet()); + states.push_back(_xpath.evaluate("//" + _nsInfo.xpathPrefix + "state", _scxml).asNodeSet()); + states.push_back(_xpath.evaluate("//" + _nsInfo.xpathPrefix + "parallel", _scxml).asNodeSet()); + states.push_back(_xpath.evaluate("//" + _nsInfo.xpathPrefix + "final", _scxml).asNodeSet()); + states.push_back(_xpath.evaluate("//" + _nsInfo.xpathPrefix + "history", _scxml).asNodeSet()); return states; } - + Arabica::DOM::Node InterpreterImpl::getSourceState(const Arabica::DOM::Node& transition) { - if (iequals(TAGNAME(transition.getParentNode()), _xmlNSPrefix + "initial")) + if (iequals(TAGNAME(transition.getParentNode()), _nsInfo.xmlNSPrefix + "initial")) return transition.getParentNode().getParentNode(); return transition.getParentNode(); } @@ -1829,9 +1886,9 @@ Arabica::XPath::NodeSet InterpreterImpl::getInitialStates(Arabica:: } // initial element as child - but not the implicit generated one - NodeSet initElems = filterChildElements(_xmlNSPrefix + "initial", state); + NodeSet initElems = filterChildElements(_nsInfo.xmlNSPrefix + "initial", state); if(initElems.size() == 1 && !iequals(ATTR(initElems[0], "generated"), "true")) { - NodeSet initTrans = filterChildElements(_xmlNSPrefix + "transition", initElems[0]); + NodeSet initTrans = filterChildElements(_nsInfo.xmlNSPrefix + "transition", initElems[0]); return getTargetStates(initTrans[0]); } @@ -1855,10 +1912,10 @@ NodeSet InterpreterImpl::getTargetStates(const Arabica::DOM::Node childs = transition.getChildNodes(); for (int i = 0; i < childs.getLength(); i++) { - if (childs.item(i).getNodeType() == Node_base::ELEMENT_NODE && iequals(TAGNAME(childs.item(i)), _xmlNSPrefix + "transition")) { + if (childs.item(i).getNodeType() == Node_base::ELEMENT_NODE && iequals(TAGNAME(childs.item(i)), _nsInfo.xmlNSPrefix + "transition")) { targetStates.push_back(getTargetStates(childs.item(i))); } } @@ -1884,7 +1941,7 @@ NodeSet InterpreterImpl::getTargetStates(const Arabica::XPath::Node } return targets; } - + std::list InterpreterImpl::tokenizeIdRefs(const std::string& idRefs) { std::list ids; @@ -1940,28 +1997,61 @@ std::string InterpreterImpl::spaceNormalize(const std::string& text) { } -NodeSet InterpreterImpl::filterChildElements(const std::string& tagName, const NodeSet& nodeSet) { +NodeSet InterpreterImpl::filterChildElements(const std::string& tagName, const NodeSet& nodeSet, bool recurse) { NodeSet filteredChildElems; for (unsigned int i = 0; i < nodeSet.size(); i++) { - filteredChildElems.push_back(filterChildElements(tagName, nodeSet[i])); + filteredChildElems.push_back(filterChildElements(tagName, nodeSet[i], recurse)); } return filteredChildElems; } -NodeSet InterpreterImpl::filterChildElements(const std::string& tagName, const Node& node) { +NodeSet InterpreterImpl::filterChildElements(const std::string& tagName, const Node& node, bool recurse) { NodeSet filteredChildElems; + + if (!node) + return filteredChildElems; + NodeList childs = node.getChildNodes(); for (unsigned int i = 0; i < childs.getLength(); i++) { - if (childs.item(i).getNodeType() != Node_base::ELEMENT_NODE) - continue; -// std::cout << tagName << " vs " << TAGNAME(childs.item(i)) << std::endl; - if (!iequals(TAGNAME(childs.item(i)), tagName)) - continue; - filteredChildElems.push_back(childs.item(i)); + if (childs.item(i).getNodeType() == Node_base::ELEMENT_NODE) { +// std::cout << TAGNAME(childs.item(i)) << std::endl; + if(iequals(TAGNAME(childs.item(i)), tagName)) { + filteredChildElems.push_back(childs.item(i)); + } + } + if (recurse) { + filteredChildElems.push_back(filterChildElements(tagName, childs.item(i), recurse)); + } } return filteredChildElems; } +NodeSet InterpreterImpl::filterChildType(const Node_base::Type type, const NodeSet& nodeSet, bool recurse) { + NodeSet filteredChildType; + for (unsigned int i = 0; i < nodeSet.size(); i++) { + filteredChildType.push_back(filterChildType(type, nodeSet[i], recurse)); + } + return filteredChildType; +} + +NodeSet InterpreterImpl::filterChildType(const Node_base::Type type, const Node& node, bool recurse) { + NodeSet filteredChildTypes; + + if (!node) + return filteredChildTypes; + + NodeList childs = node.getChildNodes(); + for (unsigned int i = 0; i < childs.getLength(); i++) { + if (childs.item(i).getNodeType() == type) + filteredChildTypes.push_back(childs.item(i)); + if (recurse) { + filteredChildTypes.push_back(filterChildType(type, childs.item(i), recurse)); + } + } + return filteredChildTypes; +} + + NodeSet InterpreterImpl::getProperAncestors(const Arabica::DOM::Node& s1, const Arabica::DOM::Node& s2) { NodeSet ancestors; @@ -1970,9 +2060,11 @@ NodeSet InterpreterImpl::getProperAncestors(const Arabica::DOM::Nod while((node = node.getParentNode())) { if (!isState(node)) break; - if (iequals(TAGNAME(node), _xmlNSPrefix + "scxml")) // do not return scxml root itself - this is somewhat ill-defined + if (iequals(TAGNAME(node), _nsInfo.xmlNSPrefix + "scxml")) // do not return scxml root itself - this is somewhat ill-defined break; - if (!iequals(TAGNAME(node), _xmlNSPrefix + "parallel") && !iequals(TAGNAME(node), _xmlNSPrefix + "state") && !iequals(TAGNAME(node), _xmlNSPrefix + "scxml")) + if (!iequals(TAGNAME(node), _nsInfo.xmlNSPrefix + "parallel") && + !iequals(TAGNAME(node), _nsInfo.xmlNSPrefix + "state") && + !iequals(TAGNAME(node), _nsInfo.xmlNSPrefix + "scxml")) break; if (node == s2) break; @@ -2319,10 +2411,10 @@ bool InterpreterImpl::isInState(const std::string& stateId) { } return false; } else { - + for (int i = 0; i < _configuration.size(); i++) { if (HAS_ATTR(_configuration[i], "id") && - iequals(ATTR(_configuration[i], "id"), stateId)) { + iequals(ATTR(_configuration[i], "id"), stateId)) { return true; } } @@ -2335,7 +2427,7 @@ void InterpreterImpl::DOMEventListener::handleEvent(Arabica::DOM::Events::Event< if (event.getType().compare("DOMAttrModified") == 0) // we do not care about attributes return; Node target = Arabica::DOM::Node(event.getTarget()); - NodeSet childs = Interpreter::filterChildElements(_interpreter->_xmlNSPrefix + "state", target); + NodeSet childs = Interpreter::filterChildElements(_interpreter->_nsInfo.xmlNSPrefix + "state", target); for (int i = 0; i < childs.size(); i++) { if (HAS_ATTR(childs[i], "id")) { _interpreter->_cachedStates.erase(ATTR(childs[i], "id")); diff --git a/src/uscxml/Interpreter.h b/src/uscxml/Interpreter.h index ca0b3a2..a18bc28 100644 --- a/src/uscxml/Interpreter.h +++ b/src/uscxml/Interpreter.h @@ -138,6 +138,51 @@ protected: {} }; +class NameSpaceInfo { +public: + NameSpaceInfo() { + init(std::map()); + } + + NameSpaceInfo(const std::map& nsInfo) { + init(nsInfo); + } + + NameSpaceInfo(const NameSpaceInfo& other) { + init(other.nsInfo); + } + + virtual ~NameSpaceInfo() { + if (nsContext) + delete nsContext; + } + + NameSpaceInfo& operator=( const NameSpaceInfo& other ) { + init(other.nsInfo); + return *this; + } + + void setPrefix(Arabica::DOM::Element element) { + if (nsURL.size() > 0) + element.setPrefix(nsToPrefix[nsURL]); + } + + void setPrefix(Arabica::DOM::Attr attribute) { + if (nsURL.size() > 0) + attribute.setPrefix(nsToPrefix[nsURL]); + } + + std::string nsURL; // ough to be "http://www.w3.org/2005/07/scxml" but maybe empty + std::string xpathPrefix; // prefix mapped for xpath, "scxml" is _xmlNSPrefix is empty but _nsURL set + std::string xmlNSPrefix; // the actual prefix for elements in the xml file + Arabica::XPath::StandardNamespaceContext* nsContext; + std::map nsToPrefix; // prefixes for a given namespace + std::map nsInfo; // all xmlns mappings + +private: + void init(const std::map& nsInfo); +}; + class USCXML_API InterpreterImpl : public boost::enable_shared_from_this { public: @@ -150,6 +195,9 @@ public: virtual ~InterpreterImpl(); + void copyTo(InterpreterImpl* other); + void copyTo(boost::shared_ptr other); + void start(); void stop(); static void run(void*); @@ -206,28 +254,23 @@ public: Factory* getFactory() { return _factory; } - std::string getXPathPrefix() { - return _xpathPrefix; - } - std::string getXMLPrefix() { - return _xmlNSPrefix; - } - Arabica::XPath::StandardNamespaceContext& getNSContext() { - return _nsContext; + + Arabica::XPath::NodeSet getNodeSetForXPath(const std::string& xpathExpr) { + return _xpath.evaluate(xpathExpr, _scxml).asNodeSet(); } - std::string getXMLPrefixForNS(const std::string& ns) { - if (_nameSpaceInfo.find(ns) != _nameSpaceInfo.end() && _nameSpaceInfo[ns].size()) - return _nameSpaceInfo[ns] + ":"; + + std::string getXMLPrefixForNS(const std::string& ns) const { + if (_nsInfo.nsToPrefix.find(ns) != _nsInfo.nsToPrefix.end() && _nsInfo.nsToPrefix.at(ns).size()) + return _nsInfo.nsToPrefix.at(ns) + ":"; return ""; } - - Arabica::XPath::NodeSet getNodeSetForXPath(const std::string& xpathExpr) { - return _xpath.evaluate(xpathExpr, _scxml).asNodeSet(); + + void setNameSpaceInfo(const NameSpaceInfo& nsInfo) { + _nsInfo = nsInfo; + _xpath.setNamespaceContext(*_nsInfo.nsContext); } - - void setNameSpaceInfo(const std::map nameSpaceInfo); - std::map getNameSpaceInfo() { - return _nameSpaceInfo; + NameSpaceInfo getNameSpaceInfo() const { + return _nsInfo; } void receiveInternal(const Event& event); @@ -266,7 +309,7 @@ public: Arabica::XPath::NodeSet getStates(const std::list& stateIds); Arabica::XPath::NodeSet getAllStates(); - virtual Arabica::DOM::Document& getDocument() { + virtual Arabica::DOM::Document getDocument() const { return _document; } @@ -329,8 +372,10 @@ public: virtual Arabica::XPath::NodeSet getTargetStates(const Arabica::XPath::NodeSet& transitions); virtual Arabica::DOM::Node getSourceState(const Arabica::DOM::Node& transition); - static Arabica::XPath::NodeSet filterChildElements(const std::string& tagname, const Arabica::DOM::Node& node); - static Arabica::XPath::NodeSet filterChildElements(const std::string& tagName, const Arabica::XPath::NodeSet& nodeSet); + static Arabica::XPath::NodeSet filterChildElements(const std::string& tagname, const Arabica::DOM::Node& node, bool recurse = false); + static Arabica::XPath::NodeSet filterChildElements(const std::string& tagName, const Arabica::XPath::NodeSet& nodeSet, bool recurse = false); + static Arabica::XPath::NodeSet filterChildType(const Arabica::DOM::Node_base::Type type, const Arabica::DOM::Node& node, bool recurse = false); + static Arabica::XPath::NodeSet filterChildType(const Arabica::DOM::Node_base::Type type, const Arabica::XPath::NodeSet& nodeSet, bool recurse = false); Arabica::DOM::Node findLCCA(const Arabica::XPath::NodeSet& states); virtual Arabica::XPath::NodeSet getProperAncestors(const Arabica::DOM::Node& s1, const Arabica::DOM::Node& s2); @@ -360,12 +405,7 @@ protected: Arabica::DOM::Document _document; Arabica::DOM::Element _scxml; Arabica::XPath::XPath _xpath; - Arabica::XPath::StandardNamespaceContext _nsContext; - std::string _xmlNSPrefix; // the actual prefix for elements in the xml file - std::string _xpathPrefix; // prefix mapped for xpath, "scxml" is _xmlNSPrefix is empty but _nsURL set - std::string _nsURL; // ough to be "http://www.w3.org/2005/07/scxml" - std::map _nsToPrefix; - std::map _nameSpaceInfo; + NameSpaceInfo _nsInfo; bool _running; bool _done; @@ -445,10 +485,11 @@ protected: class USCXML_API Interpreter { public: static Interpreter fromDOM(const Arabica::DOM::Document& dom, - const std::map& nameSpaceInfo); + const NameSpaceInfo& nameSpaceInfo); static Interpreter fromXML(const std::string& xml); static Interpreter fromURI(const std::string& uri); static Interpreter fromInputSource(Arabica::SAX::InputSource& source); + static Interpreter fromClone(const Interpreter& other); Interpreter() : _impl() {} // the empty, invalid interpreter Interpreter(boost::shared_ptr const impl) : _impl(impl) { } @@ -489,28 +530,32 @@ public: _impl->interpret(); }; - void addMonitor(InterpreterMonitor* monitor) { + void addMonitor(InterpreterMonitor* monitor) { return _impl->addMonitor(monitor); } - void removeMonitor(InterpreterMonitor* monitor) { + void removeMonitor(InterpreterMonitor* monitor) { return _impl->removeMonitor(monitor); } - void setSourceURI(std::string sourceURI) { + void setSourceURI(std::string sourceURI) { return _impl->setSourceURI(sourceURI); } - URL getSourceURI() { + URL getSourceURI() { return _impl->getSourceURI(); } - URL getBaseURI() { + URL getBaseURI() { return _impl->getBaseURI(); } - void setNameSpaceInfo(const std::map namespaceInfo) { - _impl->setNameSpaceInfo(namespaceInfo); + std::string getXMLPrefixForNS(const std::string& ns) const { + return _impl->getXMLPrefixForNS(ns); + } + + void setNameSpaceInfo(const NameSpaceInfo& nsInfo) { + _impl->setNameSpaceInfo(nsInfo); } - std::map getNameSpaceInfo() { + NameSpaceInfo getNameSpaceInfo() const { return _impl->getNameSpaceInfo(); } @@ -525,7 +570,7 @@ public: return _impl->getHTTPServlet(); } - DataModel getDataModel() { + DataModel getDataModel() { return _impl->getDataModel(); } void setParentQueue(uscxml::concurrency::BlockingQueue* parentQueue) { @@ -537,26 +582,14 @@ public: Factory* getFactory() { return _impl->getFactory(); } - std::string getXPathPrefix() { - return _impl->getXPathPrefix(); - } - std::string getXMLPrefix() { - return _impl->getXMLPrefix(); - } - Arabica::XPath::StandardNamespaceContext& getNSContext() { - return _impl->getNSContext(); - } - std::string getXMLPrefixForNS(const std::string& ns) { - return _impl->getXMLPrefixForNS(ns); - } Arabica::XPath::NodeSet getNodeSetForXPath(const std::string& xpathExpr) { return _impl->getNodeSetForXPath(xpathExpr); } - + void inline receiveInternal(const Event& event) { return _impl->receiveInternal(event); } - void receive(const Event& event, bool toFront = false) { + void receive(const Event& event, bool toFront = false) { return _impl->receive(event, toFront); } @@ -567,12 +600,12 @@ public: bool isInState(const std::string& stateId) { return _impl->isInState(stateId); } - - Arabica::XPath::NodeSet getConfiguration() { + + Arabica::XPath::NodeSet getConfiguration() { return _impl->getConfiguration(); } - Arabica::XPath::NodeSet getBasicConfiguration() { + Arabica::XPath::NodeSet getBasicConfiguration() { return _impl->getBasicConfiguration(); } @@ -593,11 +626,11 @@ public: return _impl->getAllStates(); } - Arabica::DOM::Document& getDocument() { + Arabica::DOM::Document getDocument() const { return _impl->getDocument(); } - void setCapabilities(unsigned int capabilities) { + void setCapabilities(unsigned int capabilities) { return _impl->setCapabilities(capabilities); } @@ -605,13 +638,13 @@ public: return _impl->setName(name); } - const std::string& getName() { + const std::string& getName() { return _impl->getName(); } - const std::string& getSessionId() { + const std::string& getSessionId() { return _impl->getSessionId(); } - DelayedEventQueue* getDelayQueue() { + DelayedEventQueue* getDelayQueue() { return _impl->getDelayQueue(); } @@ -716,12 +749,19 @@ public: return _impl->getSourceState(transition); } - static Arabica::XPath::NodeSet filterChildElements(const std::string& tagname, const Arabica::DOM::Node& node) { - return InterpreterImpl::filterChildElements(tagname, node); + static Arabica::XPath::NodeSet filterChildElements(const std::string& tagname, const Arabica::DOM::Node& node, bool recurse = false) { + return InterpreterImpl::filterChildElements(tagname, node, recurse); } - static Arabica::XPath::NodeSet filterChildElements(const std::string& tagName, const Arabica::XPath::NodeSet& nodeSet) { - return InterpreterImpl::filterChildElements(tagName, nodeSet); + static Arabica::XPath::NodeSet filterChildElements(const std::string& tagName, const Arabica::XPath::NodeSet& nodeSet, bool recurse = false) { + return InterpreterImpl::filterChildElements(tagName, nodeSet, recurse); } + static Arabica::XPath::NodeSet filterChildType(const Arabica::DOM::Node_base::Type type, const Arabica::DOM::Node& node, bool recurse = false) { + return InterpreterImpl::filterChildType(type, node, recurse); + } + static Arabica::XPath::NodeSet filterChildType(const Arabica::DOM::Node_base::Type type, const Arabica::XPath::NodeSet& nodeSet, bool recurse = false) { + return InterpreterImpl::filterChildType(type, nodeSet, recurse); + } + Arabica::DOM::Node findLCCA(const Arabica::XPath::NodeSet& states) { return _impl->findLCCA(states); } @@ -729,7 +769,7 @@ public: return _impl->getProperAncestors(s1, s2); } - boost::shared_ptr getImpl() { + boost::shared_ptr getImpl() const { return _impl; } @@ -747,10 +787,10 @@ public: virtual void beforeProcessingEvent(Interpreter interpreter, const Event& event) {} virtual void beforeMicroStep(Interpreter interpreter) {} - + virtual void beforeExitingState(Interpreter interpreter, const Arabica::DOM::Element& state, bool moreComing) {} virtual void afterExitingState(Interpreter interpreter, const Arabica::DOM::Element& state, bool moreComing) {} - + virtual void beforeExecutingContent(Interpreter interpreter, const Arabica::DOM::Element& element) {} virtual void afterExecutingContent(Interpreter interpreter, const Arabica::DOM::Element& element) {} @@ -762,14 +802,14 @@ public: virtual void beforeEnteringState(Interpreter interpreter, const Arabica::DOM::Element& state, bool moreComing) {} virtual void afterEnteringState(Interpreter interpreter, const Arabica::DOM::Element& state, bool moreComing) {} - + virtual void beforeInvoking(Interpreter interpreter, const Arabica::DOM::Element& invokeElem, const std::string& invokeid) {} virtual void afterInvoking(Interpreter interpreter, const Arabica::DOM::Element& invokeElem, const std::string& invokeid) {} virtual void afterMicroStep(Interpreter interpreter) {} virtual void onStableConfiguration(Interpreter interpreter) {} - + virtual void beforeCompletion(Interpreter interpreter) {} virtual void afterCompletion(Interpreter interpreter) {} diff --git a/src/uscxml/Message.cpp b/src/uscxml/Message.cpp index 33dca84..55be0e4 100644 --- a/src/uscxml/Message.cpp +++ b/src/uscxml/Message.cpp @@ -225,7 +225,9 @@ Arabica::DOM::Document Data::toDocument() { scxmlMsg.setAttribute("version", "1.0"); if (compound.size() > 0 || array.size() > 0) { - Arabica::DOM::Element payloadElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "scxml:payload"); + Arabica::DOM::Element payloadElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "payload"); + payloadElem.setPrefix("scxml"); + scxmlMsg.appendChild(payloadElem); // we do not support nested attibutes @@ -233,7 +235,9 @@ Arabica::DOM::Document Data::toDocument() { std::map::iterator compoundIter = compound.begin(); while(compoundIter != compound.end()) { if (compoundIter->second.atom.size() > 0) { - Arabica::DOM::Element propertyElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "scxml:property"); + Arabica::DOM::Element propertyElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "property"); + propertyElem.setPrefix("scxml"); + propertyElem.setAttribute("name", compoundIter->first); Arabica::DOM::Text textElem = document.createTextNode(compoundIter->second.atom); propertyElem.appendChild(textElem); @@ -299,7 +303,9 @@ Arabica::DOM::Document SendRequest::toDocument() { if (params.size() > 0 || namelist.size() > 0) { Arabica::DOM::NodeList payload = scxmlMsg.getElementsByTagName("scxml:payload"); if (payload.getLength() == 0) { - Arabica::DOM::Element payloadElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "scxml:payload"); + Arabica::DOM::Element payloadElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "payload"); + payloadElem.setPrefix("scxml"); + scxmlMsg.appendChild(payloadElem); } Arabica::DOM::Node payloadElem = scxmlMsg.getElementsByTagName("scxml:payload").item(0); @@ -307,7 +313,9 @@ Arabica::DOM::Document SendRequest::toDocument() { // add parameters std::multimap::iterator paramIter = params.begin(); while(paramIter != params.end()) { - Arabica::DOM::Element propertyElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "scxml:property"); + Arabica::DOM::Element propertyElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "property"); + propertyElem.setPrefix("scxml"); + propertyElem.setAttribute("name", paramIter->first); // this is simplified - Data might be more elaborate than a simple string atom Arabica::DOM::Text textElem = document.createTextNode(paramIter->second.atom); @@ -319,7 +327,9 @@ Arabica::DOM::Document SendRequest::toDocument() { // add namelist elements std::map::iterator namelistIter = namelist.begin(); while(namelistIter != namelist.end()) { - Arabica::DOM::Element propertyElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "scxml:property"); + Arabica::DOM::Element propertyElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "property"); + propertyElem.setPrefix("scxml"); + propertyElem.setAttribute("name", namelistIter->first); // this is simplified - Data might be more elaborate than a simple string atom Arabica::DOM::Text textElem = document.createTextNode(namelistIter->second.atom); diff --git a/src/uscxml/Message.h b/src/uscxml/Message.h index afc30ad..57e8680 100644 --- a/src/uscxml/Message.h +++ b/src/uscxml/Message.h @@ -71,7 +71,7 @@ public: }; Data() : type(INTERPRETED) {} - + // TODO: default INTERPRETED is unfortunate Data(const std::string& atom_, Type type_ = INTERPRETED) : atom(atom_), type(type_) {} Data(const char* data, size_t size, const std::string& mimeType, bool adopt = false); @@ -99,9 +99,9 @@ public: // we will have to drop this constructor as it interferes with operator Data() and entails C++11 template Data(T value, typename std::enable_if::value>::type* = nullptr) - : atom(toStr(value)), type(INTERPRETED) {} + : atom(toStr(value)), type(INTERPRETED) {} #endif - + explicit Data(const Arabica::DOM::Node& dom); virtual ~Data() {} @@ -119,7 +119,7 @@ public: Data& operator[](const std::string& key) { return operator[](key.c_str()); } - + Data& operator[](const char* key) { return compound[key]; } @@ -143,7 +143,7 @@ public: Data data; return data; } - + const Data item(const size_t index) const { if (array.size() < index) { std::list::const_iterator arrayIter; @@ -153,7 +153,7 @@ public: Data data; return data; } - + bool operator==(const Data &other) const { if (other.atom.size() != atom.size()) return false; diff --git a/src/uscxml/concurrency/BlockingQueue.h b/src/uscxml/concurrency/BlockingQueue.h index fc62fce..e53de25 100644 --- a/src/uscxml/concurrency/BlockingQueue.h +++ b/src/uscxml/concurrency/BlockingQueue.h @@ -61,7 +61,7 @@ public: tthread::lock_guard lock(_mutex); _queue.clear(); } - + virtual bool isEmpty() { tthread::lock_guard lock(_mutex); return _queue.empty(); diff --git a/src/uscxml/debug/Breakpoint.cpp b/src/uscxml/debug/Breakpoint.cpp index 0001127..54f5d75 100644 --- a/src/uscxml/debug/Breakpoint.cpp +++ b/src/uscxml/debug/Breakpoint.cpp @@ -24,7 +24,7 @@ namespace uscxml { Breakpoint::Breakpoint(const Data& data) { - enabled = true; + enabled = true; subject = UNDEF_SUBJECT; when = UNDEF_WHEN; action = UNDEF_ACTION; @@ -105,60 +105,60 @@ Data Breakpoint::toData() const { Data data; switch (subject) { - case STATE: - data.compound["subject"] = Data("state", Data::VERBATIM); - break; - case TRANSITION: - data.compound["subject"] = Data("transition", Data::VERBATIM); - break; - case STABLE: - data.compound["subject"] = Data("stable", Data::VERBATIM); - break; - case MICROSTEP: - data.compound["subject"] = Data("microstep", Data::VERBATIM); - break; - case EVENT: - data.compound["subject"] = Data("event", Data::VERBATIM); - break; - case INVOKER: - data.compound["subject"] = Data("invoker", Data::VERBATIM); - break; - case EXECUTABLE: - data.compound["subject"] = Data("executable", Data::VERBATIM); - break; - default: - break; + case STATE: + data.compound["subject"] = Data("state", Data::VERBATIM); + break; + case TRANSITION: + data.compound["subject"] = Data("transition", Data::VERBATIM); + break; + case STABLE: + data.compound["subject"] = Data("stable", Data::VERBATIM); + break; + case MICROSTEP: + data.compound["subject"] = Data("microstep", Data::VERBATIM); + break; + case EVENT: + data.compound["subject"] = Data("event", Data::VERBATIM); + break; + case INVOKER: + data.compound["subject"] = Data("invoker", Data::VERBATIM); + break; + case EXECUTABLE: + data.compound["subject"] = Data("executable", Data::VERBATIM); + break; + default: + break; } - + switch (when) { - case AFTER: - data.compound["when"] = Data("after", Data::VERBATIM); - break; - case BEFORE: - data.compound["when"] = Data("before", Data::VERBATIM); - break; - case ON: - data.compound["when"] = Data("on", Data::VERBATIM); - break; - default: - break; + case AFTER: + data.compound["when"] = Data("after", Data::VERBATIM); + break; + case BEFORE: + data.compound["when"] = Data("before", Data::VERBATIM); + break; + case ON: + data.compound["when"] = Data("on", Data::VERBATIM); + break; + default: + break; } switch (action) { - case ENTER: - data.compound["action"] = Data("enter", Data::VERBATIM); - break; - case EXIT: - data.compound["action"] = Data("exit", Data::VERBATIM); - break; - case INVOKE: - data.compound["action"] = Data("invoke", Data::VERBATIM); - break; - case UNINVOKE: - data.compound["action"] = Data("cancel", Data::VERBATIM); - break; - default: - break; + case ENTER: + data.compound["action"] = Data("enter", Data::VERBATIM); + break; + case EXIT: + data.compound["action"] = Data("exit", Data::VERBATIM); + break; + case INVOKE: + data.compound["action"] = Data("invoke", Data::VERBATIM); + break; + case UNINVOKE: + data.compound["action"] = Data("cancel", Data::VERBATIM); + break; + default: + break; } if (invokeId.length() > 0) @@ -176,7 +176,7 @@ Data Breakpoint::toData() const { if (executableXPath.length() > 0) { data.compound["executableXPath"] = Data(executableXPath, Data::VERBATIM); } - + if (element) data.compound["xpath"] = Data(DOMUtils::xPathForNode(element, "*"), Data::VERBATIM); @@ -194,20 +194,20 @@ Data Breakpoint::toData() const { return data; } - + bool Breakpoint::matches(Interpreter interpreter, const Breakpoint& other) const { // would we match the given breakpoint? if (subject != UNDEF_SUBJECT && - other.subject != subject) + other.subject != subject) return false; // subject does not match - + if (when != UNDEF_WHEN && - other.when != when) + other.when != when) return false; // time does not match - + if (action != UNDEF_ACTION && - other.action != action) + other.action != action) return false; // action does not match // when we have a qualifier it has to match @@ -248,7 +248,7 @@ bool Breakpoint::matches(Interpreter interpreter, const Breakpoint& other) const if(transTargetId.length() > 0 && transTargetId != other.transTargetId) { return false; } - + if (condition.length() > 0) { try { DataModel dm = interpreter.getDataModel(); diff --git a/src/uscxml/debug/Breakpoint.h b/src/uscxml/debug/Breakpoint.h index 157a56d..c48b841 100644 --- a/src/uscxml/debug/Breakpoint.h +++ b/src/uscxml/debug/Breakpoint.h @@ -27,61 +27,61 @@ namespace uscxml { class USCXML_API Breakpoint { public: - + enum When { - UNDEF_WHEN, AFTER, BEFORE, ON + UNDEF_WHEN, AFTER, BEFORE, ON }; - + enum Subject { - UNDEF_SUBJECT, STATE, TRANSITION, STABLE, MICROSTEP, EVENT, INVOKER, EXECUTABLE + UNDEF_SUBJECT, STATE, TRANSITION, STABLE, MICROSTEP, EVENT, INVOKER, EXECUTABLE }; - + enum Action { - UNDEF_ACTION, ENTER, EXIT, INVOKE, UNINVOKE + UNDEF_ACTION, ENTER, EXIT, INVOKE, UNINVOKE }; - + Breakpoint() { subject = UNDEF_SUBJECT; when = UNDEF_WHEN; action = UNDEF_ACTION; } Breakpoint(const Data& data); - + // would we match the given breakpoint as well? bool matches(Interpreter interpreter, const Breakpoint& other) const; - + Data toData() const; - + bool operator<(const Breakpoint& other) const { return (toData() < other.toData()); } - + operator bool() { return (subject != UNDEF_SUBJECT || - when != UNDEF_WHEN || - action != UNDEF_ACTION); + when != UNDEF_WHEN || + action != UNDEF_ACTION); } - + mutable bool enabled; - + When when; Subject subject; Action action; Arabica::DOM::Element element; - + std::string invokeId; std::string invokeType; std::string eventName; - + std::string executableName; std::string executableXPath; - + std::string stateId; std::string transSourceId; std::string transTargetId; - + std::string condition; }; diff --git a/src/uscxml/debug/DebugSession.cpp b/src/uscxml/debug/DebugSession.cpp index e785c84..c73f53e 100644 --- a/src/uscxml/debug/DebugSession.cpp +++ b/src/uscxml/debug/DebugSession.cpp @@ -21,16 +21,16 @@ #include "uscxml/debug/Debugger.h" namespace uscxml { - + void DebugSession::checkBreakpoints(const std::list qualifiedBreakpoints) { std::list::const_iterator qualifiedBreakpointIter = qualifiedBreakpoints.begin(); if (!_breakpointsEnabled) return; - + while(qualifiedBreakpointIter != qualifiedBreakpoints.end()) { const Breakpoint& qualifiedBreakpoint = *qualifiedBreakpointIter++; - + // check if one of the user-supplied breakpoints match bool userBreakpointMatched = false; Data replyData; @@ -44,7 +44,7 @@ void DebugSession::checkBreakpoints(const std::list qualifiedBreakpo } continue; } - + std::set::const_iterator breakpointIter = _breakPoints.begin(); while(breakpointIter != _breakPoints.end()) { const Breakpoint& breakpoint = *breakpointIter++; @@ -52,10 +52,10 @@ void DebugSession::checkBreakpoints(const std::list qualifiedBreakpo continue; if (breakpoint.matches(_interpreter, qualifiedBreakpoint)) { // do we have a condition? - + replyData.compound["breakpoint"] = breakpoint.toData(); replyData.compound["qualified"] = qualifiedBreakpoint.toData(); - + userBreakpointMatched = true; breakExecution(replyData); } @@ -70,7 +70,7 @@ void DebugSession::checkBreakpoints(const std::list qualifiedBreakpo void DebugSession::breakExecution(Data replyData) { tthread::lock_guard lock(_mutex); - + Arabica::XPath::NodeSet basicConf = _interpreter.getBasicConfiguration(); for (int i = 0; i < basicConf.size(); i++) { Arabica::DOM::Element element = Arabica::DOM::Element(basicConf[i]); @@ -94,7 +94,7 @@ void DebugSession::breakExecution(Data replyData) { Data DebugSession::debugPrepare(const Data& data) { Data replyData; - + if (!data.hasKey("xml") && !data.hasKey("url")) { replyData.compound["status"] = Data("failure", Data::VERBATIM); replyData.compound["reason"] = Data("No XML or URL given", Data::VERBATIM); @@ -102,7 +102,7 @@ Data DebugSession::debugPrepare(const Data& data) { } debugStop(data); - + _isAttached = false; if (data.hasKey("xml")) { @@ -112,7 +112,7 @@ Data DebugSession::debugPrepare(const Data& data) { } else { _interpreter = Interpreter(); } - + if (_interpreter) { // register ourself as a monitor _interpreter.addMonitor(_debugger); @@ -132,22 +132,22 @@ Data DebugSession::debugPrepare(const Data& data) { Data DebugSession::debugAttach(const Data& data) { Data replyData; _isAttached = true; - + if (!data.hasKey("attach")) { replyData.compound["status"] = Data("failure", Data::VERBATIM); replyData.compound["reason"] = Data("No id to attach to given", Data::VERBATIM); return replyData; } - + std::string interpreterId = data.at("attach").atom; bool interpreterFound = false; - + // find interpreter for sessionid std::map > instances = Interpreter::getInstances(); for (std::map >::iterator instIter = instances.begin(); - instIter != instances.end(); - instIter++) { - + instIter != instances.end(); + instIter++) { + boost::shared_ptr instance = instIter->second.lock(); if (instance && instance->getSessionId() == interpreterId) { _interpreter = instance; @@ -156,7 +156,7 @@ Data DebugSession::debugAttach(const Data& data) { break; } } - + if (!interpreterFound) { replyData.compound["status"] = Data("failure", Data::VERBATIM); replyData.compound["reason"] = Data("No interpreter with given id found", Data::VERBATIM); @@ -179,7 +179,7 @@ Data DebugSession::debugDetach(const Data& data) { Data DebugSession::debugStart(const Data& data) { Data replyData; - + if (_isAttached) { replyData.compound["reason"] = Data("Already started when attached", Data::VERBATIM); replyData.compound["status"] = Data("failure", Data::VERBATIM); @@ -201,7 +201,7 @@ Data DebugSession::debugStop(const Data& data) { // detach from old intepreter _debugger->detachSession(_interpreter); } - + if (_interpreter && !_isAttached) _interpreter.stop(); // unblock @@ -212,16 +212,16 @@ Data DebugSession::debugStop(const Data& data) { // calls destructor _interpreter = Interpreter(); - + return replyData; } - + Data DebugSession::debugStep(const Data& data) { tthread::lock_guard lock(_mutex); - + stepping(true); _resumeCond.notify_one(); - + Data replyData; if (_interpreter) { // register ourself as a monitor @@ -233,19 +233,19 @@ Data DebugSession::debugStep(const Data& data) { } return replyData; } - + Data DebugSession::debugResume(const Data& data) { tthread::lock_guard lock(_mutex); - + stepping(false); - + Data replyData; replyData.compound["status"] = Data("success", Data::VERBATIM); - + _resumeCond.notify_one(); return replyData; } - + Data DebugSession::debugPause(const Data& data) { tthread::lock_guard lock(_mutex); @@ -261,12 +261,12 @@ Data DebugSession::debugPause(const Data& data) { Data DebugSession::skipToBreakPoint(const Data& data) { tthread::lock_guard lock(_mutex); - + _skipTo = Breakpoint(data); - + Data replyData; replyData.compound["status"] = Data("success", Data::VERBATIM); - + _resumeCond.notify_one(); return replyData; } @@ -278,7 +278,7 @@ Data DebugSession::addBreakPoint(const Data& data) { if (_breakPoints.find(breakpoint) == _breakPoints.end()) { _breakPoints.insert(breakpoint); replyData.compound["status"] = Data("success", Data::VERBATIM); - + } else { replyData.compound["reason"] = Data("Breakpoint already exists", Data::VERBATIM); replyData.compound["status"] = Data("failure", Data::VERBATIM); @@ -316,7 +316,7 @@ Data DebugSession::enableBreakPoint(const Data& data) { } Data DebugSession::disableBreakPoint(const Data& data) { Breakpoint breakpoint(data); - + Data replyData; if (_breakPoints.find(breakpoint) != _breakPoints.end()) { _breakPoints.find(breakpoint)->enabled = false; @@ -325,7 +325,7 @@ Data DebugSession::disableBreakPoint(const Data& data) { replyData.compound["reason"] = Data("No such breakpoint", Data::VERBATIM); replyData.compound["status"] = Data("failure", Data::VERBATIM); } - + return replyData; } Data DebugSession::enableAllBreakPoints() { @@ -338,16 +338,16 @@ Data DebugSession::enableAllBreakPoints() { } Data DebugSession::disableAllBreakPoints() { Data replyData; - + _breakpointsEnabled = false; replyData.compound["status"] = Data("success", Data::VERBATIM); - + return replyData; } Data DebugSession::debugEval(const Data& data) { Data replyData; - + if (!data.hasKey("expression")) { replyData.compound["status"] = Data("failure", Data::VERBATIM); replyData.compound["reason"] = Data("No expression given", Data::VERBATIM); @@ -355,7 +355,7 @@ Data DebugSession::debugEval(const Data& data) { } std::string expr = data.at("expression").atom; - + if (!_interpreter) { replyData.compound["status"] = Data("failure", Data::VERBATIM); replyData.compound["reason"] = Data("No interpreter running", Data::VERBATIM); @@ -374,5 +374,5 @@ Data DebugSession::debugEval(const Data& data) { return replyData; } - + } \ No newline at end of file diff --git a/src/uscxml/debug/DebugSession.h b/src/uscxml/debug/DebugSession.h index 12f1d93..1fb4f4d 100644 --- a/src/uscxml/debug/DebugSession.h +++ b/src/uscxml/debug/DebugSession.h @@ -27,7 +27,7 @@ namespace uscxml { class Debugger; - + class USCXML_API DebugSession : public boost::enable_shared_from_this { public: DebugSession() { @@ -37,13 +37,13 @@ public: _markedForDeletion = false; _debugger = NULL; } - + void stepping(bool enable) { _isStepping = enable; } - + void checkBreakpoints(const std::list qualifiedBreakpoints); - + Data debugPrepare(const Data& data); Data debugAttach(const Data& data); Data debugDetach(const Data& data); @@ -60,26 +60,26 @@ public: Data enableAllBreakPoints(); Data disableAllBreakPoints(); Data debugEval(const Data& data); - + void setDebugger(Debugger* debugger) { _debugger = debugger; } - + Interpreter getInterpreter() { return _interpreter; } - + void markForDeletion(bool mark) { _markedForDeletion = mark; } - + protected: void breakExecution(Data replyData); bool _isStepping; bool _isAttached; bool _breakpointsEnabled; - + tthread::condition_variable _resumeCond; tthread::recursive_mutex _runMutex; tthread::recursive_mutex _mutex; @@ -89,7 +89,7 @@ protected: Interpreter _interpreter; std::set _breakPoints; Breakpoint _skipTo; - + }; diff --git a/src/uscxml/debug/Debugger.cpp b/src/uscxml/debug/Debugger.cpp index f611d09..d1a8068 100644 --- a/src/uscxml/debug/Debugger.cpp +++ b/src/uscxml/debug/Debugger.cpp @@ -21,7 +21,7 @@ #include "uscxml/DOMUtils.h" namespace uscxml { - + void Debugger::afterCompletion(Interpreter interpreter) { boost::shared_ptr session = getSession(interpreter); if (!session) @@ -34,44 +34,44 @@ void Debugger::afterCompletion(Interpreter interpreter) { std::list getQualifiedStateBreakpoints(Interpreter interpreter, const Arabica::DOM::Element& state, Breakpoint breakpointTemplate) { std::list breakpoints; - + Breakpoint bp = breakpointTemplate; // copy base as template bp.stateId = ATTR(state, "id"); bp.element = state; bp.subject = Breakpoint::STATE; breakpoints.push_back(bp); - + return breakpoints; } std::list getQualifiedInvokeBreakpoints(Interpreter interpreter, const Arabica::DOM::Element& invokeElem, const std::string invokeId, Breakpoint breakpointTemplate) { std::list breakpoints; - + Breakpoint bp = breakpointTemplate; // copy base as template bp.subject = Breakpoint::INVOKER; bp.element = invokeElem; bp.invokeId = invokeId; - + if (HAS_ATTR(invokeElem, "type")) { bp.invokeType = ATTR(invokeElem, "type"); } else if (HAS_ATTR(invokeElem, "typeexpr")) { bp.invokeType = interpreter.getDataModel().evalAsString(ATTR(invokeElem, "typeexpr")); } - + breakpoints.push_back(bp); - + return breakpoints; } std::list getQualifiedTransBreakpoints(Interpreter interpreter, const Arabica::DOM::Element& transition, Breakpoint breakpointTemplate) { std::list breakpoints; - + Arabica::DOM::Element source(interpreter.getSourceState(transition)); Arabica::XPath::NodeSet targets = interpreter.getTargetStates(transition); for (int j = 0; j < targets.size(); j++) { Arabica::DOM::Element target(targets[j]); - + Breakpoint bp = breakpointTemplate; // copy base as template bp.element = transition; bp.transSourceId = ATTR(source, "id"); @@ -134,14 +134,14 @@ void Debugger::beforeProcessingEvent(Interpreter interpreter, const Event& event } void Debugger::handleExecutable(Interpreter interpreter, - const Arabica::DOM::Element& execContentElem, - Breakpoint::When when) { + const Arabica::DOM::Element& execContentElem, + Breakpoint::When when) { if (!interpreter.isRunning()) return; boost::shared_ptr session = getSession(interpreter); if (!session) return; - + std::list breakpoints; Breakpoint breakpoint; @@ -150,7 +150,7 @@ void Debugger::handleExecutable(Interpreter interpreter, breakpoint.executableName = execContentElem.getLocalName(); breakpoint.subject = Breakpoint::EXECUTABLE; breakpoints.push_back(breakpoint); - + session->checkBreakpoints(breakpoints); } @@ -161,19 +161,19 @@ void Debugger::handleEvent(Interpreter interpreter, const Event& event, Breakpoi boost::shared_ptr session = getSession(interpreter); if (!session) return; - + std::list breakpoints; - + Breakpoint breakpoint; breakpoint.when = when; breakpoint.eventName = event.name; breakpoint.subject = Breakpoint::EVENT; breakpoints.push_back(breakpoint); - + session->checkBreakpoints(breakpoints); } - + void Debugger::handleStable(Interpreter interpreter, Breakpoint::When when) { if (!interpreter.isRunning()) return; @@ -187,7 +187,7 @@ void Debugger::handleStable(Interpreter interpreter, Breakpoint::When when) { breakpoint.when = when; breakpoint.subject = Breakpoint::STABLE; breakpoints.push_back(breakpoint); - + session->checkBreakpoints(breakpoints); } @@ -199,12 +199,12 @@ void Debugger::handleMicrostep(Interpreter interpreter, Breakpoint::When when) { return; std::list breakpoints; - + Breakpoint breakpoint; breakpoint.when = when; breakpoint.subject = Breakpoint::MICROSTEP; breakpoints.push_back(breakpoint); - + session->checkBreakpoints(breakpoints); } diff --git a/src/uscxml/debug/Debugger.h b/src/uscxml/debug/Debugger.h index 8f840b0..9adbae6 100644 --- a/src/uscxml/debug/Debugger.h +++ b/src/uscxml/debug/Debugger.h @@ -24,15 +24,15 @@ #include "uscxml/Interpreter.h" #include "uscxml/debug/Breakpoint.h" #include "uscxml/debug/DebugSession.h" - + namespace uscxml { - + class USCXML_API Debugger : public InterpreterMonitor { public: Debugger() { } virtual ~Debugger() {} - + virtual void attachSession(Interpreter interpreter, boost::shared_ptr session) { tthread::lock_guard lock(_sessionMutex); _sessionForInterpreter[interpreter] = session; @@ -42,16 +42,16 @@ public: tthread::lock_guard lock(_sessionMutex); _sessionForInterpreter.erase(interpreter); } - + virtual boost::shared_ptr getSession(Interpreter interpreter) { tthread::lock_guard lock(_sessionMutex); if (_sessionForInterpreter.find(interpreter) != _sessionForInterpreter.end()) return _sessionForInterpreter[interpreter]; return boost::shared_ptr(); } - + virtual void pushData(boost::shared_ptr session, Data pushData) = 0; - + // InterpreterMonitor virtual void beforeProcessingEvent(Interpreter interpreter, const Event& event); virtual void beforeMicroStep(Interpreter interpreter); @@ -73,28 +73,28 @@ public: virtual void afterCompletion(Interpreter interpreter); protected: - + void handleTransition(Interpreter interpreter, - const Arabica::DOM::Element& transition, - Breakpoint::When when); + const Arabica::DOM::Element& transition, + Breakpoint::When when); void handleState(Interpreter interpreter, - const Arabica::DOM::Element& state, - Breakpoint::When when, - Breakpoint::Action action); + const Arabica::DOM::Element& state, + Breakpoint::When when, + Breakpoint::Action action); void handleInvoke(Interpreter interpreter, - const Arabica::DOM::Element& invokeElem, - const std::string& invokeId, - Breakpoint::When when, - Breakpoint::Action action); + const Arabica::DOM::Element& invokeElem, + const std::string& invokeId, + Breakpoint::When when, + Breakpoint::Action action); void handleExecutable(Interpreter interpreter, - const Arabica::DOM::Element& execContentElem, - Breakpoint::When when); + const Arabica::DOM::Element& execContentElem, + Breakpoint::When when); void handleStable(Interpreter interpreter, Breakpoint::When when); void handleMicrostep(Interpreter interpreter, Breakpoint::When when); void handleEvent(Interpreter interpreter, const Event& event, Breakpoint::When when); tthread::recursive_mutex _sessionMutex; - std::map > _sessionForInterpreter; + std::map > _sessionForInterpreter; }; } diff --git a/src/uscxml/debug/DebuggerServlet.cpp b/src/uscxml/debug/DebuggerServlet.cpp index a570263..a99aaf8 100644 --- a/src/uscxml/debug/DebuggerServlet.cpp +++ b/src/uscxml/debug/DebuggerServlet.cpp @@ -25,24 +25,24 @@ namespace uscxml { void DebuggerServlet::pushData(boost::shared_ptr session, Data pushData) { std::cout << "trying to push " << pushData["replyType"].atom << std::endl; - + if (!session) { if (_sendQueues.size() > 0) // logging is not aware of its interpreter _sendQueues.begin()->second.push(pushData); } else { _sendQueues[session].push(pushData); } - + serverPushData(session); } void DebuggerServlet::serverPushData(boost::shared_ptr session) { if (_sendQueues[session].isEmpty()) return; - + if (!_clientConns[session]) return; - + Data reply = _sendQueues[session].pop(); std::cout << "pushing " << reply["replyType"].atom << std::endl; returnData(_clientConns[session], reply); @@ -51,13 +51,13 @@ void DebuggerServlet::serverPushData(boost::shared_ptr session) { void DebuggerServlet::returnData(const HTTPServer::Request& request, Data replyData) { HTTPServer::Reply reply(request); - + if (!replyData.hasKey("status")) { replyData.compound["status"] = Data("success", Data::VERBATIM); } - + std::cout << "<- " << replyData << std::endl; - + reply.content = Data::toJSON(replyData); reply.headers["Access-Control-Allow-Origin"] = "*"; reply.headers["Content-Type"] = "application/json"; @@ -66,8 +66,8 @@ void DebuggerServlet::returnData(const HTTPServer::Request& request, Data replyD bool DebuggerServlet::isCORS(const HTTPServer::Request& request) { return (request.data.at("type").atom == "options" && - request.data.at("header").hasKey("Origin") && - request.data.at("header").hasKey("Access-Control-Request-Method")); + request.data.at("header").hasKey("Origin") && + request.data.at("header").hasKey("Access-Control-Request-Method")); } void DebuggerServlet::handleCORS(const HTTPServer::Request& request) { @@ -81,7 +81,7 @@ void DebuggerServlet::handleCORS(const HTTPServer::Request& request) { corsReply.headers["Access-Control-Allow-Methods"] = request.data.at("header").at("Access-Control-Request-Method").atom; if (request.data.at("header").hasKey("Access-Control-Request-Headers")) corsReply.headers["Access-Control-Allow-Headers"] = request.data.at("header").at("Access-Control-Request-Headers").atom; - + // std::cout << "CORS!" << std::endl << request << std::endl; HTTPServer::reply(corsReply); } @@ -89,14 +89,14 @@ void DebuggerServlet::handleCORS(const HTTPServer::Request& request) { bool DebuggerServlet::httpRecvRequest(const HTTPServer::Request& request) { if (!request.data.hasKey("path")) return false; // returnError(request); - + if (isCORS(request)) { handleCORS(request); return true; } - + std::cout << request.data["path"] << ": " << request.data["content"] << std::endl; - + Data replyData; // process request that don't need a session if (false) { @@ -107,7 +107,7 @@ bool DebuggerServlet::httpRecvRequest(const HTTPServer::Request& request) { processListSessions(request); return true; } - + // get session or return error if (false) { } else if (!request.data.at("content").hasKey("session")) { @@ -121,9 +121,9 @@ bool DebuggerServlet::httpRecvRequest(const HTTPServer::Request& request) { returnData(request, replyData); return true; } - + boost::shared_ptr session = _sessionForId[request.data.at("content").at("session").atom]; - + if (false) { } else if (boost::starts_with(request.data.at("path").atom, "/debug/poll")) { // save long-standing client poll @@ -164,7 +164,7 @@ bool DebuggerServlet::httpRecvRequest(const HTTPServer::Request& request) { } else if (boost::starts_with(request.data.at("path").atom, "/debug/eval")) { replyData = session->debugEval(request.data["content"]); } - + if (replyData) { returnData(request, replyData); return true; @@ -177,10 +177,10 @@ bool DebuggerServlet::httpRecvRequest(const HTTPServer::Request& request) { void DebuggerServlet::processConnect(const HTTPServer::Request& request) { tthread::lock_guard lock(_mutex); std::string sessionId = UUID::getUUID(); - + _sessionForId[sessionId] = boost::shared_ptr(new DebugSession()); _sessionForId[sessionId]->setDebugger(this); - + Data replyData; replyData.compound["session"] = Data(sessionId, Data::VERBATIM); replyData.compound["status"] = Data("success", Data::VERBATIM); @@ -211,18 +211,18 @@ void DebuggerServlet::processDisconnect(const HTTPServer::Request& request) { _sendQueues.erase(_sessionForId[sessionId]); _sessionForId.erase(sessionId); } - + returnData(request, replyData); } void DebuggerServlet::processListSessions(const HTTPServer::Request& request) { Data replyData; - + std::map > instances = Interpreter::getInstances(); for (std::map >::iterator instIter = instances.begin(); - instIter != instances.end(); - instIter++) { - + instIter != instances.end(); + instIter++) { + boost::shared_ptr instance = instIter->second.lock(); if (instance) { Data sessionData; @@ -234,25 +234,25 @@ void DebuggerServlet::processListSessions(const HTTPServer::Request& request) { replyData.compound["sessions"].array.push_back(sessionData); } } - + replyData.compound["status"] = Data("success", Data::VERBATIM); returnData(request, replyData); } void DebuggerServlet::send(google::LogSeverity severity, const char* full_filename, - const char* base_filename, int line, - const struct ::tm* tm_time, - const char* message, size_t message_len) { - + const char* base_filename, int line, + const struct ::tm* tm_time, + const char* message, size_t message_len) { + // _sendQueue is thread-safe, not sure about ToString though LogMessage msg(severity, - full_filename, - base_filename, - line, - tm_time, - std::string(message, message_len), - ToString(severity, base_filename, line, tm_time, message, message_len)); + full_filename, + base_filename, + line, + tm_time, + std::string(message, message_len), + ToString(severity, base_filename, line, tm_time, message, message_len)); msg.compound["replyType"] = Data("log", Data::VERBATIM); pushData(boost::shared_ptr