6

Глава 3. Синтаксический анализатор числа с плавающей точкой в скобках

Реализация синтаксических анализаторов с использованием библиотеки FParsec обычно означает, что высокоуровневые синтаксические анализаторы получены как комбинация низкоуровневых анализаторов. Вы начинаете с анализатора примитивов, предоставляемых библиотекой, а затем последовательно объединяете их в анализаторы более высокого уровня, пока вы, наконец, не имеете один синтаксический анализатор для полной обработки входных данных.

Глава 4. Абстрактные синтаксические анализаторы

Одной из самых больших сильных сторон FParsec является легкость, с которой вы можете определить свои собственные абстрактные синтаксические анализаторы. Возьмем, к примеру floatBetweenBrackets из предыдущей главы. Если вы намерены также разобрать другие элементы между строк, вы можете определить свой собственный специализированный комбинатор для этой цели:

Глава 5. Синтаксический анализатор списка чисел с плавающей точкой

Мы уже течение трех глав обсуждаем как делать синтаксический разбор одного числа с плавающей запятой, поэтому в этот раз мы попытаемся нечто более амбициозное: синтаксический разбор списка чисел с плавающей точкой.

Глава 6. Обработка пробелов

FParsec обрабатывает пробелы (пробелы, табуляции, новые строки и т. д.) Так же, как и любой другой ввод, поэтому наш синтаксический анализатор floatList еще не умеет работать с пробелами: > test floatBetweenBrackets "[1.

Глава 7. Синтаксический анализатор строковых данных

FParsec содержит различные встроенные синтаксические анализаторы для символов, строк, чисел и пробелов. В этой главе мы представим несколько синтаксических анализаторов символов и строк. Обзор всех доступных синтаксических анализаторов см. в руководстве пользователяen.

Глава 8. Использование последовательности синтаксических анализаторов

Всякий раз, когда вам нужно применять несколько синтаксических анализаторов в последовательности, а нужен только результат одного из них, подходящая комбинация >>.en и .>>en операторов поможет выполнить эту работу. Однако этих комбинаторов не хватит, если вам нужен результат более чем одного из задействованных синтаксических анализаторов.

Глава 9. Использование альтернативных синтаксических анализов

В главе 7 “Синтаксический анализатор строковых данных” мы вкратце представили комбинатор выбора <|>en : val (<|>): Parser<'a,'u> -> Parser<'a,'u> -> Parser<'a,u> Этот комбинатор позволяет вам поддерживать несколько альтернативных вариантов.

Глава 10. Ограничение значений F#

Когда вы начинаете писать собственные синтаксические анализаторы с помощью библиотеки FParsec или пытаетесь скомпилировать некоторые отдельные фрагменты кода из учебника, вы столкнетесь с особенностями компилятора, которые часто вызывают некоторые затруднения среди новых пользователей F# и FParsec: ограничение значений.

Глава 11. Синтаксический анализ JSON

Now that we have discussed the basics of FParsec we are well prepared to work through a real world parser example: a JSON parser. JSON (JavaScript Object Notation) is a text-based data interchange format with a simple and lightweight syntax.

Глава 12. Куда дальше?

If this tutorial has whet your appetite for a more in-depth introduction to FParsec, just head over to the user’s guide. If you can’t wait to write your own parser, then bookmark the parser overview page, maybe take a short look at the example parsers in the Samples folder and just start hacking.