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

Пишем свой интерпретатор языка BASIC - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Меню и список http://www.cyberforum.ru/cpp-beginners/thread41194.html
Здравствуйте форумчане. Помоги пожалуйста в следующем вопросе: У меня есть 2связный список, написано меню. Но в моменте когда написано make a list и delete custom необходимо чтобы выводились:...
C++ Здравствуйте! Не могу поместить class в один файл с программой. file.hpp #include "Cat.hpp" // здесь классы "2)" Cat::Cat(int initialAge) { itsAge = initialAge; } Cat::~Cat() { http://www.cyberforum.ru/cpp-beginners/thread41186.html
Массивы строк C++
Привет всем! Задан массив строк. Как узнать который символ встечаетса найбольшое количество раз в етом массиве?
C++ вывод на экран набор треугольников и квадратов, которые произвольно двигаются и меняют размер
Please, help me!!! Вот текст программы, которая выводит на экран набор треугольников и квадратов, которые произвольно двигаются и меняют размер только квадратов. Проблема в том, что необходимо...
C++ Округление дробного числа до целого в большую сторону. http://www.cyberforum.ru/cpp-beginners/thread41139.html
Доброго дня. Я новичок в программирование на Visual C++. Проблема такая программа должна считать кол-во месяцев, если числа целые то программа шла дальше, если дробное то (например 3.33333) ...
C++ Код из Delphi в C++ Нужно написать курсовую на C++. Сам я в программировании плохо шарю (не программист). Попросил у народу помощи, помогли. Но решение на Delphi: {$APPTYPE CONSOLE} type byteset=set of byte; ... подробнее

Показать сообщение отдельно
#pragma
Временно недоступен
955 / 226 / 6
Регистрация: 12.04.2009
Сообщений: 921
04.10.2009, 07:25  [ТС]
Столкнулся с небольшим затруднением в цикле FOR.Получается так,что мы должны знать начальное и конечное значения счётчика,а также шаг уже на момент интерпретации,чтобы правильно сгенерировать условие.Т.е получается,что выражения FOR i=A+B недопустимы,и после знака равно должна следовать константа,как максимум со знаком минус.Ведь по сути при генерации условия нужно знать значение в начале и в конце,их разницу,а также шаг.Потому что это влияет на то,каким будет условие (<= или >=).Смотрел в справку qbasic,вроде там тоже написано что обе границы должны быть <value>.Но как-то не особо расшифровано там.Мы же не можем менять весь подход к интерпретации cbranch только из-за одного цикла,а также некрасиво делать интерпретацию с подсчётом внутри синтаксического разборщика.Я не знаю,как лучше,просто решил пойти на такую уловку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  static Value syntax_runtimePrimary()
  {
     switch (parser_GetToken())
     {
        case TOKEN_CONST_INT: {
           Value int_x(::parser_CurTokenStr, INT);
           return int_x;
        }
        case TOKEN_CONST_FLOAT: {
           Value float_x(::parser_CurTokenStr, FLOAT);
           return float_x;
        }
        case TOKEN_DELIM_MINUS: {
           return -syntax_runtimePrimary();
        }
        default:error(WRONG_EXPRESSION);
     }
     // This is bad
     //это просто чтобе не получать предупр.компилятора
     Value null_x("0",INT);
     return null_x;
  }
То есть взял функцию из старой версии просто для считывания констант,в том числе отрицательных,и использую в синтаксическом разборщике(в том числе при объявлении массивов).Если в присваивании счётчику было бы хоть даже простое выражение,это существенно затруднит генерацию условия.Не знаю,как лучше сделать,оставить как есть или построить run-time версию синт.разборщика,чтобы мог простые выражения считать на своём этапе;но с другой стороны,надо ли?

Добавлено через 1 час 47 минут
Вообще,сначала мне пришла в голову мысль просто как-то запихать нужную строку в поток считывания из исходника,предварительно сформировав её,просто немного коряво выглядит такое решение,не знаю,хороший ли это вариант..
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru