source: trunk/zoo-kernel/service_conf.l @ 9

Last change on this file since 9 was 9, checked in by djay, 14 years ago

Update of both ZOO Kernel and ZOO Services (ogr base-vect-ops ServicesProvider?).
All the ZCFG files have been corrected to remove all references to wrong metadata (Test = Demo) to avoid validation issues.
Main Memory leaks has been removed from this version.
Addition of the Simplify Service in the C ogr base-vect-ops ServicesProvider? and addition of the Python version (without Simplify).
Update of the configure.ac and Makefile.in to follow dicussions on the mailing list and ensure to use our cgic206 and not another one, path to our cgic library is now directly in the Makefile.in file.
Accept the "-" character to name inputs, to solve issue on GRASS 7 integration.
Addition of the extension keyword for ZCFG file to be able to store resulting outputs in a file name using the extension suffix.
This version after a testing period shall be considerate as 1.0.1 version of the ZOO Project.

File size: 7.2 KB
Line 
1/* pour pouvoir acceder au numero de ligne dans bison */
2%option noyywrap
3%option yylineno
4
5
6%{
7//======================================================
8/**
9
10 fichier flex de verification xml
11 ter d'analyse syntaxique 2006-2007
12 ==================================
13 
14 auteurs:
15 Jean-Marie CODOL
16   &
17 Naitan GROLLEMUND
18
19
20
21
22======
23 ce fichier est li�a 3 autres fichiers :
24 parser.y
25 makefile
26 README
27 
28 pour compiler ce projet :
29          linux : taper $make all
30          windows : ouvrir avec dev-c++, configurer le makefile du projet et compiler
31                    naviguer avec la ligne de commande jusqu'au repertoire.
32======
33
34
35 pour plus d'informations, voir le README
36
37
38**/
39//======================================================
40
41
42//======================================================
43/* pour avoir acces a strdup() */
44/* en effet, il faut garder une trace de la valeur */
45/* car yytext va varier et on ne pourra plus reconnaitre les */
46/* identifiants si on ne copie pas ces valeurs */
47#include <string.h>
48
49//======================================================
50/* pour la liaison avec bison */
51#include "service_conf.tab.h"
52
53//======================================================
54/* afficher ou pas une trace : */
55#ifdef DEBUG_SERVICE_CONF
56int affichetrace = 1;
57#else
58int affichetrace = 0;
59#endif
60//======================================================
61
62
63//======================================================
64/* on a l interdiction de mettre un commentaire avant une declaration : */
65int attentionImpossibleDeTrouverXMLDeclapres = 0 ;
66//======================================================
67
68//======================================================
69/* on a l interdiction de mettre un pi avant une declaration : */
70int attentionImpossibleDeTrouverPIapres = 0 ;
71//======================================================
72
73%}
74
75
76/*====================================================*/
77/*====================================================*/
78/* Les Separateurs xml */
79/*====================================================*/
80S               [ \t\r\n]+
81/*====================================================*/
82
83
84
85
86/*====================================================*/
87/* CharRef regle 66 */
88/*====================================================*/
89CharRef         "&#"[0-9]+";"|"&#x"[0-9a-fA-F]+";"
90/*====================================================*/
91
92
93
94
95/*====================================================*/
96/*   espaces? '=' espaces?    regle 25  */
97/* si on veut pouvoir utiliser S dans bison, */
98/* il faut cr�r au moins une autre start condition */
99/* comme on n'utilise "egalevolue" que pour version et encoding */
100/* il est pr��able de rajouter cette macro */
101/*====================================================*/
102egalevolue              {S}?"="{S}?
103/*====================================================*/
104
105
106
107
108/*====================================================*/
109/* Name regle 5 */
110/*====================================================*/
111/*** Name               [a-zA-Z_:][a-zA-Z0-9.\-_:]* ***/
112Name            ([_:]|[\x41-\x5A]|[\x61-\x7A]|[\xC0-\xD6]|[\xD8-\xF6]|[\xF8-\xFF])(([\x41-\x5A]|[\x61-\x7A]|[\xC0-\xD6]|[\xD8-\xF6]|[\xF8-\xFF])|[0-9.\-_:])*
113/*====================================================*/
114
115
116
117
118
119/*====================================================*/
120/* chardata  regle 14 */
121/*====================================================*/
122/**chardata     [a-zA-Z0-9_\-.:" "\"\'\\]***/
123chardata        [^<]*
124/*====================================================*/
125attname [a-zA-Z0-9_\-]+
126attvalue1       [\*\+,;@a-zA-Z0-9_\-::.:" "\"\'/\\\(\)]+
127
128
129
130
131
132/*====================================================*/
133/* attvalue regle 10 */
134/*====================================================*/
135/* attvalue             \"([^"&]|{CharRef})*\"|\'([^'&]|{CharRef})*\' */
136/* pas tr� classe mais ca marche . */
137attvalue                \"[^"]*\"|\'[^']*\'\(\)
138/*====================================================*/
139
140whitespace                      [ ]{0,}
141whitesp                      [ ]
142newline                 [\r\n]|[\n]
143newlines                 [\r\n]{1,}|[\n]{1,}
144
145
146/*====================================================*/
147/* initial = de debut a ?> du prolog ; DANSBALISE = dans une balise ; HORSBALISE = hors d'une balise */
148/*====================================================*/
149%x DANSBALISE HORSBALISE PAIRSTART
150/*====================================================*/
151
152
153
154
155%%
156
157"\n" {  if (affichetrace==1) fprintf (stderr,"\n\nNEWLINE\n") ;return NEWLINE;}
158
159{newline}+{whitesp}*                    {  if (affichetrace==1) fprintf (stderr,"\n\nNEWLINE 1\n") ; return NEWLINE;}
160
161<INITIAL,HORSBALISE>"["{attname}"]"             {  srlval.chaine=yytext;return ANID; }
162
163<INITIAL,HORSBALISE>{attname}             {  srlval.chaine=yytext; return SPAIR; }
164
165<PAIRSTART,HORSBALISE>{attvalue1}             { srlval.chaine=yytext;/*BEGIN(INITIAL);*/ return EPAIR;}
166
167<PAIRSTART,INITIAL,HORSBALISE>{whitesp}*"="{whitesp}*             {  BEGIN(PAIRSTART);}
168
169<PAIRSTART,INITIAL,HORSBALISE,DANSBALISE>{newline}+{whitesp}*             { BEGIN(INITIAL);  return NEWLINE;}
170
171<INITIAL>"<?"[Xx][Mm][Ll]  {   if (attentionImpossibleDeTrouverXMLDeclapres == 1 || attentionImpossibleDeTrouverPIapres == 1) {/* il y a eut un commentaire ou une balise applicative avant la declaration xml */ fprintf(stderr,"\nerror : a la ligne %d : il y a eut un commentaire ou un PI avant la declaration xml\n",srlineno); exit (10) ; } ; return STARTXMLDECL;}
172
173<INITIAL>"version"{egalevolue}\"1.0\"|"version"{egalevolue}\'1.0\'  { return VERSIONDECL;  }
174<INITIAL>"version"{egalevolue}\"[^"]*\"|"version"{egalevolue}\'[^']*\'  {/* erreur de version encoding */ fprintf(stderr,"\nerror : a la ligne %d : la version xml n est pas reconnue : %s\n",srlineno,yytext); exit (9) ; }
175
176
177<INITIAL>"encoding"{egalevolue}\"[Ii][Ss][Oo]"-8859-1"\"|"encoding"{egalevolue}\'[Ii][Ss][Oo]"-8859-1"\'  { return ENCODINGDECL;}
178<INITIAL>"encoding"{egalevolue}\"[^"]*\"|"encoding"{egalevolue}\'[^']*\'  {/* erreur de version encoding */     fprintf(stderr,"\nerror : a la ligne %d : la version d encodage n est pas reconnue : %s\n",srlineno,yytext); exit (8) ; }
179
180
181<INITIAL>"standalone"{egalevolue}\"yes\"|"standalone"{egalevolue}\'yes\'|"standalone"{egalevolue}\"no\"|"standalone"{egalevolue}\'no\'  { return SDDECL;}
182
183<INITIAL>"standalone"{egalevolue}\"[^"]*\"|"standalone"{egalevolue}\'[^']*\'|"standalone"{egalevolue}\"[^"]*\"|"standalone"{egalevolue}\'[^']*\'  { /* erreur de version encoding */    fprintf(stderr,"\nerror : a la ligne %d : la version standalone n est pas reconnue : %s\n",srlineno,yytext); exit (7) ; }
184
185
186<INITIAL>"?>"  { BEGIN(HORSBALISE); return ENDXMLDECL;}
187
188
189<DANSBALISE,INITIAL,HORSBALISE>{S}   {  }
190
191
192<HORSBALISE>"<?"[Xx][Mm][Ll]{S}({S}|{chardata})*"?>"|"<?"[Xx][Mm][Ll]"?>"       { return PIERROR;}
193<INITIAL,HORSBALISE>"<?"([^xX]|([xX][^mM])|([xX][mM][^lL]))({S}|([^?]|("?"[^>])))*"?>"          { attentionImpossibleDeTrouverPIapres=1 ; return PI;}
194
195
196<INITIAL,HORSBALISE>{newline}*"<"                   { BEGIN(DANSBALISE); return INFCAR;}
197
198
199<DANSBALISE>">"                 { BEGIN(HORSBALISE);return SUPCAR;}
200
201
202<DANSBALISE>"/"         {return SLASH;}
203
204
205<DANSBALISE>{egalevolue}                        {return Eq;}
206
207
208<DANSBALISE>{Name}                      {srlval.chaine=strdup(yytext);return ID;}
209
210
211<DANSBALISE>{attvalue}          {return ATTVALUE;}
212
213
214<INITIAL,HORSBALISE>"<!--"([^-]|"-"[^-])*"-->"          {attentionImpossibleDeTrouverXMLDeclapres=1; }
215
216
217<INITIAL,DANSBALISE,HORSBALISE>.|\n     {fprintf(stderr,"error : ligne %d : caractere non reconnu '%s'\n",srlineno,yytext);}
218
219%%
220
Note: See TracBrowser for help on using the repository browser.

Search

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png