unsigned int pass_generic() { warning(0, "%<%s%>", context); basic_block bb; gimple_stmt_iterator gsi; /* fprintf( stderr, "* MYPROOF on %s()\n", IDENTIFIER_POINTER(DECL_NAME(cfun->decl)) ); */ FOR_EACH_BB( bb ) { /* fprintf( stderr, " ** BB %d\n", bb->index ); */ for ( gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi) ) { /* print_gimple_stmt ( stdout, gsi_stmt(gsi), 0, 0 ); */ read_stmt( gsi_stmt(gsi) ); } } /* recursively read loops */ if ( cfun->x_current_loops != NULL ) { read_loop( cfun->x_current_loops->tree_root ); } return 0; }
unsigned int pass_variable() { warning(0, "%<%s%>", context); const char *identifier = IDENTIFIER_POINTER(DECL_NAME(cfun->decl)); t_myproof_function *function = mylist_find( g_myproof_pass->functions, function_exists, (void*)identifier ); if ( function == NULL ) { fprintf( stderr, "myproof: pass_variable: unhandled \'%s\' function\n", identifier ); return 0; } basic_block bb; gimple_stmt_iterator gsi; FOR_EACH_BB( bb ) { for ( gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi) ) { read_stmt( gsi_stmt(gsi), function ); } } if ( cfun->x_current_loops != NULL ) { read_loop( cfun->x_current_loops->tree_root, function ); } return 0; }
TreeNode* statement(void) { TreeNode* t = NULL; switch(s_token) { case IF: t = if_stmt(); break; case REPEAT: t = repeat_stmt(); break; case ID: t = assign_stmt(); break; case READ: t = read_stmt(); break; case WRITE: t = write_stmt(); break; default: syntaxError("unexpected token -> "); printToken(s_token, g_tokenString); s_token = getToken(); break; } return t; }
TreeNode * statement(void) { TreeNode * t = NULL; switch (token) { case IF : t = if_stmt(); break; case REPEAT : t = repeat_stmt(); break; case FOR : t = for_stmt(); break; //ADICIONADO O FOR COMO UMA DECLARAÇÃO case ID : t = assign_stmt(); break; case READ : t = read_stmt(); break; case WRITE : t = write_stmt(); break; default : syntaxError("unexpected token -> "); printToken(token,tokenString); token = getToken(); break; } /* end case */ return t; }