Inform - Support - Source

Back to List

Inventory
Complete

Backward
Forward

Plain
Coloured
Gaudy

This code
in plain text

Browsing parserm.h

Descriptors (lines 2135-2189)

2135  [ Descriptors  o x flag cto type n;
2136      ResetDescriptors();
2137      if (wn > num_words) return 0;
2138   
2139      for (flag=true : flag :) {
2140          o = NextWordStopped(); flag = false;
2141   
2142         for (x=1 : x<=LanguageDescriptors-->0 : x=x+4)
2143              if (o == LanguageDescriptors-->x) {
2144                  flag = true;
2145                  type = LanguageDescriptors-->(x+2);
2146                  if (type ~= DEFART_PK) indef_mode = true;
2147                  indef_possambig = true;
2148                  indef_cases = indef_cases & (LanguageDescriptors-->(x+1));
2149   
2150                  if (type == POSSESS_PK) {
2151                      cto = LanguageDescriptors-->(x+3);
2152                      switch (cto) {
2153                        0: indef_type = indef_type | MY_BIT;
2154                        1: indef_type = indef_type | THAT_BIT;
2155                        default:
2156                          indef_owner = PronounValue(cto);
2157                          if (indef_owner == NULL) indef_owner = InformParser;
2158                      }
2159                  }
2160   
2161                  if (type == light)  indef_type = indef_type | LIT_BIT;
2162                  if (type == -light) indef_type = indef_type | UNLIT_BIT;
2163              }
2164   
2165          if (o == OTHER1__WD or OTHER2__WD or OTHER3__WD) {
2166              indef_mode = 1; flag = 1;
2167              indef_type = indef_type | OTHER_BIT;
2168          }
2169          if (o == ALL1__WD or ALL2__WD or ALL3__WD or ALL4__WD or ALL5__WD) {
2170              indef_mode = 1; flag = 1; indef_wanted = 100;
2171              if (take_all_rule == 1) take_all_rule = 2;
2172              indef_type = indef_type | PLURAL_BIT;
2173          }
2174          if (allow_plurals) {
2175              n = TryNumber(wn-1);
2176              if (n == 1) { indef_mode = 1; flag = 1; }
2177              if (n > 1) {
2178                  indef_guess_p = 1;
2179                  indef_mode = 1; flag = 1; indef_wanted = n;
2180                  indef_nspec_at = wn-1;
2181                  indef_type = indef_type | PLURAL_BIT;
2182              }
2183          }
2184          if (flag == 1 && NextWordStopped() ~= OF1__WD or OF2__WD or OF3__WD or OF4__WD)
2185              wn--;  ! Skip 'of' after these
2186      }
2187      wn--;
2188      return 0;
2189  ];


Last updated 27 February 2004. The librarian in charge of this page is Graham Nelson (graham@gnelson.demon.co.uk) assisted by C Knight. Please email any comments, suggestions or corrections to cedenqs@inform-fiction.org.