Насколько я понимаю, комбайнаторы Scala для парсеров требуют, чтобы весь файл находился в памяти, и это не совсем практично для файлов размером в десятки гигабайт. Во всяком случае, библиотека комбинаторного анализатора намного эффективнее, чем нужно для задачи, поэтому я думаю о развертывании простого анализатора FSA. Есть ли там библиотеки для этого или нет другого способа, кроме стены текста с несколькими switch
es?Библиотеки Java или Scala для анализаторов потоков
2
A
ответ
0
Насколько я понимаю, Scala комбинаторов синтаксического анализа требуется весь файл быть в памяти, и это не совсем практично для файлов десятки гигабайта
Если вам нужно разобрать огромный файл , вы можете использовать BufferedReader
и вызывать parseAll
с этим читателем. Что-то вроде этого:
val bufferedReader: BufferedReader = ???
val myResult = MyParser.parseAll(MyParser.rootParser, bufferedReader)
Таким образом, файл читается кусками, так что вы не должны быть обеспокоены, чтобы запустить из памяти.
В качестве альтернативы, вы можете создать PagedSeqReader
из bufferedSource
, если вам необходим читатель, специфичный для API-интерфейсов парсерных компиляторов.
Смежные вопросы
- 1. Использовать библиотеки Java в Scala?
- 2. Fabrica для разных анализаторов
- 3. Java многопоточность - 6 потоков или 30 потоков?
- 4. Мониторинг потоков для актеров scala
- 5. Использование синтаксических анализаторов SQL для java для сценариев поиска
- 6. Как увеличить распределение потоков в java/scala?
- 7. Scala - Java =? (Или Clojure - Java =?)
- 8. Объединение потоков Scala
- 9. Расширители анализаторов Sonarqube
- 10. Как ограничить число пользователей и/или потоков для библиотеки .net?
- 11. Странное поведение библиотеки потоков
- 12. Библиотеки и рамки Scala
- 13. Java или scala Library для разбора латекса или строки MathML
- 14. Использование библиотеки Java с зарезервированными словами Scala
- 15. Библиотеки генетических алгоритмов для Scala
- 16. Пункты использования для потоков в Scala
- 17. Реализации потоков как библиотеки
- 18. Непрерывная реализация библиотеки потоков
- 19. Слияние потоков в scala
- 20. Java или Scala для FSM Parser?
- 21. Правильно использовать библиотеки Java в Scala
- 22. PDF для текстового инструмента или библиотеки Java?
- 23. Полный список программных анализаторов языка?
- 24. Java много потоков для многих потоков отношение
- 25. Процессы Java против потоков для привязки потоков
- 26. Использование потоков для итерации в Scala
- 27. Проект инициализации библиотеки Scala
- 28. Число потоков рабочих потоков Java
- 29. Использование библиотеки Scala для приложения для Android
- 30. Неизменность и безопасность потоков в Scala
Antlr - хороший инструмент для генерации парсеров. Насколько я знаю, можно использовать потоковое воспроизведение для разбора, возможно, бесконечного потока символов. – vbezhenar
Чтение scaladoc, комбинатор синтаксического анализатора применяется к 'Reader [Elem]'. Даже если это обычно вводится из строки, возможно, это возможно сделать потоковым способом (никогда не пробовали). – cchantep