;;; lang_profile_fr.el — French language profile for ELP.
;;; Mirrors lang_profile_it / lang_profile_es; keys the realizer's construction
;;; switches. French is a Romance sibling (~54% of the realizer code and the whole
;;; clause-engine architecture reused), but carries the family's biggest surface
;;; deltas: NOT pro-drop, DISCONTINUOUS negation, and an orthography/phonology
;;; mismatch (elision, liaison) that makes exact-match genuinely hard.

(lang_profile_fr
  (language        "French")
  (iso639          "fr")
  (family          "Romance")

  ;; ── core typology flags ────────────────────────────────────────────────
  (pro-drop            no)     ; << French-specific: subject clitic OBLIGATORY
  (obligatory-subject  yes)    ; je/tu/il/elle/nous/vous/ils/elles always overt
  (grammatical-gender  yes)    ; m/f; full NP agreement (art + adj + participle)
  (do-support          no)
  (subject-aux-inversion optional)  ; est-ce que (default) OR clitic inversion (vas-tu)
  (article-selection   "le/la/l'/les ; un/une/des ; PARTITIVE du/de la/de l'/des")
  (article-drives-contraction yes)  ; à+le=au, de+le=du feed off article choice
  (adjective-position  "postnominal-default + prenominal-BAGS")  ; beau/bon/grand/
                               ; petit/jeune/vieux/nouveau + ordinals prenominal
                               ; (beau->bel, nouveau->nouvel, vieux->vieil / vowel)
  (question-punct      "space-before")  ; French typography: ' ?' ' !' (no ¿¡)

  ;; ── elision (orthography/phonology mismatch — French-specific) ──────────
  (elision             ((le l') (la l') (je j') (ne n') (de d') (que qu')
                        (me m') (te t') (se s') (ce c')))  ; before vowel / h-muet
  (elision-h-muet      yes)    ; l'homme, l'hôpital (h-aspiré exception list kept)
  (liaison             noted-not-modeled)  ; phonological, not written in surface

  ;; ── MANDATORY prep+article contractions ────────────────────────────────
  (contractions        ((à le au) (à les aux) (de le du) (de les des)))
  (contraction-mandatory yes)  ; *à le -> au obligatory; à la / à l' uncontracted
  (partitive           ((m-sg du) (f-sg "de la") (vowel "de l'") (pl des)))
  (partitive-under-neg "de")   ; << gap in current build: 'ne … pas de pain'

  ;; ── clitic system ──────────────────────────────────────────────────────
  (clitics             yes)
  (clitic-order        (me te se nous vous | le la les | lui leur | y | en))
  (clitic-placement    ((finite proclitic)             ; je le lui donne
                        (imperative-affirmative enclitic-hyphen)  ; donne-le-moi
                        (imperative-negative "ne+proclitic+verb+pas")  ; ne le donne pas
                        (infinitive enclitic)))         ; PARTIAL: clitic-climbing
                                                        ; onto infinitive under modal
  (clitic-imperative-shift ((me moi) (te toi)))  ; final me/te -> moi/toi (donne-moi)
  (clitic-particles    (y en))  ; locative y, partitive/genitive en

  ;; ── verb / aspect system ───────────────────────────────────────────────
  (finite-agreement    "person+number (written; many homophones)")
  (tenses              (présent imparfait passé-simple futur conditionnel
                        subjonctif-présent subjonctif-imparfait impératif))
  (compound-past       "passé-composé = aux(present) + participe passé")
  (perfect-aux         "être/avoir (LEXICAL selection)")  ; << French-specific
  (etre-aux-class      "intransitive motion/change (aller venir arriver partir
                        entrer sortir monter descendre naître mourir rester
                        tomber retourner passer devenir revenir rentrer) + ALL
                        pronominal verbs")
  (participle-agreement ((être subject)               ; elle est allée / elles venues
                         (avoir preceding-direct-object)))  ; je les ai vus
  (progressive         "être en train de + infinitif")  ; no dedicated aux
  (copula              "être (single; no ser/estar, no essere/stare)")
  (passive-aux         "être (+ par-agent)")
  (future              inflectional)         ; parlera, sera
  (comparative         "plus/moins ADJ que")
  (superlative         "le/la plus ADJ (de …)")   ; PARTIAL word-order in build

  ;; ── SACRED safety bar (shared with es/pt/it/en) ────────────────────────
  (negation-faithful   yes)    ; polarity never dropped/inverted; unplaceable -> FLAG
  (negation            "DISCONTINUOUS: ne (preverbal) … pas/jamais/rien/personne/
                        plus/guère/que (postverbal)")  ; << biggest structural delta
  (negation-ne-elides  yes)    ; ne -> n' before vowel (n'ai pas vu)
  (negation-passe-composé "ne + aux + pas + participe")  ; n'ai pas vu
  (negative-concord    partial))  ; personne/rien as arguments post-participle
