@HypeEditor

JavaScript — регулярное выражение для типа данных `tuple` в Python?

Строю стандартный лексер на регулярных выражениях используя TypeScript.

Задача такая: входной в лексер Python код нужно разбивать на токены 3-х типов: empty (то есть пустой символ), string (любой текст не включающий круглые скобки ()) и tuple (то есть любой текст, заключённый в круглые скобки (x: int, y: str)).
Тип токенов tuple предназначен для для кортежей аргументов функций в Python, то есть в коде:

def foo(bar: int, baz: str) -> tuple[str, str]:
    retrun ('Hello', 'world!')


Текст "(bar: int, baz: str)" и "('Hello', 'world!')" будут идентифицированы как тип tuple.

И так вопрос: Какой шаблон регулярного выражения нужно использовать для типа 'tuple'?
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mayton2019
Bigdata Engineer
Никакие регулярки в лексерах не надо использовать. Лексер-парсер - предполагает что вы берете генератор трансляторов (Yacc/Bizon/Antlr/JavaCC) описываете грамматику на специальном языке типа EBNF и получаете готовый код на JS или Python.

Регулярки здесь вообще не причем.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы