⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wnparse.tab.c

📁 一个与传统电子字典不同的字典
💻 C
📖 第 1 页 / 共 5 页
字号:
    break;

  case 18:
#line 117 "wnparse.y"
    { (yyval.s)=NULL; ;}
    break;

  case 19:
#line 119 "wnparse.y"
    {
	    wdcnt++;
	    (yyval.s) = AddSynonym((yyvsp[-1].s), CreateSynonym((yyvsp[0].sym),
					      (unsigned char)wsense,
					      (headword ? -wdcnt : wdcnt),
					      (unsigned char)aclass,
					      label));
	    headword = FALSE;
	    aclass = 0;
	;}
    break;

  case 20:
#line 130 "wnparse.y"
    {
	    wdcnt++;
	    (yyval.s) = AddSynonym((yyvsp[-2].s), CreateSynonym((yyvsp[-1].sym),
					      (unsigned char)wsense,
					      (headword ? -wdcnt : wdcnt),
					      (unsigned char)(yyvsp[0].number),
					      label));
	    headword = FALSE;
	    aclass = 0;
	;}
    break;

  case 21:
#line 141 "wnparse.y"
    { 
	    yyerror("Error in synonym list, "); 
	    if ((yyvsp[-1].s)) {
		fprintf(logfile, "last good synonym: \"%s\"\n",
			PrintSynonym(lastsyn));
	    } else if (!wdcnt) {
		fprintf(logfile, "invalid string found\n");
	    } else {
		fprintf(logfile,"first synonym group is bad\n");
	    }
	    (yyval.s) = (yyvsp[-1].s);
	;}
    break;

  case 22:
#line 156 "wnparse.y"
    {
            aclass = (yyvsp[-2].number);
	    MakeSyngroup((yyvsp[-1].p), NULL);
	    (yyval.sym) = (yyvsp[-3].sym);
	;}
    break;

  case 23:
#line 162 "wnparse.y"
    {
            aclass = (yyvsp[-3].number);
	    MakeSyngroup((yyvsp[-2].p), (yyvsp[-1].fr));
	    (yyval.sym) = (yyvsp[-4].sym);
	;}
    break;

  case 24:
#line 168 "wnparse.y"
    {
            aclass = (yyvsp[-2].number);
	    MakeSyngroup(NULL, (yyvsp[-1].fr));
	    (yyval.sym) = (yyvsp[-3].sym);
	;}
    break;

  case 25:
#line 176 "wnparse.y"
    {
            (yyval.sym) = CreateSymbol(strlower((yyvsp[0].tx)));
	    label = UseLabel((yyvsp[0].tx)); /* decide whether to save original string */
	    headword = FALSE;
	    wsense = 0;
	;}
    break;

  case 26:
#line 183 "wnparse.y"
    { 
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[-1].tx)));
	    label = UseLabel((yyvsp[-1].tx)); /* decide whether to save original string */
	    headword = FALSE;
	    wsense = (yyvsp[0].number);
	    if (wsense > MAXID) {
		sprintf(buf, "ID must be less than 16: %s%d\n",
			(yyval.sym)->label, wsense);
		yyerror(buf);
	    }
	;}
    break;

  case 27:
#line 195 "wnparse.y"
    {
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[0].tx)));

/* If file is adj.all, then label must be NULL.  Otherwise, allow upper
   case in synset since there's no head. */

	    if ( ! strcmp(filelist[curfilenum()].fname, "adj.all" ) ) {
		label = NULL;
		headword = TRUE;
	    } else {
		label = UseLabel((yyvsp[0].tx));
		headword = FALSE;
	    }
	    wsense = 0;
	;}
    break;

  case 28:
#line 211 "wnparse.y"
    { 
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[-1].tx)));

/* If file is adj.all, then label must be NULL.  Otherwise, allow upper
   case in synset since there's no head. */

	    if ( ! strcmp(filelist[curfilenum()].fname, "adj.all" ) ) {
		label = NULL;
		headword = TRUE;
	    } else {
		label = UseLabel((yyvsp[-1].tx));
		headword = FALSE;
	    }
	    wsense = (yyvsp[0].number);
	    if (wsense > MAXID) {
		sprintf(buf, "ID must be less than 16: %s%d\n",
			(yyval.sym)->label, wsense);
		yyerror(buf);
	    }
	;}
    break;

  case 29:
#line 233 "wnparse.y"
    {
            (yyval.sym) = CreateSymbol(strlower((yyvsp[0].tx)));
	    sense = 0;
	    satellite = NULL;
	    satellite_sense = 0;
	    headptr = FALSE;
	    fnbuf[0] = '\0';
	;}
    break;

  case 30:
#line 242 "wnparse.y"
    { 
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[-1].tx)));
	    sense = (yyvsp[0].number);
	    satellite = NULL;
	    satellite_sense = 0;
	    headptr = FALSE;
	    fnbuf[0] = '\0';
	;}
    break;

  case 31:
#line 251 "wnparse.y"
    {
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[0].tx)));
	    sense = 0;
	    satellite = NULL;
	    satellite_sense = 0;
	    headptr = TRUE;
	    fnbuf[0] = '\0';
	;}
    break;

  case 32:
#line 260 "wnparse.y"
    { 
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[-1].tx)));
	    sense = (yyvsp[0].number);
	    satellite = NULL;
	    satellite_sense = 0;
	    headptr = TRUE;
	    fnbuf[0] = '\0';
	;}
    break;

  case 33:
#line 269 "wnparse.y"
    {
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[0].tx)));
	    sense = 0;
	    satellite = NULL;
	    satellite_sense = 0;
	    headptr = FALSE;
	    strcpy(fnbuf, (yyvsp[-1].tx));	/* save filename for warning msg */
	    free((yyvsp[-1].tx));		/* free space malloc'd for string */
	;}
    break;

  case 34:
#line 279 "wnparse.y"
    { 
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[-1].tx)));
	    sense = (yyvsp[0].number);
	    satellite = NULL;
	    satellite_sense = 0;
	    headptr = FALSE;
	    strcpy(fnbuf, (yyvsp[-2].tx));	/* save filename for warning msg */
	    free((yyvsp[-2].tx));		/* free space malloc'd for string */
	;}
    break;

  case 35:
#line 290 "wnparse.y"
    {/* new ones start here */
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[-2].tx)));
	    sense = 0;
	    satellite = CreateSymbol(strlower((yyvsp[0].tx)));
	    satellite_sense = 0;
	    headptr = FALSE;
	    strcpy(fnbuf, (yyvsp[-3].tx));	/* save filename for warning msg */
	    free((yyvsp[-3].tx));		/* free space malloc'd for string */
	;}
    break;

  case 36:
#line 300 "wnparse.y"
    {
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[-3].tx)));
	    sense = (yyvsp[-2].number);
	    satellite = CreateSymbol(strlower((yyvsp[0].tx)));
	    satellite_sense = 0;
	    headptr = FALSE;
	    strcpy(fnbuf, (yyvsp[-4].tx));	/* save filename for warning msg */
	    free((yyvsp[-4].tx));		/* free space malloc'd for string */
	;}
    break;

  case 37:
#line 310 "wnparse.y"
    {
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[-4].tx)));
	    sense = (yyvsp[-3].number);
	    satellite = CreateSymbol(strlower((yyvsp[-1].tx)));
	    satellite_sense = (yyvsp[0].number);
	    headptr = FALSE;
	    strcpy(fnbuf, (yyvsp[-5].tx));	/* save filename for warning msg */
	    free((yyvsp[-5].tx));		/* free space malloc'd for string */
	;}
    break;

  case 38:
#line 320 "wnparse.y"
    {
	    (yyval.sym) = CreateSymbol(strlower((yyvsp[-3].tx)));
	    sense = 0;
	    satellite = CreateSymbol(strlower((yyvsp[-1].tx)));
	    satellite_sense = (yyvsp[0].number);
	    headptr = FALSE;
	    strcpy(fnbuf, (yyvsp[-4].tx));	/* save filename for warning msg */
	    free((yyvsp[-4].tx));		/* free space malloc'd for string */
	;}
    break;

  case 39:
#line 332 "wnparse.y"
    { (yyval.p) = DoPointer((yyvsp[-1].sym), (yyvsp[0].number)); ;}
    break;

  case 40:
#line 334 "wnparse.y"
    {
            if ((yyvsp[0].p)) {
		(yyval.p) = AddPointer((yyvsp[-1].p), (yyvsp[0].p));
	    } else { 
		(yyval.p)=(yyvsp[-1].p);
	    }
	;}
    break;

  case 41:
#line 342 "wnparse.y"
    { (yyval.p)=(yyvsp[0].p); ;}
    break;

  case 42:
#line 344 "wnparse.y"
    {
	    Pointer p;

	    yyerror("Error in pointer list, ");
	    p = (yyvsp[-1].p);
	    if (p) {
		for (; p->pnext; p = p->pnext);	/* find end of list */
		fprintf(logfile,
			"last valid pointer: \"%s\"\n",
			PrintPointer(p));
	    } else
		fprintf(logfile,"first pointer in list is bad\n");
	    (yyval.p)=(yyvsp[-1].p);
	;}
    break;

  case 43:
#line 361 "wnparse.y"
    { (yyval.tx) = NULL; ;}
    break;

  case 44:
#line 363 "wnparse.y"
    { (yyval.tx) = (yyvsp[0].tx); ;}
    break;

  case 45:
#line 367 "wnparse.y"
    { (yyval.number) = NULL; ;}
    break;

  case 46:
#line 369 "wnparse.y"
    { (yyval.number) = (yyvsp[0].number); ;}
    break;

  case 47:
#line 372 "wnparse.y"
    { (yyval.number)=0; ;}
    break;

  case 48:
#line 374 "wnparse.y"
    { (yyval.number)=(yyvsp[-1].number); ;}
    break;

  case 49:
#line 378 "wnparse.y"
    {
            if ((yyvsp[0].number) < 1 || (yyvsp[0].number) > NUMFRAMES) {
		sprintf(buf, "Bad frame number: %d\n", (yyvsp[0].number));
		yyerror(buf);
		(yyval.fr) = CreateFramelist(0);
	    } else
		(yyval.fr) = CreateFramelist((yyvsp[0].number));
	;}
    break;

  case 50:
#line 387 "wnparse.y"
    {
	    if ((yyvsp[0].number) < 1 || (yyvsp[0].number) > NUMFRAMES) {
		sprintf(buf, "Bad frame number: %d\n", (yyvsp[0].number));
		yyerror(buf);
		(yyval.fr) = (yyvsp[-2].fr);
	    } else {
		(yyvsp[-2].fr)->frames[((yyvsp[0].number)-1)/32] |= 1<<(((yyvsp[0].number) - 1) % 32);
		(yyval.fr) = (yyvsp[-2].fr);
	    }
	;}
    break;

  case 51:
#line 398 "wnparse.y"
    { 
	    yyerror("Error in frame list.\n"); 
	    (yyval.fr) = (yyvsp[-1].fr);
	;}
    break;

  case 52:
#line 405 "wnparse.y"
    { cluscnt++; (yyval.ss) = (yyvsp[-1].ss); ;}
    break;

  case 53:
#line 407 "wnparse.y"
    {
	    (yyval.ss)=NULL;
	    yyerror("Had trouble finding the beginning of this cluster\n");
	    yyerrok;
	;}
    break;

  case 54:
#line 415 "wnparse.y"
    { (yyval.ss) = (yyvsp[0].ss); ;}
    break;

  case 55:
#line 417 "wnparse.y"
    { (yyval.ss) = (yyvsp[-2].ss); ;}
    break;

  case 56:
#line 421 "wnparse.y"
    {
            if ((yyvsp[-1].ss)) {
		(yyvsp[-1].ss)->fans = (yyvsp[0].ss);
		(yyvsp[-1].ss)->clusnum = cluscnt;
		AddSynset((yyvsp[-1].ss));
	    }
	    (yyval.ss) = (yyvsp[-1].ss);
	;}
    break;

  case 57:
#line 430 "wnparse.y"
    {
	    (yyval.ss)=NULL;
	    yyerror("Can't find a head synset for this part of the cluster\n");
	;}
    break;

  case 58:
#line 437 "wnparse.y"
    { (yyval.ss)=NULL; ;}
    break;

  case 59:
#line 439 "wnparse.y"
    { if ((yyvsp[-1].ss)) (yyvsp[-1].ss)->ssnext = (yyvsp[0].ss); (yyval.ss) = (yyvsp[-1].ss); ;}
    break;

  case 60:
#line 443 "wnparse.y"
    {
	    if ((yyval.ss) = MakeSynset(SATELLITE, (yyvsp[-4].s), (yyvsp[-3].p), NULL, (yyvsp[-2].tx), (yyvsp[0].number))) {
		(yyval.ss)->isfanss = TRUE;
		(yyval.ss)->clusnum = cluscnt;
		AddToSynList((yyval.ss)); /* need since AddSynset() not done */
	    }
	;}
    break;

  case 61:
#line 451 "wnparse.y"
    {
	    if ((yyval.ss) = MakeSynset(SATELLITE, (yyvsp[-3].s), NULL, NULL, (yyvsp[-2].tx), (yyvsp[0].number))) {
		(yyval.ss)->isfanss = TRUE;
		(yyval.ss)->clusnum = cluscnt;
		AddToSynList((yyval.ss)); /* need since AddSynset() not done */
	    }
	;}
    break;

  case 62:
#line 459 "wnparse.y"
    {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -