Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Таблица символов для компилятора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Хэш код для нормализованного вектора http://www.cyberforum.ru/cpp/thread1778420.html
Мне нужно генерировать 64-разрядный хэш для трехмерных нормализованных векторов (double). Хэши должны быть равны если сгенерированы из одного или равных (поэлементно) векторов. У кого какие мысли?...
C++ Немного про std::string Привет, читал про std::string на разных сайтах. 1. Там говорят, С++ 11 гарантирует, что std::string будет stored contiguously in memory. В этом я не сомневаюсь, но каким еще образом можно в... http://www.cyberforum.ru/cpp/thread1777516.html
Объединение нескольких png файлов в один png-файл C++
В общем надо написать програмулину, которая объединяет несколько png файлов (ширина и высота одинаковы у изображений) в один png-файл. Пример: Есть пара png-картинок: :p, :D, :(, =-O, :yes:,...
C++ Как операционная система выделяет виртуальную память процессу?
Добрый вечер, хотел уточнить насчёт адресации: создаётся экземпляр win32 программы, выделяет процесс и 1 поток - ОС даёт процессу виртуальное адресное пространство в 4 ГБ - другими словами адрес,...
C++ Ошибка: invalid conversion from "int" to "SDL_RendererFlip" http://www.cyberforum.ru/cpp/thread1776002.html
Скриншот приложен, Вот страница, откуда я брал этот код Подскажите что делать
C++ Icu итератор Здравствуйте. Подскажите как с помощью icu проитерировать посимвольно UnicodeString и на выходе получить то, что сразу можно в обычный string запихнуть. Нагуглил такой вариант: #include... подробнее

Показать сообщение отдельно
Havana
95 / 4 / 0
Регистрация: 04.12.2015
Сообщений: 19
10.07.2016, 22:58  [ТС]
на данный момент реализация такова: выполняется проход по строке, выделяются токены, в зависимости от типа токена создается соответствующий объект (Variable, Constant, MathOperator...). В таблицу символов должны попадать константы и переменные, поэтому если токен относится к этим типам, то я вызываю соответствующую функцию синглтона, который представляет таблицу символов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SymbolTable& SymbolTable::instance()
{
    static SymbolTable instance;
    return instance;
}
 
void SymbolTable::addSymbol(string str)
{
    if (!table.empty())
    {
        if (std::binary_search(table.begin(), table.end(), str))
            return;
    }
    table.push_back(str);
    std::sort(table.begin(), table.end());
}
 
 
#define INSTANCE SymbolTable::instance()
.сpp

C++
1
2
3
Variable *obj = new Variable(1, temp);
            objects.push_back(obj);
INSTANCE.addSymbol(temp);
Далее мне будет необходимо выполнить генерацию промежуточного кода, проходя по вектору созданных объектов, и в случае, если это переменная или константа, обращаться к этой таблице символов для выяснения адреса символа (адрес бдет представлять просто индекс вектора).
Т.к. я впервые пробую реализовать этот паттерн, то не понимаю, удачный ли это вариант в данном случае (и будет ли он работать), и что еще важнее: как в случае синглтона реализовать таблицу символов для внутреннего блока (функции)?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru