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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить количество столбцов и строк матрицы не содержащих отрицательных значений http://www.cyberforum.ru/cpp/thread1778720.html
Определите количество столбцов и количество строк двумерного массива, в которых не содержится ни одного отрицательного элемента. Заранее спасибо.
C++ Как заполнить двумерный массив определенным числом определенное количество раз? Пишу консольного Сапёра и столкнулся с такой проблемой: пользователю нужно ввести количество мин, после чего данное количество мин должно быть расположено случайным образом в двумерном массиве, причем мина обозначается цифрой "2", остальное в массиве - нули. Подскажите как это можно реализовать http://www.cyberforum.ru/cpp/thread1778708.html
C++ Перевод числа из hex в dec
Привет, можете подсказать как можно перевести 16-ричное число произвольной длины (например, заданное с помощью строки) в десятичную сс? (также можно в строку)
C++ Запрет запуска второй копии приложений
Нужно запретить запуск второй копии чужого приложения. Т.е. пользователь ткнул 5 раз на ярлык GTA5 в результате в процессе висит 2 GTA5, что не есть хорошо. Как этого можно избежать? Пока что идея такова. Мое приложение висит в памяти. Ярылк переделывается на что-то вроде "C:\myprogramm\app.exe" -name "GTA5" -launcher "C:\Games\GTA5\GTAVplay.exe" -path "C:\Games\GTA5\GTAV.exe" Параметры...
C++ Final для вложенной структуры http://www.cyberforum.ru/cpp/thread1778648.html
class A{ class B {..} final; }; так класс B теперь входит в размер A, но не инициализируется. это баг? потому что я нигде не нашел про такое использование
C++ Stack. определение шаблона функции testStack. (хочу разобраться в коде) Вот эта программа. Хочу разобраться в коде. #include <iostream> #include <string> #include <Stack> using namespace std; template <typename T> void testStack( Stack< T > &theStack,// показывает ошибку на Stack с требованием точки с запятой! поясните что и как. подробнее

Показать сообщение отдельно
Havana
95 / 4 / 0
Регистрация: 04.12.2015
Сообщений: 18
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);
Далее мне будет необходимо выполнить генерацию промежуточного кода, проходя по вектору созданных объектов, и в случае, если это переменная или константа, обращаться к этой таблице символов для выяснения адреса символа (адрес бдет представлять просто индекс вектора).
Т.к. я впервые пробую реализовать этот паттерн, то не понимаю, удачный ли это вариант в данном случае (и будет ли он работать), и что еще важнее: как в случае синглтона реализовать таблицу символов для внутреннего блока (функции)?
 
Текущее время: 00:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru