2013-06-21 5 views
1

Насколько я знаю, PetitParser - это синтаксический анализатор, который мы можем определить грамматисты и действия для анализа некоторого текста.Как использовать petitparser для написания форматирования JSON?

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

Но я не знаю, что делать. Должен ли я создавать некоторые узлы и строить дерево для разобранного JSON? А как это сделать?

Я пытаюсь найти некоторые образцы, но еще не найден.

ответ

2

PetitParser не помогает вам с довольно печатной печатью.

В конкретном примере вы можете написать код, который будет перемещаться по картам и отображать парсер, и печатать его по своему усмотрению.

В качестве альтернативы (и в целом для более сложных грамматик) вы можете подклассифицировать JsonGrammar и создать AST для пользовательских узлов синтаксического анализа. Затем вы пишете посетителя или рекурсивно перемещаете узлы для форматирования данных соответствующим образом. Пример XML parser делает именно это.

PetitParser для Smalltalk поставляется с небольшим каркасом под названием PrettyPetit, который поможет вам с механизмом компоновки блоков оптимально разместить, обернуть и выровнять строки; но процесс создания таких инструкций форматирования такой же, как при выполнении этого вручную, как описано выше.