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

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

?? cell.cpp

?? building parser with C++ functions
?? CPP
字號:
/**
 * \file Cell.cpp
 *
 * A partial dummy implementation of the Cell.hpp interface for
 * example purposes, to support the cons list ADT interface specified
 * in cons.hpp.  Just barely enough is implemented to allow the parser
 * to run.  None of the accessor member functions are implemented.
 *
 * You need to replace this with a real implementation that actually
 * builds a tree data structure and then lets the user access the tree.
 *
 * You don't necessarily need to understand the ugly details of this
 * dummy implementation, which you'll throw away anyhow.
 */

#include "Cell.hpp"
#include "math.h"
// Reminder: cons.hpp expects nil to be defined somewhere.  For this
// implementation, this is the logical place to define it.
Cell* const nil = 0;

IntCell::IntCell (const int i) {
	int_m = i;
};

DoubleCell::DoubleCell (const double d) {
	double_m = d;
};

SymbolCell::SymbolCell (const char* const s) {
	symbol_m = new char[strlen(s) + 1];
	strcpy(symbol_m, s);
};

ConsCell::ConsCell (Cell* const my_car, Cell* const my_cdr) {
	car = my_car;
	cdr = my_cdr;
};

bool Cell::is_int() const {
	return false;
};

bool Cell::is_double() const{
	return false;
};

bool Cell::is_symbol() const{
	return false;
};

bool Cell::is_cons() const{
	return false;
};

bool IntCell::is_int() const {
	return true;
};

bool DoubleCell::is_double() const {
	return true;
};

bool SymbolCell::is_symbol() const {
	return true;
};

bool ConsCell::is_cons() const {
	return true;
};

int Cell::get_int () const {
	cerr << "ERROR"<< endl;
	exit(1);
};

double Cell::get_double () const {
	cerr<< "ERROR"<< endl;
	exit(1);
};

string Cell::get_symbol  () const {
	cerr << "ERROR"<< endl;
	exit(1);
};

Cell* Cell::get_car () const {
	cerr << "ERROR"<< endl;
	exit(1);
};

Cell* Cell::get_cdr () const {
	cerr << "ERROR"<< endl;
	exit(1);
};

int IntCell::get_int () const {
	return int_m;
};

double DoubleCell::get_double () const {
	return double_m;
};

string SymbolCell::get_symbol () const {
	return symbol_m;
};

Cell* ConsCell::get_car () const {
	return car;
};

Cell* ConsCell::get_cdr () const {
	return cdr;
};

void IntCell::print(ostream& os) const {
	os<< int_m;
	return;
};

void DoubleCell::print(ostream& os) const {
        os<< showpoint<< double_m;
	return;
};

void SymbolCell::print(ostream& os) const {
	os<< symbol_m;
	return;
};

void ConsCell::print(ostream& os) const  {
	const Cell* cur = this;
	os << "(";

	while (cur != nil)
	{
		if (cur->get_car() == nil)
			os << "()";
		else
		{
			cur->get_car()->print(os);

			if (cur->get_cdr() != nil)
			os << ' ';
		}
		cur = cur->get_cdr();
	}

	os <<")";
}

Cell* Cell::cell_ceil() const {
	cerr<< "ERROR: wrong type of operand"<< endl;
	exit(1);
};

Cell* DoubleCell::cell_ceil() const {
	Cell *result = new IntCell(int(ceil(get_double())));
	return result;
};

Cell* Cell::cell_floor() const {
	cerr<< "ERROR: wrong type of operand"<< endl;
	exit(1);
};

Cell* DoubleCell::cell_floor() const {
	Cell *result = new IntCell(int(floor(get_double())));
	return result;
};

void Cell::cell_sum(int &i, double &result) const {
	cerr<< "ERROR: wrong type of operand"<< endl;
	exit(1);
};

void IntCell::cell_sum(int &i, double &result) const {
	result += get_int();
};

void DoubleCell::cell_sum(int &i, double &result) const {
	i = 1;
	result += get_double();
};


void Cell::cell_times(int &i, double &result) const {
	cerr<< "ERROR: wrong type of operand"<< endl;
	exit(1);
};

void IntCell::cell_times(int &i, double &result) const {
	result *= get_int();
};

void DoubleCell::cell_times(int &i, double &result) const {
	i = 1;
	result *= get_double();
};


void Cell::cell_sub(int &i, double &result) const {
	cerr<< "ERROR: wrong type of operand"<< endl;
	exit(1);
};

void IntCell::cell_sub(int &i, double &result) const {
	result -= get_int();
};

void DoubleCell::cell_sub(int &i, double &result) const {
	i = 1;
	result -= get_double();
};

void Cell::cell_div(int &i, double &result) const {
	cerr<< "ERROR: wrong type of operand"<< endl;
	exit(1);
};

void IntCell::cell_div(int &i, double &result) const {
	result /= get_int();
	if (i==0)
		result = int(result);
};

void DoubleCell::cell_div(int &i, double &result) const {
	i = 1;
	result /= get_double();
};

bool Cell::is_zero() const {
	return false;
}

bool IntCell::is_zero() const {
	if (get_int() == 0)
		return true;
	else return false;
}

bool DoubleCell::is_zero() const {
	if (get_double() == 0.0)
		return true;
	else return false;
}

bool Cell::is_list() const {
	return false;
}

bool ConsCell::is_list() const {
	return true;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线精品视频一区二区| 国产一区二区h| 欧美精品在线一区二区三区| 亚洲午夜av在线| 91精品国产色综合久久ai换脸| 日本va欧美va欧美va精品| 精品人伦一区二区色婷婷| 国产99久久久国产精品潘金| |精品福利一区二区三区| 欧美日韩极品在线观看一区| 麻豆成人在线观看| 国产精品理伦片| 欧美精选午夜久久久乱码6080| 日本不卡高清视频| 国产精品日产欧美久久久久| 色成人在线视频| 激情综合色播五月| 亚洲欧美另类图片小说| 3d成人h动漫网站入口| 国产高清无密码一区二区三区| 中文字幕一区三区| 欧美日韩大陆在线| 国产成人精品亚洲777人妖| 一区二区视频免费在线观看| 精品国产乱码久久久久久免费| 99久久精品免费看国产免费软件| 亚洲成精国产精品女| 中日韩av电影| 欧美一区永久视频免费观看| 成人午夜av在线| 日本强好片久久久久久aaa| 国产精品乱码久久久久久| 91精品国产综合久久精品麻豆| 成人妖精视频yjsp地址| 免费观看91视频大全| 亚洲免费观看高清完整版在线观看 | 91免费看视频| 久久精品理论片| 亚洲一区在线看| 中文字幕欧美国产| 日本女人一区二区三区| 亚洲精品久久嫩草网站秘色| 久久这里只有精品视频网| 欧美人妇做爰xxxⅹ性高电影| 高清国产一区二区| 国产精品传媒视频| 久久久久久久久一| 欧美一卡二卡三卡| 91久久奴性调教| 99精品在线免费| 国产成人在线视频播放| 另类的小说在线视频另类成人小视频在线 | 国产精品久久久久aaaa樱花 | 亚洲国产美女搞黄色| 国产精品美女久久久久久| 欧美精品一区二区三区一线天视频| 欧美无砖专区一中文字| 91视视频在线观看入口直接观看www| 国产一区二区三区国产| 免费在线观看精品| 日本在线播放一区二区三区| 亚洲国产成人av好男人在线观看| 亚洲日本欧美天堂| 亚洲人成在线观看一区二区| 国产精品国产三级国产普通话三级 | 日本不卡视频在线观看| 午夜国产不卡在线观看视频| 一区二区三区色| 亚洲欧美视频在线观看视频| 综合电影一区二区三区| 最新热久久免费视频| 中文字幕在线不卡| 亚洲人吸女人奶水| 一区二区理论电影在线观看| 一区二区三区日韩精品| 一区二区三区四区av| 亚洲一区二区在线免费看| 一区二区三区.www| 亚洲国产日韩a在线播放性色| 亚洲成人免费视频| 日本不卡不码高清免费观看| 激情综合亚洲精品| 国产精品88888| 99视频国产精品| 欧美在线观看视频一区二区| 欧美亚洲综合一区| 91精品啪在线观看国产60岁| 精品欧美一区二区三区精品久久| 26uuu亚洲| 国产精品午夜久久| 亚洲精品免费一二三区| 视频一区视频二区中文字幕| 久久er99热精品一区二区| 国产成人av电影| 99精品欧美一区二区蜜桃免费 | 色综合天天视频在线观看| 欧美综合一区二区三区| 欧美一区二区三区免费大片 | 亚洲成人免费影院| 麻豆国产91在线播放| 成人午夜精品一区二区三区| 色94色欧美sute亚洲线路二| 欧美顶级少妇做爰| 久久久久久97三级| 一区二区三区在线视频免费| 免费久久精品视频| 波多野结衣欧美| 欧美精品自拍偷拍| 国产精品青草综合久久久久99| 亚洲国产视频一区| 国产麻豆日韩欧美久久| 在线日韩av片| 国产午夜精品一区二区三区四区| 亚洲美女偷拍久久| 精品一区二区免费| 91激情在线视频| 国产欧美日韩精品一区| 午夜精品视频一区| av网站一区二区三区| 欧美不卡在线视频| 一区二区三区免费在线观看| 国产精品一区二区在线观看不卡| 欧美日韩精品一区二区天天拍小说 | 欧美韩国一区二区| 日本伊人色综合网| 91麻豆免费在线观看| 亚洲精品在线免费播放| 亚洲成va人在线观看| 99re6这里只有精品视频在线观看| 日韩午夜精品电影| 亚洲电影视频在线| av一区二区三区黑人| 久久综合五月天婷婷伊人| 亚洲一区电影777| 99久久精品99国产精品 | 国产精品久久久久一区二区三区共 | 久久久精品中文字幕麻豆发布| 亚洲成人免费视| 色94色欧美sute亚洲线路二| 国产欧美精品一区二区色综合| 日一区二区三区| 欧美午夜电影在线播放| 综合在线观看色| 成人av电影观看| 国产蜜臀av在线一区二区三区| 理论片日本一区| 欧美一级久久久久久久大片| 性久久久久久久久久久久| 色综合久久久久网| 亚洲美女在线一区| 91黄色激情网站| 有码一区二区三区| 在线日韩一区二区| 亚洲一二三四久久| 91黄色激情网站| 亚洲综合一二三区| 欧美无砖专区一中文字| 一区二区三区日韩在线观看| 91网站在线播放| 一区二区三区欧美亚洲| 日本黄色一区二区| 亚洲成人免费电影| 91麻豆精品国产91久久久使用方法 | 在线播放日韩导航| 亚洲成av人片在线观看无码| 日本道色综合久久| 亚洲午夜久久久久久久久电影网| 色久优优欧美色久优优| 亚洲一级不卡视频| 欧美福利一区二区| 免费在线观看一区| 精品国产1区二区| 国产成人a级片| 亚洲三级理论片| 欧美午夜精品久久久久久孕妇| 亚洲第一二三四区| 日韩欧美国产午夜精品| 久久机这里只有精品| 久久久久久久电影| 93久久精品日日躁夜夜躁欧美| 亚洲女子a中天字幕| 欧美日韩三级一区二区| 喷水一区二区三区| 国产欧美一区二区三区在线看蜜臀| 国产91丝袜在线18| 依依成人精品视频| 日韩欧美资源站| 夫妻av一区二区| 亚洲最新视频在线观看| 欧美一区二区三区在线看| 国产精品一区专区| 一区二区三区四区在线播放| 日韩一区二区三区三四区视频在线观看 | 26uuu国产电影一区二区| 国产91丝袜在线观看| 亚洲综合偷拍欧美一区色| 日韩午夜精品视频| 97精品视频在线观看自产线路二| 亚洲福中文字幕伊人影院| 亚洲精品在线三区|