Adjectives defined by an I7 phrase.
§1. Phrase adjectives. And here's another one.
adjective_meaning_family *phrase_amf = NULL; defined by an explicit but nameless rule void Phrases::Phrasal::start(void) { phrase_amf = AdjectiveMeanings::new_family(6); METHOD_ADD(phrase_amf, CLAIM_DEFINITION_SENTENCE_ADJM_MTID, Phrases::Phrasal::claim_definition); } int Phrases::Phrasal::is_defined_by_phrase(adjective_meaning *am) { if ((am) && (am->family == phrase_amf)) return TRUE; return FALSE; } void Phrases::Phrasal::define_adjective_by_phrase(parse_node *p, phrase *ph, wording *CW, kind **K) { definition *def; *CW = EMPTY_WORDING; *K = K_object; if (ph == NULL) return; LOOP_OVER(def, definition) if ((def->definition_node == p) && (Phrases::Phrasal::is_defined_by_phrase(def->am_of_def))) { i6_schema *sch = AdjectiveMeanings::make_schema(def->am_of_def, TEST_ATOM_TASK); Calculus::Schemas::modify(sch, "(%n(*1))", Phrases::iname(ph)); *CW = def->domain_calling; AdjectiveMeaningDomains::determine_if_possible(def->am_of_def); *K = AdjectiveMeaningDomains::get_kind(def->am_of_def); if ((*K == NULL) || (Kinds::Behaviour::is_object(*K))) *K = K_object; return; } } int Phrases::Phrasal::claim_definition(adjective_meaning_family *f, adjective_meaning **result, parse_node *q, int sense, wording AW, wording DNW, wording CONW, wording CALLW) { if (sense != 0) return FALSE; definition *def = Phrases::Adjectives::def_new(q); adjective_meaning *am = AdjectiveMeanings::new(phrase_amf, STORE_POINTER_definition(def), Node::get_text(q)); def->domain_calling = CALLW; def->am_of_def = am; adjective *adj = Adjectives::declare(AW, NULL); AdjectiveAmbiguity::add_meaning_to_adjective(am, adj); AdjectiveMeanings::perform_task_via_function(am, TEST_ATOM_TASK); AdjectiveMeaningDomains::set_from_text(am, DNW); *result = am; return TRUE; }