diff --git a/dist/awareness.c b/dist/awareness.c index 712597b..37b08d4 100644 --- a/dist/awareness.c +++ b/dist/awareness.c @@ -14,6 +14,9 @@ el_val_t mem_forget(el_val_t node_id); el_val_t mem_consolidate(void); el_val_t mem_save(el_val_t path); el_val_t mem_load(el_val_t path); +el_val_t mem_boot_count_get(void); +el_val_t mem_boot_count_inc(void); +el_val_t mem_emit_state_event(el_val_t trigger, el_val_t kind, el_val_t content); el_val_t pulse_count(void); el_val_t pulse_inc(void); el_val_t make_action(el_val_t kind, el_val_t payload); diff --git a/dist/chat.c b/dist/chat.c index b168d14..1835545 100644 --- a/dist/chat.c +++ b/dist/chat.c @@ -14,6 +14,9 @@ el_val_t mem_forget(el_val_t node_id); el_val_t mem_consolidate(void); el_val_t mem_save(el_val_t path); el_val_t mem_load(el_val_t path); +el_val_t mem_boot_count_get(void); +el_val_t mem_boot_count_inc(void); +el_val_t mem_emit_state_event(el_val_t trigger, el_val_t kind, el_val_t content); el_val_t chat_default_model(void); el_val_t engram_compile(el_val_t intent); el_val_t json_safe(el_val_t s); diff --git a/dist/elp-c-decls.h b/dist/elp-c-decls.h new file mode 100644 index 0000000..d64c299 --- /dev/null +++ b/dist/elp-c-decls.h @@ -0,0 +1,1057 @@ +/* Auto-generated C forward declarations for all ELP modules */ +#pragma once +#include "el_runtime.h" + +el_val_t add_punct(el_val_t s, el_val_t intent); +el_val_t agent_number(el_val_t agent); +el_val_t agent_person(el_val_t agent); +el_val_t agentic_api_key(void); +el_val_t agentic_tools_literal(void); +el_val_t agree_determiner(el_val_t det, el_val_t noun); +el_val_t akk_alaku_perfect(el_val_t slot); +el_val_t akk_alaku_present(el_val_t slot); +el_val_t akk_amaru_perfect(el_val_t slot); +el_val_t akk_amaru_present(el_val_t slot); +el_val_t akk_amaru_stative(el_val_t slot); +el_val_t akk_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t akk_conjugate_copula(el_val_t tense, el_val_t slot); +el_val_t akk_copula_present(el_val_t slot); +el_val_t akk_copula_stative(el_val_t slot); +el_val_t akk_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t akk_epesu_perfect(el_val_t slot); +el_val_t akk_epesu_present(el_val_t slot); +el_val_t akk_epesu_stative(el_val_t slot); +el_val_t akk_is_copula(el_val_t verb); +el_val_t akk_is_fem(el_val_t noun); +el_val_t akk_known_verb(el_val_t verb, el_val_t tense, el_val_t slot); +el_val_t akk_map_canonical(el_val_t verb); +el_val_t akk_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t akk_qabu_perfect(el_val_t slot); +el_val_t akk_qabu_present(el_val_t slot); +el_val_t akk_qabu_stative(el_val_t slot); +el_val_t akk_regular_perfect(el_val_t stem, el_val_t slot); +el_val_t akk_regular_present(el_val_t stem, el_val_t slot); +el_val_t akk_regular_stative(el_val_t stem, el_val_t slot); +el_val_t akk_slot(el_val_t person, el_val_t number); +el_val_t akk_slot_g(el_val_t person, el_val_t gender, el_val_t number); +el_val_t akk_str_drop_last(el_val_t s, el_val_t n); +el_val_t akk_str_ends(el_val_t s, el_val_t suf); +el_val_t akk_str_len(el_val_t s); +el_val_t akk_strip_nom(el_val_t noun); +el_val_t ang_article(el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t ang_article_feminine(el_val_t gram_case, el_val_t number); +el_val_t ang_article_masculine(el_val_t gram_case, el_val_t number); +el_val_t ang_article_neuter(el_val_t gram_case, el_val_t number); +el_val_t ang_beon_present(el_val_t slot); +el_val_t ang_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t ang_cuman_past(el_val_t slot); +el_val_t ang_cuman_present(el_val_t slot); +el_val_t ang_declension(el_val_t noun, el_val_t gender); +el_val_t ang_decline(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t gender); +el_val_t ang_decline_strong_masc(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t ang_decline_strong_neut(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t ang_decline_weak(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t ang_don_past(el_val_t slot); +el_val_t ang_don_present(el_val_t slot); +el_val_t ang_gan_past(el_val_t slot); +el_val_t ang_gan_present(el_val_t slot); +el_val_t ang_habban_past(el_val_t slot); +el_val_t ang_habban_present(el_val_t slot); +el_val_t ang_infer_gender(el_val_t noun); +el_val_t ang_magan_past(el_val_t slot); +el_val_t ang_magan_present(el_val_t slot); +el_val_t ang_map_canonical(el_val_t verb); +el_val_t ang_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t ang_secgan_past(el_val_t slot); +el_val_t ang_secgan_present(el_val_t slot); +el_val_t ang_seon_past(el_val_t slot); +el_val_t ang_seon_present(el_val_t slot); +el_val_t ang_slot(el_val_t person, el_val_t number); +el_val_t ang_str_drop_last(el_val_t s, el_val_t n); +el_val_t ang_str_ends(el_val_t s, el_val_t suf); +el_val_t ang_str_last2(el_val_t s); +el_val_t ang_str_last_char(el_val_t s); +el_val_t ang_weak_past(el_val_t stem, el_val_t slot); +el_val_t ang_weak_past_stem(el_val_t stem); +el_val_t ang_weak_present_ending(el_val_t slot); +el_val_t ang_weak_stem(el_val_t verb); +el_val_t ang_wesan_past(el_val_t slot); +el_val_t ang_wesan_present(el_val_t slot); +el_val_t ang_willan_past(el_val_t slot); +el_val_t ang_willan_present(el_val_t slot); +el_val_t ang_witan_past(el_val_t slot); +el_val_t ang_witan_present(el_val_t slot); +el_val_t api_err(el_val_t msg); +el_val_t api_json_escape(el_val_t s); +el_val_t api_nonempty(el_val_t s); +el_val_t api_ok(el_val_t extra); +el_val_t api_or_empty(el_val_t s); +el_val_t api_query_int(el_val_t path, el_val_t key, el_val_t default_val); +el_val_t api_query_param(el_val_t path, el_val_t key); +el_val_t ar_case_ending(el_val_t kase, el_val_t definite); +el_val_t ar_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t gender, el_val_t number); +el_val_t ar_conjugate_form1(el_val_t past_base, el_val_t present_stem, el_val_t tense, el_val_t slot); +el_val_t ar_definite_article(el_val_t noun); +el_val_t ar_gender(el_val_t noun); +el_val_t ar_imperfect_prefix(el_val_t slot); +el_val_t ar_imperfect_suffix(el_val_t slot); +el_val_t ar_irregular(el_val_t verb, el_val_t tense, el_val_t slot); +el_val_t ar_irregular_araada(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_istata(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_jaa(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_kaana(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_qaala(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_raaa(el_val_t slot, el_val_t tense); +el_val_t ar_is_sun_letter(el_val_t c); +el_val_t ar_masc_pl_ending(el_val_t kase); +el_val_t ar_noun_form(el_val_t noun, el_val_t gender, el_val_t kase, el_val_t number, el_val_t definite); +el_val_t ar_perfect_suffix(el_val_t slot); +el_val_t ar_present_stem(el_val_t verb); +el_val_t ar_slot(el_val_t person, el_val_t gender, el_val_t number); +el_val_t ar_sound_plural(el_val_t noun, el_val_t gender); +el_val_t ar_str_drop_last(el_val_t s, el_val_t n); +el_val_t ar_str_ends(el_val_t s, el_val_t suf); +el_val_t ar_str_last_char(el_val_t s); +el_val_t ar_str_len(el_val_t s); +el_val_t ar_verb_form(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t attend(el_val_t node_json); +el_val_t auth_headers(el_val_t tok); +el_val_t auto_persist(el_val_t req, el_val_t resp); +el_val_t awareness_run(void); +el_val_t axon_get(el_val_t path); +el_val_t axon_post(el_val_t path, el_val_t body); +el_val_t build_form_from_json(el_val_t semantic_form_json, el_val_t lang_code); +el_val_t build_np(el_val_t referent, el_val_t slots); +el_val_t build_pp(el_val_t loc); +el_val_t build_rules(void); +el_val_t build_system_prompt(el_val_t ctx); +el_val_t build_vocab(void); +el_val_t build_vp_body(el_val_t slots); +el_val_t build_vp_from_slots(el_val_t slots); +el_val_t capitalize_first(el_val_t s); +el_val_t chat_default_model(void); +el_val_t clean_llm_response(el_val_t s); +el_val_t conv_history_load(void); +el_val_t conv_history_persist(el_val_t hist); +el_val_t cop_article(el_val_t gender, el_val_t number, el_val_t definite); +el_val_t cop_bwk_future(el_val_t prefix); +el_val_t cop_bwk_perfect(el_val_t prefix); +el_val_t cop_bwk_present(el_val_t prefix); +el_val_t cop_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t cop_copula_particle(el_val_t gender, el_val_t number); +el_val_t cop_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t cop_di_future(el_val_t prefix); +el_val_t cop_di_perfect(el_val_t prefix); +el_val_t cop_di_present(el_val_t prefix); +el_val_t cop_drop(el_val_t s, el_val_t n); +el_val_t cop_is_copula(el_val_t verb); +el_val_t cop_jw_future(el_val_t prefix); +el_val_t cop_jw_perfect(el_val_t prefix); +el_val_t cop_jw_present(el_val_t prefix); +el_val_t cop_known_verb_prefixed(el_val_t verb, el_val_t tense, el_val_t prefix); +el_val_t cop_last_char(el_val_t s); +el_val_t cop_map_canonical(el_val_t verb); +el_val_t cop_nau_future(el_val_t prefix); +el_val_t cop_nau_perfect(el_val_t prefix); +el_val_t cop_nau_present(el_val_t prefix); +el_val_t cop_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t cop_noun_phrase_gendered(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite, el_val_t gender); +el_val_t cop_regular_future(el_val_t prefix, el_val_t stem); +el_val_t cop_regular_perfect(el_val_t prefix, el_val_t stem); +el_val_t cop_regular_present(el_val_t prefix, el_val_t stem); +el_val_t cop_shwpe_future(el_val_t prefix); +el_val_t cop_shwpe_perfect(el_val_t prefix); +el_val_t cop_shwpe_present(el_val_t prefix); +el_val_t cop_slot(el_val_t person, el_val_t number); +el_val_t cop_str_ends(el_val_t s, el_val_t suf); +el_val_t cop_str_len(el_val_t s); +el_val_t cop_subject_prefix(el_val_t person, el_val_t number); +el_val_t cop_subject_prefix_gendered(el_val_t person, el_val_t gender, el_val_t number); +el_val_t de_adj_ending(el_val_t gender, el_val_t gram_case, el_val_t number, el_val_t article_type); +el_val_t de_article(el_val_t gender, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t de_article_def(el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t de_article_indef(el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t de_case_ending(el_val_t noun, el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t de_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t de_conjugate_weak(el_val_t stem, el_val_t tense, el_val_t person, el_val_t number); +el_val_t de_irregular_present(el_val_t verb, el_val_t person, el_val_t number); +el_val_t de_norm_number(el_val_t number); +el_val_t de_norm_person(el_val_t person); +el_val_t de_noun_plural(el_val_t noun, el_val_t gender); +el_val_t de_strong_past_stem(el_val_t verb); +el_val_t dharma_network_state(void); +el_val_t dharma_registry(void); +el_val_t dispatch_tool(el_val_t tool_name, el_val_t tool_input); +el_val_t egy_Dd_future(el_val_t slot); +el_val_t egy_Dd_past(el_val_t slot); +el_val_t egy_Dd_present(el_val_t slot); +el_val_t egy_Sm_future(el_val_t slot); +el_val_t egy_Sm_past(el_val_t slot); +el_val_t egy_Sm_present(el_val_t slot); +el_val_t egy_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t egy_conjugate_copula(el_val_t tense, el_val_t slot); +el_val_t egy_conjugate_pronoun(el_val_t person, el_val_t number); +el_val_t egy_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t egy_drop(el_val_t s, el_val_t n); +el_val_t egy_fem(el_val_t noun); +el_val_t egy_iri_future(el_val_t slot); +el_val_t egy_iri_past(el_val_t slot); +el_val_t egy_iri_present(el_val_t slot); +el_val_t egy_is_copula(el_val_t verb); +el_val_t egy_known_verb(el_val_t verb, el_val_t tense, el_val_t slot); +el_val_t egy_last_char(el_val_t s); +el_val_t egy_mAA_future(el_val_t slot); +el_val_t egy_mAA_past(el_val_t slot); +el_val_t egy_mAA_present(el_val_t slot); +el_val_t egy_map_canonical(el_val_t verb); +el_val_t egy_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t egy_rdi_future(el_val_t slot); +el_val_t egy_rdi_past(el_val_t slot); +el_val_t egy_rdi_present(el_val_t slot); +el_val_t egy_regular_future(el_val_t stem, el_val_t slot); +el_val_t egy_regular_past(el_val_t stem, el_val_t slot); +el_val_t egy_regular_present(el_val_t stem, el_val_t slot); +el_val_t egy_sdm_future(el_val_t slot); +el_val_t egy_sdm_past(el_val_t slot); +el_val_t egy_sdm_present(el_val_t slot); +el_val_t egy_slot(el_val_t person, el_val_t number); +el_val_t egy_slot_with_gender(el_val_t person, el_val_t gender, el_val_t number); +el_val_t egy_str_ends(el_val_t s, el_val_t suf); +el_val_t egy_str_len(el_val_t s); +el_val_t egy_suffix_pronoun(el_val_t slot); +el_val_t elp_detect_predicate(el_val_t msg); +el_val_t elp_extract_topic(el_val_t msg); +el_val_t elp_parse(el_val_t msg); +el_val_t emit_session_start_event(void); +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_pluralize_regular(el_val_t singular); +el_val_t en_should_double_final(el_val_t base); +el_val_t en_verb_3sg(el_val_t base); +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 en_verb_gerund(el_val_t base); +el_val_t en_verb_past(el_val_t base); +el_val_t engram_compile(el_val_t intent); +el_val_t enm_been_past(el_val_t slot); +el_val_t enm_been_present(el_val_t slot); +el_val_t enm_comen_past(el_val_t slot); +el_val_t enm_comen_present(el_val_t slot); +el_val_t enm_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t enm_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t enm_drop(el_val_t s, el_val_t n); +el_val_t enm_first_char(el_val_t s); +el_val_t enm_goon_past(el_val_t slot); +el_val_t enm_goon_present(el_val_t slot); +el_val_t enm_haven_past(el_val_t slot); +el_val_t enm_haven_present(el_val_t slot); +el_val_t enm_indef_article(el_val_t noun_phrase); +el_val_t enm_irregular_plural(el_val_t noun); +el_val_t enm_is_vowel_initial(el_val_t s); +el_val_t enm_make_plural(el_val_t noun); +el_val_t enm_maken_past(el_val_t slot); +el_val_t enm_maken_present(el_val_t slot); +el_val_t enm_map_canonical(el_val_t verb); +el_val_t enm_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t enm_seen_past(el_val_t slot); +el_val_t enm_seen_present(el_val_t slot); +el_val_t enm_seyen_past(el_val_t slot); +el_val_t enm_seyen_present(el_val_t slot); +el_val_t enm_slot(el_val_t person, el_val_t number); +el_val_t enm_str_ends(el_val_t s, el_val_t suf); +el_val_t enm_weak_past(el_val_t stem, el_val_t slot); +el_val_t enm_weak_present(el_val_t stem, el_val_t slot); +el_val_t enm_weak_stem(el_val_t verb); +el_val_t entry_form(el_val_t entry, el_val_t n); +el_val_t entry_found(el_val_t entry); +el_val_t entry_pos(el_val_t entry); +el_val_t entry_word(el_val_t entry); +el_val_t err_404(el_val_t path); +el_val_t err_405(el_val_t method, el_val_t path); +el_val_t es_agree_article(el_val_t noun, el_val_t definite, el_val_t number); +el_val_t es_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t es_gender(el_val_t noun); +el_val_t es_invariant_plural(el_val_t noun); +el_val_t es_irregular_future_stem(el_val_t verb); +el_val_t es_irregular_imperfect(el_val_t verb, el_val_t person, el_val_t number); +el_val_t es_irregular_present(el_val_t verb, el_val_t person, el_val_t number); +el_val_t es_irregular_preterite(el_val_t verb, el_val_t person, el_val_t number); +el_val_t es_pluralize(el_val_t noun); +el_val_t es_regular_future(el_val_t base, el_val_t slot); +el_val_t es_regular_imperfect(el_val_t stem, el_val_t vclass, el_val_t slot); +el_val_t es_regular_present(el_val_t stem, el_val_t vclass, el_val_t slot); +el_val_t es_regular_preterite(el_val_t stem, el_val_t vclass, el_val_t slot); +el_val_t es_slot(el_val_t person, el_val_t number); +el_val_t es_starts_with_stressed_a(el_val_t noun); +el_val_t es_stem(el_val_t base); +el_val_t es_str_drop_last(el_val_t s, el_val_t n); +el_val_t es_str_ends(el_val_t s, el_val_t suf); +el_val_t es_str_last2(el_val_t s); +el_val_t es_str_last3(el_val_t s); +el_val_t es_str_last_char(el_val_t s); +el_val_t es_verb_class(el_val_t base); +el_val_t fi_apply_case(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t fi_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t fi_full_paradigm(el_val_t noun); +el_val_t fi_harmony(el_val_t word); +el_val_t fi_irregular_verb(el_val_t dict_form); +el_val_t fi_make_question(el_val_t verb_form, el_val_t harmony); +el_val_t fi_neg_aux(el_val_t person, el_val_t number); +el_val_t fi_negative(el_val_t verb, el_val_t person, el_val_t number); +el_val_t fi_noun_case(el_val_t stem, el_val_t gram_case, el_val_t number, el_val_t harmony); +el_val_t fi_past_ending(el_val_t stem, el_val_t person, el_val_t number, el_val_t harmony); +el_val_t fi_past_stem(el_val_t stem); +el_val_t fi_present_ending(el_val_t stem, el_val_t person, el_val_t number, el_val_t harmony); +el_val_t fi_question_suffix(el_val_t harmony); +el_val_t fi_str_last_char(el_val_t s); +el_val_t fi_suffix(el_val_t base, el_val_t harmony); +el_val_t fi_verb_stem(el_val_t dict_form); +el_val_t find_rule(el_val_t rule_id_str); +el_val_t fr_agree_article(el_val_t noun, el_val_t definite, el_val_t number); +el_val_t fr_avoir_present(el_val_t slot); +el_val_t fr_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t fr_etre_present(el_val_t slot); +el_val_t fr_future_stem(el_val_t base, el_val_t vgroup); +el_val_t fr_gender(el_val_t noun); +el_val_t fr_imperfect_stem(el_val_t base, el_val_t vgroup); +el_val_t fr_invariant_plural(el_val_t noun); +el_val_t fr_irregular_future_stem(el_val_t verb); +el_val_t fr_irregular_present(el_val_t verb, el_val_t person, el_val_t number); +el_val_t fr_is_known_irregular(el_val_t verb); +el_val_t fr_is_vowel_start(el_val_t s); +el_val_t fr_past_participle(el_val_t verb); +el_val_t fr_pluralize(el_val_t noun); +el_val_t fr_question_inversion(el_val_t subject, el_val_t verb_form); +el_val_t fr_regular_future(el_val_t fstem, el_val_t slot); +el_val_t fr_regular_imperfect(el_val_t istem, el_val_t slot); +el_val_t fr_regular_present(el_val_t stem, el_val_t vgroup, el_val_t slot); +el_val_t fr_slot(el_val_t person, el_val_t number); +el_val_t fr_stem(el_val_t base); +el_val_t fr_str_drop_last(el_val_t s, el_val_t n); +el_val_t fr_str_ends(el_val_t s, el_val_t suf); +el_val_t fr_str_last2(el_val_t s); +el_val_t fr_str_last_char(el_val_t s); +el_val_t fr_subject_starts_vowel(el_val_t subject); +el_val_t fr_uses_etre(el_val_t verb); +el_val_t fr_verb_ends_vowel(el_val_t verb_form); +el_val_t fr_verb_group(el_val_t base); +el_val_t fro_aler_future(el_val_t slot); +el_val_t fro_aler_past(el_val_t slot); +el_val_t fro_aler_present(el_val_t slot); +el_val_t fro_article(el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t fro_avoir_future(el_val_t slot); +el_val_t fro_avoir_past(el_val_t slot); +el_val_t fro_avoir_present(el_val_t slot); +el_val_t fro_conj1_future(el_val_t verb, el_val_t slot); +el_val_t fro_conj1_past(el_val_t stem, el_val_t slot); +el_val_t fro_conj1_present(el_val_t stem, el_val_t slot); +el_val_t fro_conj2_future(el_val_t verb, el_val_t slot); +el_val_t fro_conj2_past(el_val_t stem, el_val_t slot); +el_val_t fro_conj2_present(el_val_t stem, el_val_t slot); +el_val_t fro_conj3_future(el_val_t verb, el_val_t slot); +el_val_t fro_conj3_past(el_val_t stem, el_val_t slot); +el_val_t fro_conj3_present(el_val_t stem, el_val_t slot); +el_val_t fro_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t fro_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t fro_decline_fem(el_val_t noun, el_val_t number); +el_val_t fro_decline_masc(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t fro_drop(el_val_t s, el_val_t n); +el_val_t fro_estre_future(el_val_t slot); +el_val_t fro_estre_past(el_val_t slot); +el_val_t fro_estre_present(el_val_t slot); +el_val_t fro_faire_future(el_val_t slot); +el_val_t fro_faire_past(el_val_t slot); +el_val_t fro_faire_present(el_val_t slot); +el_val_t fro_gender(el_val_t noun); +el_val_t fro_map_canonical(el_val_t verb); +el_val_t fro_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t fro_slot(el_val_t person, el_val_t number); +el_val_t fro_str_ends(el_val_t s, el_val_t suf); +el_val_t fro_venir_future(el_val_t slot); +el_val_t fro_venir_past(el_val_t slot); +el_val_t fro_venir_present(el_val_t slot); +el_val_t fro_verb_class(el_val_t verb); +el_val_t fro_verb_stem(el_val_t verb, el_val_t vclass); +el_val_t generate(el_val_t semantic_form_json); +el_val_t generate_frame(el_val_t frame); +el_val_t generate_frame_lang(el_val_t frame, el_val_t lang_code); +el_val_t generate_lang(el_val_t semantic_form_json, el_val_t lang_code); +el_val_t generate_tree(el_val_t rule_id_str, el_val_t slots); +el_val_t get_rules(void); +el_val_t get_vocab(void); +el_val_t gez_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t gez_conjugate_copula(el_val_t tense, el_val_t slot); +el_val_t gez_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t gez_generic_imperfect(el_val_t base3sg, el_val_t slot); +el_val_t gez_generic_perfect(el_val_t base3sg, el_val_t slot); +el_val_t gez_hbl_imperfect(el_val_t slot); +el_val_t gez_hbl_perfect(el_val_t slot); +el_val_t gez_hlw_imperfect(el_val_t slot); +el_val_t gez_hlw_perfect(el_val_t slot); +el_val_t gez_is_copula(el_val_t verb); +el_val_t gez_is_fidel(el_val_t noun); +el_val_t gez_known_verb(el_val_t verb, el_val_t tense, el_val_t slot); +el_val_t gez_kwn_imperfect(el_val_t slot); +el_val_t gez_kwn_perfect(el_val_t slot); +el_val_t gez_map_canonical(el_val_t verb); +el_val_t gez_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t gez_qwl_imperfect(el_val_t slot); +el_val_t gez_qwl_perfect(el_val_t slot); +el_val_t gez_ray_imperfect(el_val_t slot); +el_val_t gez_ray_perfect(el_val_t slot); +el_val_t gez_slot(el_val_t person, el_val_t number); +el_val_t gez_slot_g(el_val_t person, el_val_t gender, el_val_t number); +el_val_t gez_str_drop_last(el_val_t s, el_val_t n); +el_val_t gez_str_ends(el_val_t s, el_val_t suf); +el_val_t gez_str_len(el_val_t s); +el_val_t goh_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t goh_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t goh_decline_fem_o_pl(el_val_t stem, el_val_t gram_case); +el_val_t goh_decline_fem_o_sg(el_val_t stem, el_val_t gram_case); +el_val_t goh_decline_masc_a_pl(el_val_t stem, el_val_t gram_case); +el_val_t goh_decline_masc_a_sg(el_val_t stem, el_val_t gram_case); +el_val_t goh_decline_masc_n_pl(el_val_t stem, el_val_t gram_case); +el_val_t goh_decline_masc_n_sg(el_val_t stem, el_val_t gram_case); +el_val_t goh_decline_neut_a_pl(el_val_t stem, el_val_t gram_case); +el_val_t goh_decline_neut_a_sg(el_val_t stem, el_val_t gram_case); +el_val_t goh_demo_article(el_val_t stype, el_val_t number); +el_val_t goh_drop(el_val_t s, el_val_t n); +el_val_t goh_extract_stem(el_val_t noun, el_val_t stype); +el_val_t goh_gan_past(el_val_t slot); +el_val_t goh_gan_present(el_val_t slot); +el_val_t goh_haben_past(el_val_t slot); +el_val_t goh_haben_present(el_val_t slot); +el_val_t goh_map_canonical(el_val_t verb); +el_val_t goh_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t goh_quethan_past(el_val_t slot); +el_val_t goh_quethan_present(el_val_t slot); +el_val_t goh_sehan_past(el_val_t slot); +el_val_t goh_sehan_present(el_val_t slot); +el_val_t goh_slot(el_val_t person, el_val_t number); +el_val_t goh_stem_type(el_val_t noun); +el_val_t goh_str_ends(el_val_t s, el_val_t suf); +el_val_t goh_tuon_past(el_val_t slot); +el_val_t goh_tuon_present(el_val_t slot); +el_val_t goh_verb_stem(el_val_t verb); +el_val_t goh_weak_past(el_val_t stem, el_val_t slot); +el_val_t goh_weak_present(el_val_t stem, el_val_t slot); +el_val_t goh_wesan_past(el_val_t slot); +el_val_t goh_wesan_present(el_val_t slot); +el_val_t got_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t got_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t got_decline_a_stem_pl(el_val_t stem, el_val_t gram_case); +el_val_t got_decline_a_stem_sg(el_val_t stem, el_val_t gram_case); +el_val_t got_decline_n_stem_pl(el_val_t stem, el_val_t gram_case); +el_val_t got_decline_n_stem_sg(el_val_t stem, el_val_t gram_case); +el_val_t got_decline_o_stem_pl(el_val_t stem, el_val_t gram_case); +el_val_t got_decline_o_stem_sg(el_val_t stem, el_val_t gram_case); +el_val_t got_demo_article(el_val_t stype); +el_val_t got_extract_stem(el_val_t noun, el_val_t stype); +el_val_t got_gaggan_past(el_val_t slot); +el_val_t got_gaggan_present(el_val_t slot); +el_val_t got_haban_past(el_val_t slot); +el_val_t got_haban_present(el_val_t slot); +el_val_t got_map_canonical(el_val_t verb); +el_val_t got_niman_past(el_val_t slot); +el_val_t got_niman_present(el_val_t slot); +el_val_t got_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t got_qithan_past(el_val_t slot); +el_val_t got_qithan_present(el_val_t slot); +el_val_t got_saihwan_past(el_val_t slot); +el_val_t got_saihwan_present(el_val_t slot); +el_val_t got_slot(el_val_t person, el_val_t number); +el_val_t got_stem_type(el_val_t noun); +el_val_t got_str_drop_last(el_val_t s, el_val_t n); +el_val_t got_str_ends(el_val_t s, el_val_t suf); +el_val_t got_verb_class(el_val_t verb); +el_val_t got_verb_stem(el_val_t verb, el_val_t vclass); +el_val_t got_wisan_past(el_val_t slot); +el_val_t got_wisan_present(el_val_t slot); +el_val_t got_wk1_conjugate(el_val_t stem, el_val_t tense, el_val_t slot); +el_val_t got_wk1_past_ending(el_val_t slot); +el_val_t got_wk1_present_ending(el_val_t slot); +el_val_t got_wk2_conjugate(el_val_t stem, el_val_t tense, el_val_t slot); +el_val_t got_wk2_past_ending(el_val_t slot); +el_val_t got_wk2_present_ending(el_val_t slot); +el_val_t gram_build_vp(el_val_t verb, el_val_t aux, el_val_t profile); +el_val_t gram_order_constituents(el_val_t subj, el_val_t verb, el_val_t obj, el_val_t profile); +el_val_t gram_question_strategy(el_val_t profile); +el_val_t gram_word_order(el_val_t profile); +el_val_t grc_article(el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t grc_article_feminine(el_val_t gram_case, el_val_t number); +el_val_t grc_article_masculine(el_val_t gram_case, el_val_t number); +el_val_t grc_article_neuter(el_val_t gram_case, el_val_t number); +el_val_t grc_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t grc_declension(el_val_t noun); +el_val_t grc_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t grc_decline_1a(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t grc_decline_1e(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t grc_decline_2m(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t grc_decline_2n(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t grc_echein_aorist(el_val_t slot); +el_val_t grc_echein_future(el_val_t slot); +el_val_t grc_echein_imperfect(el_val_t slot); +el_val_t grc_echein_present(el_val_t slot); +el_val_t grc_einai_future(el_val_t slot); +el_val_t grc_einai_imperfect(el_val_t slot); +el_val_t grc_einai_present(el_val_t slot); +el_val_t grc_erchesthai_aorist(el_val_t slot); +el_val_t grc_erchesthai_future(el_val_t slot); +el_val_t grc_erchesthai_imperfect(el_val_t slot); +el_val_t grc_erchesthai_present(el_val_t slot); +el_val_t grc_horao_aorist(el_val_t slot); +el_val_t grc_horao_future(el_val_t slot); +el_val_t grc_horao_imperfect(el_val_t slot); +el_val_t grc_horao_present(el_val_t slot); +el_val_t grc_infer_gender(el_val_t noun); +el_val_t grc_legein_aorist(el_val_t slot); +el_val_t grc_legein_future(el_val_t slot); +el_val_t grc_legein_imperfect(el_val_t slot); +el_val_t grc_legein_present(el_val_t slot); +el_val_t grc_map_canonical(el_val_t verb); +el_val_t grc_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t grc_present_stem(el_val_t verb); +el_val_t grc_slot(el_val_t person, el_val_t number); +el_val_t grc_str_drop_last(el_val_t s, el_val_t n); +el_val_t grc_str_ends(el_val_t s, el_val_t suf); +el_val_t grc_str_last2(el_val_t s); +el_val_t grc_str_last3(el_val_t s); +el_val_t grc_str_last_char(el_val_t s); +el_val_t grc_thematic_future_ending(el_val_t slot); +el_val_t grc_thematic_imperfect_ending(el_val_t slot); +el_val_t grc_thematic_present_ending(el_val_t slot); +el_val_t grc_weak_aorist_ending(el_val_t slot); +el_val_t handle_api_begin_session(el_val_t body); +el_val_t handle_api_browse_knowledge(el_val_t path, el_val_t body); +el_val_t handle_api_browse_processes(el_val_t method, el_val_t path, el_val_t body); +el_val_t handle_api_capture_knowledge(el_val_t body); +el_val_t handle_api_compile_ctx(el_val_t body); +el_val_t handle_api_consolidate(el_val_t body); +el_val_t handle_api_define_process(el_val_t body); +el_val_t handle_api_evolve_knowledge(el_val_t body); +el_val_t handle_api_inspect_config(el_val_t path, el_val_t body); +el_val_t handle_api_inspect_graph(el_val_t method, el_val_t path, el_val_t body); +el_val_t handle_api_link_entities(el_val_t body); +el_val_t handle_api_list_state_events(el_val_t method, el_val_t path, el_val_t body); +el_val_t handle_api_list_typed(el_val_t node_type, el_val_t path, el_val_t body); +el_val_t handle_api_log_state_event(el_val_t body); +el_val_t handle_api_promote_knowledge(el_val_t body); +el_val_t handle_api_recall(el_val_t method, el_val_t path, el_val_t body); +el_val_t handle_api_remember(el_val_t body); +el_val_t handle_api_search_knowledge(el_val_t method, el_val_t path, el_val_t body); +el_val_t handle_api_tune_config(el_val_t body); +el_val_t handle_chat(el_val_t body); +el_val_t handle_chat_agentic(el_val_t body); +el_val_t handle_chat_as_soul(el_val_t body); +el_val_t handle_config(el_val_t method, el_val_t body); +el_val_t handle_conversations(el_val_t method); +el_val_t handle_dharma(el_val_t path, el_val_t method, el_val_t body); +el_val_t handle_dharma_recv(el_val_t body); +el_val_t handle_dharma_room_turn(el_val_t body); +el_val_t handle_dharma_room_turn_agentic(el_val_t body); +el_val_t handle_elp_chat(el_val_t body); +el_val_t handle_nlg(el_val_t path, el_val_t method, el_val_t body); +el_val_t handle_request(el_val_t method, el_val_t path, el_val_t body); +el_val_t handle_see(el_val_t body); +el_val_t handle_tool(el_val_t path, el_val_t method, el_val_t body); +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_conjugate_copula(el_val_t tense, el_val_t slot); +el_val_t he_copula_future(el_val_t slot); +el_val_t he_copula_past(el_val_t slot); +el_val_t he_definite_prefix(el_val_t noun); +el_val_t he_future_lalechet(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_lir_ot(el_val_t slot); +el_val_t he_is_copula(el_val_t verb); +el_val_t he_is_hebrew_script(el_val_t noun); +el_val_t he_known_verb(el_val_t verb, el_val_t tense, el_val_t slot); +el_val_t he_map_canonical(el_val_t verb); +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_past_lalechet(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_lir_ot(el_val_t slot); +el_val_t he_pluralize(el_val_t noun, el_val_t gender); +el_val_t he_present_form_code(el_val_t slot); +el_val_t he_present_lalechet(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_lir_ot(el_val_t form); +el_val_t he_slot(el_val_t person, el_val_t gender, el_val_t number); +el_val_t he_str_drop_last(el_val_t s, el_val_t n); +el_val_t he_str_ends(el_val_t s, el_val_t suf); +el_val_t he_str_last_char(el_val_t s); +el_val_t he_str_len(el_val_t s); +el_val_t hi_agree_genitive(el_val_t possessed_gender, el_val_t possessed_number); +el_val_t hi_aux_present(el_val_t person, el_val_t number); +el_val_t hi_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t gender, el_val_t number); +el_val_t hi_future_suffix(el_val_t person, el_val_t number, el_val_t gender); +el_val_t hi_gender(el_val_t noun); +el_val_t hi_genitive_phrase(el_val_t possessor, el_val_t possessor_gender, el_val_t possessor_number, el_val_t possessed, el_val_t possessed_gender, el_val_t possessed_number); +el_val_t hi_hona_past(el_val_t gender, el_val_t number); +el_val_t hi_hona_present(el_val_t person, el_val_t number); +el_val_t hi_masc_aa_stem(el_val_t noun); +el_val_t hi_noun_direct(el_val_t noun, el_val_t gender, el_val_t number); +el_val_t hi_noun_direct_f(el_val_t noun, el_val_t number); +el_val_t hi_noun_direct_m(el_val_t noun, el_val_t number); +el_val_t hi_noun_oblique(el_val_t noun, el_val_t gender, el_val_t number); +el_val_t hi_noun_oblique_f(el_val_t noun, el_val_t number); +el_val_t hi_noun_oblique_m(el_val_t noun, el_val_t number); +el_val_t hi_noun_with_post(el_val_t noun, el_val_t gender, el_val_t number, el_val_t gram_case); +el_val_t hi_past_irregular(el_val_t stem, el_val_t gender, el_val_t number); +el_val_t hi_past_suffix(el_val_t gender, el_val_t number); +el_val_t hi_postposition(el_val_t gram_case); +el_val_t hi_present_aspect(el_val_t gender, el_val_t number); +el_val_t hi_str_drop_last(el_val_t s, el_val_t n); +el_val_t hi_str_ends(el_val_t s, el_val_t suf); +el_val_t hi_str_last_char(el_val_t s); +el_val_t hi_tense_suffix(el_val_t tense, el_val_t gender, el_val_t number); +el_val_t hi_verb_stem(el_val_t infinitive); +el_val_t hi_verb_stem_clean(el_val_t infinitive); +el_val_t hist_append(el_val_t hist, el_val_t role, el_val_t content); +el_val_t hist_trim(el_val_t hist); +el_val_t init_soul_edges(void); +el_val_t irregular_plural(el_val_t word); +el_val_t irregular_singular(el_val_t word); +el_val_t is_pronoun(el_val_t word); +el_val_t is_vowel(el_val_t c); +el_val_t ja_conjugate(el_val_t dict_form, el_val_t form); +el_val_t ja_godan_stem_change(el_val_t dict_form, el_val_t row); +el_val_t ja_ichidan_stem(el_val_t dict_form); +el_val_t ja_make_question(el_val_t sentence); +el_val_t ja_noun_phrase(el_val_t noun, el_val_t gram_case); +el_val_t ja_particle(el_val_t gram_case); +el_val_t ja_question_particle(void); +el_val_t ja_verb_group(el_val_t dict_form); +el_val_t json_safe(el_val_t s); +el_val_t la_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t la_declension(el_val_t noun); +el_val_t la_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t la_decline_1(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_decline_2er(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t la_decline_2m(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_decline_2n(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_decline_3(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t la_decline_4(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_decline_5(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_esse_future(el_val_t slot); +el_val_t la_esse_past(el_val_t slot); +el_val_t la_esse_present(el_val_t slot); +el_val_t la_future_ending_12(el_val_t slot); +el_val_t la_future_ending_34(el_val_t slot); +el_val_t la_future_form(el_val_t stem, el_val_t vclass, el_val_t slot); +el_val_t la_ire_future(el_val_t slot); +el_val_t la_ire_past(el_val_t slot); +el_val_t la_ire_present(el_val_t slot); +el_val_t la_irregular_perfect_stem(el_val_t verb); +el_val_t la_map_canonical(el_val_t verb); +el_val_t la_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t la_perfect_ending(el_val_t slot); +el_val_t la_perfect_stem(el_val_t verb, el_val_t vclass); +el_val_t la_posse_future(el_val_t slot); +el_val_t la_posse_past(el_val_t slot); +el_val_t la_posse_present(el_val_t slot); +el_val_t la_present_ending(el_val_t vclass, el_val_t slot); +el_val_t la_present_form(el_val_t stem, el_val_t vclass, el_val_t slot); +el_val_t la_slot(el_val_t person, el_val_t number); +el_val_t la_stem(el_val_t verb, el_val_t vclass); +el_val_t la_str_drop_last(el_val_t s, el_val_t n); +el_val_t la_str_ends(el_val_t s, el_val_t suf); +el_val_t la_str_last2(el_val_t s); +el_val_t la_str_last3(el_val_t s); +el_val_t la_str_last_char(el_val_t s); +el_val_t la_velle_future(el_val_t slot); +el_val_t la_velle_past(el_val_t slot); +el_val_t la_velle_present(el_val_t slot); +el_val_t la_verb_class(el_val_t verb); +el_val_t lang_code(el_val_t profile); +el_val_t lang_default(void); +el_val_t lang_from_code(el_val_t code); +el_val_t lang_get(el_val_t profile, el_val_t key); +el_val_t lang_has_case(el_val_t profile); +el_val_t lang_has_gender(el_val_t profile); +el_val_t lang_has_null_subject(el_val_t profile); +el_val_t lang_is_agglutinative(el_val_t profile); +el_val_t lang_is_fusional(el_val_t profile); +el_val_t lang_is_isolating(el_val_t profile); +el_val_t lang_is_polysynthetic(el_val_t profile); +el_val_t lang_is_rtl(el_val_t profile); +el_val_t lang_profile(el_val_t code, el_val_t word_order, el_val_t morph_type, el_val_t has_case, el_val_t has_gender, el_val_t script_dir, el_val_t agreement, el_val_t null_subject); +el_val_t lang_profile_akk(void); +el_val_t lang_profile_ang(void); +el_val_t lang_profile_ar(void); +el_val_t lang_profile_cop(void); +el_val_t lang_profile_de(void); +el_val_t lang_profile_egy(void); +el_val_t lang_profile_en(void); +el_val_t lang_profile_enm(void); +el_val_t lang_profile_es(void); +el_val_t lang_profile_fi(void); +el_val_t lang_profile_fr(void); +el_val_t lang_profile_fro(void); +el_val_t lang_profile_gez(void); +el_val_t lang_profile_goh(void); +el_val_t lang_profile_got(void); +el_val_t lang_profile_grc(void); +el_val_t lang_profile_he(void); +el_val_t lang_profile_hi(void); +el_val_t lang_profile_ja(void); +el_val_t lang_profile_la(void); +el_val_t lang_profile_non(void); +el_val_t lang_profile_peo(void); +el_val_t lang_profile_pi(void); +el_val_t lang_profile_ru(void); +el_val_t lang_profile_sa(void); +el_val_t lang_profile_sga(void); +el_val_t lang_profile_sux(void); +el_val_t lang_profile_sw(void); +el_val_t lang_profile_txb(void); +el_val_t lang_profile_uga(void); +el_val_t lang_profile_zh(void); +el_val_t lang_word_order(el_val_t profile); +el_val_t lex_class(el_val_t entry); +el_val_t lex_form(el_val_t entry, el_val_t idx); +el_val_t lex_pos(el_val_t entry); +el_val_t lex_word(el_val_t entry); +el_val_t load_identity_context(void); +el_val_t make_action(el_val_t kind, el_val_t payload); +el_val_t make_entry(el_val_t word, el_val_t pos, el_val_t f0, el_val_t f1, el_val_t f2, el_val_t f3, el_val_t f4, el_val_t cls); +el_val_t make_entry1(el_val_t word, el_val_t pos, el_val_t f0, el_val_t cls); +el_val_t make_entry2(el_val_t word, el_val_t pos, el_val_t f0, el_val_t f1, el_val_t cls); +el_val_t make_entry3(el_val_t word, el_val_t pos, el_val_t f0, el_val_t f1, el_val_t f2, el_val_t cls); +el_val_t make_leaf(el_val_t label, el_val_t word); +el_val_t make_node1(el_val_t label, el_val_t child0); +el_val_t make_node2(el_val_t label, el_val_t child0, el_val_t child1); +el_val_t make_node3(el_val_t label, el_val_t child0, el_val_t child1, el_val_t child2); +el_val_t make_node4(el_val_t label, el_val_t child0, el_val_t child1, el_val_t child2, el_val_t child3); +el_val_t make_rule(el_val_t id, el_val_t lhs, el_val_t r0); +el_val_t make_rule2(el_val_t id, el_val_t lhs, el_val_t r0, el_val_t r1); +el_val_t make_rule3(el_val_t id, el_val_t lhs, el_val_t r0, el_val_t r1, el_val_t r2); +el_val_t make_rule4(el_val_t id, el_val_t lhs, el_val_t r0, el_val_t r1, el_val_t r2, el_val_t r3); +el_val_t make_slots(el_val_t k0, el_val_t v0); +el_val_t make_slots2(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1); +el_val_t make_slots3(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1, el_val_t k2, el_val_t v2); +el_val_t make_slots4(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1, el_val_t k2, el_val_t v2, el_val_t k3, el_val_t v3); +el_val_t make_slots5(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1, el_val_t k2, el_val_t v2, el_val_t k3, el_val_t v3, el_val_t k4, el_val_t v4); +el_val_t mem_boot_count_get(void); +el_val_t mem_boot_count_inc(void); +el_val_t mem_consolidate(void); +el_val_t mem_emit_state_event(el_val_t trigger, el_val_t kind, el_val_t content); +el_val_t mem_forget(el_val_t node_id); +el_val_t mem_load(el_val_t path); +el_val_t mem_recall(el_val_t query, el_val_t depth); +el_val_t mem_remember(el_val_t content, el_val_t tags); +el_val_t mem_save(el_val_t path); +el_val_t mem_search(el_val_t query, el_val_t limit); +el_val_t mem_store(el_val_t content, el_val_t label, el_val_t tags); +el_val_t mem_strengthen(el_val_t node_id); +el_val_t morph_apply_suffix(el_val_t base, el_val_t suffix); +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 morph_map_canonical(el_val_t verb, el_val_t code); +el_val_t morph_pluralize(el_val_t noun, el_val_t profile); +el_val_t nlg_is_ws(el_val_t c); +el_val_t non_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t non_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t non_decline_fem(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t non_decline_masc(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t non_decline_neut(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t non_def_suffix_fem(el_val_t gram_case, el_val_t number); +el_val_t non_def_suffix_masc(el_val_t gram_case, el_val_t number); +el_val_t non_def_suffix_neut(el_val_t gram_case, el_val_t number); +el_val_t non_detect_gender(el_val_t noun); +el_val_t non_drop(el_val_t s, el_val_t n); +el_val_t non_ganga_past(el_val_t slot); +el_val_t non_ganga_present(el_val_t slot); +el_val_t non_hafa_past(el_val_t slot); +el_val_t non_hafa_present(el_val_t slot); +el_val_t non_koma_past(el_val_t slot); +el_val_t non_koma_present(el_val_t slot); +el_val_t non_last(el_val_t s); +el_val_t non_map_canonical(el_val_t verb); +el_val_t non_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t non_segja_past(el_val_t slot); +el_val_t non_segja_present(el_val_t slot); +el_val_t non_sja_past(el_val_t slot); +el_val_t non_sja_present(el_val_t slot); +el_val_t non_slot(el_val_t person, el_val_t number); +el_val_t non_str_ends(el_val_t s, el_val_t suf); +el_val_t non_vera_past(el_val_t slot); +el_val_t non_vera_present(el_val_t slot); +el_val_t non_weak_past(el_val_t stem, el_val_t slot); +el_val_t non_weak_present(el_val_t stem, el_val_t slot); +el_val_t one_cycle(void); +el_val_t peo_ah_past(el_val_t slot); +el_val_t peo_ah_present(el_val_t slot); +el_val_t peo_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t peo_da_past(el_val_t slot); +el_val_t peo_da_present(el_val_t slot); +el_val_t peo_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t peo_decline_astem(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t peo_drop(el_val_t s, el_val_t n); +el_val_t peo_ends(el_val_t s, el_val_t suf); +el_val_t peo_kar_past(el_val_t slot); +el_val_t peo_kar_present(el_val_t slot); +el_val_t peo_map_canonical(el_val_t verb); +el_val_t peo_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t peo_past_suffix(el_val_t slot); +el_val_t peo_present_suffix(el_val_t slot); +el_val_t peo_slot(el_val_t person, el_val_t number); +el_val_t peo_tar_present(el_val_t slot); +el_val_t peo_xsaya_present(el_val_t slot); +el_val_t perceive(void); +el_val_t pi_aorist_ending(el_val_t slot); +el_val_t pi_atthi_present(el_val_t slot); +el_val_t pi_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t pi_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t pi_decline_a_fem_pl(el_val_t stem, el_val_t gram_case); +el_val_t pi_decline_a_fem_sg(el_val_t stem, el_val_t gram_case); +el_val_t pi_decline_a_masc_pl(el_val_t stem, el_val_t gram_case); +el_val_t pi_decline_a_masc_sg(el_val_t stem, el_val_t gram_case); +el_val_t pi_detect_class(el_val_t noun); +el_val_t pi_drop(el_val_t s, el_val_t n); +el_val_t pi_future_ending(el_val_t slot); +el_val_t pi_gacchati_aorist(el_val_t slot); +el_val_t pi_gacchati_future(el_val_t slot); +el_val_t pi_gacchati_present(el_val_t slot); +el_val_t pi_hoti_aorist(el_val_t slot); +el_val_t pi_hoti_future(el_val_t slot); +el_val_t pi_hoti_present(el_val_t slot); +el_val_t pi_karoti_aorist(el_val_t slot); +el_val_t pi_karoti_future(el_val_t slot); +el_val_t pi_karoti_present(el_val_t slot); +el_val_t pi_last_char(el_val_t s); +el_val_t pi_map_canonical(el_val_t verb); +el_val_t pi_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t pi_passati_aorist(el_val_t slot); +el_val_t pi_passati_future(el_val_t slot); +el_val_t pi_passati_present(el_val_t slot); +el_val_t pi_present_ending(el_val_t slot); +el_val_t pi_regular_root(el_val_t verb); +el_val_t pi_slot(el_val_t person, el_val_t number); +el_val_t pi_str_ends(el_val_t s, el_val_t suf); +el_val_t pi_vadati_aorist(el_val_t slot); +el_val_t pi_vadati_future(el_val_t slot); +el_val_t pi_vadati_present(el_val_t slot); +el_val_t pluralize(el_val_t singular); +el_val_t pulse_count(void); +el_val_t pulse_inc(void); +el_val_t realize(el_val_t form); +el_val_t realize_lang(el_val_t form, el_val_t profile); +el_val_t realize_np(el_val_t referent, el_val_t number); +el_val_t realize_question_lang(el_val_t predicate, el_val_t tense, el_val_t aspect, el_val_t person, el_val_t number, el_val_t agent, el_val_t patient, el_val_t location, el_val_t profile); +el_val_t realize_vp_lang(el_val_t base_verb, el_val_t tense, el_val_t aspect, el_val_t person, el_val_t number, el_val_t profile); +el_val_t record(el_val_t outcome_json); +el_val_t render_studio(void); +el_val_t render_tree(el_val_t tree); +el_val_t respond(el_val_t action_json); +el_val_t route_health(void); +el_val_t route_imprint_contextual(el_val_t body); +el_val_t route_imprint_user(el_val_t body); +el_val_t route_lineage(void); +el_val_t route_sessions(void); +el_val_t route_synthesize(el_val_t body); +el_val_t ru_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number, el_val_t gender); +el_val_t ru_conjugate_1st(el_val_t stem, el_val_t tense, el_val_t person, el_val_t number); +el_val_t ru_conjugate_2nd(el_val_t stem, el_val_t tense, el_val_t person, el_val_t number); +el_val_t ru_decline_fem(el_val_t noun, el_val_t stype, el_val_t gram_case, el_val_t number); +el_val_t ru_decline_masc(el_val_t noun, el_val_t stype, el_val_t gram_case, el_val_t number); +el_val_t ru_decline_neut(el_val_t noun, el_val_t stype, el_val_t gram_case, el_val_t number); +el_val_t ru_decline_regular(el_val_t noun, el_val_t gender, el_val_t stype, el_val_t gram_case, el_val_t number); +el_val_t ru_gender(el_val_t noun); +el_val_t ru_irregular(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t ru_noun_case(el_val_t noun, el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t ru_past_agree(el_val_t verb_stem, el_val_t gender, el_val_t number); +el_val_t ru_past_stem(el_val_t verb); +el_val_t ru_stem_type(el_val_t noun, el_val_t gender); +el_val_t rule_id(el_val_t rule); +el_val_t rule_lhs(el_val_t rule); +el_val_t rule_rhs(el_val_t rule, el_val_t idx); +el_val_t rule_rhs_len(el_val_t rule); +el_val_t sa_as_future(el_val_t slot); +el_val_t sa_as_past(el_val_t slot); +el_val_t sa_as_present(el_val_t slot); +el_val_t sa_bhu_future(el_val_t slot); +el_val_t sa_bhu_past(el_val_t slot); +el_val_t sa_bhu_present(el_val_t slot); +el_val_t sa_class1_conjugate(el_val_t stem, el_val_t tense, el_val_t slot); +el_val_t sa_class1_future_ending(el_val_t slot); +el_val_t sa_class1_past_ending(el_val_t slot); +el_val_t sa_class1_present_ending(el_val_t slot); +el_val_t sa_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t sa_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t sa_decline_a_stem_pl(el_val_t stem, el_val_t gram_case); +el_val_t sa_decline_a_stem_sg(el_val_t stem, el_val_t gram_case); +el_val_t sa_decline_aa_stem_pl(el_val_t stem, el_val_t gram_case); +el_val_t sa_decline_aa_stem_sg(el_val_t stem, el_val_t gram_case); +el_val_t sa_drs_future(el_val_t slot); +el_val_t sa_drs_past(el_val_t slot); +el_val_t sa_drs_present(el_val_t slot); +el_val_t sa_extract_stem(el_val_t noun, el_val_t stype); +el_val_t sa_gam_future(el_val_t slot); +el_val_t sa_gam_past(el_val_t slot); +el_val_t sa_gam_present(el_val_t slot); +el_val_t sa_kr_future(el_val_t slot); +el_val_t sa_kr_past(el_val_t slot); +el_val_t sa_kr_present(el_val_t slot); +el_val_t sa_map_canonical(el_val_t verb); +el_val_t sa_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t sa_slot(el_val_t person, el_val_t number); +el_val_t sa_stem_type(el_val_t noun); +el_val_t sa_str_drop_last(el_val_t s, el_val_t n); +el_val_t sa_str_ends(el_val_t s, el_val_t suf); +el_val_t sa_vad_future(el_val_t slot); +el_val_t sa_vad_past(el_val_t slot); +el_val_t sa_vad_present(el_val_t slot); +el_val_t scan_token(el_val_t s, el_val_t start); +el_val_t sem_first_modifier(el_val_t mods); +el_val_t sem_frame(el_val_t intent, el_val_t subject, el_val_t obj, el_val_t modifiers); +el_val_t sem_frame_lang(el_val_t intent, el_val_t subject, el_val_t obj, el_val_t modifiers, el_val_t lang_code); +el_val_t sem_frame_obj(el_val_t intent, el_val_t subject, el_val_t obj); +el_val_t sem_frame_simple(el_val_t intent, el_val_t subject); +el_val_t sem_get(el_val_t json, el_val_t key); +el_val_t sem_intent(el_val_t frame); +el_val_t sem_intent_to_realize(el_val_t intent); +el_val_t sem_lang(el_val_t frame); +el_val_t sem_modifiers(el_val_t frame); +el_val_t sem_object(el_val_t frame); +el_val_t sem_realize(el_val_t frame); +el_val_t sem_realize_full(el_val_t frame, el_val_t verb, el_val_t tense, el_val_t aspect); +el_val_t sem_realize_greet(el_val_t subject); +el_val_t sem_realize_lang(el_val_t frame, el_val_t lang_code); +el_val_t sem_subject(el_val_t frame); +el_val_t sem_to_spec(el_val_t frame); +el_val_t sem_to_spec_full(el_val_t frame, el_val_t verb, el_val_t tense, el_val_t aspect); +el_val_t sga_adci_present(el_val_t slot); +el_val_t sga_ai_present(el_val_t stem, el_val_t slot); +el_val_t sga_asbeir_present(el_val_t slot); +el_val_t sga_bith_past(el_val_t slot); +el_val_t sga_bith_present(el_val_t slot); +el_val_t sga_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t sga_copula_present(el_val_t slot); +el_val_t sga_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t sga_decline_astem(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t sga_decline_ostem(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t sga_detect_gender(el_val_t noun); +el_val_t sga_drop(el_val_t s, el_val_t n); +el_val_t sga_first(el_val_t s); +el_val_t sga_gaibid_present(el_val_t slot); +el_val_t sga_lenite(el_val_t word); +el_val_t sga_map_canonical(el_val_t verb); +el_val_t sga_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t sga_rest(el_val_t s); +el_val_t sga_slot(el_val_t person, el_val_t number); +el_val_t sga_teit_past(el_val_t slot); +el_val_t sga_teit_present(el_val_t slot); +el_val_t singularize(el_val_t plural); +el_val_t skip_ws(el_val_t s, el_val_t pos); +el_val_t slots_get(el_val_t slots, el_val_t key); +el_val_t slots_set(el_val_t slots, el_val_t key, el_val_t val); +el_val_t str_drop_last(el_val_t s, el_val_t n); +el_val_t str_ends(el_val_t s, el_val_t suf); +el_val_t str_last2(el_val_t s); +el_val_t str_last3(el_val_t s); +el_val_t str_last_char(el_val_t s); +el_val_t strengthen_chat_nodes(el_val_t activation_nodes); +el_val_t strip_query(el_val_t path); +el_val_t studio_tools_json(void); +el_val_t sux_absolutive_suffix(el_val_t person, el_val_t number); +el_val_t sux_ak_past(el_val_t slot); +el_val_t sux_ak_present(el_val_t slot); +el_val_t sux_case_suffix(el_val_t gram_case); +el_val_t sux_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t sux_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t sux_du_past(el_val_t slot); +el_val_t sux_du_present(el_val_t slot); +el_val_t sux_dug4_past(el_val_t slot); +el_val_t sux_dug4_present(el_val_t slot); +el_val_t sux_ergative_suffix(el_val_t person, el_val_t number); +el_val_t sux_igibar_past(el_val_t slot); +el_val_t sux_igibar_present(el_val_t slot); +el_val_t sux_is_animate(el_val_t noun); +el_val_t sux_map_canonical(el_val_t verb); +el_val_t sux_me_past(el_val_t slot); +el_val_t sux_me_present(el_val_t slot); +el_val_t sux_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t sux_personal_suffix(el_val_t slot); +el_val_t sux_realize_sentence(el_val_t intent, el_val_t agent, el_val_t predicate, el_val_t patient, el_val_t tense); +el_val_t sux_slot(el_val_t person, el_val_t number); +el_val_t sux_str_drop_last(el_val_t s, el_val_t n); +el_val_t sux_str_ends(el_val_t s, el_val_t suf); +el_val_t sux_str_last2(el_val_t s); +el_val_t sux_str_last_char(el_val_t s); +el_val_t sux_tum2_past(el_val_t slot); +el_val_t sux_tum2_present(el_val_t slot); +el_val_t sux_verb_chain(el_val_t agent, el_val_t verb, el_val_t patient, el_val_t tense); +el_val_t sw_adj_prefix(el_val_t noun_class, el_val_t number); +el_val_t sw_agree_adj(el_val_t adj_stem, el_val_t noun_class, el_val_t number); +el_val_t sw_conjugate(el_val_t verb_stem, el_val_t person, el_val_t number, el_val_t noun_class, el_val_t tense); +el_val_t sw_copula_neg_present(el_val_t person, el_val_t number); +el_val_t sw_copula_present(el_val_t person, el_val_t number, el_val_t use_case); +el_val_t sw_demonstrative(el_val_t noun_class, el_val_t number, el_val_t proximity); +el_val_t sw_is_class1_noun(el_val_t noun); +el_val_t sw_neg_subj_prefix(el_val_t person, el_val_t number, el_val_t noun_class); +el_val_t sw_negative(el_val_t verb_stem, el_val_t person, el_val_t number, el_val_t noun_class, el_val_t tense); +el_val_t sw_noun_class(el_val_t noun); +el_val_t sw_noun_plural(el_val_t noun); +el_val_t sw_obj_prefix(el_val_t person, el_val_t number, el_val_t noun_class); +el_val_t sw_str_drop_last(el_val_t s, el_val_t n); +el_val_t sw_str_ends(el_val_t s, el_val_t suf); +el_val_t sw_str_first2(el_val_t s); +el_val_t sw_str_first3(el_val_t s); +el_val_t sw_str_first_char(el_val_t s); +el_val_t sw_str_last_char(el_val_t s); +el_val_t sw_subj_prefix(el_val_t person, el_val_t number, el_val_t noun_class); +el_val_t sw_tense_marker(el_val_t tense); +el_val_t sw_verb_final(el_val_t tense, el_val_t negative); +el_val_t sw_verb_stem(el_val_t infinitive); +el_val_t tier_canonical(void); +el_val_t tier_episodic(void); +el_val_t tier_working(void); +el_val_t txb_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t txb_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t txb_decline_fem(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t txb_decline_masc(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t txb_detect_gender(el_val_t noun); +el_val_t txb_drop(el_val_t s, el_val_t n); +el_val_t txb_ends(el_val_t s, el_val_t suf); +el_val_t txb_kam_present(el_val_t slot); +el_val_t txb_lyut_present(el_val_t slot); +el_val_t txb_map_canonical(el_val_t verb); +el_val_t txb_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t txb_pres1_suffix(el_val_t slot); +el_val_t txb_slot(el_val_t person, el_val_t number); +el_val_t txb_wak_present(el_val_t slot); +el_val_t txb_wes_present(el_val_t slot); +el_val_t txb_ya_present(el_val_t slot); +el_val_t uga_amr_imperfect(el_val_t slot); +el_val_t uga_amr_perfect(el_val_t slot); +el_val_t uga_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t uga_conjugate_copula(el_val_t tense, el_val_t slot); +el_val_t uga_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t uga_generic_imperfect(el_val_t base3sg, el_val_t slot); +el_val_t uga_generic_perfect(el_val_t base3sg, el_val_t slot); +el_val_t uga_hlk_imperfect(el_val_t slot); +el_val_t uga_hlk_perfect(el_val_t slot); +el_val_t uga_is_copula(el_val_t verb); +el_val_t uga_is_fem(el_val_t noun); +el_val_t uga_kn_imperfect(el_val_t slot); +el_val_t uga_kn_perfect(el_val_t slot); +el_val_t uga_known_verb(el_val_t verb, el_val_t tense, el_val_t slot); +el_val_t uga_map_canonical(el_val_t verb); +el_val_t uga_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t uga_ray_imperfect(el_val_t slot); +el_val_t uga_ray_perfect(el_val_t slot); +el_val_t uga_slot(el_val_t person, el_val_t number); +el_val_t uga_slot_g(el_val_t person, el_val_t gender, el_val_t number); +el_val_t uga_str_drop_last(el_val_t s, el_val_t n); +el_val_t uga_str_ends(el_val_t s, el_val_t suf); +el_val_t uga_str_len(el_val_t s); +el_val_t uga_strip_nom(el_val_t noun); +el_val_t verb_form(el_val_t base, el_val_t tense, el_val_t person, el_val_t number); +el_val_t vocab_by_class(el_val_t cls); +el_val_t vocab_by_pos(el_val_t pos); +el_val_t vocab_lookup(el_val_t word, el_val_t lang_code); +el_val_t vocab_lookup_en(el_val_t word); +el_val_t vocab_synonym(el_val_t word, el_val_t lang_register, el_val_t lang_code); diff --git a/dist/grammar.c b/dist/grammar.c index 21f03ac..6ba5f0e 100644 --- a/dist/grammar.c +++ b/dist/grammar.c @@ -2,51 +2,6 @@ #include #include "el_runtime.h" -el_val_t lang_profile(el_val_t code, el_val_t word_order, el_val_t morph_type, el_val_t has_case, el_val_t has_gender, el_val_t script_dir, el_val_t agreement, el_val_t null_subject); -el_val_t lang_get(el_val_t profile, el_val_t key); -el_val_t lang_profile_en(void); -el_val_t lang_profile_ja(void); -el_val_t lang_profile_ar(void); -el_val_t lang_profile_zh(void); -el_val_t lang_profile_de(void); -el_val_t lang_profile_es(void); -el_val_t lang_profile_fi(void); -el_val_t lang_profile_sw(void); -el_val_t lang_profile_hi(void); -el_val_t lang_profile_ru(void); -el_val_t lang_profile_fr(void); -el_val_t lang_profile_la(void); -el_val_t lang_profile_he(void); -el_val_t lang_profile_sa(void); -el_val_t lang_profile_got(void); -el_val_t lang_profile_non(void); -el_val_t lang_profile_enm(void); -el_val_t lang_profile_pi(void); -el_val_t lang_profile_grc(void); -el_val_t lang_profile_ang(void); -el_val_t lang_profile_fro(void); -el_val_t lang_profile_goh(void); -el_val_t lang_profile_sga(void); -el_val_t lang_profile_txb(void); -el_val_t lang_profile_peo(void); -el_val_t lang_profile_akk(void); -el_val_t lang_profile_uga(void); -el_val_t lang_profile_egy(void); -el_val_t lang_profile_sux(void); -el_val_t lang_profile_gez(void); -el_val_t lang_profile_cop(void); -el_val_t lang_from_code(el_val_t code); -el_val_t lang_default(void); -el_val_t lang_is_isolating(el_val_t profile); -el_val_t lang_is_agglutinative(el_val_t profile); -el_val_t lang_is_fusional(el_val_t profile); -el_val_t lang_is_polysynthetic(el_val_t profile); -el_val_t lang_is_rtl(el_val_t profile); -el_val_t lang_has_null_subject(el_val_t profile); -el_val_t lang_has_case(el_val_t profile); -el_val_t lang_has_gender(el_val_t profile); -el_val_t lang_word_order(el_val_t profile); -el_val_t lang_code(el_val_t profile); el_val_t slots_get(el_val_t slots, el_val_t key); el_val_t slots_set(el_val_t slots, el_val_t key, el_val_t val); el_val_t make_slots(el_val_t k0, el_val_t v0); diff --git a/dist/language-profile.elh b/dist/language-profile.elh index 21d5193..8436652 100644 --- a/dist/language-profile.elh +++ b/dist/language-profile.elh @@ -1,46 +1,46 @@ // auto-generated by elc --emit-header — do not edit -extern fn lang_profile(code: String, word_order: String, morph_type: String, has_case: String, has_gender: String, script_dir: String, agreement: String, null_subject: String) -> Any -extern fn lang_get(profile: Any, key: String) -> String -extern fn lang_profile_en() -> Any -extern fn lang_profile_ja() -> Any -extern fn lang_profile_ar() -> Any -extern fn lang_profile_zh() -> Any -extern fn lang_profile_de() -> Any -extern fn lang_profile_es() -> Any -extern fn lang_profile_fi() -> Any -extern fn lang_profile_sw() -> Any -extern fn lang_profile_hi() -> Any -extern fn lang_profile_ru() -> Any -extern fn lang_profile_fr() -> Any -extern fn lang_profile_la() -> Any -extern fn lang_profile_he() -> Any -extern fn lang_profile_sa() -> Any -extern fn lang_profile_got() -> Any -extern fn lang_profile_non() -> Any -extern fn lang_profile_enm() -> Any -extern fn lang_profile_pi() -> Any -extern fn lang_profile_grc() -> Any -extern fn lang_profile_ang() -> Any -extern fn lang_profile_fro() -> Any -extern fn lang_profile_goh() -> Any -extern fn lang_profile_sga() -> Any -extern fn lang_profile_txb() -> Any -extern fn lang_profile_peo() -> Any -extern fn lang_profile_akk() -> Any -extern fn lang_profile_uga() -> Any -extern fn lang_profile_egy() -> Any -extern fn lang_profile_sux() -> Any -extern fn lang_profile_gez() -> Any -extern fn lang_profile_cop() -> Any -extern fn lang_from_code(code: String) -> Any -extern fn lang_default() -> Any -extern fn lang_is_isolating(profile: Any) -> Bool -extern fn lang_is_agglutinative(profile: Any) -> Bool -extern fn lang_is_fusional(profile: Any) -> Bool -extern fn lang_is_polysynthetic(profile: Any) -> Bool -extern fn lang_is_rtl(profile: Any) -> Bool -extern fn lang_has_null_subject(profile: Any) -> Bool -extern fn lang_has_case(profile: Any) -> Bool -extern fn lang_has_gender(profile: Any) -> Bool -extern fn lang_word_order(profile: Any) -> String -extern fn lang_code(profile: Any) -> String +extern fn lang_profile(code: String, word_order: String, morph_type: String, has_case: String, has_gender: String, script_dir: String, agreement: String, null_subject: String) -> [String] +extern fn lang_get(profile: [String], key: String) -> String +extern fn lang_profile_en() -> [String] +extern fn lang_profile_ja() -> [String] +extern fn lang_profile_ar() -> [String] +extern fn lang_profile_zh() -> [String] +extern fn lang_profile_de() -> [String] +extern fn lang_profile_es() -> [String] +extern fn lang_profile_fi() -> [String] +extern fn lang_profile_sw() -> [String] +extern fn lang_profile_hi() -> [String] +extern fn lang_profile_ru() -> [String] +extern fn lang_profile_fr() -> [String] +extern fn lang_profile_la() -> [String] +extern fn lang_profile_he() -> [String] +extern fn lang_profile_sa() -> [String] +extern fn lang_profile_got() -> [String] +extern fn lang_profile_non() -> [String] +extern fn lang_profile_enm() -> [String] +extern fn lang_profile_pi() -> [String] +extern fn lang_profile_grc() -> [String] +extern fn lang_profile_ang() -> [String] +extern fn lang_profile_fro() -> [String] +extern fn lang_profile_goh() -> [String] +extern fn lang_profile_sga() -> [String] +extern fn lang_profile_txb() -> [String] +extern fn lang_profile_peo() -> [String] +extern fn lang_profile_akk() -> [String] +extern fn lang_profile_uga() -> [String] +extern fn lang_profile_egy() -> [String] +extern fn lang_profile_sux() -> [String] +extern fn lang_profile_gez() -> [String] +extern fn lang_profile_cop() -> [String] +extern fn lang_from_code(code: String) -> [String] +extern fn lang_default() -> [String] +extern fn lang_is_isolating(profile: [String]) -> Bool +extern fn lang_is_agglutinative(profile: [String]) -> Bool +extern fn lang_is_fusional(profile: [String]) -> Bool +extern fn lang_is_polysynthetic(profile: [String]) -> Bool +extern fn lang_is_rtl(profile: [String]) -> Bool +extern fn lang_has_null_subject(profile: [String]) -> Bool +extern fn lang_has_case(profile: [String]) -> Bool +extern fn lang_has_gender(profile: [String]) -> Bool +extern fn lang_word_order(profile: [String]) -> String +extern fn lang_code(profile: [String]) -> String diff --git a/dist/morphology-akk.c b/dist/morphology-akk.c index 6ee1340..8d34425 100644 --- a/dist/morphology-akk.c +++ b/dist/morphology-akk.c @@ -2,6 +2,32 @@ #include #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 akk_str_ends(el_val_t s, el_val_t suf); el_val_t akk_str_len(el_val_t s); el_val_t akk_str_drop_last(el_val_t s, el_val_t n); diff --git a/dist/morphology-ang.c b/dist/morphology-ang.c index c10d9d0..9b27010 100644 --- a/dist/morphology-ang.c +++ b/dist/morphology-ang.c @@ -2,6 +2,32 @@ #include #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 ang_str_ends(el_val_t s, el_val_t suf); el_val_t ang_str_drop_last(el_val_t s, el_val_t n); el_val_t ang_str_last_char(el_val_t s); diff --git a/dist/morphology-ar.c b/dist/morphology-ar.c index 74f473a..a0d64aa 100644 --- a/dist/morphology-ar.c +++ b/dist/morphology-ar.c @@ -2,6 +2,32 @@ #include #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 ar_str_ends(el_val_t s, el_val_t suf); el_val_t ar_str_len(el_val_t s); el_val_t ar_str_drop_last(el_val_t s, el_val_t n); diff --git a/dist/morphology-cop.c b/dist/morphology-cop.c index a33c481..d2c62ea 100644 --- a/dist/morphology-cop.c +++ b/dist/morphology-cop.c @@ -2,6 +2,32 @@ #include #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 cop_str_ends(el_val_t s, el_val_t suf); el_val_t cop_str_len(el_val_t s); el_val_t cop_drop(el_val_t s, el_val_t n); diff --git a/dist/morphology-de.c b/dist/morphology-de.c index f60af9f..2864547 100644 --- a/dist/morphology-de.c +++ b/dist/morphology-de.c @@ -2,7 +2,32 @@ #include #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 de_article_def(el_val_t gender, el_val_t gram_case, el_val_t number); el_val_t de_article_indef(el_val_t gender, el_val_t gram_case, el_val_t number); el_val_t de_article(el_val_t gender, el_val_t gram_case, el_val_t number, el_val_t definite); diff --git a/dist/morphology-egy.c b/dist/morphology-egy.c index cb824b5..a3f15b0 100644 --- a/dist/morphology-egy.c +++ b/dist/morphology-egy.c @@ -2,6 +2,32 @@ #include #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 egy_str_ends(el_val_t s, el_val_t suf); el_val_t egy_str_len(el_val_t s); el_val_t egy_drop(el_val_t s, el_val_t n); diff --git a/dist/morphology-enm.c b/dist/morphology-enm.c index 0205649..9ee6e1a 100644 --- a/dist/morphology-enm.c +++ b/dist/morphology-enm.c @@ -2,6 +2,32 @@ #include #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 enm_str_ends(el_val_t s, el_val_t suf); el_val_t enm_drop(el_val_t s, el_val_t n); el_val_t enm_first_char(el_val_t s); diff --git a/dist/morphology-es.c b/dist/morphology-es.c index 1731aec..93fef16 100644 --- a/dist/morphology-es.c +++ b/dist/morphology-es.c @@ -2,6 +2,32 @@ #include #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 es_str_ends(el_val_t s, el_val_t suf); el_val_t es_str_drop_last(el_val_t s, el_val_t n); el_val_t es_str_last_char(el_val_t s); diff --git a/dist/morphology-fi.c b/dist/morphology-fi.c index cfe9d54..93e77cd 100644 --- a/dist/morphology-fi.c +++ b/dist/morphology-fi.c @@ -2,7 +2,32 @@ #include #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 fi_harmony(el_val_t word); el_val_t fi_suffix(el_val_t base, el_val_t harmony); el_val_t fi_noun_case(el_val_t stem, el_val_t gram_case, el_val_t number, el_val_t harmony); diff --git a/dist/morphology-fi.elh b/dist/morphology-fi.elh index 5ebd6c1..fc991ec 100644 --- a/dist/morphology-fi.elh +++ b/dist/morphology-fi.elh @@ -5,7 +5,7 @@ extern fn fi_noun_case(stem: String, gram_case: String, number: String, harmony: extern fn fi_str_last_char(s: String) -> String extern fn fi_apply_case(noun: String, gram_case: String, number: String) -> String extern fn fi_verb_stem(dict_form: String) -> String -extern fn fi_irregular_verb(dict_form: String) -> Any +extern fn fi_irregular_verb(dict_form: String) -> [String] extern fn fi_present_ending(stem: String, person: String, number: String, harmony: String) -> String extern fn fi_past_stem(stem: String) -> String extern fn fi_past_ending(stem: String, person: String, number: String, harmony: String) -> String @@ -14,4 +14,4 @@ extern fn fi_negative(verb: String, person: String, number: String) -> String extern fn fi_conjugate(verb: String, tense: String, person: String, number: String) -> String extern fn fi_question_suffix(harmony: String) -> String extern fn fi_make_question(verb_form: String, harmony: String) -> String -extern fn fi_full_paradigm(noun: String) -> Any +extern fn fi_full_paradigm(noun: String) -> [String] diff --git a/dist/morphology-fr.c b/dist/morphology-fr.c index 63e2e11..b061da9 100644 --- a/dist/morphology-fr.c +++ b/dist/morphology-fr.c @@ -2,6 +2,32 @@ #include #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 fr_str_ends(el_val_t s, el_val_t suf); el_val_t fr_str_drop_last(el_val_t s, el_val_t n); el_val_t fr_str_last_char(el_val_t s); diff --git a/dist/morphology-fro.c b/dist/morphology-fro.c index 4642295..45bf00b 100644 --- a/dist/morphology-fro.c +++ b/dist/morphology-fro.c @@ -2,6 +2,32 @@ #include #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 fro_str_ends(el_val_t s, el_val_t suf); el_val_t fro_drop(el_val_t s, el_val_t n); el_val_t fro_slot(el_val_t person, el_val_t number); diff --git a/dist/morphology-gez.c b/dist/morphology-gez.c index 0b65877..db9ce4f 100644 --- a/dist/morphology-gez.c +++ b/dist/morphology-gez.c @@ -2,6 +2,32 @@ #include #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 gez_str_ends(el_val_t s, el_val_t suf); el_val_t gez_str_len(el_val_t s); el_val_t gez_str_drop_last(el_val_t s, el_val_t n); diff --git a/dist/morphology-goh.c b/dist/morphology-goh.c index b066e8e..6441297 100644 --- a/dist/morphology-goh.c +++ b/dist/morphology-goh.c @@ -2,6 +2,32 @@ #include #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 goh_str_ends(el_val_t s, el_val_t suf); el_val_t goh_drop(el_val_t s, el_val_t n); el_val_t goh_slot(el_val_t person, el_val_t number); diff --git a/dist/morphology-got.c b/dist/morphology-got.c index b88792b..52b8440 100644 --- a/dist/morphology-got.c +++ b/dist/morphology-got.c @@ -2,6 +2,32 @@ #include #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 got_str_ends(el_val_t s, el_val_t suf); el_val_t got_str_drop_last(el_val_t s, el_val_t n); el_val_t got_slot(el_val_t person, el_val_t number); diff --git a/dist/morphology-grc.c b/dist/morphology-grc.c index aa7fe3d..c3101ad 100644 --- a/dist/morphology-grc.c +++ b/dist/morphology-grc.c @@ -2,6 +2,32 @@ #include #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 grc_str_ends(el_val_t s, el_val_t suf); el_val_t grc_str_drop_last(el_val_t s, el_val_t n); el_val_t grc_str_last_char(el_val_t s); diff --git a/dist/morphology-he.c b/dist/morphology-he.c index aa90714..1dcc5ae 100644 --- a/dist/morphology-he.c +++ b/dist/morphology-he.c @@ -2,6 +2,32 @@ #include #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); diff --git a/dist/morphology-hi.c b/dist/morphology-hi.c index cc788e6..4df346b 100644 --- a/dist/morphology-hi.c +++ b/dist/morphology-hi.c @@ -2,7 +2,32 @@ #include #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 hi_str_ends(el_val_t s, el_val_t suf); el_val_t hi_str_drop_last(el_val_t s, el_val_t n); el_val_t hi_str_last_char(el_val_t s); diff --git a/dist/morphology-ja.c b/dist/morphology-ja.c index 7024c48..91ab98a 100644 --- a/dist/morphology-ja.c +++ b/dist/morphology-ja.c @@ -2,7 +2,32 @@ #include #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 ja_verb_group(el_val_t dict_form); el_val_t ja_ichidan_stem(el_val_t dict_form); el_val_t ja_godan_stem_change(el_val_t dict_form, el_val_t row); diff --git a/dist/morphology-la.c b/dist/morphology-la.c index 13cba4c..a9d1588 100644 --- a/dist/morphology-la.c +++ b/dist/morphology-la.c @@ -2,6 +2,32 @@ #include #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 la_str_ends(el_val_t s, el_val_t suf); el_val_t la_str_drop_last(el_val_t s, el_val_t n); el_val_t la_str_last_char(el_val_t s); diff --git a/dist/morphology-non.c b/dist/morphology-non.c index f24cc73..dd0dacd 100644 --- a/dist/morphology-non.c +++ b/dist/morphology-non.c @@ -2,6 +2,32 @@ #include #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 non_str_ends(el_val_t s, el_val_t suf); el_val_t non_drop(el_val_t s, el_val_t n); el_val_t non_last(el_val_t s); diff --git a/dist/morphology-peo.c b/dist/morphology-peo.c index 7ac7a61..7da375d 100644 --- a/dist/morphology-peo.c +++ b/dist/morphology-peo.c @@ -2,6 +2,32 @@ #include #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 peo_drop(el_val_t s, el_val_t n); el_val_t peo_ends(el_val_t s, el_val_t suf); el_val_t peo_slot(el_val_t person, el_val_t number); diff --git a/dist/morphology-pi.c b/dist/morphology-pi.c index e6acbe2..ae7ade8 100644 --- a/dist/morphology-pi.c +++ b/dist/morphology-pi.c @@ -2,6 +2,32 @@ #include #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 pi_str_ends(el_val_t s, el_val_t suf); el_val_t pi_drop(el_val_t s, el_val_t n); el_val_t pi_last_char(el_val_t s); diff --git a/dist/morphology-ru.c b/dist/morphology-ru.c index 017cd70..b666737 100644 --- a/dist/morphology-ru.c +++ b/dist/morphology-ru.c @@ -2,7 +2,32 @@ #include #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 ru_gender(el_val_t noun); el_val_t ru_stem_type(el_val_t noun, el_val_t gender); el_val_t ru_noun_case(el_val_t noun, el_val_t gender, el_val_t gram_case, el_val_t number); diff --git a/dist/morphology-sa.c b/dist/morphology-sa.c index 82a184f..d54c6b4 100644 --- a/dist/morphology-sa.c +++ b/dist/morphology-sa.c @@ -2,6 +2,32 @@ #include #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 sa_str_ends(el_val_t s, el_val_t suf); el_val_t sa_str_drop_last(el_val_t s, el_val_t n); el_val_t sa_slot(el_val_t person, el_val_t number); diff --git a/dist/morphology-sga.c b/dist/morphology-sga.c index d2ddb9a..8a41a0f 100644 --- a/dist/morphology-sga.c +++ b/dist/morphology-sga.c @@ -2,6 +2,32 @@ #include #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 sga_drop(el_val_t s, el_val_t n); el_val_t sga_first(el_val_t s); el_val_t sga_rest(el_val_t s); diff --git a/dist/morphology-sux.c b/dist/morphology-sux.c index ebfcb93..b93abc5 100644 --- a/dist/morphology-sux.c +++ b/dist/morphology-sux.c @@ -2,6 +2,32 @@ #include #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 sux_str_ends(el_val_t s, el_val_t suf); el_val_t sux_str_drop_last(el_val_t s, el_val_t n); el_val_t sux_str_last_char(el_val_t s); diff --git a/dist/morphology-sw.c b/dist/morphology-sw.c index 6eca16b..492f8f8 100644 --- a/dist/morphology-sw.c +++ b/dist/morphology-sw.c @@ -2,6 +2,32 @@ #include #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 sw_str_ends(el_val_t s, el_val_t suf); el_val_t sw_str_drop_last(el_val_t s, el_val_t n); el_val_t sw_str_first_char(el_val_t s); diff --git a/dist/morphology-txb.c b/dist/morphology-txb.c index fc5f540..4a0509f 100644 --- a/dist/morphology-txb.c +++ b/dist/morphology-txb.c @@ -2,6 +2,32 @@ #include #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 txb_drop(el_val_t s, el_val_t n); el_val_t txb_ends(el_val_t s, el_val_t suf); el_val_t txb_slot(el_val_t person, el_val_t number); diff --git a/dist/morphology-uga.c b/dist/morphology-uga.c index 539e809..ddfbf00 100644 --- a/dist/morphology-uga.c +++ b/dist/morphology-uga.c @@ -2,6 +2,32 @@ #include #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 uga_str_ends(el_val_t s, el_val_t suf); el_val_t uga_str_len(el_val_t s); el_val_t uga_str_drop_last(el_val_t s, el_val_t n); diff --git a/dist/morphology.c b/dist/morphology.c index 735724e..0130355 100644 --- a/dist/morphology.c +++ b/dist/morphology.c @@ -47,44 +47,219 @@ el_val_t lang_has_case(el_val_t profile); el_val_t lang_has_gender(el_val_t profile); el_val_t lang_word_order(el_val_t profile); el_val_t lang_code(el_val_t profile); -el_val_t es_pluralize(el_val_t noun); +el_val_t es_str_ends(el_val_t s, el_val_t suf); +el_val_t es_str_drop_last(el_val_t s, el_val_t n); +el_val_t es_str_last_char(el_val_t s); +el_val_t es_str_last2(el_val_t s); +el_val_t es_str_last3(el_val_t s); +el_val_t es_verb_class(el_val_t base); +el_val_t es_stem(el_val_t base); +el_val_t es_slot(el_val_t person, el_val_t number); +el_val_t es_irregular_present(el_val_t verb, el_val_t person, el_val_t number); +el_val_t es_irregular_preterite(el_val_t verb, el_val_t person, el_val_t number); +el_val_t es_irregular_imperfect(el_val_t verb, el_val_t person, el_val_t number); +el_val_t es_regular_present(el_val_t stem, el_val_t vclass, el_val_t slot); +el_val_t es_regular_preterite(el_val_t stem, el_val_t vclass, el_val_t slot); +el_val_t es_regular_future(el_val_t base, el_val_t slot); +el_val_t es_irregular_future_stem(el_val_t verb); +el_val_t es_regular_imperfect(el_val_t stem, el_val_t vclass, el_val_t slot); el_val_t es_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t fr_pluralize(el_val_t noun); +el_val_t es_gender(el_val_t noun); +el_val_t es_invariant_plural(el_val_t noun); +el_val_t es_pluralize(el_val_t noun); +el_val_t es_starts_with_stressed_a(el_val_t noun); +el_val_t es_agree_article(el_val_t noun, el_val_t definite, el_val_t number); +el_val_t fr_str_ends(el_val_t s, el_val_t suf); +el_val_t fr_str_drop_last(el_val_t s, el_val_t n); +el_val_t fr_str_last_char(el_val_t s); +el_val_t fr_str_last2(el_val_t s); +el_val_t fr_is_vowel_start(el_val_t s); +el_val_t fr_is_known_irregular(el_val_t verb); +el_val_t fr_verb_group(el_val_t base); +el_val_t fr_stem(el_val_t base); +el_val_t fr_slot(el_val_t person, el_val_t number); +el_val_t fr_irregular_present(el_val_t verb, el_val_t person, el_val_t number); +el_val_t fr_regular_present(el_val_t stem, el_val_t vgroup, el_val_t slot); +el_val_t fr_future_stem(el_val_t base, el_val_t vgroup); +el_val_t fr_regular_future(el_val_t fstem, el_val_t slot); +el_val_t fr_irregular_future_stem(el_val_t verb); +el_val_t fr_imperfect_stem(el_val_t base, el_val_t vgroup); +el_val_t fr_regular_imperfect(el_val_t istem, el_val_t slot); +el_val_t fr_uses_etre(el_val_t verb); +el_val_t fr_past_participle(el_val_t verb); +el_val_t fr_avoir_present(el_val_t slot); +el_val_t fr_etre_present(el_val_t slot); el_val_t fr_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t fr_gender(el_val_t noun); +el_val_t fr_invariant_plural(el_val_t noun); +el_val_t fr_pluralize(el_val_t noun); +el_val_t fr_agree_article(el_val_t noun, el_val_t definite, el_val_t number); +el_val_t fr_subject_starts_vowel(el_val_t subject); +el_val_t fr_verb_ends_vowel(el_val_t verb_form); +el_val_t fr_question_inversion(el_val_t subject, el_val_t verb_form); +el_val_t de_article_def(el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t de_article_indef(el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t de_article(el_val_t gender, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t de_adj_ending(el_val_t gender, el_val_t gram_case, el_val_t number, el_val_t article_type); el_val_t de_noun_plural(el_val_t noun, el_val_t gender); +el_val_t de_case_ending(el_val_t noun, el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t de_conjugate_weak(el_val_t stem, el_val_t tense, el_val_t person, el_val_t number); +el_val_t de_irregular_present(el_val_t verb, el_val_t person, el_val_t number); +el_val_t de_strong_past_stem(el_val_t verb); +el_val_t de_norm_number(el_val_t number); +el_val_t de_norm_person(el_val_t person); el_val_t de_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t ru_gender(el_val_t noun); +el_val_t ru_stem_type(el_val_t noun, el_val_t gender); el_val_t ru_noun_case(el_val_t noun, el_val_t gender, el_val_t gram_case, el_val_t number); +el_val_t ru_decline_regular(el_val_t noun, el_val_t gender, el_val_t stype, el_val_t gram_case, el_val_t number); +el_val_t ru_decline_masc(el_val_t noun, el_val_t stype, el_val_t gram_case, el_val_t number); +el_val_t ru_decline_fem(el_val_t noun, el_val_t stype, el_val_t gram_case, el_val_t number); +el_val_t ru_decline_neut(el_val_t noun, el_val_t stype, el_val_t gram_case, el_val_t number); +el_val_t ru_past_agree(el_val_t verb_stem, el_val_t gender, el_val_t number); +el_val_t ru_conjugate_1st(el_val_t stem, el_val_t tense, el_val_t person, el_val_t number); +el_val_t ru_conjugate_2nd(el_val_t stem, el_val_t tense, el_val_t person, el_val_t number); +el_val_t ru_irregular(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t ru_past_stem(el_val_t verb); el_val_t ru_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number, el_val_t gender); -el_val_t ja_conjugate(el_val_t dict_form, el_val_t form); +el_val_t fi_harmony(el_val_t word); +el_val_t fi_suffix(el_val_t base, el_val_t harmony); +el_val_t fi_noun_case(el_val_t stem, el_val_t gram_case, el_val_t number, el_val_t harmony); +el_val_t fi_str_last_char(el_val_t s); el_val_t fi_apply_case(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t fi_verb_stem(el_val_t dict_form); +el_val_t fi_irregular_verb(el_val_t dict_form); +el_val_t fi_present_ending(el_val_t stem, el_val_t person, el_val_t number, el_val_t harmony); +el_val_t fi_past_stem(el_val_t stem); +el_val_t fi_past_ending(el_val_t stem, el_val_t person, el_val_t number, el_val_t harmony); +el_val_t fi_neg_aux(el_val_t person, el_val_t number); +el_val_t fi_negative(el_val_t verb, el_val_t person, el_val_t number); el_val_t fi_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t ar_sound_plural(el_val_t noun, el_val_t gender); +el_val_t fi_question_suffix(el_val_t harmony); +el_val_t fi_make_question(el_val_t verb_form, el_val_t harmony); +el_val_t fi_full_paradigm(el_val_t noun); +el_val_t ar_str_ends(el_val_t s, el_val_t suf); +el_val_t ar_str_len(el_val_t s); +el_val_t ar_str_drop_last(el_val_t s, el_val_t n); +el_val_t ar_str_last_char(el_val_t s); +el_val_t ar_slot(el_val_t person, el_val_t gender, el_val_t number); +el_val_t ar_perfect_suffix(el_val_t slot); +el_val_t ar_imperfect_prefix(el_val_t slot); +el_val_t ar_imperfect_suffix(el_val_t slot); +el_val_t ar_conjugate_form1(el_val_t past_base, el_val_t present_stem, el_val_t tense, el_val_t slot); +el_val_t ar_irregular_kaana(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_qaala(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_jaa(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_raaa(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_araada(el_val_t slot, el_val_t tense); +el_val_t ar_irregular_istata(el_val_t slot, el_val_t tense); +el_val_t ar_irregular(el_val_t verb, el_val_t tense, el_val_t slot); +el_val_t ar_present_stem(el_val_t verb); el_val_t ar_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t gender, el_val_t number); -el_val_t hi_noun_direct(el_val_t noun, el_val_t gender, el_val_t number); +el_val_t ar_is_sun_letter(el_val_t c); +el_val_t ar_definite_article(el_val_t noun); +el_val_t ar_case_ending(el_val_t kase, el_val_t definite); +el_val_t ar_gender(el_val_t noun); +el_val_t ar_masc_pl_ending(el_val_t kase); +el_val_t ar_sound_plural(el_val_t noun, el_val_t gender); +el_val_t ar_noun_form(el_val_t noun, el_val_t gender, el_val_t kase, el_val_t number, el_val_t definite); +el_val_t ar_verb_form(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t hi_str_ends(el_val_t s, el_val_t suf); +el_val_t hi_str_drop_last(el_val_t s, el_val_t n); +el_val_t hi_str_last_char(el_val_t s); el_val_t hi_gender(el_val_t noun); +el_val_t hi_masc_aa_stem(el_val_t noun); +el_val_t hi_noun_direct_m(el_val_t noun, el_val_t number); +el_val_t hi_noun_oblique_m(el_val_t noun, el_val_t number); +el_val_t hi_noun_direct_f(el_val_t noun, el_val_t number); +el_val_t hi_noun_oblique_f(el_val_t noun, el_val_t number); +el_val_t hi_noun_direct(el_val_t noun, el_val_t gender, el_val_t number); +el_val_t hi_noun_oblique(el_val_t noun, el_val_t gender, el_val_t number); +el_val_t hi_postposition(el_val_t gram_case); +el_val_t hi_agree_genitive(el_val_t possessed_gender, el_val_t possessed_number); +el_val_t hi_verb_stem(el_val_t infinitive); +el_val_t hi_verb_stem_clean(el_val_t infinitive); +el_val_t hi_present_aspect(el_val_t gender, el_val_t number); +el_val_t hi_aux_present(el_val_t person, el_val_t number); +el_val_t hi_past_suffix(el_val_t gender, el_val_t number); +el_val_t hi_past_irregular(el_val_t stem, el_val_t gender, el_val_t number); +el_val_t hi_future_suffix(el_val_t person, el_val_t number, el_val_t gender); +el_val_t hi_tense_suffix(el_val_t tense, el_val_t gender, el_val_t number); +el_val_t hi_hona_present(el_val_t person, el_val_t number); +el_val_t hi_hona_past(el_val_t gender, el_val_t number); el_val_t hi_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t gender, el_val_t number); +el_val_t hi_noun_with_post(el_val_t noun, el_val_t gender, el_val_t number, el_val_t gram_case); +el_val_t hi_genitive_phrase(el_val_t possessor, el_val_t possessor_gender, el_val_t possessor_number, el_val_t possessed, el_val_t possessed_gender, el_val_t possessed_number); +el_val_t sw_str_ends(el_val_t s, el_val_t suf); +el_val_t sw_str_drop_last(el_val_t s, el_val_t n); +el_val_t sw_str_first_char(el_val_t s); +el_val_t sw_str_first2(el_val_t s); +el_val_t sw_str_first3(el_val_t s); +el_val_t sw_str_last_char(el_val_t s); +el_val_t sw_is_class1_noun(el_val_t noun); +el_val_t sw_noun_class(el_val_t noun); +el_val_t sw_subj_prefix(el_val_t person, el_val_t number, el_val_t noun_class); +el_val_t sw_obj_prefix(el_val_t person, el_val_t number, el_val_t noun_class); +el_val_t sw_tense_marker(el_val_t tense); +el_val_t sw_verb_final(el_val_t tense, el_val_t negative); +el_val_t sw_neg_subj_prefix(el_val_t person, el_val_t number, el_val_t noun_class); +el_val_t sw_verb_stem(el_val_t infinitive); +el_val_t sw_conjugate(el_val_t verb_stem, el_val_t person, el_val_t number, el_val_t noun_class, el_val_t tense); +el_val_t sw_negative(el_val_t verb_stem, el_val_t person, el_val_t number, el_val_t noun_class, el_val_t tense); el_val_t sw_noun_plural(el_val_t noun); -el_val_t sw_conjugate(el_val_t verb, el_val_t person, el_val_t number, el_val_t noun_class, el_val_t tense); +el_val_t sw_adj_prefix(el_val_t noun_class, el_val_t number); +el_val_t sw_agree_adj(el_val_t adj_stem, el_val_t noun_class, el_val_t number); +el_val_t sw_demonstrative(el_val_t noun_class, el_val_t number, el_val_t proximity); +el_val_t sw_copula_present(el_val_t person, el_val_t number, el_val_t use_case); +el_val_t sw_copula_neg_present(el_val_t person, el_val_t number); +el_val_t la_str_ends(el_val_t s, el_val_t suf); +el_val_t la_str_drop_last(el_val_t s, el_val_t n); +el_val_t la_str_last_char(el_val_t s); +el_val_t la_str_last2(el_val_t s); +el_val_t la_str_last3(el_val_t s); +el_val_t la_slot(el_val_t person, el_val_t number); +el_val_t la_verb_class(el_val_t verb); +el_val_t la_stem(el_val_t verb, el_val_t vclass); +el_val_t la_perfect_stem(el_val_t verb, el_val_t vclass); +el_val_t la_perfect_ending(el_val_t slot); +el_val_t la_present_ending(el_val_t vclass, el_val_t slot); +el_val_t la_present_form(el_val_t stem, el_val_t vclass, el_val_t slot); +el_val_t la_future_ending_12(el_val_t slot); +el_val_t la_future_ending_34(el_val_t slot); +el_val_t la_future_form(el_val_t stem, el_val_t vclass, el_val_t slot); +el_val_t la_esse_present(el_val_t slot); +el_val_t la_esse_past(el_val_t slot); +el_val_t la_esse_future(el_val_t slot); +el_val_t la_ire_present(el_val_t slot); +el_val_t la_ire_past(el_val_t slot); +el_val_t la_ire_future(el_val_t slot); +el_val_t la_velle_present(el_val_t slot); +el_val_t la_velle_past(el_val_t slot); +el_val_t la_velle_future(el_val_t slot); +el_val_t la_posse_present(el_val_t slot); +el_val_t la_posse_past(el_val_t slot); +el_val_t la_posse_future(el_val_t slot); +el_val_t la_irregular_perfect_stem(el_val_t verb); +el_val_t la_map_canonical(el_val_t verb); el_val_t la_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -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 grc_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t ang_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t sa_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t got_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t non_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t enm_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t pi_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t fro_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t goh_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t sga_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t txb_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t peo_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t akk_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t uga_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t egy_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t sux_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t gez_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); -el_val_t cop_conjugate(el_val_t verb, el_val_t tense, el_val_t person, el_val_t number); +el_val_t la_declension(el_val_t noun); +el_val_t la_decline_1(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_decline_2m(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_decline_2n(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_decline_3(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t la_decline_4(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_decline_5(el_val_t stem, el_val_t gram_case, el_val_t number); +el_val_t la_decline_2er(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t la_decline(el_val_t noun, el_val_t gram_case, el_val_t number); +el_val_t la_noun_phrase(el_val_t noun, el_val_t gram_case, el_val_t number, el_val_t definite); +el_val_t ja_verb_group(el_val_t dict_form); +el_val_t ja_ichidan_stem(el_val_t dict_form); +el_val_t ja_godan_stem_change(el_val_t dict_form, el_val_t row); +el_val_t ja_conjugate(el_val_t dict_form, el_val_t form); +el_val_t ja_particle(el_val_t gram_case); +el_val_t ja_noun_phrase(el_val_t noun, el_val_t gram_case); +el_val_t ja_question_particle(void); +el_val_t ja_make_question(el_val_t sentence); 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); diff --git a/dist/morphology.elh b/dist/morphology.elh index 70b9ddb..cd756a1 100644 --- a/dist/morphology.elh +++ b/dist/morphology.elh @@ -8,7 +8,7 @@ extern fn is_vowel(c: String) -> Bool extern fn morph_apply_suffix(base: String, suffix: String) -> String extern fn en_irregular_plural(word: String) -> String extern fn en_irregular_singular(word: String) -> String -extern fn en_irregular_verb(base: String) -> Any +extern fn en_irregular_verb(base: String) -> [String] extern fn en_verb_3sg(base: String) -> String extern fn en_should_double_final(base: String) -> Bool extern fn en_verb_past(base: String) -> String @@ -16,10 +16,10 @@ extern fn en_verb_gerund(base: String) -> String extern fn en_pluralize_regular(singular: String) -> String extern fn en_verb_form(base: String, tense: String, person: String, number: String) -> String extern fn agree_determiner(det: String, noun: String) -> String -extern fn morph_pluralize(noun: String, profile: Any) -> String +extern fn morph_pluralize(noun: String, profile: [String]) -> String extern fn morph_map_canonical(verb: String, code: String) -> String -extern fn morph_conjugate(verb: String, tense: String, person: String, number: String, profile: Any) -> String -extern fn morph_inflect(word: String, features: String, profile: Any) -> String +extern fn morph_conjugate(verb: String, tense: String, person: String, number: String, profile: [String]) -> String +extern fn morph_inflect(word: String, features: String, profile: [String]) -> String extern fn pluralize(singular: String) -> String extern fn singularize(plural: String) -> String extern fn verb_form(base: String, tense: String, person: String, number: String) -> String diff --git a/dist/neuron b/dist/neuron index 63b2a18..821b4c9 100755 Binary files a/dist/neuron and b/dist/neuron differ diff --git a/dist/neuron-api.c b/dist/neuron-api.c index 04ba0d0..814f2fd 100644 --- a/dist/neuron-api.c +++ b/dist/neuron-api.c @@ -14,6 +14,9 @@ el_val_t mem_forget(el_val_t node_id); el_val_t mem_consolidate(void); el_val_t mem_save(el_val_t path); el_val_t mem_load(el_val_t path); +el_val_t mem_boot_count_get(void); +el_val_t mem_boot_count_inc(void); +el_val_t mem_emit_state_event(el_val_t trigger, el_val_t kind, el_val_t content); el_val_t api_json_escape(el_val_t s); el_val_t api_query_param(el_val_t path, el_val_t key); el_val_t api_query_int(el_val_t path, el_val_t key, el_val_t default_val); diff --git a/dist/realizer.c b/dist/realizer.c index 0b336bd..d5a3aad 100644 --- a/dist/realizer.c +++ b/dist/realizer.c @@ -2,114 +2,6 @@ #include #include "el_runtime.h" -el_val_t lang_profile(el_val_t code, el_val_t word_order, el_val_t morph_type, el_val_t has_case, el_val_t has_gender, el_val_t script_dir, el_val_t agreement, el_val_t null_subject); -el_val_t lang_get(el_val_t profile, el_val_t key); -el_val_t lang_profile_en(void); -el_val_t lang_profile_ja(void); -el_val_t lang_profile_ar(void); -el_val_t lang_profile_zh(void); -el_val_t lang_profile_de(void); -el_val_t lang_profile_es(void); -el_val_t lang_profile_fi(void); -el_val_t lang_profile_sw(void); -el_val_t lang_profile_hi(void); -el_val_t lang_profile_ru(void); -el_val_t lang_profile_fr(void); -el_val_t lang_profile_la(void); -el_val_t lang_profile_he(void); -el_val_t lang_profile_sa(void); -el_val_t lang_profile_got(void); -el_val_t lang_profile_non(void); -el_val_t lang_profile_enm(void); -el_val_t lang_profile_pi(void); -el_val_t lang_profile_grc(void); -el_val_t lang_profile_ang(void); -el_val_t lang_profile_fro(void); -el_val_t lang_profile_goh(void); -el_val_t lang_profile_sga(void); -el_val_t lang_profile_txb(void); -el_val_t lang_profile_peo(void); -el_val_t lang_profile_akk(void); -el_val_t lang_profile_uga(void); -el_val_t lang_profile_egy(void); -el_val_t lang_profile_sux(void); -el_val_t lang_profile_gez(void); -el_val_t lang_profile_cop(void); -el_val_t lang_from_code(el_val_t code); -el_val_t lang_default(void); -el_val_t lang_is_isolating(el_val_t profile); -el_val_t lang_is_agglutinative(el_val_t profile); -el_val_t lang_is_fusional(el_val_t profile); -el_val_t lang_is_polysynthetic(el_val_t profile); -el_val_t lang_is_rtl(el_val_t profile); -el_val_t lang_has_null_subject(el_val_t profile); -el_val_t lang_has_case(el_val_t profile); -el_val_t lang_has_gender(el_val_t profile); -el_val_t lang_word_order(el_val_t profile); -el_val_t lang_code(el_val_t profile); -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 slots_get(el_val_t slots, el_val_t key); -el_val_t slots_set(el_val_t slots, el_val_t key, el_val_t val); -el_val_t make_slots(el_val_t k0, el_val_t v0); -el_val_t make_slots2(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1); -el_val_t make_slots3(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1, el_val_t k2, el_val_t v2); -el_val_t make_slots4(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1, el_val_t k2, el_val_t v2, el_val_t k3, el_val_t v3); -el_val_t make_slots5(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1, el_val_t k2, el_val_t v2, el_val_t k3, el_val_t v3, el_val_t k4, el_val_t v4); -el_val_t rule_id(el_val_t rule); -el_val_t rule_lhs(el_val_t rule); -el_val_t rule_rhs_len(el_val_t rule); -el_val_t rule_rhs(el_val_t rule, el_val_t idx); -el_val_t make_rule(el_val_t id, el_val_t lhs, el_val_t r0); -el_val_t make_rule2(el_val_t id, el_val_t lhs, el_val_t r0, el_val_t r1); -el_val_t make_rule3(el_val_t id, el_val_t lhs, el_val_t r0, el_val_t r1, el_val_t r2); -el_val_t make_rule4(el_val_t id, el_val_t lhs, el_val_t r0, el_val_t r1, el_val_t r2, el_val_t r3); -el_val_t build_rules(void); -el_val_t get_rules(void); -el_val_t find_rule(el_val_t rule_id_str); -el_val_t make_leaf(el_val_t label, el_val_t word); -el_val_t make_node1(el_val_t label, el_val_t child0); -el_val_t make_node2(el_val_t label, el_val_t child0, el_val_t child1); -el_val_t make_node3(el_val_t label, el_val_t child0, el_val_t child1, el_val_t child2); -el_val_t make_node4(el_val_t label, el_val_t child0, el_val_t child1, el_val_t child2, el_val_t child3); -el_val_t nlg_is_ws(el_val_t c); -el_val_t skip_ws(el_val_t s, el_val_t pos); -el_val_t scan_token(el_val_t s, el_val_t start); -el_val_t render_tree(el_val_t tree); -el_val_t gram_word_order(el_val_t profile); -el_val_t gram_order_constituents(el_val_t subj, el_val_t verb, el_val_t obj, el_val_t profile); -el_val_t gram_build_vp(el_val_t verb, el_val_t aux, el_val_t profile); -el_val_t gram_question_strategy(el_val_t profile); -el_val_t is_pronoun(el_val_t word); -el_val_t build_np(el_val_t referent, el_val_t slots); -el_val_t build_pp(el_val_t loc); -el_val_t build_vp_body(el_val_t slots); -el_val_t build_vp_from_slots(el_val_t slots); -el_val_t generate_tree(el_val_t rule_id_str, el_val_t slots); el_val_t agent_person(el_val_t agent); el_val_t agent_number(el_val_t agent); el_val_t realize_np(el_val_t referent, el_val_t number); diff --git a/dist/routes.c b/dist/routes.c index 35e03b2..88c37f0 100644 --- a/dist/routes.c +++ b/dist/routes.c @@ -14,6 +14,9 @@ el_val_t mem_forget(el_val_t node_id); el_val_t mem_consolidate(void); el_val_t mem_save(el_val_t path); el_val_t mem_load(el_val_t path); +el_val_t mem_boot_count_get(void); +el_val_t mem_boot_count_inc(void); +el_val_t mem_emit_state_event(el_val_t trigger, el_val_t kind, el_val_t content); el_val_t pulse_count(void); el_val_t pulse_inc(void); el_val_t make_action(el_val_t kind, el_val_t payload); diff --git a/dist/semantics.c b/dist/semantics.c index fd3ad02..b98a277 100644 --- a/dist/semantics.c +++ b/dist/semantics.c @@ -2,97 +2,6 @@ #include #include "el_runtime.h" -el_val_t lang_profile(el_val_t code, el_val_t word_order, el_val_t morph_type, el_val_t has_case, el_val_t has_gender, el_val_t script_dir, el_val_t agreement, el_val_t null_subject); -el_val_t lang_get(el_val_t profile, el_val_t key); -el_val_t lang_profile_en(void); -el_val_t lang_profile_ja(void); -el_val_t lang_profile_ar(void); -el_val_t lang_profile_zh(void); -el_val_t lang_profile_de(void); -el_val_t lang_profile_es(void); -el_val_t lang_profile_fi(void); -el_val_t lang_profile_sw(void); -el_val_t lang_profile_hi(void); -el_val_t lang_profile_ru(void); -el_val_t lang_profile_fr(void); -el_val_t lang_profile_la(void); -el_val_t lang_profile_he(void); -el_val_t lang_profile_sa(void); -el_val_t lang_profile_got(void); -el_val_t lang_profile_non(void); -el_val_t lang_profile_enm(void); -el_val_t lang_profile_pi(void); -el_val_t lang_profile_grc(void); -el_val_t lang_profile_ang(void); -el_val_t lang_profile_fro(void); -el_val_t lang_profile_goh(void); -el_val_t lang_profile_sga(void); -el_val_t lang_profile_txb(void); -el_val_t lang_profile_peo(void); -el_val_t lang_profile_akk(void); -el_val_t lang_profile_uga(void); -el_val_t lang_profile_egy(void); -el_val_t lang_profile_sux(void); -el_val_t lang_profile_gez(void); -el_val_t lang_profile_cop(void); -el_val_t lang_from_code(el_val_t code); -el_val_t lang_default(void); -el_val_t lang_is_isolating(el_val_t profile); -el_val_t lang_is_agglutinative(el_val_t profile); -el_val_t lang_is_fusional(el_val_t profile); -el_val_t lang_is_polysynthetic(el_val_t profile); -el_val_t lang_is_rtl(el_val_t profile); -el_val_t lang_has_null_subject(el_val_t profile); -el_val_t lang_has_case(el_val_t profile); -el_val_t lang_has_gender(el_val_t profile); -el_val_t lang_word_order(el_val_t profile); -el_val_t lang_code(el_val_t profile); -el_val_t slots_get(el_val_t slots, el_val_t key); -el_val_t slots_set(el_val_t slots, el_val_t key, el_val_t val); -el_val_t make_slots(el_val_t k0, el_val_t v0); -el_val_t make_slots2(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1); -el_val_t make_slots3(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1, el_val_t k2, el_val_t v2); -el_val_t make_slots4(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1, el_val_t k2, el_val_t v2, el_val_t k3, el_val_t v3); -el_val_t make_slots5(el_val_t k0, el_val_t v0, el_val_t k1, el_val_t v1, el_val_t k2, el_val_t v2, el_val_t k3, el_val_t v3, el_val_t k4, el_val_t v4); -el_val_t rule_id(el_val_t rule); -el_val_t rule_lhs(el_val_t rule); -el_val_t rule_rhs_len(el_val_t rule); -el_val_t rule_rhs(el_val_t rule, el_val_t idx); -el_val_t make_rule(el_val_t id, el_val_t lhs, el_val_t r0); -el_val_t make_rule2(el_val_t id, el_val_t lhs, el_val_t r0, el_val_t r1); -el_val_t make_rule3(el_val_t id, el_val_t lhs, el_val_t r0, el_val_t r1, el_val_t r2); -el_val_t make_rule4(el_val_t id, el_val_t lhs, el_val_t r0, el_val_t r1, el_val_t r2, el_val_t r3); -el_val_t build_rules(void); -el_val_t get_rules(void); -el_val_t find_rule(el_val_t rule_id_str); -el_val_t make_leaf(el_val_t label, el_val_t word); -el_val_t make_node1(el_val_t label, el_val_t child0); -el_val_t make_node2(el_val_t label, el_val_t child0, el_val_t child1); -el_val_t make_node3(el_val_t label, el_val_t child0, el_val_t child1, el_val_t child2); -el_val_t make_node4(el_val_t label, el_val_t child0, el_val_t child1, el_val_t child2, el_val_t child3); -el_val_t nlg_is_ws(el_val_t c); -el_val_t skip_ws(el_val_t s, el_val_t pos); -el_val_t scan_token(el_val_t s, el_val_t start); -el_val_t render_tree(el_val_t tree); -el_val_t gram_word_order(el_val_t profile); -el_val_t gram_order_constituents(el_val_t subj, el_val_t verb, el_val_t obj, el_val_t profile); -el_val_t gram_build_vp(el_val_t verb, el_val_t aux, el_val_t profile); -el_val_t gram_question_strategy(el_val_t profile); -el_val_t is_pronoun(el_val_t word); -el_val_t build_np(el_val_t referent, el_val_t slots); -el_val_t build_pp(el_val_t loc); -el_val_t build_vp_body(el_val_t slots); -el_val_t build_vp_from_slots(el_val_t slots); -el_val_t generate_tree(el_val_t rule_id_str, el_val_t slots); -el_val_t agent_person(el_val_t agent); -el_val_t agent_number(el_val_t agent); -el_val_t realize_np(el_val_t referent, el_val_t number); -el_val_t realize_vp_lang(el_val_t base_verb, el_val_t tense, el_val_t aspect, el_val_t person, el_val_t number, el_val_t profile); -el_val_t realize_question_lang(el_val_t predicate, el_val_t tense, el_val_t aspect, el_val_t person, el_val_t number, el_val_t agent, el_val_t patient, el_val_t location, el_val_t profile); -el_val_t capitalize_first(el_val_t s); -el_val_t add_punct(el_val_t s, el_val_t intent); -el_val_t realize_lang(el_val_t form, el_val_t profile); -el_val_t realize(el_val_t form); el_val_t sem_frame(el_val_t intent, el_val_t subject, el_val_t obj, el_val_t modifiers); el_val_t sem_frame_lang(el_val_t intent, el_val_t subject, el_val_t obj, el_val_t modifiers, el_val_t lang_code); el_val_t sem_frame_simple(el_val_t intent, el_val_t subject); diff --git a/dist/soul.c b/dist/soul.c index c924816..5e1508a 100644 --- a/dist/soul.c +++ b/dist/soul.c @@ -2,6 +2,12 @@ #include #include "el_runtime.h" +el_val_t sem_get(el_val_t json, el_val_t key); +el_val_t generate_frame(el_val_t frame); +el_val_t generate_frame_lang(el_val_t frame, el_val_t lang_code); +el_val_t build_form_from_json(el_val_t semantic_form_json, el_val_t lang_code); +el_val_t generate(el_val_t semantic_form_json); +el_val_t generate_lang(el_val_t semantic_form_json, el_val_t lang_code); el_val_t tier_working(void); el_val_t tier_episodic(void); el_val_t tier_canonical(void); diff --git a/dist/soul.elh b/dist/soul.elh index c1227d9..ae5e5a4 100644 --- a/dist/soul.elh +++ b/dist/soul.elh @@ -1,2 +1,4 @@ // auto-generated by elc --emit-header — do not edit extern fn init_soul_edges() -> Void +extern fn load_identity_context() -> Void +extern fn emit_session_start_event() -> Void diff --git a/dist/studio.c b/dist/studio.c index c6501ec..c588d26 100644 --- a/dist/studio.c +++ b/dist/studio.c @@ -20,6 +20,9 @@ el_val_t mem_forget(el_val_t node_id); el_val_t mem_consolidate(void); el_val_t mem_save(el_val_t path); el_val_t mem_load(el_val_t path); +el_val_t mem_boot_count_get(void); +el_val_t mem_boot_count_inc(void); +el_val_t mem_emit_state_event(el_val_t trigger, el_val_t kind, el_val_t content); el_val_t chat_default_model(void); el_val_t engram_compile(el_val_t intent); el_val_t json_safe(el_val_t s); @@ -27,6 +30,8 @@ el_val_t build_system_prompt(el_val_t ctx); el_val_t hist_append(el_val_t hist, el_val_t role, el_val_t content); el_val_t hist_trim(el_val_t hist); el_val_t clean_llm_response(el_val_t s); +el_val_t conv_history_persist(el_val_t hist); +el_val_t conv_history_load(void); el_val_t handle_chat(el_val_t body); el_val_t handle_see(el_val_t body); el_val_t studio_tools_json(void); @@ -36,7 +41,9 @@ el_val_t dispatch_tool(el_val_t tool_name, el_val_t tool_input); el_val_t handle_chat_agentic(el_val_t body); el_val_t handle_chat_as_soul(el_val_t body); el_val_t handle_dharma_room_turn(el_val_t body); +el_val_t handle_dharma_room_turn_agentic(el_val_t body); el_val_t auto_persist(el_val_t req, el_val_t resp); +el_val_t strengthen_chat_nodes(el_val_t activation_nodes); el_val_t auth_headers(el_val_t tok); el_val_t axon_get(el_val_t path); el_val_t axon_post(el_val_t path, el_val_t body); diff --git a/dist/vocabulary.elh b/dist/vocabulary.elh index cf3af7d..f91be96 100644 --- a/dist/vocabulary.elh +++ b/dist/vocabulary.elh @@ -1,20 +1,20 @@ // auto-generated by elc --emit-header — do not edit -extern fn lex_word(entry: Any) -> String -extern fn lex_pos(entry: Any) -> String -extern fn lex_form(entry: Any, idx: Int) -> String -extern fn lex_class(entry: Any) -> String -extern fn make_entry(word: String, pos: String, f0: String, f1: String, f2: String, f3: String, f4: String, cls: String) -> Any -extern fn make_entry2(word: String, pos: String, f0: String, f1: String, cls: String) -> Any -extern fn make_entry3(word: String, pos: String, f0: String, f1: String, f2: String, cls: String) -> Any -extern fn make_entry1(word: String, pos: String, f0: String, cls: String) -> Any -extern fn build_vocab() -> Any -extern fn get_vocab() -> Any -extern fn vocab_lookup(word: String, lang_code: String) -> Any -extern fn vocab_lookup_en(word: String) -> Any +extern fn lex_word(entry: [String]) -> String +extern fn lex_pos(entry: [String]) -> String +extern fn lex_form(entry: [String], idx: Int) -> String +extern fn lex_class(entry: [String]) -> String +extern fn make_entry(word: String, pos: String, f0: String, f1: String, f2: String, f3: String, f4: String, cls: String) -> [String] +extern fn make_entry2(word: String, pos: String, f0: String, f1: String, cls: String) -> [String] +extern fn make_entry3(word: String, pos: String, f0: String, f1: String, f2: String, cls: String) -> [String] +extern fn make_entry1(word: String, pos: String, f0: String, cls: String) -> [String] +extern fn build_vocab() -> [[String]] +extern fn get_vocab() -> [[String]] +extern fn vocab_lookup(word: String, lang_code: String) -> [String] +extern fn vocab_lookup_en(word: String) -> [String] extern fn vocab_synonym(word: String, lang_register: String, lang_code: String) -> String -extern fn vocab_by_pos(pos: String) -> Any -extern fn vocab_by_class(cls: String) -> Any -extern fn entry_found(entry: Any) -> Bool -extern fn entry_word(entry: Any) -> String -extern fn entry_pos(entry: Any) -> String -extern fn entry_form(entry: Any, n: Int) -> String +extern fn vocab_by_pos(pos: String) -> [[String]] +extern fn vocab_by_class(cls: String) -> [[String]] +extern fn entry_found(entry: [String]) -> Bool +extern fn entry_word(entry: [String]) -> String +extern fn entry_pos(entry: [String]) -> String +extern fn entry_form(entry: [String], n: Int) -> String diff --git a/elp-input.el b/elp-input.el index dedb6aa..757b36a 100644 --- a/elp-input.el +++ b/elp-input.el @@ -1,4 +1,4 @@ -import "../foundation/elp/src/elp.el" +import "../foundation/el/elp/src/elp.el" // elp-input.el — Convert free text → semantic frame for ELP input parsing. // diff --git a/soul.el b/soul.el index fd2daa9..b0c9557 100644 --- a/soul.el +++ b/soul.el @@ -1,4 +1,4 @@ -import "../foundation/elp/src/elp.el" +import "../foundation/el/elp/src/elp.el" import "memory.el" import "awareness.el" import "chat.el" diff --git a/soul.elh b/soul.elh index c1227d9..ae5e5a4 100644 --- a/soul.elh +++ b/soul.elh @@ -1,2 +1,4 @@ // auto-generated by elc --emit-header — do not edit extern fn init_soul_edges() -> Void +extern fn load_identity_context() -> Void +extern fn emit_session_start_event() -> Void diff --git a/studio.el b/studio.el index 77200a3..b5b7ece 100644 --- a/studio.el +++ b/studio.el @@ -1,4 +1,4 @@ -import "../foundation/elp/src/elp.el" +import "../foundation/el/elp/src/elp.el" import "memory.el" import "chat.el"