#include "util.h"
#include "vpr_types.h"
#include "OptionTokens.h"

/* OptionBaseTokenList is for command line arg tokens. We will track how 
 * many times each of these things exist in a file */
struct s_TokenPair OptionBaseTokenList[] = {
		{ "settings_file", OT_SETTINGS_FILE }, 
		{ "nodisp", OT_NODISP }, 
		{ "auto", OT_AUTO }, 
		{ "recompute_crit_iter", OT_RECOMPUTE_CRIT_ITER }, 
		{ "inner_loop_recompute_divider", OT_INNER_LOOP_RECOMPUTE_DIVIDER }, 
		{ "fix_pins", OT_FIX_PINS },
		{ "full_stats", OT_FULL_STATS }, 
		{ "fast", OT_FAST }, 
		{ "gen_netlist_as_blif", OT_GEN_NELIST_AS_BLIF}, 
		{ "echo_file", OT_CREATE_ECHO_FILE }, 
		{ "gen_postsynthesis_netlist", OT_GENERATE_POST_SYNTHESIS_NETLIST }, 
		{ "timing_analysis", OT_TIMING_ANALYSIS }, 
		{ "timing_analyze_only_with_net_delay", OT_TIMING_ANALYZE_ONLY_WITH_NET_DELAY },
		{ "init_t", OT_INIT_T }, 
		{ "alpha_t", OT_ALPHA_T }, 
		{ "exit_t", OT_EXIT_T }, 
		{ "inner_num", OT_INNER_NUM }, 
		{ "seed", OT_SEED },
		{ "place_cost_exp", OT_PLACE_COST_EXP }, 
		{ "td_place_exp_first", OT_TD_PLACE_EXP_FIRST }, 
		{ "td_place_exp_last", OT_TD_PLACE_EXP_LAST },
		{ "place_algorithm", OT_PLACE_ALGORITHM }, 
		{ "timing_tradeoff", OT_TIMING_TRADEOFF }, 
		{ "enable_timing_computations", OT_ENABLE_TIMING_COMPUTATIONS },
		{ "block_dist", OT_BLOCK_DIST }, 
		{ "place_chan_width", OT_PLACE_CHAN_WIDTH }, 
		{ "max_router_iterations", OT_MAX_ROUTER_ITERATIONS }, 
		{ "bb_factor", OT_BB_FACTOR }, 
		{ "router_algorithm", OT_ROUTER_ALGORITHM }, 
		{ "first_iter_pres_fac", OT_FIRST_ITER_PRES_FAC }, 
		{ "initial_pres_fac", OT_INITIAL_PRES_FAC }, 
		{ "pres_fac_mult", OT_PRES_FAC_MULT }, 
		{ "acc_fac", OT_ACC_FAC }, 
		{ "astar_fac", OT_ASTAR_FAC }, 
		{ "max_criticality", OT_MAX_CRITICALITY }, 
		{ "criticality_exp", OT_CRITICALITY_EXP }, 
		{ "base_cost_type", OT_BASE_COST_TYPE }, 
		{ "bend_cost", OT_BEND_COST }, 
		{ "route_type", OT_ROUTE_TYPE }, 
		{ "route_chan_width", OT_ROUTE_CHAN_WIDTH },
		{ "trim_empty_chan", OT_TRIM_EMPTY_CHAN },
		{ "trim_obs_chan", OT_TRIM_OBS_CHAN },
		{ "route", OT_ROUTE }, 
		{ "place", OT_PLACE }, 
		{ "verify_binary_search", OT_VERIFY_BINARY_SEARCH },
		{ "outfile_prefix", OT_OUTFILE_PREFIX }, 
		{ "blif_file", OT_BLIF_FILE },
		{ "net_file", OT_NET_FILE }, 
		{ "place_file", OT_PLACE_FILE }, 
		{ "route_file", OT_ROUTE_FILE }, 
		{ "sdc_file", OT_SDC_FILE }, 
		{ "global_clocks", OT_GLOBAL_CLOCKS }, 
		{ "hill_climbing", OT_HILL_CLIMBING_FLAG }, 
		{ "sweep_hanging_nets_and_inputs", OT_SWEEP_HANGING_NETS_AND_INPUTS }, 
		{ "no_clustering", OT_SKIP_CLUSTERING }, 
		{ "allow_unrelated_clustering", OT_ALLOW_UNRELATED_CLUSTERING }, 
		{ "allow_early_exit", OT_ALLOW_EARLY_EXIT }, 
		{ "connection_driven_clustering", OT_CONNECTION_DRIVEN_CLUSTERING }, 
		{ "timing_driven_clustering", OT_TIMING_DRIVEN_CLUSTERING }, 
		{ "cluster_seed_type", OT_CLUSTER_SEED }, 
		{ "alpha_clustering", OT_ALPHA_CLUSTERING },
		{ "beta_clustering", OT_BETA_CLUSTERING }, 
		{ "recompute_timing_after", OT_RECOMPUTE_TIMING_AFTER }, 
		{ "cluster_block_delay", OT_CLUSTER_BLOCK_DELAY }, 
		{ "intra_cluster_net_delay", OT_INTRA_CLUSTER_NET_DELAY }, 
		{ "inter_cluster_net_delay", OT_INTER_CLUSTER_NET_DELAY }, 
		{ "pack", OT_PACK }, 
		{ "packer_algorithm", OT_PACKER_ALGORITHM }, /**/
		{ "activity_file", OT_ACTIVITY_FILE }, /* Activity file */
		{ "power_output_file", OT_POWER_OUT_FILE }, /* Output file for power results */
		{ "power", OT_POWER }, /* Run power estimation? */
		{ "tech_properties", OT_CMOS_TECH_BEHAVIOR_FILE }, /* Technology properties */
		{ "routing_failure_predictor", OT_ROUTING_FAILURE_PREDICTOR }, /* Routing failure predictor */

#ifdef INTERPOSER_BASED_ARCHITECTURE
		{ "percent_wires_cut", OT_PERCENT_WIRES_CUT },
		{ "num_cuts", OT_NUM_CUTS },
		{ "delay_increase", OT_DELAY_INCREASE },
		{ "placer_cost_constant", OT_PLACER_COST_CONSTANT },
		{ "constant_type", OT_CONSTANT_TYPE },
		{ "allow_chanx_conn", OT_ALLOW_CHANX_CONN },
		{ "allow_fanin_transfer", OT_ALLOW_FANIN_TRANSFER },
		{ "allow_additional_fanin", OT_ALLOW_ADDITIONAL_FANIN },
		{ "allow_fanout_transfer", OT_ALLOW_FANOUT_TRANSFER },
		{ "allow_additional_fanout", OT_ALLOW_ADDITIONAL_FANOUT },
		{ "pct_interp_to_drive", OT_PCT_INTERP_TO_DRIVE },
		{ "pct_interp_to_be_driven_by", OT_PCT_INTERP_TO_BE_DRIVEN_BY },
		{ "allow_bidir_interposer_wires", OT_ALLOW_BIDIR_INTERP_WIRES },
#endif

		{ NULL, OT_BASE_UNKNOWN } /* End of list marker */
};

struct s_TokenPair OptionArgTokenList[] = { 
		{ "on", OT_ON }, 
		{ "off", OT_OFF },
		{ "random", OT_RANDOM }, 
		{ "bounding_box", OT_BOUNDING_BOX }, 
		{ "net_timing_driven", OT_NET_TIMING_DRIVEN }, 
		{ "path_timing_driven", OT_PATH_TIMING_DRIVEN }, 
		{ "breadth_first", OT_BREADTH_FIRST }, 
		{ "timing_driven", OT_TIMING_DRIVEN }, 
		{ "NO_TIMING", OT_NO_TIMING }, 
		{ "intrinsic_delay", OT_INTRINSIC_DELAY }, 
		{ "delay_normalized", OT_DELAY_NORMALIZED }, 
		{ "demand_only", OT_DEMAND_ONLY }, 
		{ "global", OT_GLOBAL }, 
		{ "detailed", OT_DETAILED }, 
		{ "timing", OT_TIMING }, 
		{ "max_inputs", OT_MAX_INPUTS }, 
		{ "blend", OT_BLEND }, 
		{ "greedy", OT_GREEDY }, 
		{ "lp", OT_LP }, 
		{ "brute_force", OT_BRUTE_FORCE },
		{ "safe", OT_ROUTING_FAILURE_SAFE },
		{ "aggressive", OT_ROUTING_FAILURE_AGGRESSIVE },
		{ NULL, OT_BASE_UNKNOWN } /* End of list marker */
};
