Files
neuron/dist/morphology-he.c
T
will.anderson 48ecd83421 fix: restore elb build — import paths, morphology deps, C master declarations header
- Fix wrong ELP import paths in soul.el, elp-input.el, studio.el
  (../foundation/elp/src → ../foundation/el/elp/src)
- Add missing import "morphology.el" to all 29 language morphology modules
- Recompile all affected dist/*.c with correct cross-module declarations
- Add dist/elp-c-decls.h: C-level master forward declarations for ELP package
  (enables elb --force-include to resolve undeclared cross-module calls)
2026-05-08 19:43:57 -05:00

820 lines
25 KiB
C
Generated

#include <stdint.h>
#include <stdlib.h>
#include "el_runtime.h"
el_val_t str_ends(el_val_t s, el_val_t suf);
el_val_t str_last_char(el_val_t s);
el_val_t str_last2(el_val_t s);
el_val_t str_last3(el_val_t s);
el_val_t str_drop_last(el_val_t s, el_val_t n);
el_val_t is_vowel(el_val_t c);
el_val_t morph_apply_suffix(el_val_t base, el_val_t suffix);
el_val_t en_irregular_plural(el_val_t word);
el_val_t en_irregular_singular(el_val_t word);
el_val_t en_irregular_verb(el_val_t base);
el_val_t en_verb_3sg(el_val_t base);
el_val_t en_should_double_final(el_val_t base);
el_val_t en_verb_past(el_val_t base);
el_val_t en_verb_gerund(el_val_t base);
el_val_t en_pluralize_regular(el_val_t singular);
el_val_t en_verb_form(el_val_t base, el_val_t tense, el_val_t person, el_val_t number);
el_val_t agree_determiner(el_val_t det, el_val_t noun);
el_val_t morph_pluralize(el_val_t noun, el_val_t profile);
el_val_t morph_map_canonical(el_val_t verb, el_val_t code);
el_val_t morph_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number, el_val_t profile);
el_val_t morph_inflect(el_val_t word, el_val_t features, el_val_t profile);
el_val_t pluralize(el_val_t singular);
el_val_t singularize(el_val_t plural);
el_val_t verb_form(el_val_t base, el_val_t tense, el_val_t person, el_val_t number);
el_val_t irregular_plural(el_val_t word);
el_val_t irregular_singular(el_val_t word);
el_val_t he_str_ends(el_val_t s, el_val_t suf);
el_val_t he_str_len(el_val_t s);
el_val_t he_str_drop_last(el_val_t s, el_val_t n);
el_val_t he_str_last_char(el_val_t s);
el_val_t he_slot(el_val_t person, el_val_t gender, el_val_t number);
el_val_t he_present_form_code(el_val_t slot);
el_val_t he_copula_past(el_val_t slot);
el_val_t he_copula_future(el_val_t slot);
el_val_t he_is_copula(el_val_t verb);
el_val_t he_conjugate_copula(el_val_t tense, el_val_t slot);
el_val_t he_present_lir_ot(el_val_t form);
el_val_t he_present_le_exol(el_val_t form);
el_val_t he_present_ledaber(el_val_t form);
el_val_t he_present_lalechet(el_val_t form);
el_val_t he_past_lir_ot(el_val_t slot);
el_val_t he_past_le_exol(el_val_t slot);
el_val_t he_past_ledaber(el_val_t slot);
el_val_t he_past_lalechet(el_val_t slot);
el_val_t he_future_lir_ot(el_val_t slot);
el_val_t he_future_le_exol(el_val_t slot);
el_val_t he_future_ledaber(el_val_t slot);
el_val_t he_future_lalechet(el_val_t slot);
el_val_t he_known_verb(el_val_t verb, el_val_t tense, el_val_t slot);
el_val_t he_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t gender, el_val_t number);
el_val_t he_pluralize(el_val_t noun, el_val_t gender);
el_val_t he_is_hebrew_script(el_val_t noun);
el_val_t he_definite_prefix(el_val_t noun);
el_val_t he_noun_phrase(el_val_t noun, el_val_t number, el_val_t gender, el_val_t definite);
el_val_t he_map_canonical(el_val_t verb);
el_val_t he_str_ends(el_val_t s, el_val_t suf) {
return str_ends_with(s, suf);
return 0;
}
el_val_t he_str_len(el_val_t s) {
return str_len(s);
return 0;
}
el_val_t he_str_drop_last(el_val_t s, el_val_t n) {
el_val_t len = str_len(s);
if (n >= len) {
return EL_STR("");
}
return str_slice(s, 0, (len - n));
return 0;
}
el_val_t he_str_last_char(el_val_t s) {
el_val_t n = str_len(s);
if (n == 0) {
return EL_STR("");
}
return str_slice(s, (n - 1), n);
return 0;
}
el_val_t he_slot(el_val_t person, el_val_t gender, el_val_t number) {
if (str_eq(person, EL_STR("third"))) {
if (str_eq(number, EL_STR("singular"))) {
if (str_eq(gender, EL_STR("f"))) {
return 1;
}
return 0;
}
if (str_eq(gender, EL_STR("f"))) {
return 6;
}
return 5;
}
if (str_eq(person, EL_STR("second"))) {
if (str_eq(number, EL_STR("singular"))) {
if (str_eq(gender, EL_STR("f"))) {
return 3;
}
return 2;
}
if (str_eq(gender, EL_STR("f"))) {
return 8;
}
return 7;
}
if (str_eq(number, EL_STR("plural"))) {
return 9;
}
return 4;
return 0;
}
el_val_t he_present_form_code(el_val_t slot) {
if (slot == 0) {
return 0;
}
if (slot == 1) {
return 1;
}
if (slot == 2) {
return 0;
}
if (slot == 3) {
return 1;
}
if (slot == 4) {
return 0;
}
if (slot == 5) {
return 2;
}
if (slot == 6) {
return 3;
}
if (slot == 7) {
return 2;
}
if (slot == 8) {
return 3;
}
return 2;
return 0;
}
el_val_t he_copula_past(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\x94\xd7\x99\xd7\x94");
}
if (slot == 1) {
return EL_STR("\xd7\x94\xd7\x99\xd7\x99\xd7\xaa\xd7\x94");
}
if (slot == 2) {
return EL_STR("\xd7\x94\xd7\x99\xd7\x99\xd7\xaa");
}
if (slot == 3) {
return EL_STR("\xd7\x94\xd7\x99\xd7\x99\xd7\xaa\xd7\x94");
}
if (slot == 4) {
return EL_STR("\xd7\x94\xd7\x99\xd7\x99\xd7\xaa\xd7\x99");
}
if (slot == 5) {
return EL_STR("\xd7\x94\xd7\x99\xd7\x95");
}
if (slot == 6) {
return EL_STR("\xd7\x94\xd7\x99\xd7\x95");
}
if (slot == 7) {
return EL_STR("\xd7\x94\xd7\x99\xd7\x99\xd7\xaa\xd7\x9d");
}
if (slot == 8) {
return EL_STR("\xd7\x94\xd7\x99\xd7\x99\xd7\xaa\xd7\x9f");
}
return EL_STR("\xd7\x94\xd7\x99\xd7\x99\xd7\xa0\xd7\x95");
return 0;
}
el_val_t he_copula_future(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\x99\xd7\x94\xd7\x99\xd7\x94");
}
if (slot == 1) {
return EL_STR("\xd7\xaa\xd7\x94\xd7\x99\xd7\x94");
}
if (slot == 2) {
return EL_STR("\xd7\xaa\xd7\x94\xd7\x99\xd7\x94");
}
if (slot == 3) {
return EL_STR("\xd7\xaa\xd7\x94\xd7\x99\xd7\x99");
}
if (slot == 4) {
return EL_STR("\xd7\x90\xd7\x94\xd7\x99\xd7\x94");
}
if (slot == 5) {
return EL_STR("\xd7\x99\xd7\x94\xd7\x99\xd7\x95");
}
if (slot == 6) {
return EL_STR("\xd7\x99\xd7\x94\xd7\x99\xd7\x95");
}
if (slot == 7) {
return EL_STR("\xd7\xaa\xd7\x94\xd7\x99\xd7\x95");
}
if (slot == 8) {
return EL_STR("\xd7\xaa\xd7\x94\xd7\x99\xd7\x95");
}
return EL_STR("\xd7\xa0\xd7\x94\xd7\x99\xd7\x94");
return 0;
}
el_val_t he_is_copula(el_val_t verb) {
if (str_eq(verb, EL_STR("lihyot"))) {
return 1;
}
if (str_eq(verb, EL_STR("haya"))) {
return 1;
}
if (str_eq(verb, EL_STR("be"))) {
return 1;
}
if (str_eq(verb, EL_STR("\xd7\x94\xd7\x99\xd7\x94"))) {
return 1;
}
if (str_eq(verb, EL_STR("\xd7\x9c\xd6\xb4\xd7\x94\xd6\xb0\xd7\x99\xd7\x95\xd6\xb9\xd7\xaa"))) {
return 1;
}
return 0;
return 0;
}
el_val_t he_conjugate_copula(el_val_t tense, el_val_t slot) {
if (str_eq(tense, EL_STR("present"))) {
return EL_STR("");
}
if (str_eq(tense, EL_STR("past"))) {
return he_copula_past(slot);
}
if (str_eq(tense, EL_STR("future"))) {
return he_copula_future(slot);
}
return EL_STR("");
return 0;
}
el_val_t he_present_lir_ot(el_val_t form) {
if (form == 0) {
return EL_STR("\xd7\xa8\xd7\x95\xd6\xb9\xd7\x90\xd6\xb6\xd7\x94");
}
if (form == 1) {
return EL_STR("\xd7\xa8\xd7\x95\xd6\xb9\xd7\x90\xd6\xb8\xd7\x94");
}
if (form == 2) {
return EL_STR("\xd7\xa8\xd7\x95\xd6\xb9\xd7\x90\xd6\xb4\xd7\x99\xd7\x9d");
}
return EL_STR("\xd7\xa8\xd7\x95\xd6\xb9\xd7\x90\xd7\x95\xd6\xb9\xd7\xaa");
return 0;
}
el_val_t he_present_le_exol(el_val_t form) {
if (form == 0) {
return EL_STR("\xd7\x90\xd7\x95\xd6\xb9\xd7\x9b\xd6\xb5\xd7\x9c");
}
if (form == 1) {
return EL_STR("\xd7\x90\xd7\x95\xd6\xb9\xd7\x9b\xd6\xb6\xd7\x9c\xd6\xb6\xd7\xaa");
}
if (form == 2) {
return EL_STR("\xd7\x90\xd7\x95\xd6\xb9\xd7\x9b\xd6\xb0\xd7\x9c\xd6\xb4\xd7\x99\xd7\x9d");
}
return EL_STR("\xd7\x90\xd7\x95\xd6\xb9\xd7\x9b\xd6\xb0\xd7\x9c\xd7\x95\xd6\xb9\xd7\xaa");
return 0;
}
el_val_t he_present_ledaber(el_val_t form) {
if (form == 0) {
return EL_STR("\xd7\x9e\xd6\xb0\xd7\x93\xd6\xb7\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8");
}
if (form == 1) {
return EL_STR("\xd7\x9e\xd6\xb0\xd7\x93\xd6\xb7\xd7\x91\xd6\xb6\xd6\xbc\xd7\xa8\xd6\xb6\xd7\xaa");
}
if (form == 2) {
return EL_STR("\xd7\x9e\xd6\xb0\xd7\x93\xd6\xb7\xd7\x91\xd6\xb0\xd6\xbc\xd7\xa8\xd6\xb4\xd7\x99\xd7\x9d");
}
return EL_STR("\xd7\x9e\xd6\xb0\xd7\x93\xd6\xb7\xd7\x91\xd6\xb0\xd6\xbc\xd7\xa8\xd7\x95\xd6\xb9\xd7\xaa");
return 0;
}
el_val_t he_present_lalechet(el_val_t form) {
if (form == 0) {
return EL_STR("\xd7\x94\xd7\x95\xd6\xb9\xd7\x9c\xd6\xb5\xd7\x9a\xd6\xb0");
}
if (form == 1) {
return EL_STR("\xd7\x94\xd7\x95\xd6\xb9\xd7\x9c\xd6\xb6\xd7\x9b\xd6\xb6\xd7\xaa");
}
if (form == 2) {
return EL_STR("\xd7\x94\xd7\x95\xd6\xb9\xd7\x9c\xd6\xb0\xd7\x9b\xd6\xb4\xd7\x99\xd7\x9d");
}
return EL_STR("\xd7\x94\xd7\x95\xd6\xb9\xd7\x9c\xd6\xb0\xd7\x9b\xd7\x95\xd6\xb9\xd7\xaa");
return 0;
}
el_val_t he_past_lir_ot(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\xa8\xd6\xb8\xd7\x90\xd6\xb8\xd7\x94");
}
if (slot == 1) {
return EL_STR("\xd7\xa8\xd6\xb8\xd7\x90\xd6\xb2\xd7\xaa\xd6\xb8\xd7\x94");
}
if (slot == 2) {
return EL_STR("\xd7\xa8\xd6\xb8\xd7\x90\xd6\xb4\xd7\x99\xd7\xaa\xd6\xb8");
}
if (slot == 3) {
return EL_STR("\xd7\xa8\xd6\xb8\xd7\x90\xd6\xb4\xd7\x99\xd7\xaa");
}
if (slot == 4) {
return EL_STR("\xd7\xa8\xd6\xb8\xd7\x90\xd6\xb4\xd7\x99\xd7\xaa\xd6\xb4\xd7\x99");
}
if (slot == 5) {
return EL_STR("\xd7\xa8\xd6\xb8\xd7\x90\xd7\x95\xd6\xbc");
}
if (slot == 6) {
return EL_STR("\xd7\xa8\xd6\xb8\xd7\x90\xd7\x95\xd6\xbc");
}
if (slot == 7) {
return EL_STR("\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb4\xd7\x99\xd7\xaa\xd6\xb6\xd7\x9d");
}
if (slot == 8) {
return EL_STR("\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb4\xd7\x99\xd7\xaa\xd6\xb6\xd7\x9f");
}
return EL_STR("\xd7\xa8\xd6\xb8\xd7\x90\xd6\xb4\xd7\x99\xd7\xa0\xd7\x95\xd6\xbc");
return 0;
}
el_val_t he_past_le_exol(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\x90\xd6\xb8\xd7\x9b\xd6\xb7\xd7\x9c");
}
if (slot == 1) {
return EL_STR("\xd7\x90\xd6\xb8\xd7\x9b\xd6\xb0\xd7\x9c\xd6\xb8\xd7\x94");
}
if (slot == 2) {
return EL_STR("\xd7\x90\xd6\xb8\xd7\x9b\xd6\xb7\xd7\x9c\xd6\xb0\xd7\xaa\xd6\xb8\xd6\xbc");
}
if (slot == 3) {
return EL_STR("\xd7\x90\xd6\xb8\xd7\x9b\xd6\xb7\xd7\x9c\xd6\xb0\xd7\xaa\xd6\xb0\xd6\xbc");
}
if (slot == 4) {
return EL_STR("\xd7\x90\xd6\xb8\xd7\x9b\xd6\xb7\xd7\x9c\xd6\xb0\xd7\xaa\xd6\xb4\xd6\xbc\xd7\x99");
}
if (slot == 5) {
return EL_STR("\xd7\x90\xd6\xb8\xd7\x9b\xd6\xb0\xd7\x9c\xd7\x95\xd6\xbc");
}
if (slot == 6) {
return EL_STR("\xd7\x90\xd6\xb8\xd7\x9b\xd6\xb0\xd7\x9c\xd7\x95\xd6\xbc");
}
if (slot == 7) {
return EL_STR("\xd7\x90\xd6\xb2\xd7\x9b\xd6\xb7\xd7\x9c\xd6\xb0\xd7\xaa\xd6\xb6\xd6\xbc\xd7\x9d");
}
if (slot == 8) {
return EL_STR("\xd7\x90\xd6\xb2\xd7\x9b\xd6\xb7\xd7\x9c\xd6\xb0\xd7\xaa\xd6\xb6\xd6\xbc\xd7\x9f");
}
return EL_STR("\xd7\x90\xd6\xb8\xd7\x9b\xd6\xb7\xd7\x9c\xd6\xb0\xd7\xa0\xd7\x95\xd6\xbc");
return 0;
}
el_val_t he_past_ledaber(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8");
}
if (slot == 1) {
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb0\xd6\xbc\xd7\xa8\xd6\xb8\xd7\x94");
}
if (slot == 2) {
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb7\xd6\xbc\xd7\xa8\xd6\xb0\xd7\xaa\xd6\xb8\xd6\xbc");
}
if (slot == 3) {
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb7\xd6\xbc\xd7\xa8\xd6\xb0\xd7\xaa\xd6\xb0\xd6\xbc");
}
if (slot == 4) {
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb7\xd6\xbc\xd7\xa8\xd6\xb0\xd7\xaa\xd6\xb4\xd6\xbc\xd7\x99");
}
if (slot == 5) {
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb0\xd6\xbc\xd7\xa8\xd7\x95\xd6\xbc");
}
if (slot == 6) {
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb0\xd6\xbc\xd7\xa8\xd7\x95\xd6\xbc");
}
if (slot == 7) {
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb7\xd6\xbc\xd7\xa8\xd6\xb0\xd7\xaa\xd6\xb6\xd6\xbc\xd7\x9d");
}
if (slot == 8) {
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb7\xd6\xbc\xd7\xa8\xd6\xb0\xd7\xaa\xd6\xb6\xd6\xbc\xd7\x9f");
}
return EL_STR("\xd7\x93\xd6\xb4\xd6\xbc\xd7\x91\xd6\xb7\xd6\xbc\xd7\xa8\xd6\xb0\xd7\xa0\xd7\x95\xd6\xbc");
return 0;
}
el_val_t he_past_lalechet(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\x94\xd6\xb8\xd7\x9c\xd6\xb7\xd7\x9a\xd6\xb0");
}
if (slot == 1) {
return EL_STR("\xd7\x94\xd6\xb8\xd7\x9c\xd6\xb0\xd7\x9b\xd6\xb8\xd7\x94");
}
if (slot == 2) {
return EL_STR("\xd7\x94\xd6\xb8\xd7\x9c\xd6\xb7\xd7\x9b\xd6\xb0\xd7\xaa\xd6\xb8\xd6\xbc");
}
if (slot == 3) {
return EL_STR("\xd7\x94\xd6\xb8\xd7\x9c\xd6\xb7\xd7\x9b\xd6\xb0\xd7\xaa\xd6\xb0\xd6\xbc");
}
if (slot == 4) {
return EL_STR("\xd7\x94\xd6\xb8\xd7\x9c\xd6\xb7\xd7\x9b\xd6\xb0\xd7\xaa\xd6\xb4\xd6\xbc\xd7\x99");
}
if (slot == 5) {
return EL_STR("\xd7\x94\xd6\xb8\xd7\x9c\xd6\xb0\xd7\x9b\xd7\x95\xd6\xbc");
}
if (slot == 6) {
return EL_STR("\xd7\x94\xd6\xb8\xd7\x9c\xd6\xb0\xd7\x9b\xd7\x95\xd6\xbc");
}
if (slot == 7) {
return EL_STR("\xd7\x94\xd6\xb2\xd7\x9c\xd6\xb7\xd7\x9b\xd6\xb0\xd7\xaa\xd6\xb6\xd6\xbc\xd7\x9d");
}
if (slot == 8) {
return EL_STR("\xd7\x94\xd6\xb2\xd7\x9c\xd6\xb7\xd7\x9b\xd6\xb0\xd7\xaa\xd6\xb6\xd6\xbc\xd7\x9f");
}
return EL_STR("\xd7\x94\xd6\xb8\xd7\x9c\xd6\xb7\xd7\x9b\xd6\xb0\xd7\xa0\xd7\x95\xd6\xbc");
return 0;
}
el_val_t he_future_lir_ot(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\x99\xd6\xb4\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb6\xd7\x94");
}
if (slot == 1) {
return EL_STR("\xd7\xaa\xd6\xb4\xd6\xbc\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb6\xd7\x94");
}
if (slot == 2) {
return EL_STR("\xd7\xaa\xd6\xb4\xd6\xbc\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb6\xd7\x94");
}
if (slot == 3) {
return EL_STR("\xd7\xaa\xd6\xb4\xd6\xbc\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb4\xd7\x99");
}
if (slot == 4) {
return EL_STR("\xd7\x90\xd6\xb6\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb6\xd7\x94");
}
if (slot == 5) {
return EL_STR("\xd7\x99\xd6\xb4\xd7\xa8\xd6\xb0\xd7\x90\xd7\x95\xd6\xbc");
}
if (slot == 6) {
return EL_STR("\xd7\xaa\xd6\xb4\xd6\xbc\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb6\xd7\x99\xd7\xa0\xd6\xb8\xd7\x94");
}
if (slot == 7) {
return EL_STR("\xd7\xaa\xd6\xb4\xd6\xbc\xd7\xa8\xd6\xb0\xd7\x90\xd7\x95\xd6\xbc");
}
if (slot == 8) {
return EL_STR("\xd7\xaa\xd6\xb4\xd6\xbc\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb6\xd7\x99\xd7\xa0\xd6\xb8\xd7\x94");
}
return EL_STR("\xd7\xa0\xd6\xb4\xd7\xa8\xd6\xb0\xd7\x90\xd6\xb6\xd7\x94");
return 0;
}
el_val_t he_future_le_exol(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\x99\xd6\xb9\xd7\x90\xd7\x9b\xd6\xb7\xd7\x9c");
}
if (slot == 1) {
return EL_STR("\xd7\xaa\xd6\xb9\xd6\xbc\xd7\x90\xd7\x9b\xd6\xb7\xd7\x9c");
}
if (slot == 2) {
return EL_STR("\xd7\xaa\xd6\xb9\xd6\xbc\xd7\x90\xd7\x9b\xd6\xb7\xd7\x9c");
}
if (slot == 3) {
return EL_STR("\xd7\xaa\xd6\xb9\xd6\xbc\xd7\x90\xd7\x9b\xd6\xb0\xd7\x9c\xd6\xb4\xd7\x99");
}
if (slot == 4) {
return EL_STR("\xd7\x90\xd6\xb9\xd7\x9b\xd6\xb7\xd7\x9c");
}
if (slot == 5) {
return EL_STR("\xd7\x99\xd6\xb9\xd7\x90\xd7\x9b\xd6\xb0\xd7\x9c\xd7\x95\xd6\xbc");
}
if (slot == 6) {
return EL_STR("\xd7\xaa\xd6\xb9\xd6\xbc\xd7\x90\xd7\x9b\xd6\xb7\xd7\x9c\xd6\xb0\xd7\xa0\xd6\xb8\xd7\x94");
}
if (slot == 7) {
return EL_STR("\xd7\xaa\xd6\xb9\xd6\xbc\xd7\x90\xd7\x9b\xd6\xb0\xd7\x9c\xd7\x95\xd6\xbc");
}
if (slot == 8) {
return EL_STR("\xd7\xaa\xd6\xb9\xd6\xbc\xd7\x90\xd7\x9b\xd6\xb7\xd7\x9c\xd6\xb0\xd7\xa0\xd6\xb8\xd7\x94");
}
return EL_STR("\xd7\xa0\xd6\xb9\xd7\x90\xd7\x9b\xd6\xb7\xd7\x9c");
return 0;
}
el_val_t he_future_ledaber(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\x99\xd6\xb0\xd7\x93\xd6\xb7\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8");
}
if (slot == 1) {
return EL_STR("\xd7\xaa\xd6\xb0\xd6\xbc\xd7\x93\xd6\xb7\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8");
}
if (slot == 2) {
return EL_STR("\xd7\xaa\xd6\xb0\xd6\xbc\xd7\x93\xd6\xb7\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8");
}
if (slot == 3) {
return EL_STR("\xd7\xaa\xd6\xb0\xd6\xbc\xd7\x93\xd6\xb7\xd7\x91\xd6\xb0\xd6\xbc\xd7\xa8\xd6\xb4\xd7\x99");
}
if (slot == 4) {
return EL_STR("\xd7\x90\xd6\xb2\xd7\x93\xd6\xb7\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8");
}
if (slot == 5) {
return EL_STR("\xd7\x99\xd6\xb0\xd7\x93\xd6\xb7\xd7\x91\xd6\xb0\xd6\xbc\xd7\xa8\xd7\x95\xd6\xbc");
}
if (slot == 6) {
return EL_STR("\xd7\xaa\xd6\xb0\xd6\xbc\xd7\x93\xd6\xb7\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8\xd6\xb0\xd7\xa0\xd6\xb8\xd7\x94");
}
if (slot == 7) {
return EL_STR("\xd7\xaa\xd6\xb0\xd6\xbc\xd7\x93\xd6\xb7\xd7\x91\xd6\xb0\xd6\xbc\xd7\xa8\xd7\x95\xd6\xbc");
}
if (slot == 8) {
return EL_STR("\xd7\xaa\xd6\xb0\xd6\xbc\xd7\x93\xd6\xb7\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8\xd6\xb0\xd7\xa0\xd6\xb8\xd7\x94");
}
return EL_STR("\xd7\xa0\xd6\xb0\xd7\x93\xd6\xb7\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8");
return 0;
}
el_val_t he_future_lalechet(el_val_t slot) {
if (slot == 0) {
return EL_STR("\xd7\x99\xd6\xb5\xd7\x9c\xd6\xb5\xd7\x9a\xd6\xb0");
}
if (slot == 1) {
return EL_STR("\xd7\xaa\xd6\xb5\xd6\xbc\xd7\x9c\xd6\xb5\xd7\x9a\xd6\xb0");
}
if (slot == 2) {
return EL_STR("\xd7\xaa\xd6\xb5\xd6\xbc\xd7\x9c\xd6\xb5\xd7\x9a\xd6\xb0");
}
if (slot == 3) {
return EL_STR("\xd7\xaa\xd6\xb5\xd6\xbc\xd7\x9c\xd6\xb0\xd7\x9b\xd6\xb4\xd7\x99");
}
if (slot == 4) {
return EL_STR("\xd7\x90\xd6\xb5\xd7\x9c\xd6\xb5\xd7\x9a\xd6\xb0");
}
if (slot == 5) {
return EL_STR("\xd7\x99\xd6\xb5\xd7\x9c\xd6\xb0\xd7\x9b\xd7\x95\xd6\xbc");
}
if (slot == 6) {
return EL_STR("\xd7\xaa\xd6\xb5\xd6\xbc\xd7\x9c\xd6\xb7\xd7\x9b\xd6\xb0\xd7\xa0\xd6\xb8\xd7\x94");
}
if (slot == 7) {
return EL_STR("\xd7\xaa\xd6\xb5\xd6\xbc\xd7\x9c\xd6\xb0\xd7\x9b\xd7\x95\xd6\xbc");
}
if (slot == 8) {
return EL_STR("\xd7\xaa\xd6\xb5\xd6\xbc\xd7\x9c\xd6\xb7\xd7\x9b\xd6\xb0\xd7\xa0\xd6\xb8\xd7\x94");
}
return EL_STR("\xd7\xa0\xd6\xb5\xd7\x9c\xd6\xb5\xd7\x9a\xd6\xb0");
return 0;
}
el_val_t he_known_verb(el_val_t verb, el_val_t tense, el_val_t slot) {
if (str_eq(verb, EL_STR("lir'ot"))) {
if (str_eq(tense, EL_STR("present"))) {
return he_present_lir_ot(he_present_form_code(slot));
}
if (str_eq(tense, EL_STR("past"))) {
return he_past_lir_ot(slot);
}
if (str_eq(tense, EL_STR("future"))) {
return he_future_lir_ot(slot);
}
return he_present_lir_ot(he_present_form_code(slot));
}
if (str_eq(verb, EL_STR("\xd7\x9c\xd6\xb4\xd7\xa8\xd6\xb0\xd7\x90\xd7\x95\xd6\xb9\xd7\xaa"))) {
if (str_eq(tense, EL_STR("present"))) {
return he_present_lir_ot(he_present_form_code(slot));
}
if (str_eq(tense, EL_STR("past"))) {
return he_past_lir_ot(slot);
}
if (str_eq(tense, EL_STR("future"))) {
return he_future_lir_ot(slot);
}
return he_present_lir_ot(he_present_form_code(slot));
}
if (str_eq(verb, EL_STR("le'exol"))) {
if (str_eq(tense, EL_STR("present"))) {
return he_present_le_exol(he_present_form_code(slot));
}
if (str_eq(tense, EL_STR("past"))) {
return he_past_le_exol(slot);
}
if (str_eq(tense, EL_STR("future"))) {
return he_future_le_exol(slot);
}
return he_present_le_exol(he_present_form_code(slot));
}
if (str_eq(verb, EL_STR("\xd7\x9c\xd6\xb6\xd7\x90\xd6\xb1\xd7\x9b\xd7\x95\xd6\xb9\xd7\x9c"))) {
if (str_eq(tense, EL_STR("present"))) {
return he_present_le_exol(he_present_form_code(slot));
}
if (str_eq(tense, EL_STR("past"))) {
return he_past_le_exol(slot);
}
if (str_eq(tense, EL_STR("future"))) {
return he_future_le_exol(slot);
}
return he_present_le_exol(he_present_form_code(slot));
}
if (str_eq(verb, EL_STR("ledaber"))) {
if (str_eq(tense, EL_STR("present"))) {
return he_present_ledaber(he_present_form_code(slot));
}
if (str_eq(tense, EL_STR("past"))) {
return he_past_ledaber(slot);
}
if (str_eq(tense, EL_STR("future"))) {
return he_future_ledaber(slot);
}
return he_present_ledaber(he_present_form_code(slot));
}
if (str_eq(verb, EL_STR("\xd7\x9c\xd6\xb0\xd7\x93\xd6\xb7\xd7\x91\xd6\xb5\xd6\xbc\xd7\xa8"))) {
if (str_eq(tense, EL_STR("present"))) {
return he_present_ledaber(he_present_form_code(slot));
}
if (str_eq(tense, EL_STR("past"))) {
return he_past_ledaber(slot);
}
if (str_eq(tense, EL_STR("future"))) {
return he_future_ledaber(slot);
}
return he_present_ledaber(he_present_form_code(slot));
}
if (str_eq(verb, EL_STR("lalechet"))) {
if (str_eq(tense, EL_STR("present"))) {
return he_present_lalechet(he_present_form_code(slot));
}
if (str_eq(tense, EL_STR("past"))) {
return he_past_lalechet(slot);
}
if (str_eq(tense, EL_STR("future"))) {
return he_future_lalechet(slot);
}
return he_present_lalechet(he_present_form_code(slot));
}
if (str_eq(verb, EL_STR("\xd7\x9c\xd6\xb8\xd7\x9c\xd6\xb6\xd7\x9b\xd6\xb6\xd7\xaa"))) {
if (str_eq(tense, EL_STR("present"))) {
return he_present_lalechet(he_present_form_code(slot));
}
if (str_eq(tense, EL_STR("past"))) {
return he_past_lalechet(slot);
}
if (str_eq(tense, EL_STR("future"))) {
return he_future_lalechet(slot);
}
return he_present_lalechet(he_present_form_code(slot));
}
return EL_STR("");
return 0;
}
el_val_t he_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t gender, el_val_t number) {
el_val_t slot = he_slot(person, gender, number);
if (he_is_copula(verb)) {
return he_conjugate_copula(tense, slot);
}
el_val_t known = he_known_verb(verb, tense, slot);
if (!str_eq(known, EL_STR(""))) {
return known;
}
return verb;
return 0;
}
el_val_t he_pluralize(el_val_t noun, el_val_t gender) {
if (str_eq(gender, EL_STR("m"))) {
return el_str_concat(noun, EL_STR("\xd7\x99\xd7\x9d"));
}
if (he_str_ends(noun, EL_STR("\xd7\x94"))) {
el_val_t stem = he_str_drop_last(noun, 1);
return el_str_concat(stem, EL_STR("\xd7\x95\xd7\xaa"));
}
if (he_str_ends(noun, EL_STR("\xd7\xaa"))) {
el_val_t stem = he_str_drop_last(noun, 1);
return el_str_concat(stem, EL_STR("\xd7\x95\xd7\xaa"));
}
if (he_str_ends(noun, EL_STR("a"))) {
el_val_t stem = he_str_drop_last(noun, 1);
return el_str_concat(stem, EL_STR("ot"));
}
if (he_str_ends(noun, EL_STR("et"))) {
el_val_t stem = he_str_drop_last(noun, 2);
return el_str_concat(stem, EL_STR("ot"));
}
return el_str_concat(noun, EL_STR("\xd7\x95\xd7\xaa"));
return 0;
}
el_val_t he_is_hebrew_script(el_val_t noun) {
el_val_t n = str_len(noun);
if (n == 0) {
return 0;
}
el_val_t first = str_slice(noun, 0, 1);
if (str_eq(first, EL_STR("\xd7\x90"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x91"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x92"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x93"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x94"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x95"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x96"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x97"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x98"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x99"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x9b"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x9c"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\x9e"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\xa0"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\xa1"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\xa2"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\xa4"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\xa6"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\xa7"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\xa8"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\xa9"))) {
return 1;
}
if (str_eq(first, EL_STR("\xd7\xaa"))) {
return 1;
}
return 0;
return 0;
}
el_val_t he_definite_prefix(el_val_t noun) {
if (he_is_hebrew_script(noun)) {
return el_str_concat(EL_STR("\xd7\x94"), noun);
}
return el_str_concat(EL_STR("ha"), noun);
return 0;
}
el_val_t he_noun_phrase(el_val_t noun, el_val_t number, el_val_t gender, el_val_t definite) {
el_val_t stem = noun;
if (str_eq(number, EL_STR("plural"))) {
stem = he_pluralize(noun, gender);
}
if (str_eq(definite, EL_STR("true"))) {
return he_definite_prefix(stem);
}
return stem;
return 0;
}
el_val_t he_map_canonical(el_val_t verb) {
if (str_eq(verb, EL_STR("be"))) {
return EL_STR("lihyot");
}
if (str_eq(verb, EL_STR("see"))) {
return EL_STR("lir'ot");
}
if (str_eq(verb, EL_STR("eat"))) {
return EL_STR("le'exol");
}
if (str_eq(verb, EL_STR("speak"))) {
return EL_STR("ledaber");
}
if (str_eq(verb, EL_STR("say"))) {
return EL_STR("ledaber");
}
if (str_eq(verb, EL_STR("go"))) {
return EL_STR("lalechet");
}
return verb;
return 0;
}