Bison Yacc

binson參數

衝突

與lex結合

透過在yacc的%union定義數值,之後可以透過lex在分詞的時候定義

%union {
  int intVar;
  char *str;
}

此時可以保存整數

yylval.intVar = atoi(yytext);

字串的話採用

yylval.str = strdup(yytext);

yacc採用c++

參考該篇文章 在yacc中編寫c++,在lex編寫c。

或採用flex -+方法生成c++檔案

常見問題

如果文法有問題

yacc的action也會佔用一個索引。

書目


System Program