0
我正在開發解析器,我想使用正則表達式來檢查Yacc語法。 但似乎它不工作了使用Regualar表達式檢查Yacc語法/ C#
// 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);
它適用於第一個,但它不適用於這個{$$ = $ 2; } – ImnotaGeek
我試過@「(\ $ \ $ +)=(\ $ + \ d +)\ s *([* + \ /])\ s *(\ $ + [0-9] +)*」; – ImnotaGeek
由於Yacc規則的行爲可以是任意C語法,因此您必須將C標記。 – Kaz