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

Написать анализатор кода, определяющий тип лексем - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как контролировать число создаваемых потоков? OpenMP http://www.cyberforum.ru/cpp-beginners/thread1782101.html
Здравствуйте. Начал изучать OpenMP. Имеется вопрос - когда мы делаем #pragma omp parallel for Мы можем контролировать число создаваемых потоков? Добавлено через 13 минут OpenMP только для...
C++ Побитовое "исключающее ИЛИ", совмещённое с присваиванием Объясните мне плиз что это и как устроено (как работает) а то с разбегу не разобрался :( a ^= b Буду благодарен за пояснения. http://www.cyberforum.ru/cpp-beginners/thread1782099.html
C++ Программа работы со сканером
Добрый день. Мне нужно написать программу для получение изображения со сканера. Но я абсолютно не имею представление как это сделать. Нашел только TWAIN но как с ним работать, какие есть библиотеки...
C++ Разработать распознаватель заданной символьной цепочки
Необходимо разработать распознаватель заданной символьной цепочки. Символь- ная цепочка задается с помощью формул Бэкуса-Наура. Например: <цепочка>::=CONST <идентификатор>=<значение>;...
C++ Организовать вектор структур http://www.cyberforum.ru/cpp-beginners/thread1782043.html
не могу разобраться(((( имеется товар 100 PC , 120 Dress, 80 Shits. надо чтобы к каждому элементу я имел доступ и желательно все это поместить в один vector. кто-нибудь подскажет?)) ...
C++ Вести массив и найти суму и количество элементов кратных 3, с вызовом функции #include <iostream> using namespace std; void ColSum( int a, int n, int col, int sum) { for (int i = 0; i < n; i++) { if (a % 3 == 0) { col++; sum += a; подробнее

Показать сообщение отдельно
EVP
322 / 244 / 43
Регистрация: 14.12.2010
Сообщений: 465
20.07.2016, 00:34
Цитата Сообщение от Kael Morhen Посмотреть сообщение
Вот пример строки: if Cond then A1:=Func(id);
То есть должно получится примерно так (if,идентификатор) (cond, идентификатор) (then, идентификатор) (A1, идентификатор) (: двоеточие) (=, равно) (Func, идентификатор) ( (, левая скобка) ( ), правая скобка) ( id идентификатор) (; тчкзпт)
Должно получится "примерно" или "так"?
Например, для грамматики Pascal "if" и "then" являются операторами, а не идентификаторами.
Присваивание ":=" является оператором, а не двумя операторами ":" и "=",
которые в Pascal'е также существуют, но отличаются от присваивания .

Понятно что разбивка на лексемы зависит от грамматики анализируемого языка.
Цитата Сообщение от Kael Morhen Посмотреть сообщение
string translitter(char c)
Поскольку лексема может содержать более одного текстового символа,
то и в твоём случае анализ нужно вести по лексемам, а не по символам.

Так что разберись с грамматикой языка, который парсишь.
По грамматике делаешь парсер, например, с помощью Coco/R для LL1 грамматик (пример выше смотри).
Или пишешь парсер вручную, если их изучаешь.

Если я написал чего-то сильно страшное для тебя,
то начинаешь читать Компиляторы. Принципы, технологии и инструментарий до просветления.

Успехов!
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru