資源簡介
對c代碼進行語法分析,生成語句之間的連接關系,借助dot工具以圖形化方式顯示,另外解析出每個函數的變量的定義、使用情況
該版本沒有加入預處理,預處理功能可以自己開發(有些復雜),也可以借助gnu c的預處理功能

代碼片段和文件信息
/*?Original?source?code?by?Compilerware?with?tabs?=?3?*/
#include?“c_main.h“
#include?“c_parser.h“
?? #include?“c_actions.h“
#ifdef?TOKEN_ACTIONS
/////////////////////////////////////////////////////////////////////////////////////////////////////
//?????????????????????????????????????????????????????????????????????????????????????????????????//?
//????error????? ????????????????????????
int???c_token_action::error?(short?t)????????????????????
{
if?(token.end?==?token.start)?//?Illegal?character?
{
token.end++;
return?(t);?//?Return?zero?(t?should?be?zero).
}
//?Do?a?symbol?table?lookup?could?be?a?valid?keyword?or?constant.
return?(lookup?(t));?
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
//?????????????????????????????????????????????????????????????????????????????????????????????????//?
//????lookup???? ????????????????????????
int???c_token_action::lookup?(short?t)?//?Look?for?Symbol.
{
//?Do?a?symbol-table?lookup?for?this?token.?
token.sti?=?add_symbol?(t?token.start?token.end);?
return?(symbol[token.sti].term);?//?Retuen?terminal?symbol?number.?
}
#endif
#ifdef?PARSE_ACTIONS
/////////////////////////////////////////////////////////////////////////////////////////////////////
//?????????????????????????????????????????????????????????????????????????????????????????????????//?
//????goal_?(not?used?for?testing?only) ????????????????????????
short?c_parse_action::goal_?(short?p)?
{
???short?a?=?pact_arg[p]; ??//?Get?first?argument?index.
??????return?(0);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
//?????????????????????????????????????????????????????????????????????????????????????????????????//?
//????defterm??? ????????????????????????
short?c_parse_action::defterm?(short?p)?
{
???short?i?=?pact_arg[p]; ???//?Get?first?argument?index.
??????short?sti?=?PS?[arg_numb[i]-1].sti;?//?Get?sti?for?first?argument.
??????symbol[sti].term?=?arg_numb?[i+1];??//?Set?term?to?second?argument.
??????return?(0);
}
#endif
#ifdef?NODE_ACTIONS
/////////////////////////////////////////////////////////////////////////////////////////////////////
//?????????????????????????????????????????????????????????????????????????????????????????????????//?
//????goal_?(not?used?for?testing?only) ????????????????????????
short?c_node_action::goal_?(int?n)
{
ushort?p?=?node[n].prod;
???short?a?=?nact_arg[p]; ??//?Get?first?argument?index.
return?(0);
}
#endif
//?????????????????????????????????????????????????????????????????????????????????????????????????//?
/////////////////////////////////////////////////////////////////////////////////////////////////////
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????868??2012-05-29?16:36??cp-u-1.0.14-8\cp.sln
????..A..H.?????89088??2013-04-05?19:23??cp-u-1.0.14-8\cp.suo
?????文件???????4494??2012-09-07?14:59??cp-u-1.0.14-8\cp.vcproj
?????文件???????1401??2013-04-05?19:23??cp-u-1.0.14-8\cp.vcproj.ZL.zp.user
?????文件???????2974??2012-02-27?07:54??cp-u-1.0.14-8\c_actions.cpp
?????文件????????666??2012-02-27?07:51??cp-u-1.0.14-8\c_actions.h
?????文件??????73842??2012-10-16?10:17??cp-u-1.0.14-8\c_lexer.cpp
?????文件???????1552??2012-10-16?09:33??cp-u-1.0.14-8\c_lexer.h
?????文件???????9381??2012-09-25?19:08??cp-u-1.0.14-8\c_main.cpp
?????文件???????3204??2012-09-25?10:47??cp-u-1.0.14-8\c_main.h
?????文件?????229256??2012-10-16?15:26??cp-u-1.0.14-8\c_parser.cpp
?????文件??????19862??2012-10-16?15:28??cp-u-1.0.14-8\c_parser.h
?????文件????????697??2010-11-29?12:54??cp-u-1.0.14-8\KDetectMemoryLeak.h
?????文件?????????74??2012-08-20?10:33??cp-u-1.0.14-8\輸出.txt
?????文件????????161??2012-09-05?18:31??cp-u-1.0.14-8\運行說明.txt
?????文件?????????40??2013-04-05?19:29??cp-u-1.0.14-8\test2\comp-graph.bat
?????文件?????????29??2012-08-31?08:22??cp-u-1.0.14-8\test2\comp.bat
?????文件????????731??2013-04-05?19:27??cp-u-1.0.14-8\test2\COMP.c
?????文件??????64226??2013-04-05?19:29??cp-u-1.0.14-8\test2\comp.png
?????文件??????39870??2013-04-05?19:27??cp-u-1.0.14-8\test2\comp.txt
?????文件?????????43??2013-04-05?19:29??cp-u-1.0.14-8\test2\connect-graph.bat
?????文件?????????35??2012-08-31?08:22??cp-u-1.0.14-8\test2\connect.bat
?????文件????????538??2013-04-05?19:32??cp-u-1.0.14-8\test2\CONNECT.c
?????文件??????64226??2013-04-05?19:33??cp-u-1.0.14-8\test2\connect.png
?????文件??????22859??2013-04-05?19:33??cp-u-1.0.14-8\test2\connect.txt
?????文件?????????43??2013-04-05?19:29??cp-u-1.0.14-8\test2\convert-graph.bat
?????文件?????????35??2012-08-31?08:22??cp-u-1.0.14-8\test2\convert.bat
?????文件????????430??2013-04-05?19:33??cp-u-1.0.14-8\test2\CONVERT.c
?????文件??????17202??2012-09-05?18:05??cp-u-1.0.14-8\test2\convert.png
?????文件??????11620??2012-09-21?15:18??cp-u-1.0.14-8\test2\convert.txt
............此處省略259個文件信息
評論
共有 條評論