1 /* Validating XML processor for skin.dtd.
2 * Generated 2004/01/03 15:23:36.
4 * This program was generated with the FleXML XML processor generator,
5 * (Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp).
6 * Copyright © 1999 Kristoffer Rose. All rights reserved.
8 * You can redistribute and/or modify this program provided the following
11 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
12 * FleXML; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.
15 * 2. The program distribution conditions do not in any way affect the
16 * distribution conditions of the FleXML system used to generate this
17 * file or any version of FleXML derived from that system.
19 * Notice that these are explicit rights granted to you for files
20 * generated by the FleXML system. For your rights in connection with
21 * the FleXML system itself please consult the GNU General Public License.
26 /* Version strings. */
27 const char rcs_flexml_skeleton[] =
28 "$" "Id: skel,v 1.16 1999/12/09 04:01:51 krisrose Exp $";
29 const char rcs_flexml[] =
30 "$" "Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp $";
40 /* Generated definitions. */
41 #define FLEXML_BUFFERSTACKSIZE 100000
43 /* XML processor api. */
46 /* FleXML-provided data. */
49 AT_ThemeInfo_author A_ThemeInfo_author;
50 AT_Playlist_fgcolor A_Playlist_fgcolor;
51 AT_CheckBox_down2 A_CheckBox_down2;
52 AT_Image_lefttop A_Image_lefttop;
53 AT_Slider_visible A_Slider_visible;
54 AT_CheckBox_down1 A_CheckBox_down1;
55 AT_Image_rightbottom A_Image_rightbottom;
56 AT_Event_id A_Event_id;
57 AT_Rectangle_h A_Rectangle_h;
58 AT_Slider_lefttop A_Slider_lefttop;
59 AT_Slider_over A_Slider_over;
60 AT_Window_id A_Window_id;
61 AT_Theme_alpha A_Theme_alpha;
62 AT_Text_text A_Text_text;
63 AT_Playlist_rightbottom A_Playlist_rightbottom;
64 AT_Event_event A_Event_event;
65 AT_Slider_value A_Slider_value;
66 AT_Font_underline A_Font_underline;
67 AT_Image_onclick A_Image_onclick;
68 AT_Anchor_priority A_Anchor_priority;
69 AT_Font_italic A_Font_italic;
70 AT_Button_y A_Button_y;
71 AT_RadialSlider_sequence A_RadialSlider_sequence;
72 AT_Playlist_var A_Playlist_var;
73 AT_CheckBox_y A_CheckBox_y;
74 AT_Window_playondrop A_Window_playondrop;
75 AT_RadialSlider_minangle A_RadialSlider_minangle;
76 AT_RadialSlider_visible A_RadialSlider_visible;
77 AT_Playlist_playcolor A_Playlist_playcolor;
78 AT_Anchor_range A_Anchor_range;
79 AT_Theme_fadetime A_Theme_fadetime;
80 AT_CheckBox_x A_CheckBox_x;
81 AT_Bitmap_file A_Bitmap_file;
82 AT_Slider_down A_Slider_down;
83 AT_CheckBox_over2 A_CheckBox_over2;
84 AT_Slider_y A_Slider_y;
85 AT_Slider_id A_Slider_id;
86 AT_Window_dragdrop A_Window_dragdrop;
89 AT_Font_color A_Font_color;
90 AT_Slider_rightbottom A_Slider_rightbottom;
92 AT_Text_font A_Text_font;
93 AT_Button_over A_Button_over;
94 AT_Theme_version A_Theme_version;
95 AT_Image_id A_Image_id;
96 AT_CheckBox_lefttop A_CheckBox_lefttop;
97 AT_Text_scrollspace A_Text_scrollspace;
98 AT_Button_action A_Button_action;
99 AT_Button_lefttop A_Button_lefttop;
100 AT_Button_id A_Button_id;
101 AT_Rectangle_visible A_Rectangle_visible;
102 AT_Rectangle_color A_Rectangle_color;
103 AT_Playlist_width A_Playlist_width;
104 AT_RadialSlider_maxangle A_RadialSlider_maxangle;
105 AT_Window_y A_Window_y;
106 AT_Slider_help A_Slider_help;
107 AT_Text_width A_Text_width;
108 AT_Slider_points A_Slider_points;
109 AT_CheckBox_up1 A_CheckBox_up1;
110 AT_Theme_magnet A_Theme_magnet;
111 AT_Theme_movealpha A_Theme_movealpha;
112 AT_RadialSlider_lefttop A_RadialSlider_lefttop;
113 AT_Button_up A_Button_up;
114 AT_RadialSlider_y A_RadialSlider_y;
115 AT_CheckBox_action1 A_CheckBox_action1;
116 AT_Playlist_id A_Playlist_id;
117 AT_Text_align A_Text_align;
118 AT_CheckBox_tooltiptext1 A_CheckBox_tooltiptext1;
119 AT_Group_x A_Group_x;
120 AT_Text_display A_Text_display;
121 AT_Bitmap_id A_Bitmap_id;
122 AT_Playlist_y A_Playlist_y;
123 AT_Text_scroll A_Text_scroll;
124 AT_Playlist_lefttop A_Playlist_lefttop;
125 AT_Rectangle_x A_Rectangle_x;
126 AT_Layout_minheight A_Layout_minheight;
127 AT_Button_rightbottom A_Button_rightbottom;
128 AT_Slider_thickness A_Slider_thickness;
129 AT_RadialSlider_tooltiptext A_RadialSlider_tooltiptext;
130 AT_RadialSlider_value A_RadialSlider_value;
131 AT_Text_visible A_Text_visible;
132 AT_Slider_tooltiptext A_Slider_tooltiptext;
133 AT_Rectangle_onclick A_Rectangle_onclick;
134 AT_Layout_width A_Layout_width;
135 AT_Rectangle_help A_Rectangle_help;
136 AT_CheckBox_tooltiptext2 A_CheckBox_tooltiptext2;
137 AT_Layout_maxheight A_Layout_maxheight;
138 AT_RadialSlider_help A_RadialSlider_help;
139 AT_Playlist_font A_Playlist_font;
140 AT_Rectangle_id A_Rectangle_id;
141 AT_CheckBox_help A_CheckBox_help;
142 AT_Image_help A_Image_help;
143 AT_Playlist_bgcolor1 A_Playlist_bgcolor1;
144 AT_Bitmap_alphacolor A_Bitmap_alphacolor;
145 AT_Image_image A_Image_image;
146 AT_Font_id A_Font_id;
147 AT_Button_x A_Button_x;
148 AT_CheckBox_id A_CheckBox_id;
149 AT_Layout_id A_Layout_id;
150 AT_Event_key A_Event_key;
151 AT_CheckBox_over1 A_CheckBox_over1;
152 AT_Slider_up A_Slider_up;
153 AT_Layout_minwidth A_Layout_minwidth;
154 AT_CheckBox_rightbottom A_CheckBox_rightbottom;
155 AT_Anchor_x A_Anchor_x;
156 AT_Font_font A_Font_font;
157 AT_Layout_maxwidth A_Layout_maxwidth;
158 AT_Playlist_help A_Playlist_help;
159 AT_Playlist_visible A_Playlist_visible;
160 AT_Slider_x A_Slider_x;
161 AT_CheckBox_up2 A_CheckBox_up2;
162 AT_Text_help A_Text_help;
163 AT_CheckBox_action2 A_CheckBox_action2;
164 AT_CheckBox_state A_CheckBox_state;
165 AT_Font_size A_Font_size;
166 AT_ThemeInfo_webpage A_ThemeInfo_webpage;
167 AT_RadialSlider_x A_RadialSlider_x;
168 AT_Button_tooltiptext A_Button_tooltiptext;
169 AT_Image_visible A_Image_visible;
170 AT_Window_visible A_Window_visible;
171 AT_RadialSlider_id A_RadialSlider_id;
172 AT_Anchor_y A_Anchor_y;
173 AT_RadialSlider_nbimages A_RadialSlider_nbimages;
174 AT_Playlist_bgcolor2 A_Playlist_bgcolor2;
175 AT_Playlist_x A_Playlist_x;
176 AT_ThemeInfo_email A_ThemeInfo_email;
177 AT_Window_x A_Window_x;
178 AT_Button_down A_Button_down;
179 AT_Playlist_height A_Playlist_height;
180 AT_Layout_height A_Layout_height;
181 AT_ThemeInfo_name A_ThemeInfo_name;
182 AT_Button_help A_Button_help;
184 AT_Rectangle_w A_Rectangle_w;
185 AT_Image_x A_Image_x;
186 AT_Rectangle_y A_Rectangle_y;
187 AT_Playlist_selcolor A_Playlist_selcolor;
188 AT_RadialSlider_rightbottom A_RadialSlider_rightbottom;
192 # define ENTER(state) debug_enter(state,#state)
193 # define LEAVE debug_leave()
194 # define SET(state) debug_set(state,#state)
195 static void debug_enter(int, char*);
196 static void debug_leave(void);
197 static void debug_set(int, char*);
199 # define ENTER(state) (yy_push_state(state))
200 # define LEAVE (yy_pop_state())
201 # define SET(state) BEGIN(state)
204 /* Generic actions. */
205 #define SKIP /*skip*/
206 #define SUCCEED return 0
208 #define FAIL return fail
209 static int fail(const char*, ...);
211 /* Text buffer stack handling. */
212 char bufferstack[FLEXML_BUFFERSTACKSIZE];
213 char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE;
214 typedef struct BufferLast_s {
215 struct BufferLast_s *old; char* saved; char new[1];
217 BufferLast* last = (BufferLast*)0;
218 char* next = bufferstack;
220 #define BUFFERSET(P) (P = next)
221 #define BUFFERPUTC(C) (assert(next<limit), *(next++) = (C))
222 #define BUFFERDONE (BUFFERPUTC('\0'))
224 #define BUFFERLITERAL(C,P) bufferliteral(C,&(P),yytext)
225 static void bufferliteral(char c, char** pp, char* text)
227 char *s = strchr(text,c), *e = strrchr(text,c);
228 assert(s <= e); BUFFERSET(*pp);
230 if (isspace(*s)) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
236 #ifdef FLEXML_HasMixed
237 static void pushbuffer(char* p)
239 BufferLast* l = (BufferLast*)next;
240 assert(next < limit);
247 static char* popbuffer(void)
249 BufferLast* l = last;
250 assert(last != (BufferLast*)0);
257 /* General internal entities are `unput' back onto the input stream... */
258 #define ENTITYTEXT(T) \
259 { char *s = (T), *e = s+strlen(s);\
260 while (--e >= s) { unput(*e); }}
263 /* Flex standard options. */
265 %option noyy_top_state
271 /* Flex user-requested options. */
274 /* XML character classes (currently restricted to ASCII). */
276 /* "Common syntactic structures." */
280 /* "Names and Tokens." */
281 NameChar [A-Za-z0-9.:_-]
282 Name [A-Za-z_:]{NameChar}*
283 Names {Name}({S}{Name})*
284 Nmtoken ({NameChar})+
285 Nmtokens {Nmtoken}({S}{Nmtoken})*
288 VersionNum [a-zA-Z0-9_.:-]+
290 Literal \'[^'']*\'|\"[^""]*\"
292 /* Parser states (flex `exclusive start conditions'):
294 * PROLOG the XML prolog of the document before <?xml...>
295 * DOCTYPE the XML prolog of the document after <?xml...>
296 * EPILOG after the root element
297 * INCOMMENT inside an XML comment <!--....-->
298 * INPI inside an XML PI <?...?>
299 * VALUE1 inside a '...'-delimited literal
300 * VALUE2 inside a "..."-delimited literal
301 * CDATA inside a <![CDATA[...]]> section.
302 * ROOT_<tag> expect root element <tag>
303 * AL_<tag> inside the attribute list for <tag>
304 * IN_<tag> inside a <tag> with element contents (ready for end tag)
305 * IMPOSSIBLE dummy to permit disabling rules; must be last
307 %x PROLOG DOCTYPE EPILOG INCOMMENT INPI VALUE1 VALUE2 CDATA
308 %x ROOT_Theme AL_Theme S_Theme S_Theme_1 S_Theme_2 S_Theme_3 E_Theme
309 %x ROOT_Bitmap AL_Bitmap E_Bitmap
310 %x ROOT_Event AL_Event E_Event
311 %x ROOT_Font AL_Font E_Font
312 %x ROOT_ThemeInfo AL_ThemeInfo E_ThemeInfo
313 %x ROOT_Window AL_Window S_Window S_Window_1 S_Window_2 E_Window
314 %x ROOT_Layout AL_Layout S_Layout E_Layout
315 %x ROOT_Group AL_Group S_Group S_Group_1 S_Group_2 E_Group
316 %x ROOT_Anchor AL_Anchor E_Anchor
317 %x ROOT_Image AL_Image E_Image
318 %x ROOT_Rectangle AL_Rectangle E_Rectangle
319 %x ROOT_Button AL_Button E_Button
320 %x ROOT_CheckBox AL_CheckBox E_CheckBox
321 %x ROOT_Slider AL_Slider E_Slider
322 %x ROOT_RadialSlider AL_RadialSlider E_RadialSlider
323 %x ROOT_Text AL_Text E_Text
324 %x ROOT_Playlist AL_Playlist S_Playlist E_Playlist
329 char* statenames[IMPOSSIBLE];
331 void FleXML_init(void)
333 statenames[PROLOG] = NULL;
334 statenames[DOCTYPE] = NULL;
335 statenames[EPILOG] = NULL;
336 statenames[INCOMMENT] = NULL;
337 statenames[INPI] = NULL;
338 statenames[VALUE1] = NULL;
339 statenames[VALUE2] = NULL;
340 statenames[CDATA] = NULL;
341 statenames[ROOT_Theme] = NULL;
342 statenames[AL_Theme] = NULL;
343 statenames[S_Theme] = "Theme";
344 statenames[S_Theme_1] = "Theme";
345 statenames[S_Theme_2] = "Theme";
346 statenames[S_Theme_3] = "Theme";
347 statenames[E_Theme] = "Theme";
348 statenames[ROOT_Bitmap] = NULL;
349 statenames[AL_Bitmap] = NULL;
350 statenames[E_Bitmap] = "Bitmap";
351 statenames[ROOT_Event] = NULL;
352 statenames[AL_Event] = NULL;
353 statenames[E_Event] = "Event";
354 statenames[ROOT_Font] = NULL;
355 statenames[AL_Font] = NULL;
356 statenames[E_Font] = "Font";
357 statenames[ROOT_ThemeInfo] = NULL;
358 statenames[AL_ThemeInfo] = NULL;
359 statenames[E_ThemeInfo] = "ThemeInfo";
360 statenames[ROOT_Window] = NULL;
361 statenames[AL_Window] = NULL;
362 statenames[S_Window] = "Window";
363 statenames[S_Window_1] = "Window";
364 statenames[S_Window_2] = "Window";
365 statenames[E_Window] = "Window";
366 statenames[ROOT_Layout] = NULL;
367 statenames[AL_Layout] = NULL;
368 statenames[S_Layout] = "Layout";
369 statenames[E_Layout] = "Layout";
370 statenames[ROOT_Group] = NULL;
371 statenames[AL_Group] = NULL;
372 statenames[S_Group] = "Group";
373 statenames[S_Group_1] = "Group";
374 statenames[S_Group_2] = "Group";
375 statenames[E_Group] = "Group";
376 statenames[ROOT_Anchor] = NULL;
377 statenames[AL_Anchor] = NULL;
378 statenames[E_Anchor] = "Anchor";
379 statenames[ROOT_Image] = NULL;
380 statenames[AL_Image] = NULL;
381 statenames[E_Image] = "Image";
382 statenames[ROOT_Rectangle] = NULL;
383 statenames[AL_Rectangle] = NULL;
384 statenames[E_Rectangle] = "Rectangle";
385 statenames[ROOT_Button] = NULL;
386 statenames[AL_Button] = NULL;
387 statenames[E_Button] = "Button";
388 statenames[ROOT_CheckBox] = NULL;
389 statenames[AL_CheckBox] = NULL;
390 statenames[E_CheckBox] = "CheckBox";
391 statenames[ROOT_Slider] = NULL;
392 statenames[AL_Slider] = NULL;
393 statenames[E_Slider] = "Slider";
394 statenames[ROOT_RadialSlider] = NULL;
395 statenames[AL_RadialSlider] = NULL;
396 statenames[E_RadialSlider] = "RadialSlider";
397 statenames[ROOT_Text] = NULL;
398 statenames[AL_Text] = NULL;
399 statenames[E_Text] = "Text";
400 statenames[ROOT_Playlist] = NULL;
401 statenames[AL_Playlist] = NULL;
402 statenames[S_Playlist] = "Playlist";
403 statenames[E_Playlist] = "Playlist";
409 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
410 SET(PROLOG); FleXML_init();
412 /* COMMENTS and PIs: handled uniformly for efficiency. */
414 <ROOT_Theme,AL_Theme,S_Theme,S_Theme_1,S_Theme_2,S_Theme_3,E_Theme,ROOT_Bitmap,AL_Bitmap,E_Bitmap,ROOT_Event,AL_Event,E_Event,ROOT_Font,AL_Font,E_Font,ROOT_ThemeInfo,AL_ThemeInfo,E_ThemeInfo,ROOT_Window,AL_Window,S_Window,S_Window_1,S_Window_2,E_Window,ROOT_Layout,AL_Layout,S_Layout,E_Layout,ROOT_Group,AL_Group,S_Group,S_Group_1,S_Group_2,E_Group,ROOT_Anchor,AL_Anchor,E_Anchor,ROOT_Image,AL_Image,E_Image,ROOT_Rectangle,AL_Rectangle,E_Rectangle,ROOT_Button,AL_Button,E_Button,ROOT_CheckBox,AL_CheckBox,E_CheckBox,ROOT_Slider,AL_Slider,E_Slider,ROOT_RadialSlider,AL_RadialSlider,E_RadialSlider,ROOT_Text,AL_Text,E_Text,ROOT_Playlist,AL_Playlist,S_Playlist,E_Playlist,PROLOG,DOCTYPE,EPILOG>{
415 "<!--" ENTER(INCOMMENT);
423 <<EOF>> FAIL("EOF in comment.");
429 <<EOF>> FAIL("EOF in PI (processing instruction).");
432 /* SPACES: skipped uniformly */
434 <ROOT_Theme,AL_Theme,S_Theme,S_Theme_1,S_Theme_2,S_Theme_3,E_Theme,ROOT_Bitmap,AL_Bitmap,E_Bitmap,ROOT_Event,AL_Event,E_Event,ROOT_Font,AL_Font,E_Font,ROOT_ThemeInfo,AL_ThemeInfo,E_ThemeInfo,ROOT_Window,AL_Window,S_Window,S_Window_1,S_Window_2,E_Window,ROOT_Layout,AL_Layout,S_Layout,E_Layout,ROOT_Group,AL_Group,S_Group,S_Group_1,S_Group_2,E_Group,ROOT_Anchor,AL_Anchor,E_Anchor,ROOT_Image,AL_Image,E_Image,ROOT_Rectangle,AL_Rectangle,E_Rectangle,ROOT_Button,AL_Button,E_Button,ROOT_CheckBox,AL_CheckBox,E_CheckBox,ROOT_Slider,AL_Slider,E_Slider,ROOT_RadialSlider,AL_RadialSlider,E_RadialSlider,ROOT_Text,AL_Text,E_Text,ROOT_Playlist,AL_Playlist,S_Playlist,E_Playlist,PROLOG,DOCTYPE,EPILOG>{S} SKIP;
436 /* PROLOG: determine root element and process it. */
439 "<?xml"({S}version{Eq}(\'{VersionNum}\'|\"{VersionNum}\"))?"?>" SET(DOCTYPE);
440 "<?xml"[^>]*">" FAIL("Bad declaration %s.",yytext);
444 "<!DOCTYPE"{S}"Layout"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Layout);
445 "<!DOCTYPE"{S}"Event"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Event);
446 "<!DOCTYPE"{S}"Image"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Image);
447 "<!DOCTYPE"{S}"Playlist"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Playlist);
448 "<!DOCTYPE"{S}"Text"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Text);
449 "<!DOCTYPE"{S}"Rectangle"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Rectangle);
450 "<!DOCTYPE"{S}"Anchor"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Anchor);
451 "<!DOCTYPE"{S}"Group"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Group);
452 "<!DOCTYPE"{S}"Theme"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Theme);
453 "<!DOCTYPE"{S}"Font"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Font);
454 "<!DOCTYPE"{S}"RadialSlider"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_RadialSlider);
455 "<!DOCTYPE"{S}"ThemeInfo"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_ThemeInfo);
456 "<!DOCTYPE"{S}"Slider"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Slider);
457 "<!DOCTYPE"{S}"CheckBox"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_CheckBox);
458 "<!DOCTYPE"{S}"Button"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Button);
459 "<!DOCTYPE"{S}"Bitmap"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Bitmap);
460 "<!DOCTYPE"{S}"Window"{S}SYSTEM{S}("'skin.dtd'"|"\"skin.dtd\""){s}">" SET(ROOT_Window);
461 "<!"[^>-][^>]*">" FAIL("Bad declaration %s.",yytext);
462 . FAIL("Unexpected character `%c' in prolog.", yytext[0]);
463 <<EOF>> FAIL("EOF in prolog.");
466 /* RULES DERIVED FROM DTD. */
471 /* version CDATA "1.0"
474 * movealpha CDATA "255"
475 * fadetime CDATA "400"
478 <ROOT_Theme>"<Theme"{s} {
479 A_Theme_version = "1.0";
480 A_Theme_magnet = "15";
481 A_Theme_alpha = "255";
482 A_Theme_movealpha = "255";
483 A_Theme_fadetime = "400";
488 "version"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Theme_version);
489 "version"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Theme_version);
491 "magnet"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Theme_magnet);
492 "magnet"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Theme_magnet);
494 "alpha"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Theme_alpha);
495 "alpha"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Theme_alpha);
497 "movealpha"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Theme_movealpha);
498 "movealpha"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Theme_movealpha);
500 "fadetime"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Theme_fadetime);
501 "fadetime"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Theme_fadetime);
504 LEAVE; STag_Theme(); pcdata = NULL; ENTER(S_Theme);
506 "/>" FAIL("`Theme' element cannot be empty.");
507 . FAIL("Unexpected character `%c' in attribute list of Theme element.", yytext[0]);
508 {Name} FAIL("Bad attribute `%s' in `Theme' element start tag.",yytext);
509 <<EOF>> FAIL("EOF in attribute list of `Theme' element.");
512 <E_Theme,S_Theme_1,S_Theme_3>{
517 case ROOT_Theme: SET(EPILOG); break;
520 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Theme>' expected.",yytext);
521 . FAIL("Unexpected character `%c': `</Theme>' expected.",yytext[0]);
522 <<EOF>> FAIL("Premature EOF: `</Theme>' expected.");
525 /* <!-- main elements --> */
527 /* id CDATA #REQUIRED
528 * file CDATA #REQUIRED
529 * alphacolor CDATA #REQUIRED
532 <ROOT_Bitmap,S_Theme_2,S_Theme_1,S_Theme_3>"<Bitmap"{s} {
534 A_Bitmap_file = NULL;
535 A_Bitmap_alphacolor = NULL;
540 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Bitmap_id);
541 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Bitmap_id);
543 "file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Bitmap_file);
544 "file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Bitmap_file);
546 "alphacolor"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Bitmap_alphacolor);
547 "alphacolor"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Bitmap_alphacolor);
550 if (!A_Bitmap_id) FAIL("Required attribute `id' not set for `Bitmap' element.");
551 if (!A_Bitmap_file) FAIL("Required attribute `file' not set for `Bitmap' element.");
552 if (!A_Bitmap_alphacolor) FAIL("Required attribute `alphacolor' not set for `Bitmap' element.");
553 LEAVE; STag_Bitmap(); pcdata = NULL; ENTER(E_Bitmap);
556 if (!A_Bitmap_id) FAIL("Required attribute `id' not set for `Bitmap' element.");
557 if (!A_Bitmap_file) FAIL("Required attribute `file' not set for `Bitmap' element.");
558 if (!A_Bitmap_alphacolor) FAIL("Required attribute `alphacolor' not set for `Bitmap' element.");
559 LEAVE; STag_Bitmap(); pcdata = NULL; ETag_Bitmap();
561 case S_Theme_2: case S_Theme_1: case S_Theme_3: SET(S_Theme_3); break;
562 case ROOT_Bitmap: SET(EPILOG); break;
565 . FAIL("Unexpected character `%c' in attribute list of Bitmap element.", yytext[0]);
566 {Name} FAIL("Bad attribute `%s' in `Bitmap' element start tag.",yytext);
567 <<EOF>> FAIL("EOF in attribute list of `Bitmap' element.");
575 case S_Theme_2: case S_Theme_1: case S_Theme_3: SET(S_Theme_3); break;
576 case ROOT_Bitmap: SET(EPILOG); break;
579 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Bitmap>' expected.",yytext);
580 . FAIL("Unexpected character `%c': `</Bitmap>' expected.",yytext[0]);
581 <<EOF>> FAIL("Premature EOF: `</Bitmap>' expected.");
584 /* id CDATA #REQUIRED
585 * event CDATA #REQUIRED
589 <ROOT_Event,S_Theme_2,S_Theme_1,S_Theme_3>"<Event"{s} {
591 A_Event_event = NULL;
592 A_Event_key = "none";
597 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Event_id);
598 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Event_id);
600 "event"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Event_event);
601 "event"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Event_event);
603 "key"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Event_key);
604 "key"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Event_key);
607 if (!A_Event_id) FAIL("Required attribute `id' not set for `Event' element.");
608 if (!A_Event_event) FAIL("Required attribute `event' not set for `Event' element.");
609 LEAVE; STag_Event(); pcdata = NULL; ENTER(E_Event);
612 if (!A_Event_id) FAIL("Required attribute `id' not set for `Event' element.");
613 if (!A_Event_event) FAIL("Required attribute `event' not set for `Event' element.");
614 LEAVE; STag_Event(); pcdata = NULL; ETag_Event();
616 case S_Theme_2: case S_Theme_1: case S_Theme_3: SET(S_Theme_3); break;
617 case ROOT_Event: SET(EPILOG); break;
620 . FAIL("Unexpected character `%c' in attribute list of Event element.", yytext[0]);
621 {Name} FAIL("Bad attribute `%s' in `Event' element start tag.",yytext);
622 <<EOF>> FAIL("EOF in attribute list of `Event' element.");
630 case S_Theme_2: case S_Theme_1: case S_Theme_3: SET(S_Theme_3); break;
631 case ROOT_Event: SET(EPILOG); break;
634 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Event>' expected.",yytext);
635 . FAIL("Unexpected character `%c': `</Event>' expected.",yytext[0]);
636 <<EOF>> FAIL("Premature EOF: `</Event>' expected.");
639 /* id CDATA #REQUIRED
642 * color CDATA "#000000"
643 * italic CDATA "false"
644 * underline CDATA "false"
647 <ROOT_Font,S_Theme_2,S_Theme_1,S_Theme_3>"<Font"{s} {
649 A_Font_font = "arial";
651 A_Font_color = "#000000";
652 A_Font_italic = "false";
653 A_Font_underline = "false";
658 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Font_id);
659 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Font_id);
661 "font"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Font_font);
662 "font"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Font_font);
664 "size"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Font_size);
665 "size"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Font_size);
667 "color"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Font_color);
668 "color"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Font_color);
670 "italic"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Font_italic);
671 "italic"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Font_italic);
673 "underline"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Font_underline);
674 "underline"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Font_underline);
677 if (!A_Font_id) FAIL("Required attribute `id' not set for `Font' element.");
678 LEAVE; STag_Font(); pcdata = NULL; ENTER(E_Font);
681 if (!A_Font_id) FAIL("Required attribute `id' not set for `Font' element.");
682 LEAVE; STag_Font(); pcdata = NULL; ETag_Font();
684 case ROOT_Font: SET(EPILOG); break;
685 case S_Theme_2: case S_Theme_1: case S_Theme_3: SET(S_Theme_3); break;
688 . FAIL("Unexpected character `%c' in attribute list of Font element.", yytext[0]);
689 {Name} FAIL("Bad attribute `%s' in `Font' element start tag.",yytext);
690 <<EOF>> FAIL("EOF in attribute list of `Font' element.");
698 case ROOT_Font: SET(EPILOG); break;
699 case S_Theme_2: case S_Theme_1: case S_Theme_3: SET(S_Theme_3); break;
702 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Font>' expected.",yytext);
703 . FAIL("Unexpected character `%c': `</Font>' expected.",yytext[0]);
704 <<EOF>> FAIL("Premature EOF: `</Font>' expected.");
707 /* name CDATA #IMPLIED
708 * author CDATA #IMPLIED
709 * email CDATA #IMPLIED
710 * webpage CDATA #IMPLIED
713 <ROOT_ThemeInfo,S_Theme>"<ThemeInfo"{s} {
714 A_ThemeInfo_name = NULL;
715 A_ThemeInfo_author = NULL;
716 A_ThemeInfo_email = NULL;
717 A_ThemeInfo_webpage = NULL;
722 "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_ThemeInfo_name);
723 "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_ThemeInfo_name);
725 "author"{Eq}\' ENTER(VALUE1); BUFFERSET(A_ThemeInfo_author);
726 "author"{Eq}\" ENTER(VALUE2); BUFFERSET(A_ThemeInfo_author);
728 "email"{Eq}\' ENTER(VALUE1); BUFFERSET(A_ThemeInfo_email);
729 "email"{Eq}\" ENTER(VALUE2); BUFFERSET(A_ThemeInfo_email);
731 "webpage"{Eq}\' ENTER(VALUE1); BUFFERSET(A_ThemeInfo_webpage);
732 "webpage"{Eq}\" ENTER(VALUE2); BUFFERSET(A_ThemeInfo_webpage);
735 LEAVE; STag_ThemeInfo(); pcdata = NULL; ENTER(E_ThemeInfo);
738 LEAVE; STag_ThemeInfo(); pcdata = NULL; ETag_ThemeInfo();
740 case S_Theme: SET(S_Theme_1); break;
741 case ROOT_ThemeInfo: SET(EPILOG); break;
744 . FAIL("Unexpected character `%c' in attribute list of ThemeInfo element.", yytext[0]);
745 {Name} FAIL("Bad attribute `%s' in `ThemeInfo' element start tag.",yytext);
746 <<EOF>> FAIL("EOF in attribute list of `ThemeInfo' element.");
750 "</ThemeInfo"{s}">" {
754 case S_Theme: SET(S_Theme_1); break;
755 case ROOT_ThemeInfo: SET(EPILOG); break;
758 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</ThemeInfo>' expected.",yytext);
759 . FAIL("Unexpected character `%c': `</ThemeInfo>' expected.",yytext[0]);
760 <<EOF>> FAIL("Premature EOF: `</ThemeInfo>' expected.");
763 /* id CDATA #REQUIRED
764 * visible CDATA "true"
767 * dragdrop CDATA "true"
768 * playondrop CDATA "true"
771 <ROOT_Window,S_Theme_2,S_Theme_1,S_Theme_3>"<Window"{s} {
773 A_Window_visible = "true";
776 A_Window_dragdrop = "true";
777 A_Window_playondrop = "true";
782 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Window_id);
783 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Window_id);
785 "visible"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Window_visible);
786 "visible"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Window_visible);
788 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Window_x);
789 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Window_x);
791 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Window_y);
792 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Window_y);
794 "dragdrop"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Window_dragdrop);
795 "dragdrop"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Window_dragdrop);
797 "playondrop"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Window_playondrop);
798 "playondrop"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Window_playondrop);
801 if (!A_Window_id) FAIL("Required attribute `id' not set for `Window' element.");
802 LEAVE; STag_Window(); pcdata = NULL; ENTER(S_Window);
804 "/>" FAIL("`Window' element cannot be empty.");
805 . FAIL("Unexpected character `%c' in attribute list of Window element.", yytext[0]);
806 {Name} FAIL("Bad attribute `%s' in `Window' element start tag.",yytext);
807 <<EOF>> FAIL("EOF in attribute list of `Window' element.");
810 <S_Window_2,E_Window>{
815 case ROOT_Window: SET(EPILOG); break;
816 case S_Theme_2: case S_Theme_1: case S_Theme_3: SET(S_Theme_3); break;
819 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Window>' expected.",yytext);
820 . FAIL("Unexpected character `%c': `</Window>' expected.",yytext[0]);
821 <<EOF>> FAIL("Premature EOF: `</Window>' expected.");
825 * width CDATA #REQUIRED
826 * height CDATA #REQUIRED
827 * minwidth CDATA "-1"
828 * maxwidth CDATA "-1"
829 * minheight CDATA "-1"
830 * maxheight CDATA "-1"
833 <ROOT_Layout,S_Window,S_Window_1,S_Window_2>"<Layout"{s} {
834 A_Layout_id = "none";
835 A_Layout_width = NULL;
836 A_Layout_height = NULL;
837 A_Layout_minwidth = "-1";
838 A_Layout_maxwidth = "-1";
839 A_Layout_minheight = "-1";
840 A_Layout_maxheight = "-1";
845 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Layout_id);
846 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Layout_id);
848 "width"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Layout_width);
849 "width"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Layout_width);
851 "height"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Layout_height);
852 "height"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Layout_height);
854 "minwidth"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Layout_minwidth);
855 "minwidth"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Layout_minwidth);
857 "maxwidth"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Layout_maxwidth);
858 "maxwidth"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Layout_maxwidth);
860 "minheight"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Layout_minheight);
861 "minheight"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Layout_minheight);
863 "maxheight"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Layout_maxheight);
864 "maxheight"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Layout_maxheight);
867 if (!A_Layout_width) FAIL("Required attribute `width' not set for `Layout' element.");
868 if (!A_Layout_height) FAIL("Required attribute `height' not set for `Layout' element.");
869 LEAVE; STag_Layout(); pcdata = NULL; ENTER(S_Layout);
871 "/>" FAIL("`Layout' element cannot be empty.");
872 . FAIL("Unexpected character `%c' in attribute list of Layout element.", yytext[0]);
873 {Name} FAIL("Bad attribute `%s' in `Layout' element start tag.",yytext);
874 <<EOF>> FAIL("EOF in attribute list of `Layout' element.");
882 case S_Window: case S_Window_1: case S_Window_2: SET(S_Window_2); break;
883 case ROOT_Layout: SET(EPILOG); break;
886 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Layout>' expected.",yytext);
887 . FAIL("Unexpected character `%c': `</Layout>' expected.",yytext[0]);
888 <<EOF>> FAIL("Premature EOF: `</Layout>' expected.");
891 /* Rectangle|Anchor)+> */
897 <ROOT_Group,S_Group_2,S_Layout,S_Group_1,S_Group>"<Group"{s} {
904 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Group_x);
905 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Group_x);
907 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Group_y);
908 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Group_y);
911 LEAVE; STag_Group(); pcdata = NULL; ENTER(S_Group);
913 "/>" FAIL("`Group' element cannot be empty.");
914 . FAIL("Unexpected character `%c' in attribute list of Group element.", yytext[0]);
915 {Name} FAIL("Bad attribute `%s' in `Group' element start tag.",yytext);
916 <<EOF>> FAIL("EOF in attribute list of `Group' element.");
924 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
925 case S_Layout: SET(E_Layout); break;
926 case ROOT_Group: SET(EPILOG); break;
929 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Group>' expected.",yytext);
930 . FAIL("Unexpected character `%c': `</Group>' expected.",yytext[0]);
931 <<EOF>> FAIL("Premature EOF: `</Group>' expected.");
934 /* <!-- Anchors --> */
938 * priority CDATA #REQUIRED
942 <ROOT_Anchor,S_Group_2,S_Group_1,S_Group>"<Anchor"{s} {
945 A_Anchor_priority = NULL;
946 A_Anchor_range = "10";
951 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Anchor_x);
952 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Anchor_x);
954 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Anchor_y);
955 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Anchor_y);
957 "priority"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Anchor_priority);
958 "priority"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Anchor_priority);
960 "range"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Anchor_range);
961 "range"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Anchor_range);
964 if (!A_Anchor_priority) FAIL("Required attribute `priority' not set for `Anchor' element.");
965 LEAVE; STag_Anchor(); pcdata = NULL; ENTER(E_Anchor);
968 if (!A_Anchor_priority) FAIL("Required attribute `priority' not set for `Anchor' element.");
969 LEAVE; STag_Anchor(); pcdata = NULL; ETag_Anchor();
971 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
972 case ROOT_Anchor: SET(EPILOG); break;
975 . FAIL("Unexpected character `%c' in attribute list of Anchor element.", yytext[0]);
976 {Name} FAIL("Bad attribute `%s' in `Anchor' element start tag.",yytext);
977 <<EOF>> FAIL("EOF in attribute list of `Anchor' element.");
985 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
986 case ROOT_Anchor: SET(EPILOG); break;
989 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Anchor>' expected.",yytext);
990 . FAIL("Unexpected character `%c': `</Anchor>' expected.",yytext[0]);
991 <<EOF>> FAIL("Premature EOF: `</Anchor>' expected.");
994 /* <!-- Controls --> */
997 * visible CDATA "true"
1000 * lefttop CDATA "lefttop"
1001 * rightbottom CDATA "lefttop"
1002 * image CDATA #REQUIRED
1003 * onclick CDATA "none"
1007 <ROOT_Image,S_Group_2,S_Group_1,S_Group>"<Image"{s} {
1008 A_Image_id = "none";
1009 A_Image_visible = "true";
1012 A_Image_lefttop = "lefttop";
1013 A_Image_rightbottom = "lefttop";
1014 A_Image_image = NULL;
1015 A_Image_onclick = "none";
1016 A_Image_help = "\0";
1021 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Image_id);
1022 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Image_id);
1024 "visible"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Image_visible);
1025 "visible"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Image_visible);
1027 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Image_x);
1028 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Image_x);
1030 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Image_y);
1031 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Image_y);
1033 "lefttop"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Image_lefttop);
1034 "lefttop"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Image_lefttop);
1036 "rightbottom"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Image_rightbottom);
1037 "rightbottom"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Image_rightbottom);
1039 "image"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Image_image);
1040 "image"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Image_image);
1042 "onclick"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Image_onclick);
1043 "onclick"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Image_onclick);
1045 "help"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Image_help);
1046 "help"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Image_help);
1049 if (!A_Image_image) FAIL("Required attribute `image' not set for `Image' element.");
1050 LEAVE; STag_Image(); pcdata = NULL; ENTER(E_Image);
1053 if (!A_Image_image) FAIL("Required attribute `image' not set for `Image' element.");
1054 LEAVE; STag_Image(); pcdata = NULL; ETag_Image();
1056 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1057 case ROOT_Image: SET(EPILOG); break;
1060 . FAIL("Unexpected character `%c' in attribute list of Image element.", yytext[0]);
1061 {Name} FAIL("Bad attribute `%s' in `Image' element start tag.",yytext);
1062 <<EOF>> FAIL("EOF in attribute list of `Image' element.");
1070 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1071 case ROOT_Image: SET(EPILOG); break;
1074 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Image>' expected.",yytext);
1075 . FAIL("Unexpected character `%c': `</Image>' expected.",yytext[0]);
1076 <<EOF>> FAIL("Premature EOF: `</Image>' expected.");
1080 * visible CDATA "true"
1085 * color CDATA "#C0C0C0"
1086 * onclick CDATA "none"
1090 <ROOT_Rectangle,S_Group_2,S_Group_1,S_Group>"<Rectangle"{s} {
1091 A_Rectangle_id = "none";
1092 A_Rectangle_visible = "true";
1093 A_Rectangle_x = "\0";
1094 A_Rectangle_y = "\0";
1095 A_Rectangle_w = "50";
1096 A_Rectangle_h = "50";
1097 A_Rectangle_color = "#C0C0C0";
1098 A_Rectangle_onclick = "none";
1099 A_Rectangle_help = "\0";
1100 ENTER(AL_Rectangle);
1104 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Rectangle_id);
1105 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Rectangle_id);
1107 "visible"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Rectangle_visible);
1108 "visible"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Rectangle_visible);
1110 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Rectangle_x);
1111 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Rectangle_x);
1113 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Rectangle_y);
1114 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Rectangle_y);
1116 "w"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Rectangle_w);
1117 "w"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Rectangle_w);
1119 "h"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Rectangle_h);
1120 "h"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Rectangle_h);
1122 "color"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Rectangle_color);
1123 "color"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Rectangle_color);
1125 "onclick"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Rectangle_onclick);
1126 "onclick"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Rectangle_onclick);
1128 "help"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Rectangle_help);
1129 "help"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Rectangle_help);
1132 LEAVE; STag_Rectangle(); pcdata = NULL; ENTER(E_Rectangle);
1135 LEAVE; STag_Rectangle(); pcdata = NULL; ETag_Rectangle();
1137 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1138 case ROOT_Rectangle: SET(EPILOG); break;
1141 . FAIL("Unexpected character `%c' in attribute list of Rectangle element.", yytext[0]);
1142 {Name} FAIL("Bad attribute `%s' in `Rectangle' element start tag.",yytext);
1143 <<EOF>> FAIL("EOF in attribute list of `Rectangle' element.");
1147 "</Rectangle"{s}">" {
1151 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1152 case ROOT_Rectangle: SET(EPILOG); break;
1155 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Rectangle>' expected.",yytext);
1156 . FAIL("Unexpected character `%c': `</Rectangle>' expected.",yytext[0]);
1157 <<EOF>> FAIL("Premature EOF: `</Rectangle>' expected.");
1163 * lefttop CDATA "lefttop"
1164 * rightbottom CDATA "lefttop"
1165 * up CDATA #REQUIRED
1168 * action CDATA "none"
1169 * tooltiptext CDATA "\0"
1173 <ROOT_Button,S_Group_2,S_Group_1,S_Group>"<Button"{s} {
1174 A_Button_id = "none";
1177 A_Button_lefttop = "lefttop";
1178 A_Button_rightbottom = "lefttop";
1180 A_Button_down = "none";
1181 A_Button_over = "none";
1182 A_Button_action = "none";
1183 A_Button_tooltiptext = "\0";
1184 A_Button_help = "\0";
1189 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_id);
1190 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_id);
1192 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_x);
1193 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_x);
1195 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_y);
1196 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_y);
1198 "lefttop"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_lefttop);
1199 "lefttop"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_lefttop);
1201 "rightbottom"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_rightbottom);
1202 "rightbottom"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_rightbottom);
1204 "up"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_up);
1205 "up"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_up);
1207 "down"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_down);
1208 "down"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_down);
1210 "over"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_over);
1211 "over"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_over);
1213 "action"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_action);
1214 "action"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_action);
1216 "tooltiptext"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_tooltiptext);
1217 "tooltiptext"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_tooltiptext);
1219 "help"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Button_help);
1220 "help"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Button_help);
1223 if (!A_Button_up) FAIL("Required attribute `up' not set for `Button' element.");
1224 LEAVE; STag_Button(); pcdata = NULL; ENTER(E_Button);
1227 if (!A_Button_up) FAIL("Required attribute `up' not set for `Button' element.");
1228 LEAVE; STag_Button(); pcdata = NULL; ETag_Button();
1230 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1231 case ROOT_Button: SET(EPILOG); break;
1234 . FAIL("Unexpected character `%c' in attribute list of Button element.", yytext[0]);
1235 {Name} FAIL("Bad attribute `%s' in `Button' element start tag.",yytext);
1236 <<EOF>> FAIL("EOF in attribute list of `Button' element.");
1244 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1245 case ROOT_Button: SET(EPILOG); break;
1248 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Button>' expected.",yytext);
1249 . FAIL("Unexpected character `%c': `</Button>' expected.",yytext[0]);
1250 <<EOF>> FAIL("Premature EOF: `</Button>' expected.");
1256 * lefttop CDATA "lefttop"
1257 * rightbottom CDATA "lefttop"
1258 * up1 CDATA #REQUIRED
1259 * down1 CDATA "none"
1260 * over1 CDATA "none"
1261 * up2 CDATA #REQUIRED
1262 * down2 CDATA "none"
1263 * over2 CDATA "none"
1264 * state CDATA #REQUIRED
1265 * action1 CDATA "none"
1266 * action2 CDATA "none"
1267 * tooltiptext1 CDATA "\0"
1268 * tooltiptext2 CDATA "\0"
1272 <ROOT_CheckBox,S_Group_2,S_Group_1,S_Group>"<CheckBox"{s} {
1273 A_CheckBox_id = "none";
1274 A_CheckBox_x = "\0";
1275 A_CheckBox_y = "\0";
1276 A_CheckBox_lefttop = "lefttop";
1277 A_CheckBox_rightbottom = "lefttop";
1278 A_CheckBox_up1 = NULL;
1279 A_CheckBox_down1 = "none";
1280 A_CheckBox_over1 = "none";
1281 A_CheckBox_up2 = NULL;
1282 A_CheckBox_down2 = "none";
1283 A_CheckBox_over2 = "none";
1284 A_CheckBox_state = NULL;
1285 A_CheckBox_action1 = "none";
1286 A_CheckBox_action2 = "none";
1287 A_CheckBox_tooltiptext1 = "\0";
1288 A_CheckBox_tooltiptext2 = "\0";
1289 A_CheckBox_help = "\0";
1294 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_id);
1295 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_id);
1297 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_x);
1298 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_x);
1300 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_y);
1301 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_y);
1303 "lefttop"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_lefttop);
1304 "lefttop"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_lefttop);
1306 "rightbottom"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_rightbottom);
1307 "rightbottom"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_rightbottom);
1309 "up1"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_up1);
1310 "up1"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_up1);
1312 "down1"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_down1);
1313 "down1"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_down1);
1315 "over1"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_over1);
1316 "over1"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_over1);
1318 "up2"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_up2);
1319 "up2"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_up2);
1321 "down2"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_down2);
1322 "down2"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_down2);
1324 "over2"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_over2);
1325 "over2"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_over2);
1327 "state"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_state);
1328 "state"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_state);
1330 "action1"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_action1);
1331 "action1"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_action1);
1333 "action2"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_action2);
1334 "action2"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_action2);
1336 "tooltiptext1"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_tooltiptext1);
1337 "tooltiptext1"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_tooltiptext1);
1339 "tooltiptext2"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_tooltiptext2);
1340 "tooltiptext2"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_tooltiptext2);
1342 "help"{Eq}\' ENTER(VALUE1); BUFFERSET(A_CheckBox_help);
1343 "help"{Eq}\" ENTER(VALUE2); BUFFERSET(A_CheckBox_help);
1346 if (!A_CheckBox_up1) FAIL("Required attribute `up1' not set for `CheckBox' element.");
1347 if (!A_CheckBox_up2) FAIL("Required attribute `up2' not set for `CheckBox' element.");
1348 if (!A_CheckBox_state) FAIL("Required attribute `state' not set for `CheckBox' element.");
1349 LEAVE; STag_CheckBox(); pcdata = NULL; ENTER(E_CheckBox);
1352 if (!A_CheckBox_up1) FAIL("Required attribute `up1' not set for `CheckBox' element.");
1353 if (!A_CheckBox_up2) FAIL("Required attribute `up2' not set for `CheckBox' element.");
1354 if (!A_CheckBox_state) FAIL("Required attribute `state' not set for `CheckBox' element.");
1355 LEAVE; STag_CheckBox(); pcdata = NULL; ETag_CheckBox();
1357 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1358 case ROOT_CheckBox: SET(EPILOG); break;
1361 . FAIL("Unexpected character `%c' in attribute list of CheckBox element.", yytext[0]);
1362 {Name} FAIL("Bad attribute `%s' in `CheckBox' element start tag.",yytext);
1363 <<EOF>> FAIL("EOF in attribute list of `CheckBox' element.");
1367 "</CheckBox"{s}">" {
1371 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1372 case ROOT_CheckBox: SET(EPILOG); break;
1375 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</CheckBox>' expected.",yytext);
1376 . FAIL("Unexpected character `%c': `</CheckBox>' expected.",yytext[0]);
1377 <<EOF>> FAIL("Premature EOF: `</CheckBox>' expected.");
1381 * visible CDATA "true"
1384 * lefttop CDATA "lefttop"
1385 * rightbottom CDATA "lefttop"
1386 * up CDATA #REQUIRED
1389 * points CDATA #REQUIRED
1390 * thickness CDATA "10"
1391 * value CDATA "none"
1392 * tooltiptext CDATA "\0"
1396 <ROOT_Slider,S_Playlist,S_Group_2,S_Group_1,S_Group>"<Slider"{s} {
1397 A_Slider_id = "none";
1398 A_Slider_visible = "true";
1401 A_Slider_lefttop = "lefttop";
1402 A_Slider_rightbottom = "lefttop";
1404 A_Slider_down = "none";
1405 A_Slider_over = "none";
1406 A_Slider_points = NULL;
1407 A_Slider_thickness = "10";
1408 A_Slider_value = "none";
1409 A_Slider_tooltiptext = "\0";
1410 A_Slider_help = "\0";
1415 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_id);
1416 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_id);
1418 "visible"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_visible);
1419 "visible"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_visible);
1421 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_x);
1422 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_x);
1424 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_y);
1425 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_y);
1427 "lefttop"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_lefttop);
1428 "lefttop"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_lefttop);
1430 "rightbottom"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_rightbottom);
1431 "rightbottom"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_rightbottom);
1433 "up"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_up);
1434 "up"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_up);
1436 "down"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_down);
1437 "down"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_down);
1439 "over"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_over);
1440 "over"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_over);
1442 "points"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_points);
1443 "points"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_points);
1445 "thickness"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_thickness);
1446 "thickness"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_thickness);
1448 "value"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_value);
1449 "value"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_value);
1451 "tooltiptext"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_tooltiptext);
1452 "tooltiptext"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_tooltiptext);
1454 "help"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Slider_help);
1455 "help"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Slider_help);
1458 if (!A_Slider_up) FAIL("Required attribute `up' not set for `Slider' element.");
1459 if (!A_Slider_points) FAIL("Required attribute `points' not set for `Slider' element.");
1460 LEAVE; STag_Slider(); pcdata = NULL; ENTER(E_Slider);
1463 if (!A_Slider_up) FAIL("Required attribute `up' not set for `Slider' element.");
1464 if (!A_Slider_points) FAIL("Required attribute `points' not set for `Slider' element.");
1465 LEAVE; STag_Slider(); pcdata = NULL; ETag_Slider();
1467 case S_Playlist: SET(E_Playlist); break;
1468 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1469 case ROOT_Slider: SET(EPILOG); break;
1472 . FAIL("Unexpected character `%c' in attribute list of Slider element.", yytext[0]);
1473 {Name} FAIL("Bad attribute `%s' in `Slider' element start tag.",yytext);
1474 <<EOF>> FAIL("EOF in attribute list of `Slider' element.");
1482 case S_Playlist: SET(E_Playlist); break;
1483 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1484 case ROOT_Slider: SET(EPILOG); break;
1487 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Slider>' expected.",yytext);
1488 . FAIL("Unexpected character `%c': `</Slider>' expected.",yytext[0]);
1489 <<EOF>> FAIL("Premature EOF: `</Slider>' expected.");
1493 * visible CDATA "true"
1496 * lefttop CDATA "lefttop"
1497 * rightbottom CDATA "lefttop"
1498 * sequence CDATA #REQUIRED
1499 * nbimages CDATA #REQUIRED
1500 * minangle CDATA "\0"
1501 * maxangle CDATA "360"
1502 * value CDATA "none"
1503 * tooltiptext CDATA "\0"
1507 <ROOT_RadialSlider,S_Group_2,S_Group_1,S_Group>"<RadialSlider"{s} {
1508 A_RadialSlider_id = "none";
1509 A_RadialSlider_visible = "true";
1510 A_RadialSlider_x = "\0";
1511 A_RadialSlider_y = "\0";
1512 A_RadialSlider_lefttop = "lefttop";
1513 A_RadialSlider_rightbottom = "lefttop";
1514 A_RadialSlider_sequence = NULL;
1515 A_RadialSlider_nbimages = NULL;
1516 A_RadialSlider_minangle = "\0";
1517 A_RadialSlider_maxangle = "360";
1518 A_RadialSlider_value = "none";
1519 A_RadialSlider_tooltiptext = "\0";
1520 A_RadialSlider_help = "\0";
1521 ENTER(AL_RadialSlider);
1525 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_id);
1526 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_id);
1528 "visible"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_visible);
1529 "visible"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_visible);
1531 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_x);
1532 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_x);
1534 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_y);
1535 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_y);
1537 "lefttop"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_lefttop);
1538 "lefttop"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_lefttop);
1540 "rightbottom"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_rightbottom);
1541 "rightbottom"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_rightbottom);
1543 "sequence"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_sequence);
1544 "sequence"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_sequence);
1546 "nbimages"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_nbimages);
1547 "nbimages"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_nbimages);
1549 "minangle"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_minangle);
1550 "minangle"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_minangle);
1552 "maxangle"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_maxangle);
1553 "maxangle"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_maxangle);
1555 "value"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_value);
1556 "value"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_value);
1558 "tooltiptext"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_tooltiptext);
1559 "tooltiptext"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_tooltiptext);
1561 "help"{Eq}\' ENTER(VALUE1); BUFFERSET(A_RadialSlider_help);
1562 "help"{Eq}\" ENTER(VALUE2); BUFFERSET(A_RadialSlider_help);
1565 if (!A_RadialSlider_sequence) FAIL("Required attribute `sequence' not set for `RadialSlider' element.");
1566 if (!A_RadialSlider_nbimages) FAIL("Required attribute `nbimages' not set for `RadialSlider' element.");
1567 LEAVE; STag_RadialSlider(); pcdata = NULL; ENTER(E_RadialSlider);
1570 if (!A_RadialSlider_sequence) FAIL("Required attribute `sequence' not set for `RadialSlider' element.");
1571 if (!A_RadialSlider_nbimages) FAIL("Required attribute `nbimages' not set for `RadialSlider' element.");
1572 LEAVE; STag_RadialSlider(); pcdata = NULL; ETag_RadialSlider();
1574 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1575 case ROOT_RadialSlider: SET(EPILOG); break;
1578 . FAIL("Unexpected character `%c' in attribute list of RadialSlider element.", yytext[0]);
1579 {Name} FAIL("Bad attribute `%s' in `RadialSlider' element start tag.",yytext);
1580 <<EOF>> FAIL("EOF in attribute list of `RadialSlider' element.");
1584 "</RadialSlider"{s}">" {
1586 ETag_RadialSlider();
1588 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1589 case ROOT_RadialSlider: SET(EPILOG); break;
1592 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</RadialSlider>' expected.",yytext);
1593 . FAIL("Unexpected character `%c': `</RadialSlider>' expected.",yytext[0]);
1594 <<EOF>> FAIL("Premature EOF: `</RadialSlider>' expected.");
1598 * visible CDATA "true"
1602 * font CDATA #REQUIRED
1603 * align CDATA "left"
1605 * display CDATA "none"
1606 * scroll CDATA "true"
1607 * scrollspace CDATA "20"
1611 <ROOT_Text,S_Group_2,S_Group_1,S_Group>"<Text"{s} {
1613 A_Text_visible = "true";
1618 A_Text_align = "left";
1619 A_Text_width = "\0";
1620 A_Text_display = "none";
1621 A_Text_scroll = "true";
1622 A_Text_scrollspace = "20";
1628 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_id);
1629 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_id);
1631 "visible"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_visible);
1632 "visible"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_visible);
1634 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_x);
1635 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_x);
1637 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_y);
1638 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_y);
1640 "text"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_text);
1641 "text"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_text);
1643 "font"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_font);
1644 "font"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_font);
1646 "align"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_align);
1647 "align"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_align);
1649 "width"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_width);
1650 "width"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_width);
1652 "display"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_display);
1653 "display"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_display);
1655 "scroll"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_scroll);
1656 "scroll"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_scroll);
1658 "scrollspace"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_scrollspace);
1659 "scrollspace"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_scrollspace);
1661 "help"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Text_help);
1662 "help"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Text_help);
1665 if (!A_Text_font) FAIL("Required attribute `font' not set for `Text' element.");
1666 LEAVE; STag_Text(); pcdata = NULL; ENTER(E_Text);
1669 if (!A_Text_font) FAIL("Required attribute `font' not set for `Text' element.");
1670 LEAVE; STag_Text(); pcdata = NULL; ETag_Text();
1672 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1673 case ROOT_Text: SET(EPILOG); break;
1676 . FAIL("Unexpected character `%c' in attribute list of Text element.", yytext[0]);
1677 {Name} FAIL("Bad attribute `%s' in `Text' element start tag.",yytext);
1678 <<EOF>> FAIL("EOF in attribute list of `Text' element.");
1686 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1687 case ROOT_Text: SET(EPILOG); break;
1690 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Text>' expected.",yytext);
1691 . FAIL("Unexpected character `%c': `</Text>' expected.",yytext[0]);
1692 <<EOF>> FAIL("Premature EOF: `</Text>' expected.");
1695 /* id CDATA #REQUIRED
1696 * visible CDATA "true"
1701 * lefttop CDATA "lefttop"
1702 * rightbottom CDATA "lefttop"
1703 * font CDATA #REQUIRED
1704 * var CDATA "playlist"
1705 * fgcolor CDATA "#000000"
1706 * playcolor CDATA "#FF0000"
1707 * bgcolor1 CDATA "#FFFFFF"
1708 * bgcolor2 CDATA "#FFFFFF"
1709 * selcolor CDATA "#0000FF"
1713 <ROOT_Playlist,S_Group_2,S_Group_1,S_Group>"<Playlist"{s} {
1714 A_Playlist_id = NULL;
1715 A_Playlist_visible = "true";
1716 A_Playlist_x = "\0";
1717 A_Playlist_y = "\0";
1718 A_Playlist_width = "\0";
1719 A_Playlist_height = "\0";
1720 A_Playlist_lefttop = "lefttop";
1721 A_Playlist_rightbottom = "lefttop";
1722 A_Playlist_font = NULL;
1723 A_Playlist_var = "playlist";
1724 A_Playlist_fgcolor = "#000000";
1725 A_Playlist_playcolor = "#FF0000";
1726 A_Playlist_bgcolor1 = "#FFFFFF";
1727 A_Playlist_bgcolor2 = "#FFFFFF";
1728 A_Playlist_selcolor = "#0000FF";
1729 A_Playlist_help = "\0";
1734 "id"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_id);
1735 "id"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_id);
1737 "visible"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_visible);
1738 "visible"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_visible);
1740 "x"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_x);
1741 "x"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_x);
1743 "y"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_y);
1744 "y"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_y);
1746 "width"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_width);
1747 "width"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_width);
1749 "height"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_height);
1750 "height"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_height);
1752 "lefttop"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_lefttop);
1753 "lefttop"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_lefttop);
1755 "rightbottom"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_rightbottom);
1756 "rightbottom"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_rightbottom);
1758 "font"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_font);
1759 "font"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_font);
1761 "var"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_var);
1762 "var"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_var);
1764 "fgcolor"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_fgcolor);
1765 "fgcolor"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_fgcolor);
1767 "playcolor"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_playcolor);
1768 "playcolor"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_playcolor);
1770 "bgcolor1"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_bgcolor1);
1771 "bgcolor1"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_bgcolor1);
1773 "bgcolor2"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_bgcolor2);
1774 "bgcolor2"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_bgcolor2);
1776 "selcolor"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_selcolor);
1777 "selcolor"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_selcolor);
1779 "help"{Eq}\' ENTER(VALUE1); BUFFERSET(A_Playlist_help);
1780 "help"{Eq}\" ENTER(VALUE2); BUFFERSET(A_Playlist_help);
1783 if (!A_Playlist_id) FAIL("Required attribute `id' not set for `Playlist' element.");
1784 if (!A_Playlist_font) FAIL("Required attribute `font' not set for `Playlist' element.");
1785 LEAVE; STag_Playlist(); pcdata = NULL; ENTER(S_Playlist);
1787 "/>" FAIL("`Playlist' element cannot be empty.");
1788 . FAIL("Unexpected character `%c' in attribute list of Playlist element.", yytext[0]);
1789 {Name} FAIL("Bad attribute `%s' in `Playlist' element start tag.",yytext);
1790 <<EOF>> FAIL("EOF in attribute list of `Playlist' element.");
1794 "</Playlist"{s}">" {
1798 case S_Group_2: case S_Group_1: case S_Group: SET(S_Group_2); break;
1799 case ROOT_Playlist: SET(EPILOG); break;
1802 "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</Playlist>' expected.",yytext);
1803 . FAIL("Unexpected character `%c': `</Playlist>' expected.",yytext[0]);
1804 <<EOF>> FAIL("Premature EOF: `</Playlist>' expected.");
1807 /* EPILOG: after the root element. */
1810 . FAIL("Unexpected character `%c' after document.", yytext[0]);
1814 /* CHARACTER DATA. */
1816 <IMPOSSIBLE,VALUE1,VALUE2>{
1817 /* Non-defined standard entities... */
1818 "&" BUFFERPUTC('&');
1819 "<" BUFFERPUTC('<');
1820 ">" BUFFERPUTC('>');
1821 "'" BUFFERPUTC('\'');
1822 """ BUFFERPUTC('"');
1824 /* Character entities. */
1825 "&#"[[:digit:]]+";" BUFFERPUTC((unsigned char)atoi(yytext+2));
1826 "&#x"[[:xdigit:]]+";" BUFFERPUTC((unsigned char)strtol(yytext+3,NULL,16));
1829 <IMPOSSIBLE,VALUE1,VALUE2,CDATA>{
1833 "\n\r" BUFFERPUTC('\n');
1837 "<![CDATA[" ENTER(CDATA);
1838 "]]>" FAIL("Unexpected `]]>' in character data.");
1842 \' BUFFERDONE; LEAVE;
1843 <<EOF>> FAIL("EOF in literal (\"'\" expected).");
1847 \" BUFFERDONE; LEAVE;
1848 <<EOF>> FAIL("EOF in literal (`\"' expected).");
1851 <IMPOSSIBLE,VALUE1,VALUE2>{
1852 [^<&] BUFFERPUTC(yytext[0]);
1853 [<&] FAIL("Spurious `%c' in character data.",yytext[0]);
1858 "]]" BUFFERPUTC(yytext[0]); BUFFERPUTC(yytext[1]);
1859 . BUFFERPUTC(yytext[0]);
1860 <<EOF>> FAIL("EOF in CDATA section.");
1863 /* Impossible rules to avoid warnings from flex(1). */
1865 <INITIAL,IMPOSSIBLE>{
1866 .|[\n] FAIL("The Impossible Happened: INITIAL or IMPOSSIBLE state entered?");
1871 /* Element context stack lookup. */
1872 int element_context(int i)
1874 return (0<i && i<yy_start_stack_depth
1875 ? yy_start_stack[yy_start_stack_ptr - i]
1880 void print_yy_stack(char* fmt, ...)
1882 int i = 0; va_list ap; va_start(ap, fmt);
1883 vfprintf(stderr, fmt, ap);
1884 for (i=1; i<yy_start_stack_ptr; i++)
1885 fprintf(stderr, "%s/", statenames[yy_start_stack[i]]);
1886 fprintf(stderr,"%s\n", statenames[YY_START]);
1890 static void debug_enter(int state, char* statename) {
1891 yy_push_state(state);
1892 if (yy_flex_debug) print_yy_stack("--ENTER(%s) : ",statename);
1895 static void debug_leave(void) {
1896 if (yy_flex_debug) print_yy_stack("--LEAVE : ");
1900 static void debug_set(int state, char* statename) {
1902 if (yy_flex_debug) print_yy_stack("--SET(%s) : ",statename);
1907 static int fail(const char* fmt, ...)
1909 va_list ap; va_start(ap, fmt);
1910 #ifdef FLEXML_yylineno
1911 fprintf(stderr, "Invalid XML (XML input line %d, state %d): ", yylineno, YY_START);
1913 fprintf(stderr, "Invalid XML (state %d): ",YY_START);
1915 vfprintf(stderr, fmt, ap);
1916 fprintf(stderr, "\n");