Вопросы по теме 'parser-combinators'

Доступ к данным соответствия регулярному выражению в Scala Parser
Мне интересно, можно ли получить MatchData, сгенерированную из соответствующего регулярного выражения в грамматике ниже. object DateParser extends JavaTokenParsers { .... val dateLiteral = """(\d{4}[-/])?(\d\d[-/])?(\d\d)""".r ^^ {...
3746 просмотров
schedule 23.08.2023

Как улучшить сообщения об ошибках в парсерах на основе парсера-комбинатора Scala?
Я написал парсер на основе комбинаторов парсеров Scala: class SxmlParser extends RegexParsers with ImplicitConversions with PackratParsers { [...] lazy val document: PackratParser[AstNodeDocument] = ((procinst | element | comment |...
2279 просмотров

Используйте комбинатор парсера Scala для анализа файлов CSV
Я пытаюсь написать парсер CSV с использованием комбинаторов парсера Scala. Грамматика основана на RFC4180 . Я придумал следующий код. Это почти работает, но я не могу правильно разделить разные записи. Что я пропустил? object CSV extends...
14120 просмотров
schedule 11.02.2022

Грамматика и синтаксический анализатор арифметических выражений
Недавно я искал подходящую грамматику для арифметических выражений, но нашел только тривиальные, например, игнорируя pow(..., ...) . Затем я попробовал это самостоятельно, но иногда это не срабатывало, как ожидалось. Например, я упустил возможность...
3938 просмотров
schedule 03.05.2024

Комбинаторы синтаксического анализатора Scala против синтаксического анализатора, сгенерированного ANTLR / Java?
Я пишу синтаксический анализатор выражений для приложения, написанного в основном на Scala. Я построил объекты AST на Scala, и теперь мне нужно написать парсер. Я слышал о встроенных комбинаторах синтаксического анализатора Scala, а также об ANTLR3,...
5344 просмотров

Комбинаторы парсеров Scala, парсеры не работают из-за приоритета
Я пытаюсь написать интерпретатор для языка программирования Icon. Одним из шагов в этом процессе является написание синтаксического анализатора для Icon, который я сделал следующим образом: import java.io.FileReader import...
1235 просмотров

Список равенств с использованием комбинаторов парсера
Я взял код парсинга CSV Scala отсюда: Используйте комбинатор анализатора Scala для анализа файлов CSV А затем я попытался написать для него базовый тест: assertEquals(List(List()), CSV.parse("")) И это терпит неудачу с сообщением:...
238 просмотров
schedule 14.03.2023

Существуют ли какие-либо известные библиотеки комбинаторов синтаксических анализаторов в F #, которые могут анализировать двоичные (не текстовые) файлы?
Я знаком с некоторыми основами fparsec, но, похоже, он ориентирован на текстовые файлы или потоки. Существуют ли какие-либо другие библиотеки F #, которые могут эффективно анализировать двоичные файлы? Или можно легко модифицировать fparsec для...
1520 просмотров

Scala. Парсер сложных выражений. OutOfMemoryError
Я хотел бы создать парсер для сложных выражений с порядком операций. У меня есть пример, но он работает очень медленно и выдает исключение OutOfMemoryError. Как я могу это улучшить? def expr: Parser[Expression] = term5 def term5:...
221 просмотров
schedule 06.05.2022

Разбор строки, содержащей любые символы
Я пытаюсь заставить работать. Итак, у меня есть строки, заключенные в круглые скобки. Строки могут содержать любые символы, и, следовательно, строка, которую я хочу проанализировать, также может содержать круглые скобки. Я думаю, что регулярное...
290 просмотров
schedule 27.11.2023

Scala 2.9: подкласс Parsers не распознает переопределение Elem?
Я написал парсер, который действует как лексер. Этот лексер анализирует файл и возвращает список токенов, каждый из которых является классом case или объектом, расширяющим общий признак. Сейчас я пытаюсь написать парсер для вывода лексера, но...
143 просмотров
schedule 19.02.2023

Преобразовать фрейм данных в матрицу со счетчиками
У меня есть файлы данных, структурированные следующим образом: OTU1 PIA0 1120 OTU2 PIA1 2 OTU2 PIA3 6 OTU2 PIA4 10 OTU2 PIA5 1078 OTU2 PIN1 24 OTU2 PIN2 45 OTU2 PIN3 261 OTU2 PIN4 102 OTU3...
1335 просмотров
schedule 28.10.2023

Комбинаторы синтаксического анализатора: обработка пробелов в синтаксическом анализаторе без чрезмерного возврата
Я перехожу от отдельного лексера и синтаксического анализатора к комбинированному синтаксическому анализатору, который работает с массивом символов. Одна проблема заключается в том, как правильно обрабатывать пробелы. Проблема Возьмем язык,...
713 просмотров
schedule 02.05.2022

Как пропустить пробелы, но использовать их как разделитель токенов в комбинаторе парсера
Я пытаюсь создать небольшой синтаксический анализатор, в котором токены (к счастью) никогда не содержат пробелов. Пробелы (пробелы, табуляции и символы новой строки) по сути являются разделителями токенов (за исключением случаев, когда есть скобки и...
1983 просмотров
schedule 25.07.2023

Есть ли способ передать контекстную информацию парсерам?
Я анализирую небольшой декларативный язык, в котором в области действия вы можете объявлять переменные (с типом), а затем позже, как и в большинстве других языков, используется имя (без типа). Объявление переменной будет выглядеть так:...
291 просмотров
schedule 22.01.2023

Добавление номеров строк к ошибкам синтаксического анализа без непосредственного расширения Positional
Я (наконец) завершил синтаксический анализатор, который обрабатывает мой DSL и переводит его в объекты моего домена. Теперь я хочу добавить правильную обработку ошибок и добавить номера строк к ошибкам, о которых сообщает синтаксический анализатор....
119 просмотров

Полиморфизм с унаследованными дженериками приводит к плохому доступу в swift
У меня есть два класса, которые наследуются от общего класса. class Parser<I: CollectionType, T> { func parse(ts: I) -> [(T, I)] { return [] } func parse_all(ts: I) -> [(T, I)] { return parse(ts).filter { isEmpty($0.1)...
529 просмотров

Комбинатор Scala Parser Replace Patterns
У меня есть программа ниже, я могу проанализировать шаблон, например convert(a.ACCOUNT_ID, string) , на выражение, но я хочу заменить этот шаблон на CAST(a.ACCOUNT_ID AS VARCHAR) . Я могу проанализировать полученное выражение и заменить строки...
287 просмотров
schedule 04.04.2022

Сопоставление выражений шаблонных фильтров с nom
Я работаю над механизмом создания шаблонов, синтаксис которого может быть таким: {{ somevar|filter }} Вместо somevar может быть произвольное «выражение», то есть либо имя переменной, например somevar , либо вложенное выражение фильтра...
506 просмотров
schedule 06.03.2022

Как правильно вернуть простую настраиваемую ошибку с помощью nom errorkind?
В nom добавлен простой обработчик ошибок. Первый компилируется без ошибок, второй с ошибками use nom::*; use std::str; // This works named!( field<&str>, map!( complete!(add_return_error!(...
1311 просмотров
schedule 06.06.2024