Использование SourceInsight4.0 для определения пользовательского языка.Хотите проанализировать следующий код:
// target: parsing num_0, num_1, ..., num_n as INT type variable
INT num_0,
num_1 = 10,
// many other vars.
num_n = value;
, как это принято в языке C
Пока мне удается разобрать только одну переменную: использовать шаблон регулярных выражений:
// regex 1
\w*INT\w+\([a-zA-Z0-9_]+\)\w*;
для
// code 1, succeeded
INT num0;
или регулярного выражения:
// regex 2
\w*INT\w+\([a-zA-Z0-9_]+\)\w*=\w*[a-zA-Z0-9_]+\w*;
для
// code 2, succeeded
INT num0 = value;
Но я не смог использовать
// regex 3
\w*INT\w+[a-zA-Z0-9_]+\w*(,\w*\([a-zA-Z0-9_]+\)\w*)*;
для разбора
// code 3, failed
INT num0, num1, num2; // multiple identifiers divided by comma
Но он работает на тестере регулярных выражений, как https://regex101.com/. Я предполагаю, что SI просто не принимает несколько групп регулярных выражений в одном шаблоне синтаксического анализа.Так есть ли решение для моего разыскиваемого разыска?