adjectives.h

Download

#Ifv5;
Property adj_name;
Property noun_name;
#Ifnot;
Property individual adj_name;
Property individual noun_name;
#Endif;

#Ifv5;
[MatchNameList p_obj p_prop _w _matched _an _count _i;
	_an = p_obj.&p_prop;
	if(_an == 0) { wn++; return 0; }
	_count = p_obj.#p_prop;
	@log_shift _count (-1) -> _count; ! Divide by 2
	while(true) {
		_w = NextWord();
		@scan_table _w _an _count -> _i ?_MNL_match;
		return _matched;
._MNL_match;
		_matched++;
	}
];
#Ifnot;
[MatchNameList p_obj p_prop _w _matched _base _an _count _i;
	_an = p_obj.&p_prop;
	if(_an == 0) { wn++; return 0; }
	_count = p_obj.#p_prop / 2;
	while(true) {
		_w = NextWord();
		_base = _matched;
		for(_i = 0 : _i < _count : _i++)
			if(_w == _an-->_i) { _matched++; break; }
		if(_matched == _base) return _matched;
	}
];
#Endif;

Class AdjObject
	with
		parse_name [ _adj _noun;
			_adj = MatchNameList(self, adj_name);
			wn--;
			_noun = MatchNameList(self, noun_name);
			if(_noun) return _noun + _adj;
		];