EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

fst-compiler-utf8 - Online în cloud

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

Aceasta este comanda fst-compiler-utf8 care poate fi rulată î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


fst-compiler, fst-compiler-utf8 - Două compilatoare pentru programe SFST

REZUMAT


fst-compilator dosar-gramatica [ fisier de iesire ]
fst-compiler-utf8 dosar-gramatica [ fisier de iesire ]

OPŢIUNI


-c Păstrați traductorul în format compact, care este utilizat de fst-infl2.

-l Păstrați traductorul în format lowmem.

-s Suprafața comutatorului și stratul de analiză al traductorului. Trebuie să utilizați acest comutator
pentru a utiliza fst-infl (fst-infl2, fst-infl3) pentru generare mai degrabă decât pentru analiză.

DESCRIERE


fst-compilator este un compilator pentru programe cu traductoare cu stări finite. Acesta generează un minimizat
traductor cu stare finită care poate fi utilizat cu fst-mor, fst-infl, fst-print, fst-compare,
fst-parse, și fst-latice. Reprezentarea traductorului compact care este generată cu
steag-ul -c, este susținut de fst-infl2, fst-tren, și primul meci. Eficient de memorie
Reprezentarea traductorului care este generată cu indicatorul -l este suportată doar de fst-
infl3.

Primul argument al programului este numele unui fișier care conține programul traductorului.
Limbajul de programare este descris mai jos. Al doilea argument este numele fișierului
la care se va scrie traductorul rezultat în formă binară. Dacă un al doilea argument este
lipsește, rezultatul va fi scris în stdout.

fst-compiler-utf8 difera de fst-compilator numai în codificarea caracterelor. fst-compiler-
utf8 acceptă codificarea UTF8 a fișierelor sursă, în timp ce fst-compilator este de folosit pentru
Codurile de caractere de 8 biți, cum ar fi latin1, care sunt o extensie a codului ASCII. informație
despre codificare este stocat în fișierele traductorului și utilizat de celelalte programe SFST.

FILE FORMATE


Un program traductor constă dintr-o secvență (opțională) de alfabet și variabil
definiții urmate de un singur traductor expresie care definește rezultatul
traductor.

Alfabet

O definiție alfabetică constă din cuvântul cheie ALFABET urmat de = și un traductor
expresie de ex

ALFABET = [az]:[AZ]

Această comandă redefinește alfabetul ca setul de perechi de simboluri care apar pe
tranziții ale traductorului. Aparițiile operatorilor cu două niveluri, operatorilor de negație și
punctele necotate trebuie să fie întotdeauna precedate de o definiție alfabetică.

Variabile

Există două tipuri diferite de variabile. Simbol set variabile sunt închise de hash
semnele (#) și iau secvențe de simboluri (vezi mai jos) ca valori:

#UC# = AZ
#LC# = az

Traductor variabile sunt închise de semne dolar și iau expresii traductoare ca
valori:

$MAP$ = [az]:[AZ]+
$MAP$ = [#LC#]:[#UC#]+

Variabilele al căror nume începe cu simbolul „=” sunt speciale acord variabile. Daca un
variabila acord apare de mai multe ori într-o expresie traductor, va avea întotdeauna
aceeași valoare. Luați în considerare următorul program de traductor:

$=1$ = [abc]
$=1$ X $=1$

Traductorul de rezultat recunoaște șirurile aXa, bXb și cXc. Doar traductoare aciclice
(adică traductoare cu un set finit de mapări șiruri) pot fi atribuite acordului
variabile.

Simboluri

Un simbol este fie

- un singur caracter ca A s 5,

- un caracter citat ca \* sau \_,

- un simbol cu ​​mai multe caractere ca sau (ceea ce este întotdeauna
cuprinse între paranteze unghiulare) sau

- o bară oblică inversă urmată de un număr care este codul numeric al
personaj desemnat

- simbolul nul <>.

Secvență de simboluri

O secvență de simboluri este o secvență de caractere, simboluri cu mai multe caractere și caractere
intervale, de exemplu az \. .

interval de simboluri

Un interval de simboluri este fie

- un singur simbol

- o secvență de simboluri cuprinse între paranteze drepte, cum ar fi [A-Za-z] sau

- o secvență de simboluri care începe cu ^ și sunt cuprinse între paranteze drepte ca [^A-Za-z]
(desemnând complementul lui [a-zA-Z]) sau

- perioada (care reprezintă orice simbol din alfabet)

Expresii traductoare

O expresie a traductorului (TE) este definită recursiv după cum urmează:

- O pereche de două intervale de simboluri separate prin două puncte este un TE.

[az]:[aZ]

- Un singur interval de simbol precum [az] este un TE.
Este o formă scurtă pentru [az]:[az].

- Două secvențe de simboluri cuprinse între acolade și separate prin două puncte sunt
a mancat. {a[bc]}:{def} este echivalent cu a:db:e <>:f | a:dc:e <>:f.

- XY este un TE dacă X și Y sunt TE.
(Ofertele libere sunt ignorate dacă nu sunt citate.)

- (X) este un TE dacă X este un TE.

- X op este un TE este X este un TE și op este fie * (operatorul stea al lui Kleene), +
(operatorul plus al lui Kleene) sau ? (operator de opționalitate)

- op X este un TE este X este un TE și op este fie ! (operator de negație), ^
(operator de extragere a limbii țintă), _ (operator de extracție a limbii sursă) sau ^_
(operator comutator sursă și țintă).

- X op Y este un TE este X și Y sunt TE și op este fie & (conjuncție
operator), | (operator de disjuncție), || (operator de compoziție) sau - (scădere
operator)

- L x op y R este un TE dacă L și R sunt TE, x și y sunt intervale de simbol și
op este fie => (restricție pe două niveluri), <= (coerciție pe două niveluri), fie <=> (două niveluri
restricție și constrângere).

- X op L__R este un TE dacă X, L și R sunt TE și op este fie ^-> (în sus
înlocuire), _-> (înlocuire în jos), /-> (înlocuire spre stânga) sau \-> (înlocuire spre dreapta
înlocuire). În plus, L și R trebuie să definească automate (adică care mapează șirurile lor
asupra lor înșiși). Acești operatori corespund operatorilor de înlocuire ai Karttunen. Dacă
săgeata este urmată de un semn de întrebare (?), înlocuirea devine opțională.

- X << l este un TE dacă X este un TE și l are oricare dintre forme
a sau forma a:b unde a și b sunt caractere sau simboluri simple. Rezultatul este a
traductor unde l a fost introdus liber în X. Traductorul ab << c de exemplu este
echivalent cu c*ac*bc*.

- X op Y L1__R2, ... , LN__RN este un TE dacă X,Y, L1 prin LN și R1
prin RN sunt TE, iar op este fie => (restricție generală), <= (coerciție generală), ^=>
(restricție generală a suprafeței), ^<= (constrângere generală a suprafeței), ^<=> (suprafață generală
restricție și constrângere), _=> (restricție profundă generală), _<= (constrângere profundă generală),
_<=> (restricție profundă și constrângere generală). (Acești operatori au fost implementați în continuare
o sugestie a lui Anssi Yli-Jyra.)

- „fname” este un TE. Compilatorul citește fișierul numit fname și se întoarce
într-un traductor de forma line1|line2|line3|... unde linex este a x-a linie a
fișierul. Toate caracterele, altele decât : și \ sunt interpretate literal (adică nu ca
operatori). Acest TE este de obicei folosit, de exemplu, pentru a citi lista de morfeme dintr-un fișier.

-" " este un TE. Compilatorul citește un traductor pre-compilat din
fișierul numit fname. Acest

Alte caracteristici

Comentariile încep cu simbolul % și se extind până la sfârșitul rândului. Spațiile libere sunt ignorate
dacă nu sunt citate. Expresiile se termină la sfârșitul unei linii, cu excepția cazului în care sfârșitul rândului
este precedat de o bară oblică inversă. Comanda

#include „fname”

poate fi folosit pentru a introduce codul sursă dintr-un fișier numit fname. Comanda

RE >> „fname”

stochează expresia regulată RE în fișierul fname. Comanda

#utilizați hopcroft

spune compilatorului să folosească algoritmul de minimizare Hopcroft de acum înainte și

#utilizare implicit

comută înapoi la algoritmul implicit de minimizare (Brzozowski). Comanda

EXEMPLU


Iată un exemplu de program de traductor simplu. Presupunând că fișierul „adj-stems”
conţine cele două rânduri

uşor
întârziat
mare

acest traductor va analiza corect formele adjectivale ușor, mai ușor, cel mai ușor și mai târziu,
mai târziu, și mai târziu.

ALFABET = [a-zA-Z] y:ie:<> :<>

$R$ = y<=>i ( :<> e)

$R2$ = e<=><> ( :<> e)

$R$ = $R$ și $R2$

$Stems$ = „tulpini adj”

$S$ = $Tulpini$ ( :<>| :{er}| :{Est})

$S$ || $R$

EXIT STAREA


fst-compilator returnează 0 dacă nu apare o eroare.

Utilizați fst-compiler-utf8 online folosind serviciile onworks.net


Servere și stații de lucru gratuite

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

  • 1
    ÎNGHIŢITURĂ
    ÎNGHIŢITURĂ
    SWIG este un instrument de dezvoltare software
    care conectează programele scrise în C și
    C++ cu o varietate de nivel înalt
    limbaje de programare. SWIG este folosit cu
    diferit...
    Descărcați SWIG
  • 2
    Tema WooCommerce Nextjs React
    Tema WooCommerce Nextjs React
    Tema React WooCommerce, construită cu
    Urmează JS, Webpack, Babel, Node și
    Express, folosind GraphQL și Apollo
    Client. Magazin WooCommerce în React(
    contine: Produse...
    Descărcați tema WooCommerce Nextjs React
  • 3
    archlabs_repo
    archlabs_repo
    Pachetul depozit pentru ArchLabs Acesta este un
    aplicație care poate fi, de asemenea, preluată
    din
    https://sourceforge.net/projects/archlabs-repo/.
    A fost găzduit în OnWorks în...
    Descărcați archlabs_repo
  • 4
    Proiectul Zephyr
    Proiectul Zephyr
    Proiectul Zephyr este o nouă generație
    sistem de operare în timp real (RTOS) care
    suportă mai multe hardware-uri
    arhitecturi. Se bazează pe a
    nucleu cu amprentă mică...
    Descărcați Zephyr Project
  • 5
    SCcons
    SCcons
    SCons este un instrument de construcție software
    aceasta este o alternativă superioară
    instrument clasic de construcție „Make” care
    cu toții cunoaștem și iubim. SCons este
    implementat un...
    Descărcați SCons
  • 6
    PSeInt
    PSeInt
    PSeInt este un interpret de pseudo-cod pentru
    studenți de programare vorbitori de spaniolă.
    Scopul său principal este de a fi un instrument pentru
    învăţarea şi înţelegerea elementelor de bază
    concept...
    Descărcați PSeInt
  • Mai mult »

Comenzi Linux

  • 1
    7z
    7z
    7z - Un arhivator de fișiere cu cea mai mare
    rata compresiei ...
    Rulați 7z
  • 2
    7za
    7za
    7za - Un arhivator de fișiere cu cea mai mare
    rata compresiei ...
    Run 7za
  • 3
    înfiorător
    înfiorător
    CREEPY - O informație de geolocalizare
    agregator DESCRIERE: înfiorător este un
    aplicație care vă permite să adunați
    informații legate de geolocalizare despre
    utilizatori din...
    Fugi înfiorător
  • 4
    cricket-compilare
    cricket-compilare
    cricket - Un program pentru gestionarea
    colectarea și afișarea seriilor temporale
    date ...
    Rulați cricket-compile
  • 5
    g-wrap-config
    g-wrap-config
    g-wrap-config - script pentru a obține
    informații despre versiunea instalată
    de G-Wrap...
    Rulați g-wrap-config
  • 6
    g.iarbă de acces
    g.iarbă de acces
    g.access - Controlează accesul la
    setul de hărți curent pentru alți utilizatori de pe
    sistem. Dacă nu este oferită nicio opțiune, se imprimă
    Statusul curent. CUVINTE CHEIE: general, hartă
    management, p...
    Rulați g.accessgrass
  • Mai mult »

Ad