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

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

?? options.cpp

?? 一個開源的網絡開發庫ACE
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// -*- C++ -*-

// Options.cpp,v 4.39 2001/12/31 14:12:58 jwillemsen Exp

// Handles parsing the Options provided to the user.

// Copyright (C) 1989 Free Software Foundation, Inc.
// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)

// This file is part of GNU GPERF.

// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

#include "Options.h"

ACE_RCSID(src, Options, "Options.cpp,v 4.39 2001/12/31 14:12:58 jwillemsen Exp")

#if defined (ACE_HAS_GPERF)

#include "ace/Get_Opt.h"
#include "Iterator.h"

// Global option coordinator for the entire program.
Options option;

// Current program version.
extern const char *version_string;

// Size to jump on a collision.
static const int DEFAULT_JUMP_VALUE = 5;

// Default name for generated lookup function.
static const char *const DEFAULT_NAME = "in_word_set";

// Default filler for keyword table.
static const char *const DEFAULT_FILL = "";

// Default name for the key component.
static const char *const DEFAULT_KEY = "name";

// Default name for the generated class.
static const char *const DEFAULT_CLASS_NAME = "Perfect_Hash";

// Default name for generated hash function.
static const char *const DEFAULT_HASH_NAME = "hash";

// Default delimiters that separate keywords from their attributes.
static const char *const DEFAULT_DELIMITERS = ",\n";

int Options::option_word_;
int Options::total_switches_;
u_int Options::total_keysig_size_;
int Options::size_;
int Options::key_pos_;
int Options::jump_;
int Options::initial_asso_value_;
int Options::argc_;
char **Options::argv_;
int Options::iterations_;
const char *Options::function_name_;
const char *Options::fill_default_;
const char *Options::key_name_;
const char *Options::class_name_;
const char *Options::hash_name_;
const char *Options::delimiters_;
char Options::key_positions_[MAX_KEY_POS];

// Prints program usage to standard error stream.

void
Options::usage (void)
{
  ACE_ERROR ((LM_ERROR,
              "Usage: %n [-abBcCdDef[num]gGhH<hashname>i<init>IjJ"
              "k<keys>K<keyname>lL<language>mMnN<function name>o"
              "Oprs<size>S<switches>tTvVZ<class name>].\n"
              "(type %n -h for help)\n"));
}

// Output command-line Options.

void
Options::print_options (void)
{
  int i;

  ACE_OS::printf ("/* Command-line: ");

  for (i = 0; i < argc_; i++)
    ACE_OS::printf ("%s ",
                    argv_[i]);

  ACE_OS::printf (" */");
}

// Sorts the key positions *IN REVERSE ORDER!!* This makes further
// routines more efficient.  Especially when generating code.  Uses a
// simple Insertion Sort since the set is probably ordered.  Returns 1
// if there are no duplicates, 0 otherwise.

int
Options::key_sort (char *base, int len)
{
  int i, j;

  for (i = 0, j = len - 1; i < j; i++)
    {
      int curr, tmp;

      for (curr = i + 1, tmp = base[curr];
           curr > 0 && tmp >= base[curr - 1];
           curr--)
        if ((base[curr] = base[curr - 1]) == tmp)
          // Oh no, a duplicate!!!
          return 0;

      base[curr] = tmp;
    }

  return 1;
}

// Sets the default Options.

Options::Options (void)
{
  key_positions_[0] = WORD_START;
  key_positions_[1] = WORD_END;
  key_positions_[2] = EOS;
  total_keysig_size_ = 2;
  delimiters_ = DEFAULT_DELIMITERS;
  jump_ = DEFAULT_JUMP_VALUE;
  option_word_ = DEFAULTCHARS | C;
  function_name_ = DEFAULT_NAME;
  fill_default_ = DEFAULT_FILL;
  key_name_ = DEFAULT_KEY;
  hash_name_ = DEFAULT_HASH_NAME;
  class_name_ = DEFAULT_CLASS_NAME;
  total_switches_ = size_ = 1;
  initial_asso_value_ = iterations_ = 0;
}

// Dumps option status when debug is set.

Options::~Options (void)
{
  if (ACE_BIT_ENABLED (option_word_, DEBUGGING))
    {
      char *ptr;

      ACE_OS::fprintf (stderr,
                       "\ndumping Options:"
                       "\nDEBUGGING is...: %s"
                       "\nORDER is.......: %s"
                       "\nANSI is........: %s"
                       "\nTYPE is........: %s"
                       "\nINLINE is......: %s"
                       "\nRANDOM is......: %s"
                       "\nDEFAULTCHARS is: %s"
                       "\nSWITCH is......: %s"
                       "\nPOINTER is.....: %s"
                       "\nNOLENGTH is....: %s"
                       "\nLENTABLE is....: %s"
                       "\nDUP is.........: %s"
                       "\nFAST is........: %s"
                       "\nCOMP is........: %s"
                       "\nNOTYPE is......: %s"
                       "\nGLOBAL is......: %s"
                       "\nCONSTANT is....: %s"
                       "\nCPLUSPLUS is...: %s"
                       "\nC is...........: %s"
                       "\nENUM is........: %s"
                       "\nSTRCASECMP is..: %s"
                       "\nOPTIMIZE is....: %s"
                       "\nLINEARSEARCH is: %s"
		       "\nBINARYSEARCH is: %s"
                       "\niterations = %d"
                       "\nlookup function name = %s"
                       "\nfill default = %s"
                       "\nhash function name = %s"
                       "\nkey name = %s"
                       "\njump value = %d"
                       "\nmax associcated value = %d"
                       "\ninitial associated value = %d"
                       "\ndelimiters = %s"
                       "\nnumber of switch statements = %d"
                       "\n",
                       ACE_BIT_ENABLED (option_word_, DEBUGGING) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, ORDER) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, ANSI) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, TYPE) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, INLINE) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, RANDOM) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, DEFAULTCHARS) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, SWITCH) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, POINTER) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, NOLENGTH) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, LENTABLE) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, DUP) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, FAST) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, COMP) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, NOTYPE) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, GLOBAL) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, CONSTANT) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, CPLUSPLUS) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, C) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, ENUM) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, STRCASECMP) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, OPTIMIZE) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, LINEARSEARCH) ? "enabled" : "disabled",
                       ACE_BIT_ENABLED (option_word_, BINARYSEARCH) ? "enabled" : "disabled",
                       iterations_,
                       function_name_,
                       fill_default_,
                       hash_name_,
                       key_name_,
                       jump_,
                       size_ - 1,
                       initial_asso_value_,
                       delimiters_,
                       total_switches_);
      if (ACE_BIT_ENABLED (option_word_, ALLCHARS))
        ACE_OS::fprintf (stderr,
                         "all characters are used in the hash function\n");

      ACE_OS::fprintf (stderr,
                       "maximum keysig size = %d\nkey positions are: \n",
                       total_keysig_size_);

      for (ptr = key_positions_; *ptr != EOS; ptr++)
        if (*ptr == WORD_END)
          ACE_OS::fprintf (stderr, "$\n");
        else
          ACE_OS::fprintf (stderr, "%d\n", *ptr);

      ACE_OS::fprintf (stderr, "finished dumping Options\n");
    }
}

// Parses the command line Options and sets appropriate flags in
// option_word_.

int
Options::parse_args (int argc, char *argv[])
{
  if (ACE_LOG_MSG->open (argv[0]) == -1)
    return -1;

  ACE_Get_Opt getopt (argc, argv, "abBcCdDe:Ef:F:gGhH:i:IJj:k:K:lL:mMnN:oOprs:S:tTvVZ:");
  int option_char;

  argc_ = argc;
  argv_ = argv;

  while ((option_char = getopt ()) != -1)
    {
      switch (option_char)
        {
          // Generated coded uses the ANSI prototype format.
        case 'a':
          {
            ACE_SET_BITS (option_word_, ANSI);
            break;
          }
          // Generate code for Linear Search.
	case 'b':
	  {
	    ACE_SET_BITS (option_word_, LINEARSEARCH);
            break;
	  }
          // Generate code for Binary Search.
        case 'B':
	  {
	    ACE_SET_BITS (option_word_, BINARYSEARCH);
	    break;
	  }
          // Generate strncmp rather than strcmp.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本道色综合久久| 欧美96一区二区免费视频| 日韩女优电影在线观看| 欧美三级日韩三级| 欧美日韩一区中文字幕| 欧美视频在线不卡| 在线综合亚洲欧美在线视频| 欧美日韩精品一区二区天天拍小说 | 久久久久久久综合日本| 久久久久久免费网| 国产精品乱码人人做人人爱| 国产精品污网站| 亚洲美女视频在线观看| 亚洲永久免费视频| 日韩精品电影在线观看| 狠狠色丁香久久婷婷综合_中 | 久久精品人人爽人人爽| 亚洲国产岛国毛片在线| 玉足女爽爽91| 久久精品国产免费| 99久久婷婷国产精品综合| 91久久线看在观草草青青| 欧美日本高清视频在线观看| 91精品国产高清一区二区三区蜜臀| 欧美成人一区二区| 国产精品人人做人人爽人人添| 亚洲精品国产无套在线观| 日本欧美一区二区在线观看| 国产91丝袜在线播放| 91在线免费看| 日韩欧美国产电影| 中文字幕一区二区三区色视频| 亚洲成av人在线观看| 国产一区二区久久| 欧美午夜精品免费| 中文无字幕一区二区三区| 亚洲图片欧美色图| 丰满放荡岳乱妇91ww| 欧美日韩高清一区二区| 国产精品狼人久久影院观看方式| 性做久久久久久久久| 成人亚洲一区二区一| 欧美一区二区三区免费大片 | 日本一区中文字幕| 成人国产在线观看| 精品国产乱码久久久久久久| 亚洲精品高清视频在线观看| 国产一区二区三区免费在线观看 | 精品国产第一区二区三区观看体验 | 91精品国产品国语在线不卡| 亚洲欧美综合色| 国内精品免费**视频| 欧美日韩亚洲另类| 亚洲品质自拍视频| 国产成人高清视频| 精品少妇一区二区三区免费观看 | 国产一区啦啦啦在线观看| 欧美日韩在线播放| 夜夜精品浪潮av一区二区三区| 高清国产一区二区| 国产午夜精品一区二区三区视频| 日韩电影免费在线| 在线播放91灌醉迷j高跟美女| 亚洲欧美视频在线观看| www.一区二区| 国产精品嫩草99a| 成人免费视频网站在线观看| 久久综合一区二区| 国产原创一区二区三区| 亚洲精品一区二区三区在线观看 | 亚洲一区二区三区四区的| 不卡一区二区在线| 国产精品萝li| 99久久99久久免费精品蜜臀| 亚洲欧洲av色图| 色婷婷综合久久久久中文 | 欧美一级免费观看| 免费看精品久久片| 精品国产乱码久久久久久蜜臀| 欧美aaa在线| 久久精品视频网| 懂色av一区二区三区免费看| 中文字幕中文字幕一区二区| 99在线视频精品| 一二三四社区欧美黄| 精品视频在线免费观看| 免费在线视频一区| 26uuu另类欧美亚洲曰本| 国产盗摄一区二区| 亚洲精品日产精品乱码不卡| 欧美日韩一卡二卡| 韩日av一区二区| 中文字幕一区二区三区在线不卡| 91美女福利视频| 日韩av一区二| 国产亚洲一区二区三区在线观看| 成人精品国产免费网站| 亚洲免费在线观看| 日韩视频在线观看一区二区| 久久国产视频网| 亚洲四区在线观看| 555夜色666亚洲国产免| 国产一区二区剧情av在线| 亚洲精品日韩综合观看成人91| 欧美一级在线免费| a级精品国产片在线观看| 午夜国产精品一区| 欧美国产日韩精品免费观看| 欧美一a一片一级一片| 国产一区二区三区精品欧美日韩一区二区三区 | 中文字幕在线观看不卡| 欧美日韩国产片| 国产成人在线免费| 亚洲午夜久久久久久久久电影网| 日韩欧美第一区| 色一情一伦一子一伦一区| 国产一区二区三区在线观看免费视频 | 欧美一区二区播放| 色综合天天狠狠| 国产乱子轮精品视频| 午夜精品在线视频一区| 国产精品久久久爽爽爽麻豆色哟哟| 欧美乱妇20p| 在线视频国内自拍亚洲视频| 国产高清视频一区| 欧美aⅴ一区二区三区视频| 亚洲最新在线观看| 国产精品高潮呻吟久久| 亚洲精品一区二区三区香蕉 | 久草精品在线观看| 亚瑟在线精品视频| 一区二区国产视频| 亚洲三级久久久| 日本一区二区三区电影| 精品久久久久久久久久久久久久久久久 | 欧美久久久久免费| 色综合天天狠狠| 91无套直看片红桃| 成人高清免费观看| 国产999精品久久| 国产成人在线观看| 粉嫩欧美一区二区三区高清影视| 久久超碰97中文字幕| 日韩精品欧美精品| 日韩黄色小视频| 亚洲国产精品久久久久秋霞影院 | 亚洲色图欧美偷拍| 国产精品日韩精品欧美在线| 国产欧美日韩精品a在线观看| 久久综合九色综合久久久精品综合 | 欧洲av一区二区嗯嗯嗯啊| av中文一区二区三区| 成人动漫av在线| 91麻豆swag| 欧洲日韩一区二区三区| 欧美在线一区二区| 欧美日韩免费一区二区三区视频| 欧美系列在线观看| 51精品久久久久久久蜜臀| 欧美一区日韩一区| 欧美一区二区免费| 欧美精品一区二区三| 国产日韩欧美制服另类| 国产精品你懂的| 亚洲国产欧美日韩另类综合| 日韩国产一二三区| 国产在线视视频有精品| 成人精品gif动图一区| 色欧美乱欧美15图片| 777a∨成人精品桃花网| 久久久一区二区| 1000精品久久久久久久久| 亚洲一区视频在线| 麻豆精品一区二区| 成人av高清在线| 欧美日韩电影在线| 久久精品亚洲乱码伦伦中文| 综合久久国产九一剧情麻豆| 亚洲18女电影在线观看| 国产精品一区二区久久精品爱涩| av不卡一区二区三区| 欧美三级一区二区| 久久久久亚洲蜜桃| 一区二区三区中文在线| 久久机这里只有精品| 91久久精品一区二区二区| 日韩欧美二区三区| 一区二区三区91| 韩国精品一区二区| 欧美系列在线观看| 亚洲国产精品成人综合| 午夜精品成人在线视频| 国产成人精品影院| 91精品国产综合久久久久久久| 国产亚洲综合色| 蜜臀av性久久久久蜜臀aⅴ流畅| 成人av资源站| 久久久久久久久免费| 石原莉奈一区二区三区在线观看| 懂色中文一区二区在线播放|