0
我必須爲c類語言創建一個詞法和語法分析器。在這種語言中,我們將其定義爲「在符號之後存在的所有東西」,直到行結束爲止。每次我的編譯器到達「/」它仍然給我語法錯誤Bison在Flex中定義註釋
%%
[ \t] { }
[0-9]+ { SAVE_TOKEN; return TINTEGER; }
"main_loop" { return TOKEN(TMAIN); }
"{" { return TOKEN(TLBRACE); }
"}" { return TOKEN(TRBRACE); }
";" { return TOKEN(TSEMI); }
"(" { return TOKEN(TLPAREN); }
")" { return TOKEN(TRPAREN); }
"rotate" { return TOKEN(TROTATE); }
"forward" { return TOKEN(TFORWARD); }
%{
/* Do not add any of your own tokens below this line!!!! */
%}
"\n" { g_LineNumber++; }
這是給我語法錯誤的部分。
"//.*" {g_LineNumber++; }
[a-zA-Z_]+ { std::cout << "ERROR: Unknown token '" << yytext << "' on line " << g_LineNumber << std::endl; yyterminate(); }
. { std::cout << "ERROR: Unknown token '" << yytext << "' on line " << g_LineNumber << std::endl; yyterminate(); }
%%