2
我正在使用flex和野牛寫一個語義分析器。在那裏,我有一個矩陣文字,就像[1,2,3; 3,4; 5]一樣。假設它們是整數。我有以下規則:C-Bison-flex中的字符串串聯
在柔性文件:
int {yylval.type_id.Type=1;return tINTTYPE;}
在野牛文件:
char m[80]; //to keep the value of matrix literal
%union semrec
{
struct
{
int Type;
char *id;
}type_id;
}
matrixLit : '[' row ';' rows ']'
row : value
| value ',' row
rows : row
| row ';' rows
value : tINT {$$.id=$1.id;}
| tREAL {$$.id=$1.id;}
| tIDENT {$$.id=$1.id;}
通過使用這些,我想獲得的矩陣文字的值。例如,如果矩陣文字是[1; 2; 3,4; 5,6],我嘗試得到1; 2; 3,4; 5,6。我嘗試了一些使用$$ .id = $ 1.id和strcat(m,$ 1.id),strcpy(m,$ 1.id)等等,但無論我做什麼,我都無法按照此順序獲取值。我得到像4,2; 1; 3,5,6的東西。誰能幫我這個?
謝謝
[家庭作業標籤現已正式棄用(http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially-deprecated)。 – 2013-04-11 19:06:23
@JonathanLeffler:謝謝,我現在已經受過教育! – Josh 2013-04-11 19:17:11
@Josh謝謝,這對數字有效,但我無法處理在哪裏放置逗號和分號? – yrazlik 2013-04-11 22:38:26