1 Star 0 Fork 14

syuan00504/ftrpc

forked from RonxBulld/ftrpc 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
symman.h 1.28 KB
一键复制 编辑 原始数据 按行查看 历史
RonxBulld 提交于 2018-07-09 00:23 . 添加数组支持
//
// Created by Rexfield on 2018/5/3.
//
#ifndef FTRPC_SYMMAN_H
#define FTRPC_SYMMAN_H
#include <map>
#include <string>
#include <list>
#include "ast_tree.h"
typedef unsigned int TokenID;
class TokenManage
{
private:
TokenID indexReg = 0;
std::map<std::string, TokenID> s2i;
std::map<TokenID, std::string> i2s;
public:
TokenID operator[](const std::string &Token);
const std::string &operator[](const TokenID &ID);
TokenManage(std::initializer_list<std::pair<std::string, TokenID>> initToken);
TokenManage() = default;
};
typedef unsigned int TypeID;
typedef std::pair<TypeNode, TokenID> Member;
typedef std::list<Member> MemberLists;
class TypeManage
{
private:
TypeID indexReg = 0;
public:
std::map<TokenID, TypeID> tk2ty; // TokenID -> TypeID
std::map<TypeID, TokenID> ty2tk; // TypeID -> TokenID
std::map<TypeID, MemberLists> StructsMap; // TypeID { TypeID* }
TypeManage(std::initializer_list<std::pair<TypeID, TokenID>> initBaseType);
TypeManage() = default;
enum typeDefType { DeclareBase, DeclareStruct };
void registType(TokenID Name, enum typeDefType DeclareType, MemberLists &MemberList);
TypeID getTypeID(TokenID Name);
bool isType(TokenID Name);
};
#endif //FTRPC_SYMMAN_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/syuan00504/ftrpc.git
git@gitee.com:syuan00504/ftrpc.git
syuan00504
ftrpc
ftrpc
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385