2013-04-10 45 views
0

我在寫一個lex程序。這個問題的目的是,我輸入一個字符串爲例名稱@ ******中國也是在名稱的第一個字母應該大寫字母lex程序中的「Undefined definition」錯誤

letterMin ([a-z]) 
letterMaj ([A-Z]) 
Letter ({letterMaj}({letterMin})*) 
Number ([0-9]) 
Chaine ({letter}@({Number})*) 
%% 
{Chaine} printf("enter your chaine"); 
.* printf("Lexical Error"); 
%% 
int yywrap(){return 1;} 
main() 
{ 
yylex(); 
} 

enter image description here

回答

2

當涉及到符號名,情況是很重要的。你想這樣的事情:

letterMin ([a-z]) 
letterMaj ([A-Z]) 
letter ({letterMaj}({letterMin})*) 
Number ([0-9]) 
Chaine ({letter}@({Number})*) 
+0

這是好的,但我不知道我的代碼和你的代碼之間有什麼區別! – YasBES 2013-04-11 20:47:53

+1

你用大寫字母L定義了你的符號'Letter',但是試圖把它稱爲'letter',用一個小的L. – 2013-04-11 20:59:28

+0

感謝你的幫助我需要你也許是因爲我在Flex和Bison中做一個項目現在,所以如果我有問題,我會問:) – YasBES 2013-04-11 21:55:44