使用正则表达式/ c#检查yacc语法
本文关键字:检查 yacc 语法 正则表达式 | 更新日期: 2023-09-27 18:18:08
我正在开发一个解析器,我想使用正则表达式检查Yacc语法。但这似乎行不通
// Yacc-like grammar specifications
// Ligne ::= Expr ''n' {printf("%d 'n" , $1)}
// Expr : Exp '+' Terme {$$ = $1 + $3; } | Terme ;
// Terme : Terme '*' Facteur {$$ = $1 * $3; } | Facteur ;
// Facteur : '(' Expr ')' {$$ = $2; } | Chiffre ;
String YaccProdS = @"($$)+ [=] [$]+[0-9][^']([$]+[0-9])*";
Check = Regex.Match(Text,YaccProdS);
如果您只是想获得{}
内部的内容,下面将为您提供,它还将$id
和操作符分组。
String YaccProdS = @"('$+)'s+='s+('$+'d+)('s*([*+'/])'s*('$+[0-9]+))?";
一定要记得转义特殊字符,如$
。