Magyar melléknévragozás fomával

A Programozás Wiki wikiből

Itt a főnévragozáshoz a fokozás jön hozzá. Fontos, hogy a leg/legesleg előtaggal ellátott szavakhoz kötelezően hozzá kell adni a bb fokozási ragot, azaz a legkedvesebb és a legeslegkedvesebb szó jó, de a legkedves vagy legeslegkedves szó nem. A fokozott vagy fokozatlan mellékneveket azután a főnevekkel azonos módon lehet végigragozni, lásd Magyar_főnévragozás_fomával.

A magyar melléknévragozás összefoglalva:

  • ((leg | legesleg)? (bb))? ((plu? | poss? | fam?) gen? case)

|tem|soc|dis|ess

ahol

NévMagyarázat
leg|legeslegesetleges felsőfok vagy túlzófok esetén a szó előtt levő toldalék
bba közép, felső vagy túlzófok ragja
pluplural (házak)
famfam rag (ék)
gengenitiv (é, éi)
caseragok (ba,be, ban,ben, tól, től, stb...)
tem|soc|dis|essragok, melyeket csak közvetlenül a főnévhez kapcsolódva használunk, pl. estül
?Azt jelenti, hogy a rag hozzáfűzése opcionális, azaz nem kötelező

Lexc fájl:[szerkesztés]

!enhuadj1.lexc
Multichar_Symbols @U.ART.PRESENT@ @U.ART.ABSENT@ +Adj en et ebb
LEXICON Root
   Article ;

LEXICON Article
leg@U.ART.PRESENT@       Stems ; ! optional article prefix
legesleg@U.ART.PRESENT@       Stems ; ! optional article prefix
                        Stems ; ! empty string entry

LEXICON Stems
kedves Case ;    ! one stem to represent tens of
                 ! thousands
! al only with these
LEXICON Case
ebb  IndefCase ;
@U.ART.ABSENT@ IndefCase ;

! these are without al
LEXICON IndefCase
+Adj:en  # ;
+Adj:et  # ;


!result
!legeslegkedvesebbet
!legeslegkedvesebben
!legkedvesebbet
!legkedvesebben
!kedvesebbet
!kedvesebben
!kedveset
!kedvesen

Foma fájl[szerkesztés]

#
# enhuadj2.foma
#
read lexc enhuadj1.lexc
define Lexicon

define Grammar   Lexicon;
           
 
regex Grammar;

Tesztelés:[szerkesztés]

foma -l enhuadj2.foma

foma[1]: lower-words
legeslegkedvesebb
legeslegkedvesebbet
legeslegkedvesebbtől
legeslegkedvesebbé
legeslegkedvesebbét
...
legeslegkedvesebbemet
legeslegkedvesebbemtől
legeslegkedvesebbemé
legeslegkedvesebbemét
legeslegkedvesebbemétől
legkedvesebb
legkedvesebbet
...
legkedvesebbemétől
kedves
kedveset
kedvestől
kedvesé
...
kedvesem
kedvesemet
kedvesemtől
kedvesemé
kedvesemét
kedvesemétől
kedvesebb
kedvesebbet
kedvesebbtől
...
kedvesebbemet
kedvesebbemtől
kedvesebbemé
kedvesebbemét
kedvesebbemétől
> Ctrl-d