使用自定义语言对变量定义(例如C)进行自定义解析

时间:2018-10-10 06:14:56

标签: regex source-insight

使用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只是在一种解析模式中不接受多个正则表达式组。那么我想要的解析有什么解决方案吗?

0 个答案:

没有答案