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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Меню и список http://www.cyberforum.ru/cpp-beginners/thread41194.html
Здравствуйте форумчане. Помоги пожалуйста в следующем вопросе: У меня есть 2связный список, написано меню. Но в моменте когда написано make a list и delete custom необходимо чтобы выводились: Введите элемент и номер. вот сам код: #ifndef __list_h #define __list_h #include <iostream>
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!!! Вот текст программы, которая выводит на экран набор треугольников и квадратов, которые произвольно двигаются и меняют размер только квадратов. Проблема в том, что необходимо исправить код, чтоб фигуры не исчезали за экран (т.е. 640х460) и были компактным набором, т.е. двигались неменяя своего положения относительно друг друга и стукаясь об стенку экрана меняли свое...
C++ Округление дробного числа до целого в большую сторону. http://www.cyberforum.ru/cpp-beginners/thread41139.html
Доброго дня. Я новичок в программирование на Visual C++. Проблема такая программа должна считать кол-во месяцев, если числа целые то программа шла дальше, если дробное то (например 3.33333) программа не округляет это число (в большую сторону) до 4. Перелопатил тонны литературы, но пропустил или не нашёл этого, большая просьба написать функцию которая могла бы это делать, или способ какой.
C++ Код из Delphi в C++ Нужно написать курсовую на C++. Сам я в программировании плохо шарю (не программист). Попросил у народу помощи, помогли. Но решение на Delphi: {$APPTYPE CONSOLE} type byteset=set of byte; var d:array of longint; procedure c; var a,b,i:longint; подробнее

Показать сообщение отдельно
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
04.10.2009, 07:25  [ТС]     Пишем свой интерпретатор языка BASIC
Столкнулся с небольшим затруднением в цикле 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 минут
Вообще,сначала мне пришла в голову мысль просто как-то запихать нужную строку в поток считывания из исходника,предварительно сформировав её,просто немного коряво выглядит такое решение,не знаю,хороший ли это вариант..
 
Текущее время: 16:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru