Это классическая ошибка в python: если вы называете свой модуль чем-то, что уже существует, вы не получаете модуль, о котором думали. Обычно это происходит наоборот. Например, вы вызываете свой csv-парсер csv.py и затем пытаетесь импортировать csv. Вы импортируете себя не стандартный модуль Python CSV.
В этом случае все должно быть наоборот: вы хотите импортировать свой модуль синтаксического анализа, и вместо этого вы получаете стандартный модуль анализатора. Если я импортирую парсер, я получу это:
>>> import parser
>>> dir(parser)
['ParserError', 'STType', '__copyright__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__version__', '_pickler', 'compilest', 'expr', 'isex
pr', 'issuite', 'sequence2st', 'st2list', 'st2tuple', 'suite', 'tuple2st']
Сначала я рекомендую переименовать ваш parser.py во что-то более конкретное, например, в paigoa_token_parser.py
Теперь измените ваш импорт:
import paigoa_token_parser
Теперь вы можете получить ошибку импорта, и в этот момент вы должны проверить свои пути. Ваш парсер находится в той же папке, что и main.py? Если нет, то вы можете добавить его в путь к питону