GoGPT Best VPN GoSearch

Favicon OnWorks

otags - Online în cloud

Rulați otag-uri în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Acestea sunt etichetele de comandă care pot fi executate în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


otags - generează fișiere de etichete pentru emacs și vi/vim din sursele OCaml

REZUMAT


otag-uri [OPTIUNE STATICA] ... [FILE] ... [OPTIUNEA DINAMICA] ... [FILE] ...

DESCRIERE


otag-uri generează ETICHETE fișiere pentru emacs și tag-uri fișiere pentru vi/sevă pentru a le oferi acestor editori
capacitatea de a trece direct la definițiile de funcții și valori (utilizați M-. în Emacs şi ^] in
vi[m] cu cursorul pe simbol).

otag-uri utilizări camlp4 pentru analizare. Aceasta este mai precisă decât etichetarea bazată pe expresii regulate.
În partea inferioară, otag-uri poate eticheta numai fișiere corecte din punct de vedere sintactic. În plus, otag-uri is
OCAML specific versiunii: sursele cu care trebuie compilate OCAML versiune X Y poate, în general,
fi doar etichetat cu otag-uri versiune X Y.

otag-uri poate eticheta toate fișierele care camlp4 poate analiza. Intern otag-uri păstrează o curent analizor
listă care poate fi modificat cu opțiunile -buc (listă clară), -pa (adăugați la listă) și -relatii cu publicul
(resetare la valorile implicite). Valoarea implicită a curent analizor listă corespunde standardului
OCAML sintaxa (conținând analizatorii r și o, consultați EXTENSIILE STANDARD DE ANALIZARE CAMLP4
de mai jos). Fiecare fișier sursă este analizat cu a camlp4 parser în care toate extensiile de analiză
de la curent analizor listă au fost încărcate. The camlp4 parsoarele standard sunt conectate la
otag-uri și dacă curent analizor listă conține doar astfel de analizoare, atunci modulul de analizare este
construi pe interior. Altfel un extern camlp4 procesul este pornit.

otag-uri etichetează toate elementele de nivel superior din structuri și semnături, inclusiv operatorii infix și
module imbricate și semnături. De asemenea, etichetează variabilele de instanță și metodele din clase și
clase-tipuri. Nume de fișiere FILE pe linia de comandă sunt analizate ca interfețe dacă au un
.mli sufix și ca implementări dacă au a .ml sufix. (Vezi și dinamica
Opțiuni -intf și -impl.)

otag-uri poate eticheta toate fișierele dintr-un arbore de directoare (dacă opțiunea -r este dată). Fișierele care sunt
generat de ocamllex or ocamlyacc sau care necesită preprocesare cu camlp4 macro
parser-ul trebuie, totuși, să fie etichetat în același director în care au fost rulate aceste instrumente.
Acest lucru se datorează faptului că directivele de linie care ocamllex și ocamlyacc puse în fișierele generate
sunt relativ la directorul de lucru curent al procesului de generare. Pentru camlp4
macro parser an INCLUDE directiva poate fi rezolvată în raport cu funcționarea curentă
directorul de camlp4 proces. Prin urmare, dacă etichetați astfel de fișiere dintr-un alt
director veți primi un mesaj de eroare.

Când etichetați în mod recursiv arbori întregi de directoare, se pot specifica excepții de la
curent analizor listă într-un fișier de indicii de parser sau într-un arbore de directoare, consultați opțiunea -aluzii de analiză și
FIȘIERE DE SUGESTII DE ANALIZARE de mai jos.

Fișierele de etichete pot conține nume de fișiere absolute și/sau relative. Otag-uri folosește numele fișierelor din
linia de comandă pentru fișierul etichete. Specificarea numelor de fișiere relative pe linia de comandă
prin urmare, vă va oferi un fișier etichetă cu nume de fișiere relative. Evident, un fișier etichetă cu
nume de fișiere relative vor funcționa numai dacă se află în directorul în care otag-uri a fost
a început. Otag-uri acceptă scrierea unui fișier de etichete cu nume de fișiere relative într-un părinte
director prin opțiune -add-path, vezi EXEMPLE de mai jos.

STATIC OPŢIUNI


Opțiunile statice au efect pe întreaga rulare a programului, indiferent de poziția lor în
Linie de comanda.

-r Coborâți în directoare. Cu această opțiune, dacă unul dintre FILE argumente este a
director otag-uri va eticheta recursiv toate fișierele din acest întreg arbore de directoare.

-o fișier
Scrieți etichete la fişier. Implicit este ETICHETE (Pentru emacs) Şi tag-uri pentru vi (în cazul în care -vi
este dată opțiunea) în directorul curent. Dacă fişier este o liniuță ( - ) etichetele sunt
scris la ieșire standard.

-a Adăugați la un fișier TAGS existent (funcționează numai pentru fișierele emacs TAGS).

-vi Generați etichete pentru vi și schimbați fișierul de ieșire implicit în tag-uri.

-I dir Adăugați directorul director la camlp4 Căutare cale pentru fișiere obiect pentru extern camlp4
parsarea apelurilor.

-add-path cale
Adăuga cale în fața fiecărui nume de fișier relativ din fișierul de etichete. Util când
doriți să puneți fișierul etichete într-un director părinte.

-fișierul parser-hints
Aplicați indicațiile de analiză în fișierul specificat sau arborele de director. Oricând otag-uri tag-uri
un fișier care apare într-un fișier de indicii pentru analizator, folosește analizatorii specificati acolo
în loc de curent analizor listă, consultați mai jos FIȘIERE DE SUGESTII DE ANALIZARE. Această opțiune poate
să fie dat de mai multe ori pentru a procesa mai multe fișiere de indicii. Dacă fişier atunci este un director
toate fișierele din arborele respectiv sunt procesate ca fișiere de indicii pentru parser.

-versiune
Versiunea tipărită și ieșire.

-v Verbos. Imprimați numele fișierelor pe măsură ce sunt analizate și liniile de comandă pentru exterior
început camlp4 procese de analiză (dacă există). Dacă -v este primul argument din linia de comandă
urmele înapoi pentru excepții sunt activate și tipărite dacă o excepție scapă și
se termină otag-uri (care este considerată o eroare despre care aș aprecia o eroare
raport).

-q Taci.

-help Tipăriți lista de opțiuni.

--help Alias ​​pentru -Ajutor

DINAMIC OPŢIUNI


Opțiunile dinamice afectează doar argumentele care le urmează pe linia de comandă.

-intf FILE
Analizați și etichetați FILE ca interfață.

-impl FILE
Analizați și etichetați FILE ca implementare.

-pc Ștergeți curent analizor listă.

-pa parser
Adăuga analizor la curent analizor listă. Dacă analizor nu este unul dintre standarde
analizatoare care sunt distribuite cu camlp4 apoi sunt analizate următoarele fișiere
distinct camlp4 proces(e). analizor trebuie acceptat de camlp4 -analizator, Adică,
trebuie să fie un nume de parser standard camlp4 sau un fișier bytecode (.cmo) sau bibliotecă
(.cma).

-pr Resetați curent analizor listă la valoarea sa implicită (parse standard OCAML fără
extensii).

-pp Imprimați curent analizor listă.

-extern
Forţarea otag-uri pentru a analiza toate fișierele următoare cu un extern camlp4 proces.

-intern
Reveniți la analizarea internă (implicit).

ANALIZARE SUGESTII DOSARE


Fișierele cu sugestii de analiză sunt fișiere text simple care specifică parsere pentru anumite fișiere. Aceasta este
util atunci când etichetați recursiv cu opțiunea -r. Iată un exemplu pentru unele fișiere de la
il OCAML distribuție:

oq:
camlp4/examples/parse_files.ml
sau rq g:
camlp4/examples/macro.ml
camlp4/examples/arith.ml
depanare rf:
camlp4/Camlp4Bin.ml
camlp4/mkcamlp4.ml
camlp4/camlp4prof.ml
camlp4/camlp4prof.mli

Formatul fișierelor indicii de analiză este următorul. Linii goale și linii care încep cu ``#''
sunt ignorate. Un fișier de indicii de parser constă dintr-un număr arbitrar de secțiuni. Fiecare secțiune
începe cu o linie terminată cu două puncte care specifică analizatorul de utilizat cu un spațiu
listă separată de nume de analizator (cum ar fi cele acceptate de opțiune -pa). Restul
secțiunea conține nume de fișiere, câte unul pe linie. Spațiile albe de început și de sfârșit sunt ignorate.

EXEMPLE


Etichetă unele fișiere in il original și unele in il revăzut sintaxă:

otag-uri original.ml -buc -pa r revizuit.ml -relatii cu publicul original.ml

-buc este necesar pentru că, pentru camlp4, originalul OCAML sintaxa este o extensie a
sintaxă revizuită. Prin urmare, implicit curent analizor listă conține analizatorul r deja
și adăugând r nu ar schimba curent analizor listă.

Etichetă fișiere implementate cu citate (sintaxa gazdă inițială și sintaxa ghilimelei revizuită):

otag-uri -pa rq cotaţie.ml

Etichetă fișiere acea utilizare il sexplib extensie:

otag-uri -I /usr/lib/ocaml/type-conv -I /usr/lib/ocaml/sexplib -pa pa_type_conv.cmo
-pa pa_sexp_conv.cmo use_sexp.ml

-I opțiunile specifică directoarele în care pa_type_conv.cmo și pa_sexp_conv.cmo sunt
situat pe sistem.

Etichetă fișiere in a subdirector păstrare il tag-uri fişier in mamă director

cd subdir; otag-uri -o ../ETICHETE -add-path subdir ...

Această procedură complicată este necesară numai dacă există fișiere în interior subdir cu linie
directive care conțin nume de fișiere relative (de exemplu, generate de ocamllex or
ocamlyacc alergând înăuntru subdir) și când există alte subdirectoare al căror material
ar trebui adăugat la ../ETICHETE. Dacă nu există fișiere cu directive de linie relativă, se poate
pur și simplu folosește „otag-uri -r" în directorul care conține subdir. Dacă nu există altele
subdirectoare în care s-ar putea pune fișierul tag-uri subdir fără a utiliza -o sau -add-path.

STANDARD CAMLP4 ANALIZARE PRELUNGIRI


În prezent, nu există documentație privind numele și pseudonimele care se referă la standard camlp4
module de parsare. De asemenea, dependențele dintre aceste module sunt în mare parte nedocumentate. The
singura sursă de informații este fișierul camlp4/Camlp4Bin.ml în OCAML distribuție.

Următoarea listă descrie identificatorii care camlp4 -analizator tratează în mod specific. Acest
este deci lista standardului camlp4 analizoare. Pentru acești identificatori nu este cazul
semnificative (sunt introduse prin conducte String.minuscule înainte de potrivire). Dependentele
enumerate aici sunt tratate automat de către camlp4 și otag-uri.

r, ocamlr, ocamlrevised, pa_r.cmo, camlp4ocamlrevisedparser.cmo
Sintaxa revizuită fără analizoare de flux.

rr, reloaded, ocamlreloaded, camlp4ocamlreloadedparser.cmo
Varianta sintaxei revizuite (utilizare necunoscută).

o, ocaml, pa_o.cmo, camlp4ocamlparser.cmo
Sintaxă originală fără analizoare de flux. Depinde de parser r.

rp, rparser, pa_rp.cmo, camlp4ocamlrevisedparserparser.cmo
Sintaxă revizuită cu analizoare de flux. (Consultați eroarea #5134 pentru OCaml 3.12.0 și versiuni anterioare.)
Depinde de parser r.

op, analizor, pa_op.cmo, camlp4ocamlparserparser.cmo
Sintaxă originală cu analizoare de flux. Depinde de parser r, o, rp

g, gramatică, pa_extend.cmo, pa_extend_m.cmo, camlp4grammarparser.cmo
Extensii de gramatică.

m, macro, pa_macro.cmo, camlp4macroparser.cmo
Macro-uri și condiționale.

q, camlp4quotationexpander.cmo
Citate reflectorizante. Această extensie de analiză preia sintaxa gazdă curentă și
adaugă extensii de ghilimele folosind acea sintaxă curentă, astfel încât gramatica rezultată
este reflectorizant: modificarea sintaxei gazdei ulterior afectează, de asemenea, citatul
sintaxă. Depinde de modul Camlp4QuotationCommon (infrastructură comună de cotație).

rq, q_mlast.cmo, camlp4ocamlrevisedquotationexpander.cmo
Citate revizuite. Adaugă ghilimele în sintaxa revizuită. Gazdă și cotație
analiza rămâne independentă. Depinde de modul Camlp4QuotationCommon (uzual
infrastructura de cotare).

oq, camlp4ocamloriginalquotationexpander.cmo
OCaml original cu citate originale. Încarcă OCaml original (fără flux
parseri) ca sintaxă gazdă și ca sintaxă citate. Sintaxa gazdă și ghilimeleu sunt
independent (nu reflectorizant). Depinde de parser ocamlr, ocaml și modul
Camlp4QuotationCommon

rf Revizuit integral. Configurați sintaxa revizuită cu analizoare de flux, extensii gramaticale, listă
înțelegeri și macrocomenzi și adaugă citate reflectorizante. Depinde de
parsoare/module r, rp, Camlp4QuotationCommon, q, g, comp, m.

of Original plin. Configurați OCaml original cu analizoare de flux, extensii gramaticale, listă
înțelegeri și macrocomenzi și adaugă citate reflectorizante (adică, citatele sunt în
sintaxa originală). (Consultați eroarea #5129 pentru OCaml 3.12.0 și versiuni anterioare.) Depinde de
parsoare/module r, o, rp, op, Camlp4QuotationCommon, q, g, comp și m.

comp, camlp4listcomprehension.cmo
Enumeră înțelegerile.

depana, camlp4debugparser, camlp4debugparser.cmo
Declarații de depanare depana și camlp4_debug. Extinderea acestor afirmații
depinde de valoarea variabilei de mediu STATIC_CAMLP4_DEBUG astfel încât și
intrările etichetelor produse pot depinde de această variabilă.

DIAGNOSTIC


Erorile de analizare sunt raportate cu normal camlp4 mesaje de eroare. Nu sunt generate etichete pentru
fișiere care produc erori. Etichetarea continuă cu următorul fișier, în acest caz.

Eroarea „Sursa originală nu este disponibilă” este raportată dacă fișierul la care o linie
referirile la directive nu pot fi găsite. Acest lucru se poate întâmpla dacă otag-uri este început într-un alt mod
director decât programul care a generat fișierul cu erori.

Otag-uri există cu „Lista de analizare goală pentru...” atunci când încercați să procesați un fișier cu un
gol curent analizor listă. Acest lucru se întâmplă când nu -pa urmează opțiunea -buc.

Otag-uri afișează „Directiva Toplevel găsită în... Omite fișierul”. pentru fișierele care conțin nivel superior
directive. Problema este că informațiile despre locație din arborele de sintaxă abstractă sunt
incorectă după directivele de nivel superior, vezi bug-ul #5127.

Scăparea de excepții și afirmații care se încheie otag-uri sunt considerate bug-uri. Dacă ei
apar, vă rugăm să utilizați opțiunea -v as primul comutați în linia de comandă pentru a obține o urmărire inversă a excepției
și trimiteți aceasta cu toate informațiile relevante ca raport de eroare.

EXIT STAREA


0 totul a mers OK

1 a apărut o eroare de analiză sau o altă eroare și otag-uri a omis fișierul afectat

2 a fost cauzată o eroare fatală otag-uri a abandona

3 unele erori au provocat un accident, din care otag-uri s-a putut recupera doar marginal

CUNOSCUT PROBLEME


camlp4 și OCAML analizatorii diferă întotdeauna în moduri subtile. Făcând camlp4 independent de
OCAML a agravat problema. camlp4 versiunea 4.02.3 acceptă doar foarte puține atribute. Aceasta
nu acceptă atribute blocate sau independente (cele cu [@@ și [@@@) sau noduri de extensie (
[% or [%%). Otag-uri prin urmare eșuează pe multe eșuează din OCAML bibliotecă standard.

LIPSĂ CARACTERISTICI


Adăugarea la fișierele etichete vi necesită recitirea fișierului etichete existente, deoarece etichetele vi
fișierele sunt sortate.

Incompatibil camlp4 arbori de sintaxă (din extern camlp4 procese de analiză) sunt detectate
cu numere magice. Cu toate acestea, un incompatibil camlp4 va muri probabil când va încerca să se încarce
il otag-uri specific camlp4 imprimanta. Astfel de erori fatale ale încărcării dinamice sunt tratate ca
erori de analiză, deoarece camlp4 produce aceeași stare de ieșire în ambele cazuri.

CREDITE


Cuihtlauac Alvarado și Jean-Francois Monin au fost primii care au exploatat-o camlp4 pentru etichetare
OCAML fișiere. Această versiune este o rescrie completă, bazată pe noua versiune camlp4 din OCAML
versiunea 3.10 și versiunile ulterioare.

Utilizați otag-uri online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad




×
publicitate
❤️Cumpără, rezervă sau cumpără aici — gratuit, contribuind la menținerea serviciilor gratuite.