@cyklang/cli 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/AssetCommand.d.ts +4 -0
- package/build/AssetCommand.js +293 -0
- package/build/Cmd.d.ts +2 -1
- package/build/Cmd.js +3 -3
- package/build/DBClient.d.ts +1 -0
- package/build/DBClient.js +51 -17
- package/build/InitCommand.js +1 -1
- package/build/ModuleCommand.js +7 -6
- package/build/TableCommand.js +235 -45
- package/build/index.js +3 -0
- package/package.json +5 -2
- package/pgdata/entry.csv +22 -0
- package/pgdata/setting.csv +4 -0
- package/src/AssetCommand.ts +307 -0
- package/src/Cmd.ts +4 -3
- package/src/DBClient.ts +70 -31
- package/src/InitCommand.ts +1 -1
- package/src/ModuleCommand.ts +8 -5
- package/src/TableCommand.ts +269 -56
- package/src/index.ts +3 -0
- package/src/index.xml +10 -0
- package/test/cyklang.xsd +439 -0
- package/test/t0.output +4 -0
- package/test/t0.xml +26 -0
- package/test/t01.output +32 -0
- package/test/t01.xml +185 -0
- package/test/t02.output +10 -0
- package/test/t02.xml +88 -0
- package/test/t03.output +9 -0
- package/test/t03.xml +74 -0
- package/test/t04.output +29 -0
- package/test/t04.xml +116 -0
- package/test/t05.output +18 -0
- package/test/t05.xml +41 -0
- package/test/t06.output +4 -0
- package/test/t06.xml +16 -0
- package/test/t07.output +5 -0
- package/test/t07.xml +82 -0
- package/test/t08.output +8 -0
- package/test/t08.xml +57 -0
- package/test/t09.output +10 -0
- package/test/t09.xml +29 -0
- package/test/t10.xml +125 -0
- package/test/t11.output +3 -0
- package/test/t11.xml +25 -0
- package/test/t12.output +7 -0
- package/test/t12.xml +42 -0
- package/test/t13.xml +23 -0
- package/test/t14.output +50 -0
- package/test/t14.xml +82 -0
- package/test/t14.xsd +102 -0
- package/test/t15.xml +47 -0
- package/test/t16.output +49 -0
- package/test/t16.xml +86 -0
- package/test/t17.output +5 -0
- package/test/t17.xml +21 -0
- package/test/t18.output +22 -0
- package/test/t18.xml +59 -0
- package/test/t19.xml +234 -0
- package/test/t20.xml +15 -0
- package/test/t21.output +21 -0
- package/test/t21.xml +71 -0
- package/test/t22.xml +23 -0
- package/test/t23.xml +44 -0
- package/test/t24.xml +10 -0
- package/test/test.json +113 -0
package/test/t07.xml
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<?xml-model href="cyklang.xsd" ?>
|
|
2
|
+
<module>
|
|
3
|
+
<print>"begin"</print>
|
|
4
|
+
<number name="jean">12345</number>
|
|
5
|
+
<type name="form"/>
|
|
6
|
+
<type name="form.grid" />
|
|
7
|
+
<type name="form.field"/>
|
|
8
|
+
<type name="form.input" />
|
|
9
|
+
<type name="form.button" />
|
|
10
|
+
<type name="form.onclick"/>
|
|
11
|
+
<type name="form.template" literal=""/>
|
|
12
|
+
<form name="ident_form">
|
|
13
|
+
<string name="tip">"information"</string>
|
|
14
|
+
<grid template-columns="1fr 1fr" column="1 / 3">
|
|
15
|
+
<input model="v1"></input>
|
|
16
|
+
</grid>
|
|
17
|
+
<input model="surname" label="Surname" />
|
|
18
|
+
<input model="name" label="Name" />
|
|
19
|
+
<button label="OK" icon="done">
|
|
20
|
+
<onclick>
|
|
21
|
+
<!-- <closeform/> -->
|
|
22
|
+
</onclick>
|
|
23
|
+
</button>
|
|
24
|
+
</form>
|
|
25
|
+
<print>"ident_form.tip " + ident_form.tip</print>
|
|
26
|
+
<form name="f1">ident_form</form>
|
|
27
|
+
<print>"f1.tip " + f1.tip</print>
|
|
28
|
+
|
|
29
|
+
<form name="form1" template-columns="auto auto">
|
|
30
|
+
<string name="tip">"information"</string>
|
|
31
|
+
<input model="v1" bg-color="green-1" label="Label Version" stack-label="" hint="Hint info V1" autogrow=""></input>
|
|
32
|
+
<input model="v1" label="Label V1" stack-label="" hint="Hint V1" type="textarea"></input>
|
|
33
|
+
|
|
34
|
+
<grid template-columns="1fr 1fr" column="1 / 3">
|
|
35
|
+
<input model="v1"></input>
|
|
36
|
+
</grid>
|
|
37
|
+
|
|
38
|
+
<input model="mdp" label="Password V2" stack-label=""></input>
|
|
39
|
+
|
|
40
|
+
<input model="mdp" label="Password V2" stack-label="" type="password"></input>
|
|
41
|
+
|
|
42
|
+
<input model="heure" label="Time" stack-label=""></input>
|
|
43
|
+
<input model="heure" label="Time" stack-label="" type="time"></input>
|
|
44
|
+
|
|
45
|
+
<input model="date" label="Date" stack-label=""></input>
|
|
46
|
+
<input model="date" label="Date" stack-label="" type="date"></input>
|
|
47
|
+
|
|
48
|
+
<field>
|
|
49
|
+
<template name="control">
|
|
50
|
+
<![CDATA[
|
|
51
|
+
DEBUT DE CONTROL
|
|
52
|
+
<div>CECI EST UN CHAMP</div>
|
|
53
|
+
<div>FIELD</div>
|
|
54
|
+
]]>
|
|
55
|
+
</template>
|
|
56
|
+
</field>
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
<input model="numb" label="Number" stack-label="">
|
|
60
|
+
<template name="prepend">
|
|
61
|
+
<![CDATA[
|
|
62
|
+
<span class="text-caption"> lorem ipsum
|
|
63
|
+
</span>
|
|
64
|
+
]]>
|
|
65
|
+
|
|
66
|
+
</template>
|
|
67
|
+
</input>
|
|
68
|
+
<input model="numb" label="Number" stack-label="" type="number"></input>
|
|
69
|
+
|
|
70
|
+
<button label="Ok" icon="event">
|
|
71
|
+
<onclick>
|
|
72
|
+
<function>
|
|
73
|
+
<block>
|
|
74
|
+
<print>"toto"</print>
|
|
75
|
+
</block>
|
|
76
|
+
</function>
|
|
77
|
+
</onclick>
|
|
78
|
+
</button>
|
|
79
|
+
</form>
|
|
80
|
+
<print>"form1.tip " + form1.tip</print>
|
|
81
|
+
<print>"end"</print>
|
|
82
|
+
</module>
|
package/test/t08.output
ADDED
package/test/t08.xml
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<?xml-model href="cyklang.xsd" ?>
|
|
2
|
+
<module>
|
|
3
|
+
<string name="a" literal="">jean bernard
|
|
4
|
+
alain
|
|
5
|
+
</string>
|
|
6
|
+
<string name="b">"dupont"</string>
|
|
7
|
+
<print>a + b</print>
|
|
8
|
+
|
|
9
|
+
<object name="result">
|
|
10
|
+
<object name="actor">
|
|
11
|
+
<object>
|
|
12
|
+
<number name="actor_id">2</number>
|
|
13
|
+
<string name="first_name" literal="">Nick</string>
|
|
14
|
+
<string name="last_name" literal="">Wahlberg <mika?></string>
|
|
15
|
+
<string name="last_update" literal="">Sun May 26 2013 14:50:58 GMT+0400 (heure de La Réunion)</string>
|
|
16
|
+
</object>
|
|
17
|
+
</object>
|
|
18
|
+
<object name="film">
|
|
19
|
+
<object>
|
|
20
|
+
<number name="film_id">485</number>
|
|
21
|
+
<string name="title" literal="">Jersey Sassy</string>
|
|
22
|
+
<string name="description" literal="">A Lacklusture Documentary of a Madman And a Mad Cow who must Find a Feminist in Ancient Japan</string>
|
|
23
|
+
<number name="release_year">2006</number>
|
|
24
|
+
</object>
|
|
25
|
+
<object>
|
|
26
|
+
<number name="film_id">811</number>
|
|
27
|
+
<string name="title" literal="">Smile Earring</string>
|
|
28
|
+
<string name="description" literal="">A Intrepid Drama of a Teacher And a Butler who must Build a Pastry Chef in Berlin</string>
|
|
29
|
+
<number name="release_year">2006</number>
|
|
30
|
+
</object>
|
|
31
|
+
</object>
|
|
32
|
+
<object name="resultset">
|
|
33
|
+
<object>
|
|
34
|
+
<object name="actor">actor.at(0)</object>
|
|
35
|
+
<object name="film">film.at(0)</object>
|
|
36
|
+
</object>
|
|
37
|
+
<object>
|
|
38
|
+
<object name="actor">actor.at(0)</object>
|
|
39
|
+
<object name="film">film.at(1)</object>
|
|
40
|
+
</object>
|
|
41
|
+
</object>
|
|
42
|
+
</object>
|
|
43
|
+
|
|
44
|
+
<print>" result.actor.at(0).first_name " + result.actor.at(0).first_name</print>
|
|
45
|
+
<print>" result.resultset.at(0).film.title " + result.resultset.at(0).film.title</print>
|
|
46
|
+
<print>" result.resultset.at(0).actor.last_name " + result.resultset.at(0).actor.last_name</print>
|
|
47
|
+
|
|
48
|
+
<call object="result.resultset" method="foreach">
|
|
49
|
+
<function>
|
|
50
|
+
<object name="result" />
|
|
51
|
+
<block>
|
|
52
|
+
<print>result.film.title + ' ' + result.actor.last_name</print>
|
|
53
|
+
</block>
|
|
54
|
+
</function>
|
|
55
|
+
</call>
|
|
56
|
+
|
|
57
|
+
</module>
|
package/test/t09.output
ADDED
package/test/t09.xml
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<?xml-model href="cyklang.xsd" ?>
|
|
2
|
+
<module>
|
|
3
|
+
<object name="dates">
|
|
4
|
+
<datetime name="datebirth">datetime("11/04/1963")</datetime>
|
|
5
|
+
<datetime name="datenow">now()</datetime>
|
|
6
|
+
<boolean name="french">true</boolean>
|
|
7
|
+
</object>
|
|
8
|
+
|
|
9
|
+
<print>"date of birth : " + dates.datebirth + ", now : "+dates.datenow</print>
|
|
10
|
+
<print>"french " + dates.french </print>
|
|
11
|
+
|
|
12
|
+
<number name="num1"/>
|
|
13
|
+
<set name="num1">150</set>
|
|
14
|
+
<while>
|
|
15
|
+
<condition><![CDATA[ num1 < 200 ]]> </condition>
|
|
16
|
+
<then>
|
|
17
|
+
<print>num1</print>
|
|
18
|
+
<set name="num1">num1 + 10</set>
|
|
19
|
+
</then>
|
|
20
|
+
</while>
|
|
21
|
+
|
|
22
|
+
<string name="str1">string(num1)</string>
|
|
23
|
+
<print>str1 + ' number(" 1234.56")+10 : ' + (number(" 1234.56") + 10)</print>
|
|
24
|
+
|
|
25
|
+
<number name="n1">100</number>
|
|
26
|
+
<number name="n2">null</number>
|
|
27
|
+
<print>"n2 = " + n2</print>
|
|
28
|
+
<print>"n1 + n2 = " + (n1 + n2)</print>
|
|
29
|
+
</module>
|
package/test/t10.xml
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
<?xml-model href="cyklang.xsd" ?>
|
|
2
|
+
<module>
|
|
3
|
+
|
|
4
|
+
<db.table name="actor">
|
|
5
|
+
<number name="actor_id" type="int" primary="" generated='by default'/>
|
|
6
|
+
<string name="first_name" type="varchar(50)"/>
|
|
7
|
+
<string name="last_name" type="text" />
|
|
8
|
+
<datetime name="last_update" type="timestamp with time zone"/>
|
|
9
|
+
<string name="cyk_remark" type="varchar(255)" />
|
|
10
|
+
<boolean name="cyk_disable" type="boolean"/>
|
|
11
|
+
</db.table>
|
|
12
|
+
|
|
13
|
+
<db.table name="film">
|
|
14
|
+
<number name="film_id" type="int" primary="" generated='by default'/>
|
|
15
|
+
<string name="title" type="varchar(255)" />
|
|
16
|
+
<string name="description" type="text" />
|
|
17
|
+
<number name="release_year" type="int"/>
|
|
18
|
+
<number name="length" type="int" />
|
|
19
|
+
<number name="language_id" type="int"/>
|
|
20
|
+
</db.table>
|
|
21
|
+
|
|
22
|
+
<db.table name="film_actor">
|
|
23
|
+
<number name="actor_id" type="int" primary=""/>
|
|
24
|
+
<number name="film_id" type="int" primary=""/>
|
|
25
|
+
<number name="length" type="int"/>
|
|
26
|
+
</db.table>
|
|
27
|
+
|
|
28
|
+
<db.query name="films_actors">
|
|
29
|
+
<number name="length_from">0</number>
|
|
30
|
+
<number name="length_to">999</number>
|
|
31
|
+
<string name="__entities__">"actor film"</string>
|
|
32
|
+
<string name="__sql__" literal="">
|
|
33
|
+
SELECT * FROM public.actor
|
|
34
|
+
join film_actor on film_actor.actor_id = actor.actor_id
|
|
35
|
+
join film on film_actor.film_id = film.film_id
|
|
36
|
+
where film.length between {{ length_from }} and {{ length_to }}
|
|
37
|
+
-- and actor.actor_id = 2
|
|
38
|
+
ORDER BY actor.actor_id ASC ;
|
|
39
|
+
</string>
|
|
40
|
+
</db.query>
|
|
41
|
+
|
|
42
|
+
<object name="actor_maria">
|
|
43
|
+
<string name="first_name">"Maria" </string>
|
|
44
|
+
<string name='last_name'>'CHANE YOU KAYE'</string>
|
|
45
|
+
<string name='cyk_remark'> 'remarque' </string>
|
|
46
|
+
</object>
|
|
47
|
+
|
|
48
|
+
<!-- <db.execute insert_into_table="actor" returning_into="actor_maria" >
|
|
49
|
+
<object name="actor">actor_maria</object>
|
|
50
|
+
</db.execute> -->
|
|
51
|
+
|
|
52
|
+
<db.insert table="actor" returning_into="actor_maria">
|
|
53
|
+
<object name="actor">actor_maria</object>
|
|
54
|
+
</db.insert>
|
|
55
|
+
|
|
56
|
+
<object name="new_film">
|
|
57
|
+
<string name="title">"La mélodie du bonheur"</string>
|
|
58
|
+
<string name="description">"Le film préféré de Mao"</string>
|
|
59
|
+
<number name="language_id">1</number>
|
|
60
|
+
<number name="release_year">2022</number>
|
|
61
|
+
<number name="length">60</number>
|
|
62
|
+
</object>
|
|
63
|
+
|
|
64
|
+
<!-- <db.execute insert_into_table="film" returning_into="new_film">
|
|
65
|
+
<object> new_film </object>
|
|
66
|
+
</db.execute> -->
|
|
67
|
+
|
|
68
|
+
<db.insert table="film" returning_into="new_film">
|
|
69
|
+
<object>new_film</object>
|
|
70
|
+
</db.insert>
|
|
71
|
+
|
|
72
|
+
<print>"New film ID " + new_film.film_id </print>
|
|
73
|
+
|
|
74
|
+
<let name="new_film.release_year"> 1965 </let>
|
|
75
|
+
|
|
76
|
+
<!-- <db.execute update_table="film">
|
|
77
|
+
<object name="film"> new_film </object>
|
|
78
|
+
</db.execute> -->
|
|
79
|
+
|
|
80
|
+
<db.update table="film">
|
|
81
|
+
<object name="film"> new_film </object>
|
|
82
|
+
</db.update>
|
|
83
|
+
|
|
84
|
+
<!-- <db.execute insert_into_table="film_actor">
|
|
85
|
+
<object>
|
|
86
|
+
<number name="actor_id">actor_maria.actor_id</number>
|
|
87
|
+
<number name="film_id">new_film.film_id</number>
|
|
88
|
+
</object>
|
|
89
|
+
</db.execute> -->
|
|
90
|
+
|
|
91
|
+
<db.insert table="film_actor">
|
|
92
|
+
<object>
|
|
93
|
+
<number name="actor_id">actor_maria.actor_id</number>
|
|
94
|
+
<number name="film_id">new_film.film_id</number>
|
|
95
|
+
</object>
|
|
96
|
+
</db.insert>
|
|
97
|
+
|
|
98
|
+
<object name="films_actors" />
|
|
99
|
+
|
|
100
|
+
<!-- <db.execute query="films_actors" result="films_actors">
|
|
101
|
+
<number name="length_from">60</number>
|
|
102
|
+
<number name="length_to">60</number>
|
|
103
|
+
</db.execute> -->
|
|
104
|
+
|
|
105
|
+
<db.runquery name="films_actors" result="films_actors">
|
|
106
|
+
<number name="length_from">60</number>
|
|
107
|
+
<number name="length_to">60</number>
|
|
108
|
+
</db.runquery>
|
|
109
|
+
|
|
110
|
+
<print>"films_actors.resultset.at(0).actor.last_name " + films_actors.resultset.at(0).actor.last_name</print>
|
|
111
|
+
<call object="films_actors.resultset" method="foreach">
|
|
112
|
+
<function>
|
|
113
|
+
<object name="result" />
|
|
114
|
+
<block>
|
|
115
|
+
<print>"actor " + result.actor.actor_id + " " + result.actor.first_name + " " + result.actor.last_name
|
|
116
|
+
+ ", film " + result.film.film_id + " " + result.film.title
|
|
117
|
+
</print>
|
|
118
|
+
</block>
|
|
119
|
+
</function>
|
|
120
|
+
</call>
|
|
121
|
+
|
|
122
|
+
<print>"string(films_actors) : "+string(films_actors)</print>
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
</module>
|
package/test/t11.output
ADDED
package/test/t11.xml
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<?xml-model href="cyklang.xsd" ?>
|
|
2
|
+
<module>
|
|
3
|
+
<type name="point">
|
|
4
|
+
<number name="x">0</number>
|
|
5
|
+
<number name="y">1</number>
|
|
6
|
+
<string name="resume">"x = "+x + ", y = "+ y</string>
|
|
7
|
+
</type>
|
|
8
|
+
<object type="point" name="p1" />
|
|
9
|
+
<print>"p1.x = "+p1.x +", p1.y = "+p1.y</print>
|
|
10
|
+
<type name="colorOrigin" base="point">
|
|
11
|
+
<number name="y">0</number>
|
|
12
|
+
<string name="color">"yellow"</string>
|
|
13
|
+
<method name="__init__">
|
|
14
|
+
<block>
|
|
15
|
+
<set name="this.resume">"colorOrigin : x = "+this.x + ", y = "+this.y</set>
|
|
16
|
+
<print>"ctor of colorOrigin this.resume : "+this.resume</print>
|
|
17
|
+
</block>
|
|
18
|
+
</method>
|
|
19
|
+
</type>
|
|
20
|
+
<object type="colorOrigin" name="co">
|
|
21
|
+
<string name="color">"red"</string>
|
|
22
|
+
</object>
|
|
23
|
+
<print>"co.x = " + co.x + ", co.y = "+co.y+", co.color = "+co.color+", co.resume = "+co.resume</print>
|
|
24
|
+
|
|
25
|
+
</module>
|
package/test/t12.output
ADDED
package/test/t12.xml
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<?xml-model href="cyklang.xsd" ?>
|
|
2
|
+
<module>
|
|
3
|
+
<module name="mod" import="oilcar x">
|
|
4
|
+
<number name="x">10</number>
|
|
5
|
+
<number name="y">20</number>
|
|
6
|
+
<function name="sum" returns="result: number">
|
|
7
|
+
<block>
|
|
8
|
+
<print>"INSIDE mod.sum = "+ (x+y)</print>
|
|
9
|
+
<set name="result">x + y</set>
|
|
10
|
+
</block>
|
|
11
|
+
</function>
|
|
12
|
+
<type name="vehicle">
|
|
13
|
+
<string name="carplatenumber"/>
|
|
14
|
+
<method name="getAutonomy" returns="autonomy:number">
|
|
15
|
+
</method>
|
|
16
|
+
</type>
|
|
17
|
+
<type name="oilcar" base="vehicle">
|
|
18
|
+
<number name="tankcapacity" />
|
|
19
|
+
<number name="l100"/>
|
|
20
|
+
<method name="getAutonomy" returns="autonomy:number">
|
|
21
|
+
<block>
|
|
22
|
+
<let name="autonomy">100 * (this.tankcapacity / this.l100)</let>
|
|
23
|
+
</block>
|
|
24
|
+
</method>
|
|
25
|
+
</type>
|
|
26
|
+
</module>
|
|
27
|
+
<print>"MOD.x = "+x</print>
|
|
28
|
+
<print>"MOD.y = "+MOD.y</print>
|
|
29
|
+
<print>"PRINT MOD.sum = "+MOD.sum()</print>
|
|
30
|
+
<object type="oilcar" name="mycar">
|
|
31
|
+
<string name="carplatenumber">"CV584MK"</string>
|
|
32
|
+
<number name="tankcapacity">60</number>
|
|
33
|
+
<number name="l100">9</number>
|
|
34
|
+
</object>
|
|
35
|
+
<print>"mycar autonomy = "+mycar.getAutonomy()</print>
|
|
36
|
+
|
|
37
|
+
<number name="result"/>
|
|
38
|
+
<call function="MOD.sum" returns="result"/>
|
|
39
|
+
<print>"MOD.sum = "+result</print>
|
|
40
|
+
|
|
41
|
+
<!-- <module name="__form__" dbname="form" import="*"/> -->
|
|
42
|
+
</module>
|
package/test/t13.xml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<?xml-model href="cyklang.xsd" ?>
|
|
2
|
+
<module>
|
|
3
|
+
<object name="films_actors" />
|
|
4
|
+
<number name="index">2</number>
|
|
5
|
+
<while>
|
|
6
|
+
<condition>index > 0</condition>
|
|
7
|
+
<then>
|
|
8
|
+
<set name="index">index - 1</set>
|
|
9
|
+
<!-- <db.execute query="films_actors" result="films_actors">
|
|
10
|
+
<number name="length_from">60</number>
|
|
11
|
+
<number name="length_to">60</number>
|
|
12
|
+
</db.execute> -->
|
|
13
|
+
<db.runquery name="films_actors" result="films_actors">
|
|
14
|
+
<number name="length_from">60</number>
|
|
15
|
+
<number name="length_to">60</number>
|
|
16
|
+
</db.runquery>
|
|
17
|
+
<print>"index = "+index</print>
|
|
18
|
+
<sleep>5000</sleep>
|
|
19
|
+
|
|
20
|
+
</then>
|
|
21
|
+
</while>
|
|
22
|
+
|
|
23
|
+
</module>
|
package/test/t14.output
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
obj2 <object name="selected">
|
|
2
|
+
</object>
|
|
3
|
+
<string name="command" literal="">new</string>
|
|
4
|
+
undefined = undefined
|
|
5
|
+
actor <string name="actor_id">
|
|
6
|
+
</string>
|
|
7
|
+
<string name="first_name">
|
|
8
|
+
</string>
|
|
9
|
+
========
|
|
10
|
+
undefined
|
|
11
|
+
--------
|
|
12
|
+
condition actor.actor_id == undefined is true
|
|
13
|
+
undefined
|
|
14
|
+
actor.actor_id == undefined
|
|
15
|
+
========= TEST OF COPY =======
|
|
16
|
+
init copie with source.copy()
|
|
17
|
+
copie first first orig, second second orig
|
|
18
|
+
after changing copie.first
|
|
19
|
+
source.first first orig, copie.first new first
|
|
20
|
+
source.second second orig, copie.second second orig
|
|
21
|
+
========= TEST OF setValuesFrom =======
|
|
22
|
+
after source.setValuesFrom(copie)
|
|
23
|
+
source.first new first, copie.first new first
|
|
24
|
+
source.second second orig, copie.second second orig
|
|
25
|
+
========= TEST OF newDBRow =======
|
|
26
|
+
actress <number name="actor_id">
|
|
27
|
+
</number>
|
|
28
|
+
<string name="first_name">
|
|
29
|
+
</string>
|
|
30
|
+
<string name="last_name">
|
|
31
|
+
</string>
|
|
32
|
+
<datetime name="last_update">
|
|
33
|
+
</datetime>
|
|
34
|
+
<string name="cyk_remark">
|
|
35
|
+
</string>
|
|
36
|
+
<boolean name="cyk_disable">
|
|
37
|
+
</boolean>
|
|
38
|
+
user1 <number name="user_id">
|
|
39
|
+
</number>
|
|
40
|
+
<string name="user_name">
|
|
41
|
+
</string>
|
|
42
|
+
<string name="user_email">
|
|
43
|
+
</string>
|
|
44
|
+
<string name="user_password">
|
|
45
|
+
</string>
|
|
46
|
+
<string name="user_access">
|
|
47
|
+
</string>
|
|
48
|
+
<string name="user_appli">
|
|
49
|
+
</string>
|
|
50
|
+
<boolean name="user_disable">false</boolean>
|
package/test/t14.xml
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<?xml-model href="cyklang.xsd" ?>
|
|
2
|
+
<module>
|
|
3
|
+
<object name="obj1">
|
|
4
|
+
<string name="name">"obj1_name"</string>
|
|
5
|
+
</object>
|
|
6
|
+
<object name="obj2"></object>
|
|
7
|
+
|
|
8
|
+
<function name="funct" returns="result: object">
|
|
9
|
+
<object name="ret">
|
|
10
|
+
<object name='selected'/>
|
|
11
|
+
<string name='command'>'new'</string>
|
|
12
|
+
</object>
|
|
13
|
+
<block>
|
|
14
|
+
<set name="result"> ret </set>
|
|
15
|
+
</block>
|
|
16
|
+
</function>
|
|
17
|
+
<set name="obj2">funct()</set>
|
|
18
|
+
<print>"obj2 "+string(obj2)</print>
|
|
19
|
+
|
|
20
|
+
<print>"undefined = "+undefined</print>
|
|
21
|
+
|
|
22
|
+
<object name="actor">
|
|
23
|
+
<string name="actor_id"/>
|
|
24
|
+
<string name="first_name"/>
|
|
25
|
+
</object>
|
|
26
|
+
<print>"actor "+string(actor)</print>
|
|
27
|
+
<print>"========"</print>
|
|
28
|
+
<print>actor.actor_id</print>
|
|
29
|
+
<print>"--------"</print>
|
|
30
|
+
<if>
|
|
31
|
+
<condition>actor.actor_id == undefined</condition>
|
|
32
|
+
<then>
|
|
33
|
+
<print>"condition actor.actor_id == undefined is true"</print>
|
|
34
|
+
</then>
|
|
35
|
+
<else>
|
|
36
|
+
<print>"condition actor.actor_id == undefined is false"</print>
|
|
37
|
+
</else>
|
|
38
|
+
</if>
|
|
39
|
+
<print>actor.actor_id</print>
|
|
40
|
+
<print>"actor.actor_id == "+actor.actor_id</print>
|
|
41
|
+
|
|
42
|
+
<!-- actor.actor_id is undefined, set undefined to n1 -->
|
|
43
|
+
|
|
44
|
+
<number name="n1"/>
|
|
45
|
+
<set name="n1">actor.actor_id</set>
|
|
46
|
+
|
|
47
|
+
<!-- objectData.copy() duplicates each variable of objectData, returns new ObjectData -->
|
|
48
|
+
<print>"========= TEST OF COPY ======="</print>
|
|
49
|
+
<object name="source">
|
|
50
|
+
<string name="first">"first orig"</string>
|
|
51
|
+
<string name="second">"second orig"</string>
|
|
52
|
+
</object>
|
|
53
|
+
<object name="copie">
|
|
54
|
+
source.copy()
|
|
55
|
+
</object>
|
|
56
|
+
|
|
57
|
+
<set name="copie">source.copy()</set>
|
|
58
|
+
|
|
59
|
+
<print>"init copie with source.copy()"</print>
|
|
60
|
+
<print>"copie first "+ copie.first + ", second " + copie.second</print>
|
|
61
|
+
|
|
62
|
+
<set name="copie.first">"new first"</set>
|
|
63
|
+
<print>"after changing copie.first "</print>
|
|
64
|
+
<print>"source.first "+source.first +", copie.first "+copie.first</print>
|
|
65
|
+
<print>"source.second "+source.second +", copie.second "+copie.second</print>
|
|
66
|
+
|
|
67
|
+
<print>"========= TEST OF setValuesFrom ======="</print>
|
|
68
|
+
|
|
69
|
+
<set name="source">source.setValuesFrom(copie)</set>
|
|
70
|
+
<print>"after source.setValuesFrom(copie)"</print>
|
|
71
|
+
<print>"source.first "+source.first +", copie.first "+copie.first</print>
|
|
72
|
+
<print>"source.second "+source.second +", copie.second "+copie.second</print>
|
|
73
|
+
|
|
74
|
+
<print>"========= TEST OF newDBRow ======="</print>
|
|
75
|
+
|
|
76
|
+
<object name="actress">newDBRow("actor")</object>
|
|
77
|
+
<print>"actress "+string(actress)</print>
|
|
78
|
+
|
|
79
|
+
<object name="user1">newDBRow("cyk_user")</object>
|
|
80
|
+
<print>"user1 "+string(user1)</print>
|
|
81
|
+
|
|
82
|
+
</module>
|
package/test/t14.xsd
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
3
|
+
<xs:element name="module">
|
|
4
|
+
<xs:complexType>
|
|
5
|
+
<xs:sequence>
|
|
6
|
+
<xs:element name="object" maxOccurs="unbounded">
|
|
7
|
+
<xs:complexType mixed="true">
|
|
8
|
+
<xs:sequence minOccurs="0">
|
|
9
|
+
<xs:element name="string" minOccurs="0">
|
|
10
|
+
<xs:complexType>
|
|
11
|
+
<xs:simpleContent>
|
|
12
|
+
<xs:extension base="xs:string">
|
|
13
|
+
<xs:attribute name="name" use="required" />
|
|
14
|
+
</xs:extension>
|
|
15
|
+
</xs:simpleContent>
|
|
16
|
+
</xs:complexType>
|
|
17
|
+
</xs:element>
|
|
18
|
+
</xs:sequence>
|
|
19
|
+
<xs:attribute name="name" use="required" />
|
|
20
|
+
</xs:complexType>
|
|
21
|
+
</xs:element>
|
|
22
|
+
<xs:element name="function">
|
|
23
|
+
<xs:complexType>
|
|
24
|
+
<xs:sequence>
|
|
25
|
+
<xs:element name="block">
|
|
26
|
+
<xs:complexType>
|
|
27
|
+
<xs:sequence>
|
|
28
|
+
<xs:element name="set">
|
|
29
|
+
<xs:complexType mixed="true">
|
|
30
|
+
<xs:sequence>
|
|
31
|
+
<xs:element name="object">
|
|
32
|
+
<xs:complexType>
|
|
33
|
+
<xs:sequence>
|
|
34
|
+
<xs:element name="object">
|
|
35
|
+
<xs:complexType>
|
|
36
|
+
<xs:attribute name="name" use="required" />
|
|
37
|
+
</xs:complexType>
|
|
38
|
+
</xs:element>
|
|
39
|
+
<xs:element name="string">
|
|
40
|
+
<xs:complexType>
|
|
41
|
+
<xs:simpleContent>
|
|
42
|
+
<xs:extension base="xs:string">
|
|
43
|
+
<xs:attribute name="name" use="required" />
|
|
44
|
+
</xs:extension>
|
|
45
|
+
</xs:simpleContent>
|
|
46
|
+
</xs:complexType>
|
|
47
|
+
</xs:element>
|
|
48
|
+
</xs:sequence>
|
|
49
|
+
</xs:complexType>
|
|
50
|
+
</xs:element>
|
|
51
|
+
</xs:sequence>
|
|
52
|
+
<xs:attribute name="name" use="required" />
|
|
53
|
+
</xs:complexType>
|
|
54
|
+
</xs:element>
|
|
55
|
+
</xs:sequence>
|
|
56
|
+
</xs:complexType>
|
|
57
|
+
</xs:element>
|
|
58
|
+
</xs:sequence>
|
|
59
|
+
<xs:attribute name="name" use="required" />
|
|
60
|
+
<xs:attribute name="returns" use="required" />
|
|
61
|
+
</xs:complexType>
|
|
62
|
+
</xs:element>
|
|
63
|
+
<xs:element name="set" maxOccurs="unbounded">
|
|
64
|
+
<xs:complexType>
|
|
65
|
+
<xs:simpleContent>
|
|
66
|
+
<xs:extension base="xs:string">
|
|
67
|
+
<xs:attribute name="name" use="required" />
|
|
68
|
+
</xs:extension>
|
|
69
|
+
</xs:simpleContent>
|
|
70
|
+
</xs:complexType>
|
|
71
|
+
</xs:element>
|
|
72
|
+
<xs:element name="print" maxOccurs="unbounded" type="xs:string" />
|
|
73
|
+
<xs:element name="if">
|
|
74
|
+
<xs:complexType>
|
|
75
|
+
<xs:sequence>
|
|
76
|
+
<xs:element name="condition" type="xs:string" />
|
|
77
|
+
<xs:element name="then">
|
|
78
|
+
<xs:complexType>
|
|
79
|
+
<xs:sequence>
|
|
80
|
+
<xs:element name="print" type="xs:string" />
|
|
81
|
+
</xs:sequence>
|
|
82
|
+
</xs:complexType>
|
|
83
|
+
</xs:element>
|
|
84
|
+
<xs:element name="else">
|
|
85
|
+
<xs:complexType>
|
|
86
|
+
<xs:sequence>
|
|
87
|
+
<xs:element name="print" type="xs:string" />
|
|
88
|
+
</xs:sequence>
|
|
89
|
+
</xs:complexType>
|
|
90
|
+
</xs:element>
|
|
91
|
+
</xs:sequence>
|
|
92
|
+
</xs:complexType>
|
|
93
|
+
</xs:element>
|
|
94
|
+
<xs:element name="number">
|
|
95
|
+
<xs:complexType>
|
|
96
|
+
<xs:attribute name="name" use="required" />
|
|
97
|
+
</xs:complexType>
|
|
98
|
+
</xs:element>
|
|
99
|
+
</xs:sequence>
|
|
100
|
+
</xs:complexType>
|
|
101
|
+
</xs:element>
|
|
102
|
+
</xs:schema>
|