需要用C++编写解析器
Need to write a Parser in C++
本文关键字:C++ 更新时间:2023-10-16
bool check_column_name(Token_stream& ts) {
Token t = ts.get();
if(t.kind == '(') {
while(t.kind != ')') {
t = ts.get();
if(t.kind == 'a' || t.kind == '0') {
string column_names = "";
while(t.kind != ' ' && t.kind != ')') {
column_names += t.value;
t = ts.get();
}
cout << column_names << endl;
}
}
return true;
}
}
我需要解析这个
(Column_name1 瓦尔查尔[20], Column_name2瓦尔查尔[8], Column_name3 整数);
我需要解析上面的行来调用 Create() 函数来创建表。解析该行后,我将能够知道我的列名称将是什么,我的表中有多少列以及每列的类型是什么。例如,第一列的名称为"Column_name1",其类型为"VARCHAR",这将是一个字符串。我的代码能够解析(column_name1 Column_nam2),但这不是我想要的。我想解析行(Column_name1 VARCHAR[20],Column_name2 VARCHAR[8],Column_name3整数);。
以正确的方式执行此操作是一个复杂的主题。它涉及熟悉语法、词法分析器、解析器等。
关于这个主题最著名的书是"龙书"。
我过去曾成功地将ANTLR与C++一起使用。
相关文章:
- 没有找到相关文章