Changeset d848cbc in git


Ignore:
Timestamp:
Mar 19, 1999, 3:13:28 PM (25 years ago)
Author:
Kai Krüger <krueger@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
7df2efebb313231238a051a876d8a3dd8d3b1e4c
Parents:
418dbc7afa82b2a0af86b3aef428cc36c46db41f
Message:
*** empty log message ***


git-svn-id: file:///usr/local/Singular/svn/trunk@2960 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
modules
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • modules/kernel/misc.cc

    r418dbc rd848cbc  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: misc.cc,v 1.1 1998-11-19 15:49:24 krueger Exp $ */
     4/* $Id: misc.cc,v 1.2 1999-03-19 14:13:27 krueger Exp $ */
    55/*
    66* ABSTRACT: interpreter: LIB and help
     
    1313 
    1414  idhdl pck = NULL, id = NULL;
    15   iiname2hdl((char *)(h->Data()), &pck, &id);
    16   if(pck != NULL) Print("Pack: '%s'\n", pck->id);
    17   if(id != NULL)  Print("Rec : '%s'\n", id->id);
    18 
     15  printf("myTest 1\n");
     16  if(h==NULL) printf("myTest 2\n");
     17  else {
     18    iiname2hdl((char *)(h->Data()), &pck, &id);
     19    printf("myTest 1\n");
     20    if(pck != NULL) Print("Pack: '%s'\n", pck->id);
     21    if(id != NULL)  Print("Rec : '%s'\n", id->id);
     22  }
     23 
    1924  res->rtyp=NONE;
    2025  return FALSE;
  • modules/kernel/proclist.cc

    r418dbc rd848cbc  
    33extern void piShowProcList();
    44
    5 BOOLEAN kProclist(leftv res, leftv h)
     5BOOLEAN kProclist(leftv res)
    66{
    77  piShowProcList();
  • modules/tools/Makefile.in

    r418dbc rd848cbc  
    2020        gcc -c ${CFLAGS} $<
    2121
    22 modgen: ${OBJS} modgen.h decl.inc
     22modgen: ${OBJS} modgen.h decl.inc typmap.h
    2323        gcc -o $@ ${CFLAGS} ${OBJS} ${LIBS}
    2424
  • modules/tools/misc.cc

    r418dbc rd848cbc  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: misc.cc,v 1.2 1999-03-17 12:41:30 krueger Exp $ */
     4/* $Id: misc.cc,v 1.3 1999-03-19 14:12:08 krueger Exp $ */
    55/*
    66* ABSTRACT: lib parsing
     
    1919
    2020#include "modgen.h"
     21#include "typmap.h"
     22
     23#define NEW_PARAM 1
    2124
    2225#define SYSTYP_NONE   0
     
    111114    cmds[i].alias=1;
    112115  }
     116#if 0
    113117  if (!expected_parms)
    114118  {
     
    129133    }
    130134  }
     135#endif
     136  printf("IsCmd: [%d] %s\n", tok, n);
     137 
    131138  if( (cmds[i].toktype==ROOT_DECL) ||
    132139      (cmds[i].toktype==ROOT_DECL_LIST) ||
     
    231238void AddParam(procdefv pi, char *name, char *typname, int typ)
    232239{
     240
     241#ifdef NEW_PARAM
     242  paramdef pnew;
     243  pnew.name = (char *)malloc(strlen(name+1));
     244  pnew.next = NULL;
     245  strcpy(pnew.name, name);
     246  pnew.typname = (char *)malloc(strlen(typname+1));
     247  strcpy(pnew.typname, typname);
     248  pnew.typ = typ;
     249
     250  if(pi->paramcnt==0) {
     251    pi->param = (paramdefv)malloc(sizeof(paramdef));
     252  }
     253  else {
     254    pi->param = (paramdefv)realloc(pi->param,
     255                                   (pi->paramcnt+1)*sizeof(paramdef));
     256  }
     257  memcpy((void *)(&pi->param[pi->paramcnt]), (void *)&pnew, sizeof(paramdef));
     258#else
    233259  paramdefv pnew = (paramdefv)malloc(sizeof(paramdef));
    234260  pnew->name = (char *)malloc(strlen(name+1));
     
    245271    pp->next = pnew;
    246272  }
     273#endif
    247274  (pi->paramcnt)++;
    248275}
     
    252279{
    253280  procdefv v = pi;
     281#ifdef NEW_PARAM
     282  int i;
     283  for(v=pi; v!=NULL; v = v->next) {
     284    printf("proc: %s(", v->procname);
     285    for(i=0; i<v->paramcnt; i++) {
     286      printf("%s", v->param[i].name);
     287      if(i < (v->paramcnt-1)) printf(",");
     288    }
     289   
     290    printf(")\n");
     291  }
     292#else
    254293  paramdefv pp;
    255294  for(v=pi; v!=NULL; v = v->next) {
     
    267306//    v =v ->next;
    268307  }
     308#endif
    269309}
    270310
     
    287327    systyp = SYSTYP_HPUX10;
    288328  }
     329  init_type_conv();
    289330  printf("SYSTYP:%d\n", systyp);
    290331 
     
    333374void generate_header(procdefv pi, FILE *fp)
    334375{
    335   fprintf(fp, "BOOLEAN %s(leftv res, leftv h);\n", pi->funcname);
    336   fprintf(fp, "BOOLEAN mod_%s(leftv res, leftv h);\n\n", pi->funcname);
     376  int i;
     377 
     378  fprintf(fp, "BOOLEAN mod_%s(leftv res, leftv h);\n", pi->funcname);
     379#if 1
     380  fprintf(fp, "BOOLEAN %s(leftv res", pi->funcname);
     381  for (i=0;i<pi->paramcnt; i++)
     382    fprintf(fp, ", %s res%d", type_conv[pi->param[i].typ], i);
     383  fprintf(fp, ");\n\n");
     384#else
     385  fprintf(fp, "BOOLEAN %s(leftv res, leftv h);\n\n", pi->funcname);
     386#endif
    337387}
    338388
     
    344394  paramdefv pp = pi->param;
    345395  fprintf(fp, "BOOLEAN mod_%s(leftv res, leftv h)\n{\n", pi->funcname);
     396#if 1
     397  if(pi->paramcnt>0) {
     398    if(pi->param[0].typ==SELF_CMD) {
     399      fprintf(fp, "  return(%s(res,h));\n", pi->funcname);
     400      fprintf(fp, "}\n\n");
     401    }
     402    else {
     403      fprintf(fp, "  leftv v = h;\n");
     404      fprintf(fp, "  int tok = NONE, index = 0;\n");
     405      for (i=0;i<pi->paramcnt; i++)
     406        fprintf(fp, "  leftv res%d = (leftv)Alloc0(sizeof(sleftv));\n", i);
     407
     408      fprintf(fp, "\n");
     409   
     410      for (i=0;i<pi->paramcnt; i++) {
     411        fprintf(fp, "  if(v==NULL) goto mod_%s_error;\n", pi->funcname);
     412        fprintf(fp, "  tok = v->Typ();\n");
     413        fprintf(fp, "  printf(\"test %d.1\\n\");\n", i);
     414        fprintf(fp, "  if((index=iiTestConvert(tok, %s))==0)\n",
     415                pi->param[i].typname);
     416        fprintf(fp, "     goto mod_%s_error;\n", pi->funcname);
     417        fprintf(fp, "  printf(\"test %d.2\\n\");\n", i);
     418        fprintf(fp, "  if(iiConvert(tok, %s, index, v, res%d))\n",
     419                pi->param[i].typname, cnt);
     420        fprintf(fp, "     goto mod_%s_error;\n", pi->funcname);
     421        fprintf(fp, "  printf(\"test %d.3\\n\");\n", i);
     422        fprintf(fp, "  v = v->next;\n");
     423      }
     424      fprintf(fp, "  if(v!=NULL) { tok = v->Typ(); goto mod_%s_error; }\n",
     425              pi->funcname);
     426      fprintf(fp, "  printf(\"test before return\\n\");\n");
     427
     428      fprintf(fp, "\n");
     429      fprintf(fp, "    return(%s(res", pi->funcname);
     430      for (i=0;i<pi->paramcnt; i++)
     431        fprintf(fp, ", (%s) res%d->Data()", type_conv[pi->param[i].typ], i);
     432      fprintf(fp, "));\n\n");
     433      fprintf(fp, "  mod_%s_error:\n", pi->funcname);
     434      fprintf(fp, "    Werror(\"%s(`%%s`) is not supported\", Tok2Cmdname(tok));\n",
     435              pi->procname);
     436      fprintf(fp, "    Werror(\"expected %s(", pi->procname);
     437      for (i=0;i<pi->paramcnt; i++) {
     438        fprintf(fp, "'%s'", pi->param[i].name);
     439        if(i!=pi->paramcnt-1) fprintf(fp, ",");
     440      }
     441      fprintf(fp, ")\");\n");
     442      fprintf(fp, "    return TRUE;\n}\n\n");
     443    }
     444  } else {
     445      fprintf(fp, "  return(%s(res));\n}\n\n", pi->funcname);
     446  }
     447     
     448#else
    346449  if(pp!= NULL && pp->typ!=SELF_CMD) {
    347450    fprintf(fp, "  leftv v = h;\n");
     
    390493    fprintf(fp, "}\n\n");
    391494  }
     495#endif
    392496     
    393497}
Note: See TracChangeset for help on using the changeset viewer.