添加项目文件。

This commit is contained in:
KiriAky
2025-07-01 16:04:35 +08:00
parent 27b960a881
commit 0f8e7d3282
13 changed files with 755 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
#ifndef TOKENIZER_H
#define TOKENIZER_H
#include<string>
#include<vector>
#include"Token.h"
using namespace std;
class Tokenizer {
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>ΪToken<65><6E><EFBFBD><EFBFBD>
vector<Token> run(const string& expr);
private:
string expression; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>ʽ
size_t pos = 0; //<2F><>ǰָ<C7B0><D6B8>λ<EFBFBD><CEBB>
//<2F><><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD><D5B8>ַ<EFBFBD>
void skipWhitespace();
//<2F><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><E3A1A2><EFBFBD>ܵ<EFBFBD>һԪ<D2BB><D4AA><EFBFBD>ţ<EFBFBD>
Token readNumber();
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>sin<69><6E>cos<6F><73>log<6F><67>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78>y<EFBFBD><79>
Token readIdentifier();
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Token readOperatorOrParen();
//<2F>жϵ<D0B6>ǰλ<C7B0><CEBB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>һԪ<D2BB><D4AA><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool is_UMC(const vector<Token>& tokens);
//<2F>ַ<EFBFBD><D6B7>жϸ<D0B6><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool is_dig(char c)const;
bool is_let(char c)const;
bool is_OpeCh(char c)const;
};
#endif