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

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

?? symtab.cpp

?? 能對輸入的語句進行分析
?? CPP
字號:
//------------------------------------
//  symtab.cpp
//  (c) Bartosz Milewski, 1994
//------------------------------------

#include "symtab.h"

#include <cassert>
#include <cstring>
#include <cmath>
#include <iostream>
using std::cout;
using std::endl;

double CoTan (double x) 
{
    double y = tan (x);
    if (y == 0)
    {
        cout << "cotan of " << x << " undefined\n";
        return HUGE_VAL;
    }
    return 1.0 / y;
}

FunctionEntry funArr [maxIdFun] =
{ 
    log,  "log",
    log10,"log10",
    exp,  "exp",
    sqrt, "sqrt",
    sin,  "sin",
    cos,  "cos",
    tan,  "tan",
    CoTan,"cotan",
    sinh, "sinh",
    cosh, "cosh",
    tanh, "tanh",
    asin, "asin",
    acos, "acos",
    atan, "atan",
    0,    ""
};

FunctionTable::FunctionTable (SymbolTable & symTab, FunctionEntry funArr [])
    : _size(0)
{
    for (int i = 0; i < maxIdFun; ++i)
    {
        int len =  strlen (funArr [i].strFun);
        if (len == 0)
            break;
        _pFun [i] = funArr [i].pFun;
        cout << funArr[i].strFun << endl;
        int j = symTab.ForceAdd (funArr[i].strFun, len);
        assert (i == j);
        ++_size;
    }
}

List::List ()
    : _pHead(0)
{}

List::~List ()
{
    // free linked list
    while (_pHead != 0)
    {
        Link * pLink = _pHead;
        _pHead = _pHead->Next();
        delete pLink;
    }
}

void List::Add (int id)
{
    // add in front of the list
    Link * pLink = new Link (_pHead, id);
    _pHead = pLink;
}

// Find the list in hash table that may contain
// the id of the string we are looking for

List const & HTable::Find (char const * str, int len) const
{
    int i = hash (str, len);
    assert (i >= 0 && i < _size);
    return _aList [i];
}

void HTable::Add (char const * str, int len, int id)
{
    int i = hash (str, len);
    assert (i >= 0 && i < _size);
    _aList [i].Add (id);
}

// Private hashing function

int HTable::hash (char const * str, int len) const
{
    // no empty strings, please
    assert (len != 0);
    // must be unsigned, hash should return positive number
    unsigned h = str [0];
    for (int i = 1; i < len; ++i)
        h = (h << 4) + str [i];
    return h % _size;  // small positive integer
}

SymbolTable::SymbolTable (int size)
    : _size (size), _curId (0), _curStrOff (0), _htab (size + 1)
{
    _offStr = new int [size];
    _bufSize = size * 10;
    _strBuf = new char [_bufSize];
}

SymbolTable::~SymbolTable()
{
    delete []_offStr;
    delete []_strBuf;
}

// Add string without looking for duplicates

int SymbolTable::ForceAdd (char const * str, int len)
{
    // is there enough space?
    if (_curId == _size
        || _curStrOff + len + 1 >= _bufSize)
    {
        return idNotFound;
    }
    // point to place where the string will be stored
    _offStr [_curId] = _curStrOff;
    // copy the string there
    strncpy (&_strBuf [_curStrOff], str, len);
    // calculate new offset
    _curStrOff += len;
    _strBuf [_curStrOff] = 0;  // null terminate
    ++_curStrOff;
    // add to hash table
    _htab.Add (str, len, _curId);
    ++_curId;
    return _curId - 1;
}

int SymbolTable::Find (char const * str, int len) const
{
    // Get a short list from hash table
    List const & list = _htab.Find (str, len);
    // Iterate over this list
    for (Link const * pLink = list.GetHead ();
        pLink != 0;
        pLink = pLink->Next () )
    {
        int id = pLink->Id ();
        int offStr = _offStr [id];
        // char const * strStored = &_strBuf [ offStr ];
        char const * strStored = _strBuf + offStr;
        if (strcmp (str, strStored, len) == 0) // they're equal
        {
            return id;  // success!
        }
    }
    return idNotFound;
}

// map integer into string. Must be valid id

char const * SymbolTable::GetString (int id) const
{
    assert (id >= 0);
    assert (id < _curId);
    int offStr = _offStr [id];
    return &_strBuf [offStr];
    // return _strBuf + offStr;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色老头old∨ideo| 日韩av中文字幕一区二区| 成人动漫在线一区| 国产精品美日韩| 91免费看片在线观看| 色综合久久综合中文综合网| 成人av网在线| 日韩一区二区精品在线观看| 成人免费一区二区三区在线观看| 日韩三级免费观看| 综合激情网...| 亚洲精品va在线观看| 欧美午夜精品免费| 久久成人久久鬼色| 中文字幕在线观看不卡| 不卡的av在线| 亚洲成va人在线观看| 91麻豆精品国产91久久久资源速度| 69堂亚洲精品首页| 国产综合一区二区| 免费高清在线视频一区·| 欧美成人免费网站| 不卡在线观看av| 天堂蜜桃一区二区三区| 精品成人私密视频| 日本久久电影网| 亚洲最大成人网4388xx| 欧美精选午夜久久久乱码6080| 91精品国产综合久久久久久久| 国产三级一区二区| 在线观看亚洲一区| 国产精品一卡二| 一区二区三区四区在线| 精品国产免费久久| 色婷婷激情一区二区三区| 卡一卡二国产精品| 亚洲一区中文日韩| 久久精品亚洲国产奇米99| 欧美日韩国产精品成人| 久久精品噜噜噜成人av农村| 综合久久久久久| 欧美电影免费观看高清完整版在| 亚洲男人的天堂在线观看| 欧美精品丝袜中出| 99久久夜色精品国产网站| 欧美日韩成人综合天天影院| 一区二区三区四区激情| 在线影院国内精品| 性做久久久久久免费观看| 69堂精品视频| 亚洲另类春色国产| 91精品国产综合久久小美女| 一本大道久久a久久综合婷婷| 国产精品嫩草99a| 欧美精品一区二区三区在线| 欧美精品欧美精品系列| 91视频一区二区三区| 国产成人久久精品77777最新版本| 91麻豆精品国产91久久久久| eeuss鲁一区二区三区| 极品美女销魂一区二区三区| 成人午夜精品在线| 久久福利资源站| 日韩精品免费专区| 亚洲电影第三页| 一区二区三区蜜桃| 亚洲蜜臀av乱码久久精品| 综合av第一页| 亚洲精品伦理在线| 亚洲美女免费在线| 亚洲乱码中文字幕综合| 中文在线免费一区三区高中清不卡| 成人白浆超碰人人人人| 国产福利一区二区| 国产精品综合av一区二区国产馆| 日韩欧美国产综合| 欧美日韩国产高清一区二区三区| 免费成人av资源网| 首页国产丝袜综合| 日韩av电影免费观看高清完整版在线观看| 精品免费国产二区三区| 精品欧美乱码久久久久久| 精品欧美久久久| 中文字幕不卡在线播放| 国产日产欧产精品推荐色| 久久九九久久九九| 国产精品无码永久免费888| 国产精品久久久久一区二区三区共| 欧美亚洲一区二区在线观看| 久久91精品久久久久久秒播| 亚洲国产欧美一区二区三区丁香婷| 日本欧美大码aⅴ在线播放| 国产精品少妇自拍| 欧美主播一区二区三区美女| 欧美性感一区二区三区| 9191久久久久久久久久久| 欧美一区二区高清| 日韩一区二区精品在线观看| 91精品国产色综合久久| 日韩精品中文字幕在线一区| 精品国产免费视频| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品国产三级国产普通话蜜臀| 粉嫩av亚洲一区二区图片| 欧美日韩一区二区三区高清| 制服丝袜中文字幕一区| 欧美一区二区三区免费观看视频 | 婷婷夜色潮精品综合在线| 亚洲国产精品影院| 免费一区二区视频| 99热精品一区二区| 欧美伊人精品成人久久综合97| 久久99国产精品免费网站| 国产一区二区在线看| 91在线精品秘密一区二区| 欧美福利视频导航| 中文字幕第一区第二区| 五月激情综合网| 国产白丝精品91爽爽久久 | 国产+成+人+亚洲欧洲自线| 99久久99久久综合| 日韩欧美激情一区| 亚洲综合久久久久| 国产高清精品网站| 欧美日韩日日摸| 国产精品福利一区| 91精品国产综合久久蜜臀| 91视频.com| 欧美日韩免费不卡视频一区二区三区| 精久久久久久久久久久| 国产精品羞羞答答xxdd| 国产精品亚洲第一| 99久久精品国产一区二区三区| 青青青伊人色综合久久| 婷婷综合久久一区二区三区| 精品一区二区三区欧美| 亚洲在线观看免费| 男女男精品视频| 欧美性欧美巨大黑白大战| 中文子幕无线码一区tr| 久久97超碰色| 91精品国产免费| 亚洲123区在线观看| 日本伦理一区二区| 国产精品国产三级国产三级人妇 | 日本电影亚洲天堂一区| 国产拍欧美日韩视频二区| 成人高清免费观看| 欧美tk—视频vk| 亚洲色图欧美激情| 99精品国产99久久久久久白柏| 99精品视频在线观看| 国产清纯在线一区二区www| 精品一区二区三区免费观看| 5566中文字幕一区二区电影| 综合精品久久久| www..com久久爱| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲婷婷综合色高清在线| 大美女一区二区三区| 欧美国产日韩精品免费观看| 经典三级视频一区| 久久众筹精品私拍模特| 国产在线播放一区三区四| 精品蜜桃在线看| 国产精品综合一区二区三区| 久久人人爽人人爽| 国产一区二区中文字幕| 精品国产一区二区三区忘忧草| 亚洲欧美怡红院| 成a人片亚洲日本久久| 国产亚洲精品久| 成人高清视频在线| 国产精品乱人伦一区二区| jlzzjlzz亚洲女人18| 亚洲丝袜制服诱惑| 欧美在线free| 亚洲一区在线看| 欧美精品日韩综合在线| 久久99精品视频| 欧美α欧美αv大片| 国产成人av资源| 亚洲另类色综合网站| 91麻豆精品国产| 国产精品影视在线| 亚洲人成人一区二区在线观看| 午夜精品久久久久久| 欧美α欧美αv大片| 国产精品一品二品| 亚洲另类中文字| 日韩免费在线观看| 成人丝袜18视频在线观看| 一区二区三区中文字幕电影| 91精品国产免费久久综合| 国产盗摄视频一区二区三区| 亚洲天堂久久久久久久| 1024成人网| 欧美四级电影在线观看| 久久99久久久久久久久久久| 国产亚洲欧美中文|