[BACK]Return to lex.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Diff for /OpenXM_contrib2/asir2000/parse/lex.c between version 1.26 and 1.30

version 1.26, 2003/08/21 08:05:02 version 1.30, 2004/03/01 02:03:28
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/parse/lex.c,v 1.25 2003/05/30 00:47:24 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/lex.c,v 1.29 2004/02/04 07:42:07 noro Exp $
 */  */
 #include <ctype.h>  #include <ctype.h>
 #include "ca.h"  #include "ca.h"
Line 186  int yylex()
Line 186  int yylex()
                                 c = Getc();                                  c = Getc();
                                 if ( c == '\\' ) {                                  if ( c == '\\' ) {
                                         c1 = Getc();                                          c1 = Getc();
                                         if ( c1 == 'n' )                                          if ( c1 == 'n' ) {
                                                 c1 = '\n';                                                  c1 = '\n';
                       }else if ( c1 == 't' ) {
                           c1 = '\t';
                       }else if ( isdigit(c1) ){
                           d = c1 - '0';
                           c1 = Getc();
                           if ( isdigit(c1) ) {
                                d = 8*d + (c1 - '0');
                                c1 = Getc();
                                if ( isdigit(c1) ) {
                                    d = 8*d + (c1 - '0');
                                }else {
                                    Ungetc(c1);
                                }
                           }else {
                               Ungetc(c1);
                           }
                           c1 = d;
                       }
                                         REALLOC_NBUF nbuf[i++] = c1;                                          REALLOC_NBUF nbuf[i++] = c1;
                                 } else {                                  } else {
                                         REALLOC_NBUF nbuf[i++] = c;                                          REALLOC_NBUF nbuf[i++] = c;
Line 418  int yylex()
Line 436  int yylex()
                         } else if ( !strcmp(tbuf,"@equiv") ) {                          } else if ( !strcmp(tbuf,"@equiv") ) {
                                 yylvalp->i = (int)L_EQUIV;                                  yylvalp->i = (int)L_EQUIV;
                                 return FOP_EQUIV;                                  return FOP_EQUIV;
                           } else if ( !strcmp(tbuf,"@grlex") ) {
                                   yylvalp->p = Symbol_grlex;
                                   return FORMULA;
                           } else if ( !strcmp(tbuf,"@glex") ) {
                                   yylvalp->p = Symbol_glex;
                                   return FORMULA;
                           } else if ( !strcmp(tbuf,"@lex") ) {
                                   yylvalp->p = Symbol_lex;
                                   return FORMULA;
                         } else {                          } else {
                                 cptr = (char *)MALLOC(strlen(tbuf)+1); strcpy(cptr,tbuf);                                  cptr = (char *)MALLOC(strlen(tbuf)+1); strcpy(cptr,tbuf);
                                 yylvalp->p = (pointer)cptr;                                  yylvalp->p = (pointer)cptr;
Line 444  void purge_stdin()
Line 471  void purge_stdin()
         w_purge_stdin();          w_purge_stdin();
 #elif defined(sparc) || defined(__alpha) || defined(__SVR4) || defined(mips) || defined(VISUAL) || defined(_IBMR2)  #elif defined(sparc) || defined(__alpha) || defined(__SVR4) || defined(mips) || defined(VISUAL) || defined(_IBMR2)
         stdin->_ptr = stdin->_base; stdin->_cnt = 0;          stdin->_ptr = stdin->_base; stdin->_cnt = 0;
 #elif (defined(__MACH__) && defined(__ppc__)) || defined(__CYGWIN__) || defined(__FreeBSD__)  #elif (defined(__MACH__) && defined(__ppc__)) || defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__INTERIX)
         stdin->_r = 0; stdin->_p = stdin->_bf._base;          stdin->_r = 0; stdin->_p = stdin->_bf._base;
 #else  #else
 --->FIXIT  --->FIXIT
Line 520  int myatoi(char *s)
Line 547  int myatoi(char *s)
 }  }
   
 extern int ox_do_copy;  extern int ox_do_copy;
   extern int I_am_server;
   extern JMP_BUF main_env;
   
 void yyerror(char *s)  void yyerror(char *s)
 {  {
         if ( main_parser )          if ( main_parser )
                 if ( ox_do_copy ) {                  if ( I_am_server ) {
                           set_lasterror(s);
                           LONGJMP(main_env,1);
                   } else if ( ox_do_copy ) {
                         /* push errors to DebugStack */                          /* push errors to DebugStack */
                 } else {                  } else {
                         if ( asir_infile->fp == stdin )                          if ( asir_infile->fp == stdin )

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.30

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>