| version 1.5, 2002/11/04 10:53:55 |
version 1.11, 2015/09/29 01:52:14 |
|
|
| /* $OpenXM: OpenXM/src/kan96xx/Kan/parser.c,v 1.4 2002/02/24 10:27:18 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kan96xx/Kan/parser.c,v 1.10 2015/09/27 08:12:42 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" |
| |
|
| |
#if defined(__MSYS__) || defined(__CYGWIN__) |
| |
#define setjmp(e) _setjmp(e) |
| |
#define sigsetjmp(e,n) _setjmp(e) |
| |
#endif |
| |
|
| #define NUM 1 /* NUM means struct Bignum */ |
#define NUM 1 /* NUM means struct Bignum */ |
| #define POL 0 |
#define POL 0 |
| |
|
| Line 410 static void term() { |
|
| Line 416 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 492 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 573 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): "); |