0
嗨,我試圖讓法/ yacc的拆分此字符串的lex/yacc的將無法識別的字符串(語法錯誤)
table subwayLines:int[3]
成表,subwayLines令牌,INT [3]與[ 3]可選的(即int或INT [3])
一切都很好,直到我試圖識別「INT」, 所以這是我在法
[A-Za-z0-9\[\]]+ { /* column property*/
yylval.sval = (char *)strdup(yytext);
char* temp=yylval.sval;
return STRING;
}
我才知道問題在
[A-Za-z0-9\[\]]+
,因爲當我改成了
[A-Za-z]+("[")?+[0-9]+("]")?+(",")?
它的工作原理只是我現在還不能去沒有「[」或「]」,例如,如果我在字符串中寫道的:
table subwayLines:int
然後它給了我一個語法錯誤 所以有誰知道如何改變它?感謝
是否有一個原因認識到'INT [3 ]'作爲一個字符串標記,而不是將其作爲四個標記返回並解析語法?如果有空白(是否允許?) 'int [3]'。 – Kaz 2012-03-19 19:49:59