0022627: Change OCCT memory management defaults
[occt.git] / src / StepFile / step.lex
1 %{
2 #include "step.tab.h"
3 #include "recfile.ph"
4 #include "stdio.h"
5 #include <StepFile_CallFailure.hxx>
6
7 /* skl 31.01.2002 for OCC133(OCC96,97) - uncorrect
8 long string in files Henri.stp and 401.stp*/
9 #define YY_FATAL_ERROR(msg) StepFile_CallFailure( msg )
10
11 /* abv 07.06.02: force inclusion of stdlib.h on WNT to avoid warnings */
12 #include <stdlib.h>
13
14 /*
15 void steperror ( FILE *input_file );
16 void steprestart ( FILE *input_file );
17 */
18 void rec_restext(char *newtext, int lentext);
19 void rec_typarg(int argtype);
20  
21   int  steplineno;      /* Comptage de ligne (ben oui, fait tout faire)  */
22
23   int  modcom = 0;      /* Commentaires type C */
24   int  modend = 0;      /* Flag for finishing of the STEP file */
25   void resultat ()           /* Resultat alloue dynamiquement, "jete" une fois lu */
26       { if (modcom == 0) rec_restext(yytext,yyleng); }
27
28 %}
29 %%
30 "       "       {;}
31 " "             {;}
32 [\n]            { steplineno ++; }
33 [\r]            {;} /* abv 30.06.00: for reading DOS files */
34 [\0]+           {;} /* fix from C21. for test load e3i file with line 15 with null symbols */
35
36 #[0-9]+/=               { resultat();  if (modcom == 0) return(ENTITY); }
37 #[0-9]+/[       ]*=     { resultat();  if (modcom == 0) return(ENTITY); }
38 #[0-9]+         { resultat();  if (modcom == 0) return(IDENT); }
39 [-+0-9][0-9]*   { resultat();  if (modcom == 0) { rec_typarg(rec_argInteger); return(QUID); } }
40 [-+\.0-9][\.0-9]+       { resultat();  if (modcom == 0) { rec_typarg(rec_argFloat); return(QUID); } }
41 [-+\.0-9][\.0-9]+E[-+0-9][0-9]* { resultat(); if (modcom == 0) { rec_typarg(rec_argFloat); return(QUID); } }
42 [\']([\n]|[\000\011-\046\050-\176\201-\237\240-\777]|[\047][\047])*[\'] { resultat(); if (modcom == 0) { rec_typarg(rec_argText); return(QUID); } }
43 ["][0-9A-F]+["]         { resultat();  if (modcom == 0) { rec_typarg(rec_argHexa); return(QUID); } }
44 [.][A-Z0-9_]+[.]        { resultat();  if (modcom == 0) { rec_typarg(rec_argEnum); return(QUID); } }
45 [(]             { if (modcom == 0) return ('('); }
46 [)]             { if (modcom == 0) return (')'); }
47 [,]             { if (modcom == 0) return (','); }
48 [$]             { resultat();  if (modcom == 0) { rec_typarg(rec_argNondef); return(QUID); } }
49 [=]             { if (modcom == 0) return ('='); }
50 [;]             { if (modcom == 0) return (';'); }
51 "/*"            { modcom = 1;  }
52 "*/"            { if (modend == 0) modcom = 0;  }
53
54 STEP;           { if (modcom == 0) return(STEP); }
55 HEADER;         { if (modcom == 0) return(HEADER); }
56 ENDSEC;         { if (modcom == 0) return(ENDSEC); }
57 DATA;           { if (modcom == 0) return(DATA); }
58 ENDSTEP;        { if (modend == 0) {modcom = 0;  return(ENDSTEP);} }
59 "ENDSTEP;".*    { if (modend == 0) {modcom = 0;  return(ENDSTEP);} }
60 END-ISO[0-9\-]*; { modcom = 1; modend = 1; return(ENDSTEP); }
61 ISO[0-9\-]*;    { if (modend == 0) {modcom = 0;  return(STEP); } }
62
63 [/]             { if (modcom == 0) return ('/'); }
64 &SCOPE          { if (modcom == 0) return(SCOPE); }
65 ENDSCOPE        { if (modcom == 0) return(ENDSCOPE); }
66 [a-zA-Z0-9_]+   { resultat();  if (modcom == 0) return(TYPE); }
67 ![a-zA-Z0-9_]+  { resultat();  if (modcom == 0) return(TYPE); }
68 [^)]            { resultat();  if (modcom == 0) { rec_typarg(rec_argMisc); return(QUID); } }