АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

fst-compiler - Онлайн в облаке

Запустите fst-compiler в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это командный fst-компилятор, который можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


fst-compiler, fst-compiler-utf8 - два компилятора для программ SFST

СИНТАКСИС


fst-компилятор грамматический файл [ выходной файл ]
FST-компилятор-UTF8 грамматический файл [ выходной файл ]

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


-c Храните датчик в компактном формате, который используется в fst-infl2.

-l Храните преобразователь в формате lowmem.

-s Переключите поверхность и слой анализа преобразователя. Вы должны использовать этот переключатель в
порядок использования fst-infl (фст-инфл2, фст-инфл3) для генерации, а не для анализа.

ОПИСАНИЕ


fst-компилятор - компилятор программ преобразователей с конечным числом состояний. Создает минимизированный
конечный преобразователь, который может использоваться с фст-мор, фст-инфл, фст-принт, fst-сравнить,
fst-анализ, и fst-решетка. Компактное представление преобразователя, созданное с помощью
флаг -c поддерживается фст-infl2, fst-поезд, и fst-матч. Эффективный с точки зрения памяти
представление преобразователя, созданное с помощью флага -l, поддерживается только фст-
инфл3.

Первый аргумент программы - это имя файла, содержащего программу преобразователя.
Язык программирования описан ниже. Второй аргумент - это имя файла.
в который будет записан полученный преобразователь в двоичной форме. Если второй аргумент
отсутствует, вывод будет записан в стандартный вывод.

FST-компилятор-UTF8 отличается от fst-компилятор только в кодировке символов. fst-компилятор-
utf8 поддерживает кодировку UTF8 исходных файлов, тогда как fst-компилятор должен использоваться для
8-битные коды символов, такие как latin1, которые являются расширением кода ASCII. Информация
информация о кодировке хранится в файлах преобразователя и используется другими программами SFST.

ФАЙЛОВ ФОРМАТЫ


Программа преобразователя состоит из (необязательной) последовательности алфавит и переменная
определения, за которыми следует один преобразователь выражение что определяет результат
преобразователь.

Алфавит

Определение алфавита состоит из ключевого слова ALPHABET, за которым следует = и некоторый преобразователь.
выражение например

ALPHABET = [az]: [AZ]

Эта команда переопределяет алфавит как набор пар символов, встречающихся на
переходы преобразователя. Вхождения двухуровневых операторов, операторов отрицания и
периодам, не заключенным в кавычки, всегда должно предшествовать определение алфавита.

Переменные

Есть два разных типа переменных. Символ набор переменные заключены в хэш
знаки (#) и принимают последовательности символов (см. ниже) в качестве значений:

# UC # = AZ
# LC # = az

Преобразователь переменные заключены в знаки доллара и принимают выражения преобразователя как
ценности:

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

Переменные, имя которых начинается с символа "=", являются особенными. соглашение переменные. Если
переменная согласования встречается в выражении преобразователя более одного раза, она всегда будет иметь
такое же значение. Рассмотрим следующую программу преобразователя:

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

Преобразователь результата распознает строки aXa, bXb и cXc. Только ациклические преобразователи
(т.е. преобразователи с конечным набором отображений строк) могут быть назначены по согласованию
переменные.

Символы

Символ либо

- одиночный символ вроде A s 5,

- символ в кавычках, например \ * или \ _,

- многосимвольный символ, например или (что всегда
заключены в угловые скобки) или

- обратная косая черта, за которой следует число, которое является числовым кодом
обозначенный персонаж

- нулевой символ <>.

Последовательность символов

Последовательность символов - это последовательность символов, многосимвольных символов и символа.
диапазоны, например az \. .

диапазон символов

Диапазон символов:

- единый символ

- последовательность символов, заключенная в квадратные скобки, например [A-Za-z] или

- последовательность символов, начинающаяся с ^ и заключенная в квадратные скобки, например [^ A-Za-z]
(обозначающее дополнение к [a-zA-Z]) или

- точка (которая представляет любой символ из алфавита)

Выражения преобразователя

Выражение преобразователя (TE) рекурсивно определяется следующим образом:

- Пара из двух диапазонов символов, разделенных двоеточием, является TE.

[az]: [aZ]

- Диапазон одного символа, например [az], является TE.
Это короткая форма для [аз]: [аз].

- Две последовательности символов, заключенные в фигурные скобки и разделенные двоеточием, являются
ели. {a [bc]}: {def} эквивалентно a: db: e <>: f | a: dc: e <>: f.

- XY является TE, если X и Y являются TE.
(Пробелы игнорируются, если они не указаны.)

- (X) является TE, если X является TE.

- X op - это TE, это X - TE и op - это либо * (звездный оператор Клини), +
(Оператор плюса Клини), или? (оператор необязательности)

- op X - это TE, это X - это TE, а op - это либо! (оператор отрицания), ^
(оператор извлечения целевого языка), _ (оператор извлечения исходного языка) или ^ _
(оператор переключения источника и цели).

- X op Y - TE - это X, Y - TE, а op - это либо & (конъюнкция
оператор), | (оператор дизъюнкции), || (оператор композиции) или - (вычитание
оператор)

- L x op y R является TE, если L и R являются TE, x и y являются диапазонами символов и
op - это либо => (двухуровневое ограничение), <= (двухуровневое принуждение) или <=> (двухуровневое
ограничение и принуждение).

- X op L__R является TE, если X, L и R являются TE, а op - либо ^ -> (вверх
замена), _-> (замена вниз), / -> (замена влево) или \ -> (замена вправо
замена). Кроме того, L и R должны определять автоматы (т. Е. Отображающие свои строки
на себя). Эти операторы соответствуют операторам замены Карттунена. Если
после стрелки стоит вопросительный знак (?), замена становится необязательной.

- X << l является TE, если X является TE, и l имеет любой вид
a или форма a: b, где a и b - отдельные символы или символы. В результате
датчик, где l был свободно вставлен в X. Например, датчик ab << c
эквивалент c * ac * bc *.

- X op Y L1__R2, ..., LN__RN является TE, если X, Y, L1 через LN и R1
через RN являются TE, а op - это либо => (общее ограничение), <= (общее принуждение), ^ ​​=>
(общее поверхностное ограничение), ^ ​​<= (общее поверхностное принуждение), ^ ​​<=> (общее поверхностное
ограничение и принуждение), _ => (общее глубокое ограничение), _ <= (общее глубокое принуждение),
_ <=> (общее глубокое ограничение и принуждение). (Эти операторы были реализованы после
предложение Ансси Или-Джира.)

- "fname" - это TE. Компилятор читает файл с именем fname и превращает
его в преобразователь вида line1 | line2 | line3 | ... где linex - это x-я строка
файл. Все символы кроме: и \ интерпретируются буквально (т. Е. Не как
операторы). Этот TE обычно используется, например, для чтения списка морфем из файла.

- " "является TE. Компилятор считывает предварительно скомпилированный преобразователь из
файл с именем fname. Этот

Дальнейшие особенности

Комментарии начинаются с символа% и доходят до конца строки. Пробелы игнорируются
если они не цитируются. Выражения заканчиваются в конце строки, если не конец строки
предшествует обратная косая черта. Команда

#include "fname"

может использоваться для вставки исходного кода из файла с именем fname. Команда

RE >> "fname"

сохраняет регулярное выражение RE в файле fname. Команда

#используйте хопкрофт

сообщает компилятору использовать алгоритм минимизации Хопкрофта с этого момента, и

#использовать по умолчанию

возвращается к алгоритму минимизации по умолчанию (Brzozowski). Команда

ПРИМЕР


Вот пример простой программы преобразователя. Предполагая, что файл "adj-stems"
содержит две строки

легко
поздно
big

этот преобразователь правильно проанализирует формы прилагательных легко, проще, проще и позже,
позже и в последний раз.

АЛФАВИТ = [a-zA-Z] y: то есть: <> : <>

$ R $ = у <=> я ( : <> e)

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

$ R $ = $ R $ и $ R2 $

$ Stems $ = "adj-stems"

$ S $ = $ Стебли $ ( : <> | : {er} | :{стандартное восточное время})

$ S $ || $ R $

ВЫХОД статус


fst-компилятор возвращает 0, если не возникнет ошибка.

Используйте fst-compiler онлайн через сервисы onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    Pharser
    Pharser
    Phaser - это быстрый, бесплатный и увлекательный
    исходный игровой фреймворк HTML5, который предлагает
    WebGL и рендеринг Canvas через
    настольные и мобильные веб-браузеры. Игры
    может быть со ...
    Скачать Фазер
  • 2
    VASSAL Двигатель
    VASSAL Двигатель
    VASSAL - игровой движок для создания
    электронные версии традиционной доски
    и карточные игры. Он обеспечивает поддержку
    рендеринг и взаимодействие игровых элементов,
    и ...
    Скачать движок VASSAL
  • 3
    OpenPDF - форк iText
    OpenPDF - форк iText
    OpenPDF — это библиотека Java для создания
    и редактирование PDF-файлов с помощью LGPL и
    Лицензия с открытым исходным кодом MPL. OpenPDF – это
    LGPL/MPL преемник iText с открытым исходным кодом,
    и ...
    Скачать OpenPDF — форк iText
  • 4
    SAGA GIS
    SAGA GIS
    САГА - Автоматизированная система
    Геонаучный анализ - это географический
    Программное обеспечение информационной системы (ГИС) с
    огромные возможности для геоданных
    обработка и анализ ...
    Скачать ГИС САГА
  • 5
    Панель инструментов для Java / JTOpen
    Панель инструментов для Java / JTOpen
    IBM Toolbox for Java / JTOpen — это
    библиотека классов Java, поддерживающая
    клиент/сервер и интернет-программирование
    моделей в систему под управлением OS/400,
    i5/ОС, о...
    Скачать набор инструментов для Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (или D3 для документов, управляемых данными)
    это библиотека JavaScript, которая позволяет вам
    для создания динамических интерактивных данных
    визуализации в веб-браузерах. С D3
    вы...
    Скачать D3.js
  • Больше »

Команды Linux

Ad