[BACK]Return to parser.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Diff for /OpenXM/src/kan96xx/Kan/parser.c between version 1.4 and 1.12

version 1.4, 2002/02/24 10:27:18 version 1.12, 2015/10/08 11:49:37
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/parser.c,v 1.3 2001/05/04 01:06:24 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/parser.c,v 1.11 2015/09/29 01:52:14 takayama Exp $ */
 /*  /*
   parser.c   parser for poly.c    parser.c   parser for poly.c
 */  */
   
 #include <stdio.h>  #include <stdio.h>
   #include <string.h>
 #include "datatype.h"  #include "datatype.h"
 #include "setjmp.h"  #include "setjmp.h"
 #include "stackm.h"  #include "stackm.h"
 #include "extern.h"  #include "extern.h"
 #include "extern2.h"  #include "extern2.h"
   
   
 #define NUM  1       /* NUM means struct Bignum */  #define NUM  1       /* NUM means struct Bignum */
 #define POL  0  #define POL  0
   
Line 123  POLY stringToPOLY(s,ringp) 
Line 125  POLY stringToPOLY(s,ringp) 
   Ring0.p = 0;    Ring0.p = 0;
   Ring0.next = (struct ring *)NULL;    Ring0.next = (struct ring *)NULL;
 #if defined(__CYGWIN__)  #if defined(__CYGWIN__)
   if (sigsetjmp(EnvOfParser,1)) {    if (MYSIGSETJMP(EnvOfParser,1)) {
 #else  #else
   if (setjmp(EnvOfParser)) {    if (MYSETJMP(EnvOfParser)) {
 #endif  #endif
     fprintf(stderr,"\nERROR: You have syntax errors in the expression: %s\n",s);      fprintf(stderr,"\nERROR: You have syntax errors in the expression: %s\n",s);
     errorKan1("%s\n"," parser.c : Syntax error in the input polynomial.");      errorKan1("%s\n"," parser.c : Syntax error in the input polynomial.");
Line 410  static void term() {
Line 412  static void term() {
   
     }else {      }else {
       if (ftype == NUM && gtype == NUM) {        if (ftype == NUM && gtype == NUM) {
                   errorParser("num/num is not supported yet.\n");
         mpz_div(f,f,g);          mpz_div(f,f,g);
         utmp.ival = f;          utmp.ival = f;
         push(NUM,utmp);          push(NUM,utmp);
Line 485  static void factor() {
Line 488  static void factor() {
   
 static void monom() {  static void monom() {
   union valObject utmp;    union valObject utmp;
   struct object obj;    struct object obj = OINIT;
   POLY f;    POLY f;
   extern struct context *CurrentContextp;    extern struct context *CurrentContextp;
   if (Symbol == 'x' || Symbol == 'd') {    if (Symbol == 'x' || Symbol == 'd') {
Line 566  static void errorParser(s) char s[]; {
Line 569  static void errorParser(s) char s[]; {
   extern char *GotoLabel;    extern char *GotoLabel;
   extern int GotoP;    extern int GotoP;
   extern int ErrorMessageMode;    extern int ErrorMessageMode;
     extern int RestrictedMode, RestrictedMode_saved;
   int j;    int j;
   char tmpc[1024];    char tmpc[1024];
     RestrictedMode = RestrictedMode_saved;
     cancelAlarm();
   if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {    if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {
     sprintf(tmpc,"\nError(parser.c): ");      sprintf(tmpc,"\nError(parser.c): ");
     if (strlen(s) < 1000-strlen(tmpc)) {      if (strlen(s) < 1000-strlen(tmpc)) {
Line 596  static void errorParser(s) char s[]; {
Line 602  static void errorParser(s) char s[]; {
     GotoP = 0;      GotoP = 0;
   }    }
 #if defined(__CYGWIN__)  #if defined(__CYGWIN__)
   siglongjmp(EnvOfParser,1);    MYSIGLONGJMP(EnvOfParser,1);
 #else  #else
   longjmp(EnvOfParser,1);    MYLONGJMP(EnvOfParser,1);
 #endif  #endif
 }  }
   

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.12

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