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

Пример работы функции get_toke() - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Лексический и синтаксический анализаторы http://www.cyberforum.ru/cpp-beginners/thread622911.html
здравствуйте.нужна помощь, по flex\bison, чтение драгон бука и поиска и google уже не хватает ,так что прошу помощи тут у Вас. лексер scaner.l D L H E ?{D}+ FS (f|F|l|L) IS (u|U|l|L)* %{
C++ Реализовать в виде модуля набор подпрограмм Реализовать в виде модуля набор подпрограмм для работы с многочленами от одной переменной (1й степени t, 2й степени n). 1) сложение 2) вычитание 3) умножение 4) деление с остатком 5) операции отношения (равно, не равно) 6) возведение в натуральную степень k 7) вычисление производной от многочлена 8) вычисление значения в точке х0. http://www.cyberforum.ru/cpp-beginners/thread622905.html
C++ Адаптация ПО под 64-битную систему
имею необходимость адаптировать прогу на С++ под 64 битную систему ( на 32 работает, но не на 64=() Подскажите плиз какие-нить источники, где можно почитать про адаптацию программ на С++ под 64 битку
Из арабских чисел в римские C++
Функция для перевода из арабских чисел в римские. Как можно заменить устаревший sprintf? string _func_arab_to_roman(int arab){ string arab_str; string res; char arr; int d; sprintf(arr, "%d", arab); arab_str = arr;
C++ програмный код http://www.cyberforum.ru/cpp-beginners/thread622846.html
Помогите плиз разобраться.Написали прогу, немогу понять как она работает.Конкретно нужны красные участки, если можно поподробнее) 1) Add/Dell: //add/dell.h //интерфейс модуля add/del #ifndef add/dell_h #define add/dell_h #endif //add/dell.cpp //реализация модуля «add/del» int readmsg(char*s){
C++ Получить количество символов во веденной строке Решил попробовать со строками поработать, сразу же возникло несколько вопросов: 1) В C++ тип string не встроен? Нужно подключать библиотеку? 2) В чем различие char от string? 3) Как использовать функции: * strlen - получить кол-во символов в строке. Попытался получить кол-во символов в веденной строке, возникли проблемы: 1. Нельзя получить кол-во... подробнее

Показать сообщение отдельно
arfaa
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 27

Пример работы функции get_toke() - C++

12.07.2012, 16:46. Просмотров 1433. Ответов 10
Метки (Все метки)

Здравствуйте. Читаю книжку Бьярне Страуструпа в ней разбирается работа калькулатора. Возникает много вопросов, так как некоторые вещи, к сожалению, там не описаны.
Функция для рассмотрения первичных выражений в калькуляторе:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
double primary()
 {
   Token t=get_token();
   switch(t.kind) {
     case '(' :
        {
           double d=expression(); // функция выражений
           t=get_token();
           if(t.kind!=')' ) error(" ')' expected");
           return d;
        }
      case '8':
           return t.value;
      default:
           error("ожидается первичное выражение");
     }
 }
1.Работа функции get_token() она считывает лексемы в объект t по одной?Но почему тогда нет цикла, ведь считалась только одна? Если считываются все лексемы сразу, то каким образом они считываются дальше по одной, опять же если нет цикла?
2.Допусти выражение 2+2*3. Здесь пять лексем 2;+;2;*;3; и нету не одной скобки, то есть выбор ключа по скобка не осуществляется.'8'-это символ того,что та лексема число.У нас есть ключ как раз по этому символу.Но получается,что после обнаружения вернется только значение для одного числа?Опять же как это осуществляется без цикла?
3.Что возвращает эта функция в итоге для выражения 2+2*3

Заранее огромное спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru