5 #include <StepFile_CallFailure.hxx>
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 )
11 /* abv 07.06.02: force inclusion of stdlib.h on WNT to avoid warnings */
15 void steperror ( FILE *input_file );
16 void steprestart ( FILE *input_file );
18 void rec_restext(char *newtext, int lentext);
19 void rec_typarg(int argtype);
21 int steplineno; /* Comptage de ligne (ben oui, fait tout faire) */
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); }
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 */
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 (';'); }
52 "*/" { if (modend == 0) modcom = 0; }
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); } }
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); } }