Настраиваемый разбор для определения переменных, таких как C на пользовательском языке - PullRequest
0 голосов
/ 10 октября 2018

Использование 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 просто не принимает несколько групп регулярных выражений в одном шаблоне синтаксического анализа.Так есть ли решение для моего разыскиваемого разыска?

...