Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

fst-compiler - Online w chmurze

Uruchom kompilator fst w darmowym dostawcy hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie fst-compiler, które można uruchomić w darmowym dostawcy hostingu OnWorks przy użyciu jednej z wielu naszych bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


fst-compiler, fst-compiler-utf8 - Dwa kompilatory programów SFST

STRESZCZENIE


kompilator-fst plik gramatyczny [ plik wyjściowy ]
fst-kompilator-utf8 plik gramatyczny [ plik wyjściowy ]

OPCJE


-c Przechowuj przetwornik w kompaktowym formacie, którego używa fst-infl2.

-l Przechowuj przetwornik w formacie lowmem.

-s Powierzchnia przełączania i warstwa analityczna przetwornika. Musisz użyć tego przełącznika w
aby użyć pierwszy napływ (fst-infl2, fst-infl3) do generowania, a nie do analizy.

OPIS


kompilator-fst jest kompilatorem programów dla przetworników skończonych. Generuje zminimalizowane
Przetwornik skończony, który może być używany z pierwszy dzień, Fst-infl, pierwszy druk, pierwsze porównanie,
parsowanie fst, i fst-krata. Kompaktowa reprezentacja przetwornika, która jest generowana za pomocą
flaga -c jest obsługiwana przez fst-infl2, Fst-pociąg, i pierwszy mecz. Wydajna pamięć
reprezentacja przetwornika, która jest generowana z flagą -l, jest obsługiwana tylko przez pierwszy-
wpływ3.

Pierwszym argumentem programu jest nazwa pliku zawierającego program przetwornika.
Język programowania jest opisany poniżej. Drugi argument to nazwa pliku
do którego wynikowy przetwornik zostanie zapisany w postaci binarnej. Jeśli drugim argumentem jest
brak, dane wyjściowe zostaną zapisane do wyjście.

fst-kompilator-utf8 różni się od kompilator-fst tylko w kodowaniu znaków. pierwszy-kompilator-
utf8 obsługuje kodowanie UTF8 plików źródłowych, podczas gdy kompilator-fst ma być używany do
8-bitowe kody znakowe, takie jak latin1, które są rozszerzeniem kodu ASCII. Informacja
informacje o kodowaniu są przechowywane w plikach przetwornika i wykorzystywane przez inne programy SFST.

FILE FORMATY


Program przetwornika składa się z (opcjonalnej) sekwencji alfabet i zmienna
definicje, po których następuje pojedyncza transduktor wyrażenie co definiuje wynik
transduktor.

Alfabet

Definicja alfabetu składa się ze słowa kluczowego ALFABET, po którym następuje = i jakiegoś przetwornika
wyrażenie np

ALFABET = [az]:[AZ]

To polecenie redefiniuje alfabet jako zestaw par symboli występujących na
przejścia przetwornika. Wystąpienia operatorów dwupoziomowych, operatorów negacji i
okresy niecytowane muszą być zawsze poprzedzone definicją alfabetu.

Zmienne

Istnieją dwa różne typy zmiennych. symbol zestaw zmienne są ujęte haszem
znaki (#) i przyjmuj sekwencje symboli (patrz poniżej) jako wartości:

#UC# = AZ
#LC# = az

Transduktor zmienne są otoczone znakami dolara i przyjmują wyrażenia przetwornika jako
wartości:

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

Zmienne, których nazwa zaczyna się od symbolu `=' są specjalne umowa zmienne. Jeżeli
zmienna zgodności występuje więcej niż raz w wyrażeniu przetwornika, zawsze będzie miała
tę samą wartość. Rozważ następujący program przetwornika:

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

Przetwornik wyniku rozpoznaje ciągi aXa, bXb i cXc. Tylko przetworniki acykliczne
(tj. przetworniki ze skończonym zestawem odwzorowań strun) mogą być przypisane do uzgodnienia
zmiennych.

Symbolika

Symbol to albo

- pojedynczy znak jak A s 5,

- cytowany znak, taki jak \* lub \_,

- symbol wieloznakowy, taki jak lub (co jest zawsze
ujęty w nawiasy kątowe) lub

- ukośnik odwrotny, po którym następuje liczba, która jest kodem numerycznym
wyznaczony znak

- symbol zerowy <>.

Sekwencja symboli

Sekwencja symboli to sekwencja znaków, wieloznakowe symbole i znak
zakresy, np. az \. .

zakres symboli

Zakres symboli to albo

- pojedynczy symbol

- sekwencja symboli ujęta w nawiasy kwadratowe, takie jak [A-Za-z] lub

- sekwencja symboli zaczynająca się od ^ i ujęta w nawiasy kwadratowe, takie jak [^A-Za-z]
(oznaczający dopełnienie [a-zA-Z]) lub

- kropka (która reprezentuje dowolny symbol z alfabetu)

Wyrażenia przetwornika

Ekspresja przetwornika (TE) jest rekurencyjnie definiowana w następujący sposób:

- Para dwóch zakresów symboli oddzielonych dwukropkiem to TE.

[az]:[aZ]

- Pojedynczy zakres symboli, taki jak [az], to TE.
Jest to krótka forma dla [az]:[az].

- Dwie sekwencje symboli ujęte w nawiasy klamrowe i oddzielone dwukropkiem to
jedli. {a[bc]}:{def} jest równoważne a:db:e <>:f | a:dc:e <>:f.

- XY jest TE, jeśli X i Y są TE.
(Puste są ignorowane, chyba że są cytowane).

- (X) jest TE, jeśli X jest TE.

- X op to TE to X to TE, a op to albo * (operator gwiazdy Kleene'a), +
(operator plusa Kleine) lub ? (operator opcjonalności)

-op X to TE to X to TE, a op to albo ! (operator negacji), ^
(operator ekstrakcji języka docelowego), _ (operator ekstrakcji języka źródłowego) lub ^_
(operator przełącznika źródłowego i docelowego).

- X op Y to TE to X i Y to TE, a op to albo & (spójnik
operator), | (operator alternatywy), || (operator kompozycji) lub - (odejmowanie
operator)

- L x op y R jest TE, jeśli L i R są TE, x i y są zakresami symboli i
op to albo => (ograniczenie dwupoziomowe), <= (przymus dwupoziomowy) albo <=> (ograniczenie dwupoziomowe
ograniczenia i przymusu).

- X op L__R jest TE, jeśli X, L i R są TE, a op to ^-> (w górę
zastąpienie), _-> (zastąpienie w dół), /-> (zastąpienie w lewo) lub \-> (w prawo
wymiana). Ponadto L i R muszą zdefiniować automaty (tj. które mapują ich ciągi)
na siebie). Operatory te odpowiadają operatorom zamiany Karttunena. Jeśli
po strzałce następuje znak zapytania (?), zamiana staje się opcjonalna.

- X << l jest TE jeśli X jest TE, a l jest jedną z postaci
a lub postać a:b, gdzie aib są pojedynczymi znakami lub symbolami. Wynik jest
przetwornik, w którym l zostało swobodnie wstawione do X. Na przykład przetwornik ab << c to
odpowiednik c*ac*bc*.

- X op Y L1__R2, ... , LN__RN jest TE jeśli X,Y, L1 do LN i R1
poprzez RN to TE, a op to albo => (ogólne ograniczenie), <= (ogólny przymus), ^=>
(ogólne ograniczenie powierzchni), ^<= (ogólna koercja powierzchniowa), ^<=> (ogólna powierzchnia
ograniczenie i przymus), _=> (ogólne ograniczenie głębokie), _<= (ogólny przymus głęboki),
_<=> (ogólne głębokie ograniczenie i przymus). (Te operatory zostały wdrożone po
sugestia Anssi Yli-Jyry.)

- "fname" to TE. Kompilator odczytuje plik o nazwie fname i obraca
do przetwornika postaci linia1|linia2|linia3|... gdzie liniax jest x-tym wierszem
plik. Wszystkie znaki inne niż : i \ są interpretowane dosłownie (tzn. nie jako
operatorów). Ten TE jest zwykle używany np. do odczytywania listy morfemów z pliku.

- " " to TE. Kompilator odczytuje wstępnie skompilowany przetwornik z
plik o nazwie fname. Ten

Dalsze funkcje

Komentarze zaczynają się od symbolu % i rozciągają się do końca wiersza. Puste miejsca są ignorowane
chyba że są cytowane. Wyrażenia kończą się na końcu wiersza, chyba że koniec wiersza
jest poprzedzony odwrotnym ukośnikiem. Komenda

#include "fname"

może być użyty do wstawienia kodu źródłowego z pliku o nazwie fname. Komenda

RE >> "fname"

przechowuje wyrażenie regularne RE w pliku fname. Komenda

#użyj hopcrofta

mówi kompilatorowi, aby od teraz używał algorytmu minimalizacji Hopcrofta, i

#Zastosowanie domyślne

przełącza z powrotem do domyślnego algorytmu minimalizacji (Brzozowski). Komenda

PRZYKŁAD


Oto przykład prostego programu przetwornika. Zakładając, że plik „adj-stems”
zawiera dwie linie

łatwo
późno
duży

ten przetwornik poprawnie przeanalizuje formy przymiotnikowe łatwe, łatwiejsze, najłatwiejsze i spóźnione,
później i najpóźniej.

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

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

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

$R$ = $R$ i $R2$

$Pnie$ = "przym-pnie"

$S$ = $Pędy$ ( :<>| :{er}| :{est})

$S$ || $R$

EXIT STATUS


kompilator-fst zwraca 0, chyba że wystąpi jakiś błąd.

Użyj fst-compiler online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    Phaser
    Phaser
    Phaser to szybka, darmowa i zabawna gra otwarta
    źródłowa struktura gry HTML5, która oferuje
    Renderowanie WebGL i Canvas w poprzek
    przeglądarek internetowych na komputery i urządzenia mobilne. Gry
    może być współ...
    Pobierz Phaser
  • 2
    Silnik WASAL
    Silnik WASAL
    VASSAL to silnik gry do tworzenia
    elektroniczne wersje tradycyjnej tablicy
    i gry karciane. Zapewnia wsparcie dla
    renderowanie elementów gry i interakcja,
    i ...
    Pobierz silnik VASSAL
  • 3
    OpenPDF — rozwidlenie iText
    OpenPDF — rozwidlenie iText
    OpenPDF to biblioteka Java do tworzenia
    i edycji plików PDF z LGPL i
    Licencja open source MPL. OpenPDF to
    LGPL/MPL open source następca iText,
    w ...
    Pobierz OpenPDF — rozwidlenie iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - System do Automatyzacji
    Analizy geologiczne - to geografia
    Oprogramowanie systemu informacyjnego (GIS) z
    ogromne możliwości geodanych
    przetwarzanie i an...
    Pobierz SAGA GIS
  • 5
    Przybornik dla Java/JTOOpen
    Przybornik dla Java/JTOOpen
    IBM Toolbox for Java / JTOpen to
    biblioteka klas Java obsługująca
    klient/serwer i programowanie internetowe
    modeli do systemu z systemem OS/400,
    i5/OS, lub...
    Pobierz Zestaw narzędzi dla języka Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (lub D3 dla dokumentów opartych na danych)
    to biblioteka JavaScript, która pozwala
    do tworzenia dynamicznych, interaktywnych danych
    wizualizacje w przeglądarkach internetowych. Z D3
    ty...
    Pobierz plik D3.js
  • więcej »

Komendy systemu Linux

Ad