Как работать с вложенными блоками кода при написании C++ для анализа кода Python?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как работать с вложенными блоками кода при написании C++ для анализа кода Python?

Сообщение Anonymous »

Мне нужно написать простой парсер для анализа кода Python.
Я понимаю, что мне нужен токенизатор, структура данных, такая как дерево или карта, для хранения моих узлов по мере работы. , но меня ставят в тупик вложенные блоки кода.
Если бы у меня было что-то простое, например

Код: Выделить всё

   if foo:

Я думаю, что справлюсь с этим, потому что я ищу только определенные ключевые слова. Как только они найдены, я сохраняю их как узел.
Поэтому я мог бы написать что-нибудь, чтобы приведенный выше простой код анализировался и генерировал следующий вывод:

Код: Выделить всё

[IF_BLOCK]
[Condition] foo
[Then] statements
Но как мне справиться с подобным?

Код: Выделить всё

if foo:
if bar:
do1()
else:
do2()
if bar2:
do3()
В этом случае у меня должно получиться что-то вроде

Код: Выделить всё

[IF_BLOCK]
[Condition] foo
[Then]      [IF_BLOCK]
[Condition] bar
[Then]      do2()
[IF_BLOCK]
[Condition] bar2
[Then]      do3()
Уточню — это школьный проект. Мне разрешено использовать существующие библиотеки для создания собственного анализатора, но нельзя использовать существующий анализатор.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ython-code
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»