创建函数时收到"expected unqualified-id"
Receiving "expected unqualified-id" when creating a function
请耐心等待,因为我来自纯粹的 Java/Python 背景并且在 C++ 基础知识 方面有大约 10% 的知识。
我正在为 Lexer 定义标记化 class,并且已经 运行 遇到问题,Eclipse 编译器抛出:
expected unqualified-id
就是这样。没有任何信息。无论我如何命名我的函数,都会弹出同样的错误。我认为这可能与我使用 vector<string> tokenise
的方式有关,但我不知道...
我这样设置 h
和 cpp
文件:
lexer.h
#ifndef LEX_LEXER_H_
#define LEX_LEXER_H_
#include <string>
#include <vector>
using namespace std;
struct token;
vector<token> tokenise(vector<string> data);
#endif /* LEX_LEXER_H_ */
lexer.cpp
#include <iostream>
using namespace std;
enum token_type {
// Operations.
ADD, SUB, MUL, DIV, MOD,
// Bitwise operations.
BITL, BITR,
// Keywords.
DEFINE,
// Primitives.
INT, FLOAT, CHAR, STRING, BOOL
};
struct token {
token_type type;
string data;
};
vector<token> tokenise(vector<string> data) { // <<< throwing the error
vector<token> tokens;
for (string s : data) {
for (char& c : s) {
cout << c << endl;
}
}
return tokens;
}
您需要在 lexer.cpp
中包含 lexer.h
请耐心等待,因为我来自纯粹的 Java/Python 背景并且在 C++ 基础知识 方面有大约 10% 的知识。
我正在为 Lexer 定义标记化 class,并且已经 运行 遇到问题,Eclipse 编译器抛出:
expected unqualified-id
就是这样。没有任何信息。无论我如何命名我的函数,都会弹出同样的错误。我认为这可能与我使用 vector<string> tokenise
的方式有关,但我不知道...
我这样设置 h
和 cpp
文件:
lexer.h
#ifndef LEX_LEXER_H_
#define LEX_LEXER_H_
#include <string>
#include <vector>
using namespace std;
struct token;
vector<token> tokenise(vector<string> data);
#endif /* LEX_LEXER_H_ */
lexer.cpp
#include <iostream>
using namespace std;
enum token_type {
// Operations.
ADD, SUB, MUL, DIV, MOD,
// Bitwise operations.
BITL, BITR,
// Keywords.
DEFINE,
// Primitives.
INT, FLOAT, CHAR, STRING, BOOL
};
struct token {
token_type type;
string data;
};
vector<token> tokenise(vector<string> data) { // <<< throwing the error
vector<token> tokens;
for (string s : data) {
for (char& c : s) {
cout << c << endl;
}
}
return tokens;
}
您需要在 lexer.cpp
lexer.h