2016-05-16 4 views
0

у меня есть файл, в котором каждая строка представляет собой каскадный серию String, как это:Грамматика для чисел синтаксического анализа

302007030064201410241 
30210704006426141 
1021070400642614134 

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

Какова будет хорошая стратегия для анализа этих чисел? Любой образец для начала был бы замечательным.

ответ

1

IMO, Antlr не пригодится, если всякая информация для разбора выглядит так, как будто все токены идентичны.

Напишите вручную небольшую государственную машину.

  • Читать цифры в цикле до этой цифры и предшественники в результате ноу «код операции» (это может быть проще, если все коды имеют одинаковую длину: вы можете обернуть, что в функции)

  • , тогда в зависимости от этого кода (например, в коммутаторе) вы можете вызвать его конкретную логику декодирования в специальной функции.

Ваш итоговый парсер будет выглядеть как рекурсивный анализатор спуска.