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

Синтаксический анализатор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обмен данными между программами http://www.cyberforum.ru/cpp-beginners/thread591732.html
Я в С++ не силён , но интерес есть , не могу найти в интернете по С++ чтобы две программы обменивались данными по протоколу http:80 . Как набрать в поиске ? по делфи нашел , а по с++ NULL false
C++ Вычисления количества простых чисел, принадлежащих отрезку Задание: Составить программу вычисления количества простых чисел, принадлежащих отрезку . Для проверки, является ли число простым, использовать функцию prostoe. Функция возвращает 1, если число является простым, а 0 - в противном случае. / / Функция проверяет, является ли число простым int prostoe (int n) {Int d, r; d = 2; do { r = n% d; if (r! = 0) d + +; } while (r! = 0); / / пока n не... http://www.cyberforum.ru/cpp-beginners/thread591688.html
Определить, под каким знаком зодиака рожден человек C++
Сессия скоро! Помогите с задачами плз! 1.Дана прямоугольная матрица A (N, M) (N M, M 15). Преобразовать матрицу таким образом, чтобы на месте первой строки находилась вторая, на месте второй – третья, и т.д., а на месте последней - первая. 2.Даны натуральные числа n и k. Определить k-ю слева цифру числа n. 3.Введите число и месяц рождения. Определить, под каким знаком зодиака рожден...
C++ дана строка текста. найти слова, содержащие букву d
дана строка текста. найти слова, содержащие букву d. За ранее спасибо.
C++ челночная сортировка http://www.cyberforum.ru/cpp-beginners/thread591656.html
доброго времени суток! кому не сложно объяснить по поводу алгоритма челночной сортировки? задание: сортировка списка студентов челночным методом по двум ключам одновременно: по возрастанию номеров групп и для группы фамилии в алфавитном порядке. как отсортировать по номеру группы - понятно, а вот как одновременно с этим фамилии упорядочить? и даже если по отдельности, то как просто...
C++ написать программу которая вычисляет среднее арифметическое последовательности отрицательных дробных чисел, вводимых с клавиатуры Друзья, помогите разобраться. Компилятор выдает ошибку в 16 строке, а я не понимаю в чем дело. За ранее спасибо и благодарю) написать программу которая вычисляет среднее арифметическое последовательности отрицательных дробных чисел, вводимых с клавиатуры. После того, как будет введено последнее число, программа должна вывести минимальное и максимальное число последовательности. Количество... подробнее

Показать сообщение отдельно
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,507
02.06.2012, 17:53     Синтаксический анализатор
Цитата Сообщение от Tester123 Посмотреть сообщение
Скажите пожалуйста, сложно ли это сделать?
Если правильно понял, что Вам нужно, то да, это сложно. Прочитайте тему [C++] Пишем свой интерпретатор - найдёте много полезного.
Очень грубо говоря, на вскидку я бы как-то так делал:
1 завёл ассоциативный массив счётчиков вроде
C++
1
2
3
4
5
std::map <std::string, int> counters;
counters["BEGIN_END"] = 0;
counters["IF_THEN"] = 0;
counters["BRACKETS"] = 0;
// etc...
2 поделил текст на предложения по символу ;
3 дальше читать из предложения по слову, сравнивать с ключевыми (тут ещё нужно проверять первую/последнюю букву слова на совпадение с открывающей/закрывающей скобкой) и устанавливать при совпадении соответствующие счётчики
C++
1
2
3
4
5
6
7
8
9
10
11
std::string word;
//...
if ( word == "BEGIN" )
    counters["BEGIN_END"]++;
if ( word == "END" )
    counters["BEGIN_END"]--;
if ( *word.begin() == '(' )
    counters["BRACKETS"]++;
if ( *word.rbegin() == ')' )
    counters["BRACKETS"]--;
// etc...
В результате всей этой свистопляски чей счётчик в конце проверки текста не обнулится - с тем и проблема. Но ещё раз оговорюсь - это очень приблизительно, на самом деле там тьма нюансов. И таки это сложно...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru