=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/lex.c,v retrieving revision 1.36 retrieving revision 1.39 diff -u -p -r1.36 -r1.39 --- OpenXM_contrib2/asir2000/parse/lex.c 2005/10/26 07:33:03 1.36 +++ OpenXM_contrib2/asir2000/parse/lex.c 2006/03/05 07:11:52 1.39 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/parse/lex.c,v 1.35 2005/10/19 04:51:15 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/lex.c,v 1.38 2006/02/08 02:11:19 noro Exp $ */ #include #include "ca.h" @@ -67,6 +67,7 @@ static int skipspace(); extern INFILE asir_infile; extern struct oTKWD kwd[]; +extern Obj VOIDobj; extern int main_parser; extern char *parse_strp; @@ -418,7 +419,10 @@ int yylex() return GFPNGEN; else if ( !strcmp(tbuf,"@s") ) return GFSNGEN; - else if ( !strcmp(tbuf,"@i") ) { + else if ( !strcmp(tbuf,"@void") ) { + yylvalp->p = VOIDobj; + return FORMULA; + } else if ( !strcmp(tbuf,"@i") ) { extern pointer IU; yylvalp->p = IU; @@ -533,6 +537,7 @@ int aftercomment() { int c,c1; for ( c = Getc(); ; ) { + if ( c == '\n' ) asir_infile->ln++; c1 = Getc(); if ( (c == '*') && (c1 == '/') ) return Getc(); @@ -573,7 +578,7 @@ void yyerror(char *s) int echoback; -extern int read_exec_file, do_fep, do_file; +extern int do_fep, do_file; unsigned char encrypt_char(unsigned char); unsigned char decrypt_char(unsigned char); @@ -606,9 +611,7 @@ int Egetc(FILE *fp) if ( asir_infile->encoded ) c = decrypt_char((unsigned char)c); return c; - } else if ( read_exec_file ) - return EOF; - else { + } else { c = *parse_strp++; if ( !c ) return EOF; @@ -646,7 +649,7 @@ static int Getc() { else c = Getc(); break; - } else if ( read_exec_file || do_file ) + } else if ( asir_infile->fp || do_file ) asir_terminate(2); else { if ( asir_infile->fp )