Как правильно вывести правильные переменные в Rockstar Language ?
Я пишу расширение подсветки синтаксиса для vscode. Но это как бы противоречит строковым литералам, где все, что находится после ключевого слова «говорит», должно быть строкой. Но в сочетании с заглавными словами это определяется как правильная переменная.
Это регулярное выражение того, как далеко я получил:
(?!(Say|Shout|Whisper|Scream|Listen( to)?|Put|If|Until|Build |Take it to the top|Knock |While|Continue|Break it down|My|Your|A|An|The)\\s)\\b((?<!says .*)([A-Z][a-zA-Z]+\\s?)+)\\b($|\\s)
Проблема в том, что нефиксированная длина взгляда позади (?<!says .*)
не делаетне работает в vscode для синтаксического синтаксического анализа.
Пример фрагмента кода на регулярном выражении regex101
Итак, как заставить это работать? Некоторые идеи о том, как не использовать этот взгляд сзади? Суть в том, что в
Eleanor Rigby says Hello San Francisco
Eleanor Rigby
должна быть переменная says
должна быть присваиванием, а Hello San Francisco
должна быть строкой
Но без оглядки назад Hello San Francisco
рассматривается как переменная.