İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

fst-compiler - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında fst-compiler çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen fst-compiler komutudur.

Program:

ADI


fst-compiler, fst-compiler-utf8 - SFST programları için iki derleyici

SİNOPSİS


fst-derleyici dilbilgisi dosyası [ çıktı dosyası ]
fst-derleyici-utf8 dilbilgisi dosyası [ çıktı dosyası ]

SEÇENEKLER


-c Dönüştürücüyü fst-infl2 tarafından kullanılan kompakt biçimde saklayın.

-l Dönüştürücüyü lowmem formatında saklayın.

-s Dönüştürücünün yüzeyini ve analiz katmanını değiştirin. Bu anahtarı kullanmalısın
kullanmak için sipariş hızlı enflasyon (fst-infl2, fst-infl3) analizden ziyade üretim için.

TANIM


fst-derleyici sonlu durum dönüştürücü programları için bir derleyicidir. En aza indirilmiş üretir
ile kullanılabilen sonlu durum dönüştürücü sabah, fst-infl, ilk baskı, fst-karşılaştırma,
fst ayrıştırma, ve fst-kafes. ile oluşturulan kompakt dönüştürücü gösterimi
-c bayrağı tarafından desteklenir fst-infl2, ilk tren, ve fst-maç. bellek açısından verimli
-l bayrağıyla oluşturulan dönüştürücü gösterimi yalnızca aşağıdakiler tarafından desteklenir: ilk
enfl3.

İlk program argümanı, dönüştürücü programını içeren bir dosyanın adıdır.
Programlama dili aşağıda açıklanmıştır. İkinci argüman dosyanın adıdır.
elde edilen dönüştürücünün ikili biçimde yazılacağı. İkinci bir argüman ise
eksik, çıktı yazılacak standart.

fst-derleyici-utf8 -den farklı fst-derleyici sadece karakter kodlamasında. fst-derleyici-
utf8 kaynak dosyaların UTF8 kodlamasını desteklerken fst-derleyici için kullanılacak
ASCII kodunun bir uzantısı olan latin8 gibi 1 bitlik karakter kodları. Bilgi
kodlama hakkında, dönüştürücü dosyalarında saklanır ve diğer SFST programları tarafından kullanılır.

DOSYA BİÇİMLER


Bir dönüştürücü programı (isteğe bağlı) bir diziden oluşur: alfabe ve değişken
tanımların ardından tek bir güç çevirici ifade sonucu tanımlayan
dönüştürücü.

Alfabe

Alfabe tanımı, ALPHABET anahtar kelimesinden sonra = ve bazı dönüştürücülerden oluşur.
ifade örn.

ALFABE = [az]:[AZ]

Bu komut, alfabeyi, ekranda meydana gelen sembol çiftleri kümesi olarak yeniden tanımlar.
dönüştürücü geçişleri İki seviyeli operatörlerin, olumsuzlama operatörlerinin ve
tırnak içine alınmamış dönemler her zaman bir alfabe tanımından önce gelmelidir.

Değişkenler

İki farklı değişken türü vardır. sembol set değişkenler karma ile çevrilidir
(#) işaretlerini alın ve sembol dizilerini (aşağıya bakın) değerler olarak alın:

#UC# = AZ
#LC# = az

Güç çevirici değişkenler dolar işaretleri ile çevrilidir ve dönüştürücü ifadelerini şu şekilde alır:
değerler:

$HARİTA$ = [az]:[AZ]+
$HARİTA$ = [#LC#]:[#UC#]+

İsmi `=' sembolü ile başlayan değişkenler özeldir. anlaşma değişkenler. eğer bir
uyum değişkeni bir dönüştürücü ifadesinde birden fazla kez ortaya çıkarsa, her zaman
aynı değer. Aşağıdaki dönüştürücü programını göz önünde bulundurun:

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

Sonuç dönüştürücü aXa, bXb ve cXc dizilerini tanır. Sadece asiklik dönüştürücüler
(yani, sonlu dizi eşlemelerine sahip dönüştürücüler) anlaşmaya atanabilir
değişkenler.

Semboller

Bir sembol ya

- A s 5 gibi tek bir karakter,

- \* veya \_ gibi alıntılanan bir karakter,

- gibi çok karakterli bir sembol veya (ki her zaman
köşeli parantez içinde) veya

- ters eğik çizgi ve ardından sayının sayısal kodu olan bir sayı
belirlenmiş karakter

- boş sembol <>.

Sembol dizisi

Bir sembol dizisi, bir karakter dizisi, çok karakterli semboller ve karakter dizisidir.
aralıklar, örneğin az \. .

sembol aralığı

Bir sembol aralığı ya

- tek bir sembol

- [A-Za-z] gibi köşeli parantezler içine alınmış bir sembol dizisi veya

- ^ ile başlayan ve [^A-Za-z] gibi köşeli parantezler içine alınmış bir sembol dizisi
([a-zA-Z]'nin tümleyenini belirterek) veya

- nokta (alfabeden herhangi bir sembolü temsil eder)

Dönüştürücü ifadeleri

Dönüştürücü ifadesi (TE), aşağıdaki gibi özyinelemeli olarak tanımlanır:

- İki nokta üst üste ile ayrılmış iki sembol aralığı TE'dir.

[az]:[aZ]

- [az] gibi tek bir sembol aralığı bir TE'dir.
[az]:[az] için kısa bir formdur.

- Parantez içine alınmış ve iki nokta üst üste ile ayrılmış iki sembol dizisi
NS. {a[bc]}:{def}, a:db:e <>:f | a:dc:e <>:f.

- X ve Y TE ise XY bir TE'dir.
(Alıntı yapılmadıkça boşluklar dikkate alınmaz.)

- (X), X bir TE ise bir TE'dir.

- X op bir TE'dir X bir TE'dir ve op ya * (Kleene'nin yıldız operatörü), +
(Kleene'nin artı operatörü) veya ? (opsiyonellik operatörü)

- op X bir TE'dir, X bir TE'dir ve op ya da ! (olumsuzlama operatörü), ^
(hedef dil çıkarma operatörü), _ (kaynak dil çıkarma operatörü) veya ^_
(kaynak ve hedef anahtar operatörü).

- X op Y bir TE'dir X ve Y TE'dir ve op ya & (bağlaç)
operatör), | (ayrılma operatörü), || (bileşim operatörü) veya - (çıkarma
Şebeke)

- L x op y R, L ve R TE ise bir TE'dir, x ve y sembol aralıklarıdır ve
op ya => (iki seviyeli kısıtlama), <= (iki seviyeli zorlama) veya <=> (iki seviyeli
kısıtlama ve zorlama).

- X, L ve R TE ise ve op ya ^-> ise X op L__R bir TE'dir (yukarı doğru
değiştirme), _-> (aşağı değiştirme), /-> (sola değiştirme) veya \-> (sağa değiştirme
yenisiyle değiştirme). Ayrıca, L ve R, otomatları tanımlamalıdır (yani, dizilerini eşleyen
kendilerine). Bu operatörler, Karttunen'in değiştirme operatörlerine karşılık gelir. Eğer
oku bir soru işareti (?) izler, değiştirme isteğe bağlıdır.

- X << l, X bir TE ise bir TE'dir ve l şu formlardan biriyse
a veya a ve b'nin tek karakterler veya semboller olduğu a:b formu. Sonuç bir
l'nin X'e serbestçe yerleştirildiği dönüştürücü. Örneğin, dönüştürücü ab << c
c*ac*bc* ile eşdeğerdir.

- X op Y L1__R2, ... , LN__RN, X,Y, L1 ila LN ve R1 ise bir TE'dir
RN aracılığıyla TE'ler ve op ya => (genel kısıtlama), <= (genel zorlama), ^=>
(genel yüzey kısıtlaması), ^<= (genel yüzey zorlaması), ^<=> (genel yüzey
kısıtlama ve zorlama), _=> (genel derin kısıtlama), _<= (genel derin zorlama),
_<=> (genel derin kısıtlama ve zorlama). (Bu operatörler aşağıdaki şekilde uygulandı:
Anssi Yli-Jyra'nın bir önerisi.)

- "fname" bir TE'dir. Derleyici fname adlı dosyayı okur ve döner
linex'in x'inci satırı olduğu line1|line2|line3|... biçimindeki bir dönüştürücüye
dosya. : ve \ dışındaki tüm karakterler tam anlamıyla yorumlanır (yani
operatörler). Bu TE tipik olarak örneğin bir dosyadan biçimbirim listesini okumak için kullanılır.

-" " bir TE'dir. Derleyici, önceden derlenmiş bir dönüştürücüyü şuradan okur:
fname adlı dosya. Bu

Diğer Özellikler

Yorumlar % sembolü ile başlar ve satırın sonuna kadar uzanır. Boşluklar yoksayılır
alıntı yapmadıkları sürece. İfadeler, satırın sonu olmadığı sürece satırın sonunda sona erer.
önünde ters eğik çizgi bulunur. Komuta

#include "fname"

fname adlı bir dosyadan kaynak kodu eklemek için kullanılabilir. Komuta

RE >> "fname"

RE normal ifadesini fname dosyasında saklar. Komuta

#hopcroft kullan

derleyiciye bundan sonra Hopcroft minimizasyon algoritmasını kullanmasını söyler ve

#Varsayılanı Kullan

varsayılan minimizasyon algoritmasına (Brzozowski) geri döner. Komuta

ÖRNEK


İşte basit bir dönüştürücü program örneği. "adj-stems" dosyasının olduğunu varsayarsak
iki satırı içerir

kolay
geç
büyük

bu dönüştürücü sıfat biçimlerini kolay, kolay, kolay ve geç doğru bir şekilde analiz edecek,
daha sonra ve en son.

ALFABE = [a-zA-Z] y:yani:<> :<>

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

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

$R$ = $R$ & $R2$

$Stems$ = "adj-stems"

$S$ = $Kökler$ ( :<>| :{er}| :{Avustralya, Brezilya ve Kuzey Amerika ülkelerinin kullandığı saat uygulaması})

$$ || $R$

EXIT DURUMU


fst-derleyici bir hata oluşmadığı sürece 0 döndürür.

onworks.net hizmetlerini kullanarak fst-derleyiciyi çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    Phaser
    Phaser
    Phaser hızlı, ücretsiz ve eğlenceli bir açık
    sunan kaynak HTML5 oyun çerçevesi
    WebGL ve Canvas oluşturma
    masaüstü ve mobil web tarayıcıları. Oyunlar
    ortak olabilir...
    Phaser'ı indirin
  • 2
    VASAL Motor
    VASAL Motor
    VASSAL, oluşturmak için bir oyun motorudur.
    geleneksel tahtanın elektronik versiyonları
    ve kart oyunları. için destek sağlar
    oyun parçası oluşturma ve etkileşim,
    ve ...
    VASSAL Motorunu İndirin
  • 3
    OpenPDF - iText çatalı
    OpenPDF - iText çatalı
    OpenPDF oluşturmak için bir Java kütüphanesidir.
    ve PDF dosyalarını bir LGPL ile düzenlemek ve
    MPL açık kaynak lisansı. OpenPDF
    LGPL/MPL iText'in açık kaynaklı halefi,
    var ...
    OpenPDF'i İndirin - iText Çatalı
  • 4
    SAGA CBS
    SAGA CBS
    SAGA - Otomatik Sistem
    Yerbilimsel Analizler - Bir Coğrafidir
    Bilgi Sistemi (GIS) yazılımı ile
    coğrafi veriler için muazzam yetenekler
    işleme ve ana...
    SAGA GIS'i indirin
  • 5
    Java/JTOpen için Araç Kutusu
    Java/JTOpen için Araç Kutusu
    IBM Toolbox for Java / JTOpen, bir
    destekleyen Java sınıfları kütüphanesi
    istemci/sunucu ve internet programlama
    modelleri OS/400 çalıştıran bir sisteme,
    i5/OS veya...
    Java/JTOpen için Toolbox'ı indirin
  • 6
    d3.js
    d3.js
    D3.js (veya Veriye Dayalı Belgeler için D3)
    sağlayan bir JavaScript kitaplığıdır.
    dinamik, etkileşimli veriler üretmek için
    web tarayıcılarında görselleştirmeler. D3 ile
    sen...
    D3.js'yi indirin
  • Daha fazla »

Linux komutları

Ad