• 大小: 4.61MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-07
  • 语言: 其他
  • 标签: 流程图  自动生成  

资源简介

对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个文件信息

评论

共有 条评论