Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

fst-compiler-utf8 — online w chmurze

Uruchom fst-compiler-utf8 u dostawcy bezpłatnego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie fst-compiler-utf8, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu darmowych 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-utf8 online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    HAUST
    HAUST
    SWIG to narzędzie do tworzenia oprogramowania
    która łączy programy napisane w C i
    C++ z różnymi wysokopoziomowymi
    języki programowania. SWIG jest używany z
    różne...
    Pobierz SWIG
  • 2
    Motyw WooCommerce Nextjs React
    Motyw WooCommerce Nextjs React
    Motyw React WooCommerce, zbudowany z
    Następny JS, Webpack, Babel, Node i
    Express, używając GraphQL i Apollo
    Klient. Sklep WooCommerce w React(
    zawiera: Produkty...
    Pobierz motyw WooCommerce Nextjs React
  • 3
    archlabs_repo
    archlabs_repo
    Repozytorium pakietów dla ArchLabs To jest plik
    aplikacja, którą można również pobrać
    od
    https://sourceforge.net/projects/archlabs-repo/.
    Został on hostowany w OnWorks w...
    Pobierz archlabs_repo
  • 4
    Projekt Zefir
    Projekt Zefir
    Projekt Zephyr to nowa generacja
    system operacyjny czasu rzeczywistego (RTOS).
    obsługuje wiele urządzeń
    architektury. Opiera się na A
    małe jądro...
    Pobierz projekt Zephyr
  • 5
    Scons
    Scons
    SCons to narzędzie do tworzenia oprogramowania
    jest lepszą alternatywą dla
    klasyczne narzędzie do budowania „Make”.
    wszyscy znamy i kochamy. SCons jest
    wdrożył...
    Pobierz SCons
  • 6
    PSeInt
    PSeInt
    PSeInt to interpreter pseudokodu dla
    hiszpańskojęzyczni studenci programowania.
    Jego głównym celem jest bycie narzędziem do
    nauka i zrozumienie podstaw
    koncepcja...
    Pobierz PSeInt
  • więcej »

Komendy systemu Linux

Ad