亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? database.h

?? C語言前端編譯器,yacc/lex編寫,可自行修改代碼.
?? H
字號:
// Copyright 2002 by Keith Vallerio.
// All rights reserved.

/************************************************************
  database.h

  The database is the main class of the program.  It contains
the AST, functions, variables, call graph, and task graphs.
This class provides interface between its various components.
Maps are used to provide quick lookups of user-defined data 
types, variables and functions.
************************************************************/

#ifndef DATABASE_H_
#define DATABASE_H_

#include "RVector.h"
#include "RString.h"
#include <iostream>
#include <fstream>
#include <map>
#include "function.h"
#include "tree.h"
#include "node.h"
#include "fgraph.h"

// DB contains everything
class DB {
	// contains all functions and variables in original source
	RVector<Function> function_;
	RVector<Var> variable_;

	// pointer to the only DB (there can be only one)
	static DB * def_db_;

	// the AST
	RVector<TreeNode> tree_node_;
	RVector<long> tree_start_;

	// Maps for quick lookups of vectors in DB
	map<string, long> type_map_;
	map<string, long> func_map_;
	map<string, long> var_map_;

	// for parsing tree
	bool fn_redeclaration_;

	// Task (dependence) graphs for each function
	TGraph tg_;
	RVector<TGraph> fg_;

	// function call graph
	FGraph call_graph_;

	// records profiling information
	RVector<RVector<string> > annote_data_;
	
	RVector<string> func_def_name_list_;
	set<string> undefined_structs_;
public:
	// Constructor
   DB ();

	// main analysis functions
	void interpret();
	void profile();

	// annotate original C to indicate which tasks are which
	void print_task_graph_c ();

	// profiling functions
	void print_annotated_c ();
	void prof_recompile();
	void prof_rerun();
	void prof_read_data();
	void prof_get_arc_lengths();
	long determine_node_function_out_size (long f, long n);

	// profiling cleanup functions
	void set_all_fc_task_times ();
	void set_se_task_time (long f, long tree_node, TimeUnit t);
	void set_lc_task_time (long f, long tree_node, TimeUnit t);

	// generate vcg task graphs
	void print_task_graphs();
	void print_standard_task_graphs();

	// intepretation functions
	void do_dependence();
	void build_call_graph();
	TGraph fn_dep (long id);
	RVector<long> add_alias_data (long fn, pair<long,long> a_node);
	RVector<long> do_func_call (long id, long fc_num);
	long get_assign_lhs_var (long fn, pair<long,long> a_node);
	void update_lhs_var_aliases (long id, RVector<long> lhs_var);

	// Gets the default Dbase
	static DB & write_db() { return *def_db_; }
	static const DB & db() { return *def_db_; }

	// construction
	Function function(long i) { return function_[i]; }
	const Function function(long i) const { return function_[i]; }
	Var variable(long i) { return variable_[i]; }
	const Var variable(long i) const { return variable_[i]; }

	long add_function (string n, string t, RVector<string> s);
	long add_func_call (long f, string c, long r, long node);
	void add_variable (long f, string n, string t, RVector<string> s,
							long size);
	void add_parameter (long f, string n, string t, RVector<string> s);
	void add_func_call_arg (long f, long c, long a, ArgType atype);

	// query
	long size_function () { return function_.size(); }
	const long size_function () const { return function_.size(); }
	long size_variable () { return variable_.size(); }
	const long size_variable () const { return variable_.size(); }

	long func_map (string s);
	long var_map (string s);
	void set_function_defined (long f) { function_[f].set_defined(); }
	long get_literal_id (string s);

	bool type_map_insert(string s, long length);
	long type_map_lookup(string s);

	////////////////////////////////////////
	// AST related functions
	////////////////////////////////////////
	// main AST analysis function
	void interpret_tree();

	// AST analysis helper functions
	long get_ancestor (long n, string s);
	long has_child (long n, string s);
	string node_child_name (long n, long c);
	string node_parent_name (long n);
	string get_first_var_child (long n, long curr_function);
	long get_next_literal (long tn);

	// AST construction
	void add_tree_node(string str, int num_subtrees, string space);

	// output functions
	void print_terminals () const;
	void print_fgraph_vcg ();
	void print_tgraph_vcg ();
	void print_tree_vcg () const;

	string create_var_name (string s, long f);
};

// utility functions
void vector_merge (RVector<string> a, RVector<string> b,RVector<string> &out);
ostream & operator<<(ostream & os, const DB & db_a);
#endif









?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本一道波多野结衣一区二区 | 国产一区二区福利| 一区二区欧美精品| 中文字幕中文在线不卡住| 久久在线观看免费| 欧美本精品男人aⅴ天堂| 欧美在线制服丝袜| 91视频免费播放| 99国产精品久久久久久久久久| 国产米奇在线777精品观看| 免费观看一级欧美片| 婷婷久久综合九色综合绿巨人| 亚洲综合免费观看高清完整版 | 福利视频网站一区二区三区| 国产在线视视频有精品| 国产一区欧美一区| 老司机精品视频线观看86| 免费在线视频一区| 日韩不卡一二三区| 日本aⅴ亚洲精品中文乱码| 日韩二区在线观看| 久久精品99国产精品| 蜜桃av噜噜一区| 免费成人你懂的| 精品一区二区三区av| 激情五月婷婷综合| 国产乱码精品一区二区三| 国内成人精品2018免费看| 国产福利精品一区二区| 国产ts人妖一区二区| 国产美女娇喘av呻吟久久 | 欧美一区二区三区四区高清| 91精品国产一区二区三区蜜臀 | 精品一区二区免费看| 狠狠狠色丁香婷婷综合激情| 国产高清精品网站| 成人不卡免费av| 一本大道综合伊人精品热热| 欧美精品日韩精品| 日韩欧美一卡二卡| 国产日韩欧美不卡| 一区二区在线观看免费视频播放| 亚洲国产日产av| 免费一级欧美片在线观看| 国产一区二区三区| 成人免费毛片aaaaa**| 一本久久精品一区二区| 欧美日韩日日摸| 精品国产凹凸成av人导航| 国产精品久久久久影院老司| 中文字幕电影一区| 亚洲国产成人av| 免费看黄色91| av电影在线观看一区| 精品视频在线视频| 精品久久久久久综合日本欧美| 国产亚洲va综合人人澡精品| 亚洲免费在线视频一区 二区| 亚洲第一搞黄网站| 国产成人精品免费一区二区| 欧美主播一区二区三区| 精品女同一区二区| 欧美国产综合色视频| 五月天国产精品| 国产成人午夜99999| 91精品1区2区| 久久综合精品国产一区二区三区 | 日日摸夜夜添夜夜添国产精品| 国产麻豆精品视频| 欧美伊人久久大香线蕉综合69| 欧美日韩aaaaaa| 国产精品网曝门| 日日夜夜精品视频免费| 成人sese在线| 欧美美女喷水视频| 国产精品久久久久桃色tv| 日韩精品亚洲一区二区三区免费| 国产在线播精品第三| 欧美午夜精品理论片a级按摩| 精品国产91洋老外米糕| 亚洲国产视频直播| 色综合婷婷久久| 7777精品伊人久久久大香线蕉| 337p粉嫩大胆色噜噜噜噜亚洲| 精品99一区二区三区| 制服丝袜av成人在线看| 日本成人在线一区| 不卡一卡二卡三乱码免费网站| 欧美午夜精品理论片a级按摩| 最新国产精品久久精品| 久久99精品国产麻豆婷婷洗澡| 91久久精品日日躁夜夜躁欧美| 国产日本一区二区| 91麻豆精品国产91久久久| 亚洲美女屁股眼交| 欧美亚洲一区二区三区四区| 亚洲国产日日夜夜| 欧美一级在线视频| 亚洲国产一二三| 欧美军同video69gay| 日韩电影免费在线看| 欧美一区二区三区日韩| 久久疯狂做爰流白浆xx| 天天av天天翘天天综合网色鬼国产| 欧美日精品一区视频| 午夜精品久久久久久久久| 91国偷自产一区二区三区观看 | 国产乱国产乱300精品| 国产精品五月天| 91精品91久久久中77777| 久久精品国产澳门| 国产精品免费网站在线观看| 91成人看片片| 久久精品国产精品亚洲精品| 国产精品理论片在线观看| 欧美日韩免费在线视频| 国产精品资源在线观看| 亚洲精品一二三四区| 欧美一级理论性理论a| 成人黄动漫网站免费app| 午夜精品123| 中文字幕免费不卡在线| 欧美午夜视频网站| 国产老妇另类xxxxx| 亚洲综合视频在线| 久久久国产精华| 欧美日韩一区二区三区在线看| 国内一区二区在线| 夜夜爽夜夜爽精品视频| 国产喂奶挤奶一区二区三区| 欧美日韩国产一二三| 国产 日韩 欧美大片| 三级亚洲高清视频| 中文字幕一区二区三区视频| 日韩三级高清在线| 在线观看中文字幕不卡| 国产69精品一区二区亚洲孕妇| 亚洲.国产.中文慕字在线| 中文字幕av在线一区二区三区| 日韩一区二区中文字幕| 色琪琪一区二区三区亚洲区| 国产伦理精品不卡| 日本亚洲最大的色成网站www| 亚洲日本va午夜在线电影| 久久色成人在线| 在线不卡中文字幕| 欧美亚洲高清一区二区三区不卡| 国产aⅴ精品一区二区三区色成熟| 肉丝袜脚交视频一区二区| 亚洲免费色视频| 欧美激情综合在线| 日韩欧美一级片| 在线不卡中文字幕| 欧美系列在线观看| 91视频91自| 不卡视频一二三| 国产黑丝在线一区二区三区| 九一九一国产精品| 亚洲成av人片| 亚洲少妇中出一区| 中文字幕av一区二区三区免费看| 精品久久人人做人人爰| 5566中文字幕一区二区电影| 欧美日韩亚洲国产综合| 色婷婷综合久久| 99久久伊人网影院| 国产91高潮流白浆在线麻豆| 狠狠狠色丁香婷婷综合激情| 麻豆91精品91久久久的内涵| 五月天久久比比资源色| 午夜成人免费视频| 亚洲成a人v欧美综合天堂| 亚洲专区一二三| 一区2区3区在线看| 亚洲综合色丁香婷婷六月图片| 一区二区三区视频在线看| 亚洲精品视频免费看| 亚洲欧美另类图片小说| 亚洲色大成网站www久久九九| 亚洲欧美综合另类在线卡通| 国产精品久久久久久久久免费樱桃 | 亚洲欧美综合色| 亚洲欧美色综合| 亚洲欧美日韩久久精品| 亚洲精品免费看| 一区二区三区日韩欧美精品| 亚洲综合色区另类av| 性久久久久久久久久久久 | 精品区一区二区| www国产成人| 中文一区二区在线观看| 亚洲欧洲日本在线| 亚洲免费伊人电影| 亚洲成人av免费| 日本美女一区二区三区视频| 美女脱光内衣内裤视频久久影院| 久久精品99久久久| 国产成人av电影免费在线观看| 成人短视频下载| 在线欧美一区二区|