



PrefaceByArticle (lines 6228-6285)
Back to List
Browsing parserm.h
6228 [ PrefaceByArticle o acode pluralise capitalise i artform findout artval;
6229 if (o provides articles) {
6230 artval=(o.&articles)-->(acode+short_name_case*LanguageCases);
6231 if (capitalise)
6232 print (Cap) artval, " ";
6233 else
6234 print (string) artval, " ";
6235 if (pluralise) return;
6236 print (PSN__) o; return;
6237 }
6238
6239 i = GetGNAOfObject(o);
6240 if (pluralise) {
6241 if (i < 3 || (i >= 6 && i < 9)) i = i + 3;
6242 }
6243 i = LanguageGNAsToArticles-->i;
6244
6245 artform = LanguageArticles
6246 + 3*WORDSIZE*LanguageContractionForms*(short_name_case + i*LanguageCases);
6247
6248 #Iftrue (LanguageContractionForms == 2);
6249 if (artform-->acode ~= artform-->(acode+3)) findout = true;
6250 #Endif; ! LanguageContractionForms
6251 #Iftrue (LanguageContractionForms == 3);
6252 if (artform-->acode ~= artform-->(acode+3)) findout = true;
6253 if (artform-->(acode+3) ~= artform-->(acode+6)) findout = true;
6254 #Endif; ! LanguageContractionForms
6255 #Iftrue (LanguageContractionForms == 4);
6256 if (artform-->acode ~= artform-->(acode+3)) findout = true;
6257 if (artform-->(acode+3) ~= artform-->(acode+6)) findout = true;
6258 if (artform-->(acode+6) ~= artform-->(acode+9)) findout = true;
6259 #Endif; ! LanguageContractionForms
6260 #Iftrue (LanguageContractionForms > 4);
6261 findout = true;
6262 #Endif; ! LanguageContractionForms
6263
6264 #Ifdef TARGET_ZCODE;
6265 if (standard_interpreter ~= 0 && findout) {
6266 StorageForShortName-->0 = 160;
6267 @output_stream 3 StorageForShortName;
6268 if (pluralise) print (number) pluralise; else print (PSN__) o;
6269 @output_stream -3;
6270 acode = acode + 3*LanguageContraction(StorageForShortName + 2);
6271 }
6272 #Ifnot; ! TARGET_GLULX
6273 if (findout) {
6274 if (pluralise)
6275 PrintAnyToArray(StorageForShortName, 160, EnglishNumber, pluralise);
6276 else
6277 PrintAnyToArray(StorageForShortName, 160, PSN__, o);
6278 acode = acode + 3*LanguageContraction(StorageForShortName);
6279 }
6280 #Endif; ! TARGET_
6281
6282 Cap (artform-->acode, ~~capitalise); ! print article
6283 if (pluralise) return;
6284 print (PSN__) o;
6285 ];
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 assisted by C Knight.