   fprintf(textfile,"STGTYP void DGLProductions::%s_assign(const char *ival,int ilen)\n",nameval);
   fputs("{\n",textfile);
   fputs("   void (*selrtn)();\n",textfile);
   fputs("   DGLSystem::Command * cmd;\n\n",textfile);
   fputs("   int lcl_index,i,lcl_len;\n\n",textfile);
   fputs("   char *lcl_value;\n",textfile);
   fputs("   char lcl_number[30];\n\n",textfile);

   // if no table, read alternatives
   fprintf(textfile,"   if (DGLProductions::%s_table == NULL)\n",nameval);
   fprintf(textfile,"   {\n");
   if (readfilename[0] == '\0')
   {
      fprintf(textfile,"      DGLSystem::WFileParser(\"%s.txt\",&DGLProductions::%s_size,&DGLProductions::%s_table,&DGLProductions::%s_counts);\n",
	   nameval,nameval,nameval,nameval);
   }
   else
   {
      fputs("      DGLSystem::Begsav();\n",textfile);
      fprintf(textfile,"      DGLSystem::interpret(\"%s\");\n",readfilename);
      fputs("      lcl_value = DGLSystem::Endsav();\n",textfile);
      fprintf(textfile,"      DGLSystem::WFileParser(lcl_value,&DGLProductions::%s_size,&DGLProductions::%s_table,&DGLProductions::%s_counts);\n",
	   nameval,nameval,nameval);
      fputs("      free(lcl_value);\n",textfile);
   }
   fprintf(textfile,"      DGLProductions::%s_remain = 0;\n",nameval);
   fprintf(textfile,"      for (i=0 ; i<DGLProductions::%s_size; i++)\n",nameval);
   fprintf(textfile,"      {\n");
   fprintf(textfile,"         DGLProductions::%s_remain += DGLProductions::%s_counts[i];\n",nameval,nameval);
   fprintf(textfile,"      }\n");
   fprintf(textfile,"   }\n");
   // end of reading alternatives
   fputs("   DGLSystem::Begsav();\n",textfile);
   fputs("   selrtn = DGLSystem::getsel(ival,ilen);\n",textfile);
   fputs("   if (selrtn == NULL)\n",textfile);
   fputs("   {\n",textfile);
   fputs("      DGLSystem::outstr(ival,ilen);\n",textfile);
   fputs("   }\n",textfile);
   fputs("   else\n",textfile);
   fputs("   {\n",textfile);
   fputs("      (*selrtn)();\n",textfile);
   fputs("   }\n",textfile);
   fputs("   lcl_len = DGLSystem::Lensav();\n",textfile);
   fputs("   lcl_value = DGLSystem::Endsav();\n",textfile);
   fputs("   cmd = DGLSystem::CommandParser(lcl_value,lcl_len);\n",textfile)
   fputs("   if (cmd->Type == DGLSystem::CmdCount)\n",textfile);
   fputs("   {\n",textfile);
   fprintf(textfile,"      sprintf(lcl_number,\"%%d\",DGLProductions::%s_size);\n",nameval);
   fprintf(textfile,"      DGLSystem::interpret(lcl_number);\n");
   fputs("   }\n",textfile);
   fputs("   else\n",textfile);
   fputs("   {\n",textfile);
   fputs("      lcl_index = strtol(lcl_value,NULL,0);\n",textfile);
   fprintf(textfile,"      DGLSystem::interpret(DGLProductions::%s_table[lcl_index%%DGLProductions::%s_size]);\n",nameval,nameval);
   fputs("   }\n",textfile);
   fputs("   free(lcl_value);\n",textfile);
   fputs("}\n\n\n\n",textfile);
