LEXGROG(1)

NUME
lexgrog - parsează informații de antet în paginile manualului

REZUMAT
lexgrog [-m|-c] [-dfw?V] [-E encoding] file ...

DESCRIERE
lexgrog este o implementare a utilității tradiționale “groff în lex. Aceasta citește lista de fișiere din linia de comandă ori ca fișiere sursă a paginilor de manual ori ca pagini preformatate “cat”, și afișează numele și descrierea așa cum sunt utilizate de apropos și whatis, lista de filtre de preprocesare necesară de pagina de manual înainte să fie pasată la nroff sau troff, sau amândouă.

Dacă intrarea acesteia este formatată greșit, lexgrog va tipări “parse failed”; aceasta poate fi utilă pentru programe externe care au nevoie să verifice paginile de manual pentru corectitudine. Dacă unul dintre fișierele de intrare ale lexgrog este “-”, va citi de la intrarea standard; dacă orice fișier de intrare este comprimat, o versiune decomprimată va fi citită automat.

OPȚIUNI

-d, --debug
    Tipărește informațiile de depanare.

-m, --man
    Parsează intrarea ca fișiere sursă de pagini de manual. Acest lucru este implicit dacă niciuna dintre --man sau --cat nu sunt date.

-c, --cat
    Parsează intrarea ca pagini de manual preformatate (“cat pages”). --man și --cat pot să nu fie date simultan.

-w, --whatis
    Afișează numele și descrierea de la antetul de pagină de manual, așa cum este utilizat de apropos și whatis. Acest lucru este implicit dacă niciuna dintre --whatis sau --filters nu sunt date.

-f, --filters
    Afișează lista de filtre necesare pentru a preprocesa pagina manualului înainte de a formata cu nroff sau troff.

-E encoding, --encoding encoding
    Suprascrie setul de caractere ghicit pentru pagină la encoding.

-?, --help
    Tipărește un mesaj de ajutor și ieși.

--usage
    Tipărește un mesaj de utilizare scurt și ieși.

-V, --version
    Afișează informațiile de versiune.

STARE DE IEȘIRE

0   Executare a programului cu succes.

1   Eroare de utilizare.

2   lexgrog a eșuat în a parsa unul sau mai multe dintre fișierele de intrare.

EXEMPLE
  $ lexgrog man.1
  man.1: "man - o interfață la manualele de referință a sistemului"
  $ lexgrog -fw man.1
  man.1 (t): "man - o interfață la manualele de referință a sistemului"
  $ lexgrog -c whatis.cat1
  whatis.cat1: "whatis - afișează descrieri de pagină de manual"
  $ lexgrog defect.1
  broken.1: parsarea a eșuat

PARSARE WHATIS
mandb (care utilizează același cod ca lexgrog) parsează secțiunea NAME la începutul fiecărei pagini de manual căutând după nume și descrieri ale funcționalităților documentate în fiecare. În timp ce parsatorul este chiar tolerant, pentru că trebuie să se descurce cu un număr de forme diferite care au fost utilizate istoric, acesta poate câteodată să eșueze să extragă informațiile necesare.

Când se utilizează setul de macro tradițional man, o secțiune corectă NAME arată cam așa:

    .SH NAME
    foo \- programul pentru a face ceva

Unele pagere de manual necesită ‘\-’ să fie exact așa cum este arătat; mandb este mai tolerant, dar pentru compatibilitatea cu alte sisteme este totuși o idee bună să se rețină linia oblică inversă.

În partea din stânga, este posibil să fie mai multe nume, separate prin virgule. Numele care conțin spații albe vor fi ignorate pentru a evita comportamentul patologic la anumite secțiuni NAME malformate. Textul din partea dreaptă este în formă liberă, și poate fi extins peste linii multiple. Dacă mai multe funcționalități cu descrieri diferite sunt documentate în aceeași pagină de manual, următorul formular este, prin urmare, utilizat:

    .SH NAME
    foo, bar \- programe pentru a face ceva
    .br
    baz \- program pentru a nu face nimic

(Un macro care începe un paragraf nou, precum .PP, poate fi utilizat în locul macro-ului de întrerupere .br.)

Când se utilizează setul macro mdoc derivat BSD, o secțiune NAME corectă arată cam așa:

    .Sh NAME
    .Nm foo
    .Nd program pentru a face ceva
Există mai multe motive comune pentru care parsarea whatis eșuează. Câteodată autorii paginilor de manual înlocuiesc ‘.SH NAME’ cu ‘.SH MYPROGRAM’ și apoi mandb nu poate găsi secțiunea de la care să extragă informațiile de care are nevoie. Câteodată autorii includ o secțiune NUME, dar plasează text în formă liberă acolo în locul ‘name \- description’. Totuși, orice sintaxă care se aseamănă cu cea de deasupra ar trebui să fie acceptată.

VEDEȚI ȘI
apropos(1), man(1), whatis(1), mandb(8)

NOTE
lexgrog încearcă să parseze fișiere care conțin cereri .so, dar va putea să facă acest lucru corect doar dacă fișierele sunt instalate cum trebuie într-o ierarhie de pagină de manual.

AUTOR
Codul utilizat de lexgrog pentru a scana paginile de manual a fost scris de:

Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).

Colin Watson a scris încarnarea curentă a interfeței liniei de comandă, precum și această pagină de manual.

DEFECȚIUNI
https://savannah.nongnu.org/bugs/?group=man-db