Descriptors (lines 1489-1544)
Back to List
Browsing parserm.h
1489 [ Descriptors allow_multiple o x flag cto type n;
1490
1491 ResetDescriptors();
1492 if (wn > num_words) return 0;
1493
1494 for (flag=true:flag:)
1495 { o=NextWordStopped(); flag=false;
1496
1497 for (x=1:x<=LanguageDescriptors-->0:x=x+4)
1498 if (o == LanguageDescriptors-->x)
1499 { flag = true;
1500 type = LanguageDescriptors-->(x+2);
1501 if (type ~= DEFART_PK) indef_mode = true;
1502 indef_possambig = true;
1503 indef_cases = indef_cases & (LanguageDescriptors-->(x+1));
1504
1505 if (type == POSSESS_PK)
1506 { cto = LanguageDescriptors-->(x+3);
1507 switch(cto)
1508 { 0: indef_type = indef_type | MY_BIT;
1509 1: indef_type = indef_type | THAT_BIT;
1510 default: indef_owner = PronounValue(cto);
1511 if (indef_owner == NULL) indef_owner = InformParser;
1512 }
1513 }
1514
1515 if (type == light)
1516 indef_type = indef_type | LIT_BIT;
1517 if (type == -light)
1518 indef_type = indef_type | UNLIT_BIT;
1519 }
1520
1521 if (o==OTHER1__WD or OTHER2__WD or OTHER3__WD)
1522 { indef_mode=1; flag=1;
1523 indef_type = indef_type | OTHER_BIT; }
1524 if (o==ALL1__WD or ALL2__WD or ALL3__WD or ALL4__WD or ALL5__WD)
1525 { indef_mode=1; flag=1; indef_wanted=100;
1526 if (take_all_rule == 1)
1527 take_all_rule = 2;
1528 indef_type = indef_type | PLURAL_BIT; }
1529 if (allow_plurals && allow_multiple)
1530 { n=TryNumber(wn-1);
1531 if (n==1) { indef_mode=1; flag=1; }
1532 if (n>1) { indef_guess_p=1;
1533 indef_mode=1; flag=1; indef_wanted=n;
1534 indef_nspec_at=wn-1;
1535 indef_type = indef_type | PLURAL_BIT; }
1536 }
1537 if (flag==1
1538 && NextWordStopped() ~= OF1__WD or OF2__WD or OF3__WD or OF4__WD)
1539 wn--; ! Skip 'of' after these
1540 }
1541 wn--;
1542 if ((indef_wanted > 0) && (~~allow_multiple)) return MULTI_PE;
1543 return 0;
1544 ];
Last updated 27 February 2004.
This site is no longer supported; information may be out of date.
Maintained as a historical archive by the Interactive Fiction Technology Foundation.
Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
This page was originally managed by Graham Nelson (graham@gnelson.demon.co.uk) assisted by C Knight.