1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/RonxBulld-ftrpc

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
symman.h 1.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
RonxBulld Отправлено 08.07.2018 19:23 1e77ac8
//
// 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

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/RonxBulld-ftrpc.git
git@api.gitlife.ru:oschina-mirror/RonxBulld-ftrpc.git
oschina-mirror
RonxBulld-ftrpc
RonxBulld-ftrpc
master