version 1.13, 2000/01/22 06:29:18 |
version 1.15, 2000/03/10 12:45:48 |
|
|
/* -*- mode: C; coding: euc-japan -*- */ |
/* -*- mode: C; coding: euc-japan -*- */ |
/* $OpenXM: OpenXM/src/ox_math/serv2.c,v 1.12 2000/01/05 06:09:11 ohara Exp $ */ |
/* $OpenXM: OpenXM/src/ox_math/serv2.c,v 1.14 2000/03/10 12:38:47 ohara Exp $ */ |
|
|
/* |
/* |
Copyright (C) Katsuyoshi OHARA, 2000. |
Copyright (C) Katsuyoshi OHARA, 2000. |
|
|
#include <unistd.h> |
#include <unistd.h> |
#include <gmp.h> |
#include <gmp.h> |
#include <mathlink.h> |
#include <mathlink.h> |
#include "ox.h" |
#include <ox_toolkit.h> |
#include "parse.h" |
|
#include "serv2.h" |
#include "serv2.h" |
|
|
extern int flag_mlo_symbol; |
extern int flag_mlo_symbol; |
Line 54 static int extend_stack() |
|
Line 53 static int extend_stack() |
|
int push(cmo* m) |
int push(cmo* m) |
{ |
{ |
#if DEBUG |
#if DEBUG |
symbol *symp; |
symbol_t symp; |
|
|
if (m->tag == CMO_STRING) { |
if (m->tag == CMO_STRING) { |
fprintf(stderr, "ox_math:: a CMO_STRING(%s) was pushed.\n", ((cmo_string *)m)->s); |
fprintf(stderr, "ox_math:: a CMO_STRING(%s) was pushed.\n", ((cmo_string *)m)->s); |
}else { |
}else { |
symp = lookup_by_tag(m->tag); |
symp = lookup_by_tag(m->tag); |
fprintf(stderr, "ox_math:: a %s was pushed.\n", symp->key); |
fprintf(stderr, "ox_math:: a %s was pushed.\n", symbol_get_key(symp)); |
} |
} |
#endif |
#endif |
stack[stack_pointer] = m; |
stack[stack_pointer] = m; |
Line 96 int sm_popCMO(int fd_write) |
|
Line 95 int sm_popCMO(int fd_write) |
|
{ |
{ |
cmo* m = pop(); |
cmo* m = pop(); |
#ifdef DEBUG |
#ifdef DEBUG |
symbol *symp = lookup_by_tag(m->tag); |
symbol_t symp = lookup_by_tag(m->tag); |
fprintf(stderr, "ox_math:: opecode = SM_popCMO. (%s)\n", symp->key); |
fprintf(stderr, "ox_math:: opecode = SM_popCMO. (%s)\n", symbol_get_key(symp)); |
#endif |
#endif |
|
|
if (m != NULL) { |
if (m != NULL) { |
Line 159 int local_execute(char *s) |
|
Line 158 int local_execute(char *s) |
|
/* The following function is depend on an implementation of a server. */ |
/* The following function is depend on an implementation of a server. */ |
int sm_executeStringByLocalParser(int fd_write) |
int sm_executeStringByLocalParser(int fd_write) |
{ |
{ |
symbol *symp; |
symbol_t symp; |
cmo* m = pop(); |
cmo* m = pop(); |
char *s = NULL; |
char *s = NULL; |
#ifdef DEBUG |
#ifdef DEBUG |
Line 181 int sm_executeStringByLocalParser(int fd_write) |
|
Line 180 int sm_executeStringByLocalParser(int fd_write) |
|
} |
} |
#ifdef DEBUG |
#ifdef DEBUG |
symp = lookup_by_tag(m->tag); |
symp = lookup_by_tag(m->tag); |
fprintf(stderr, "ox_math:: error. the top of stack is %s.\n", symp->key); |
fprintf(stderr, "ox_math:: error. the top of stack is %s.\n", symbol_get_key(symp)); |
#endif |
#endif |
return SM_executeStringByLocalParser; |
return SM_executeStringByLocalParser; |
} |
} |
Line 231 int execute_sm_command(int fd_write, int code) |
|
Line 230 int execute_sm_command(int fd_write, int code) |
|
{ |
{ |
int err = 0; |
int err = 0; |
#ifdef DEBUG |
#ifdef DEBUG |
symbol *sp = lookup_by_tag(code); |
symbol_t sp = lookup_by_tag(code); |
fprintf(stderr, "ox_math:: %s received.\n", sp->key); |
fprintf(stderr, "ox_math:: %s received.\n", symbol_get_key(sp)); |
#endif |
#endif |
|
|
switch(code) { |
switch(code) { |