使用C++实现一个简单的SQL语句词法分析器

本文详细介绍了如何使用C++编写一个简单的SQL语句词法分析器,包括Token结构、程序框架、分析运算符、标识符、数字、字符串以及括号等特殊字符的方法,并提供了测试程序和用例。
摘要由CSDN通过智能技术生成

不多说,直逼主题

1. Token的结构

了解过词法分析器应该都知道,实现一个程序经过词法分析器之后,会生成一个Token,供语法分析器使用。我们在这里就先实现这个token的结构,很简单。

struct Token{
   
	string cifadanyuan;
	string cisu;
	Token(){
   
	}
	Token(string cifadanyuan,string cisu){
   
		this->cifadanyuan = cifadanyuan;
		this->cisu = cisu;
	}
	string toString(){
   
		return this->cifadanyuan+"  "+this->cisu;
	}
	//toString方法,方便我们后面把它展示到控制台上
};

2. 程序的基本框架
我们在这里先介绍一下程序的基本框架。

class Lexical{
   
	const string operators = "+-*/%=&|<>!";
	const string singleword = "(),.;";
	//这里使用一个哈希表来存储sql里面的保留字,这里只是一部分,有耐心可以的话,可以全加进去。
	unordered_map<string,int> keyword{
   
					{
   "select",1},{
   "insert",2},{
   "delete",3},{
   "update",4},
					{
   "from",5},{
   "create",6},{
   "database",7},{
   "as",8},
					{
   "drop",9},{
   "alter",10},{
   "into",11},{
   "where",12},
					{
   "join",13},{
   "set",14},{
   "use",15},{
   "table",16},
					{
   "index",17},{
   "primary",18},{
   "in",19},{
   "between",20},
					{
   "like",21},{
   "and",22</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值