[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.6 and 1.13

version 1.6, 2004/05/13 10:37:30 version 1.13, 2020/10/06 11:33:46
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/parser.c,v 1.5 2002/11/04 10:53:55 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/parser.c,v 1.12 2015/10/08 11:49:37 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 38  static int Spv = 0;   /* stack pointer */
Line 40  static int Spv = 0;   /* stack pointer */
 #define SSIZE 20000  #define SSIZE 20000
 static int TagStack[SSIZE];  static int TagStack[SSIZE];
 static union valObject ValStack[SSIZE];  static union valObject ValStack[SSIZE];
 #define NAME_MAX 2000  #define MY_NAME_MAX 2000
 static char Name[NAME_MAX];  static char Name[MY_NAME_MAX];
   
 static union valObject ValTmp;  static union valObject ValTmp;
   
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 220  static int getoken() {
Line 222  static int getoken() {
     i = 0;      i = 0;
     do {      do {
       Name[i] = Ch; Name[i+1] = '\0'; i++;        Name[i] = Ch; Name[i+1] = '\0'; i++;
       if (i+2 >= NAME_MAX) {        if (i+2 >= MY_NAME_MAX) {
         errorParser("Too long name begining with @.");          errorParser("Too long name begining with @.");
       }        }
       Ch = getcharFromStr();        Ch = getcharFromStr();
Line 486  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 567  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();    cancelAlarm();
   if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {    if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {
     sprintf(tmpc,"\nError(parser.c): ");      sprintf(tmpc,"\nError(parser.c): ");
Line 598  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.6  
changed lines
  Added in v.1.13

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