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

Пишем свой интерпретатор языка 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
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
20.08.2009, 01:36  [ТС]
Вот это новость! Как теперь это исправить,я даже не знаю )) Наверное я зря убрал динамическую память,помнится тогда всё работало (ну вроде )

Добавлено через 12 минут 55 секунд
Скорее всего это связано с тем,что передаваемое значение-это не просто значение,а объект.Видимо,объект по значению целиком не передаётся,если он не в динамической памяти,ведь это некая составная единица,и похоже,что так делать с объектами нельзя.То есть получается,что все промежуточные значения теперь теряются при передаче из функции,я попробую переделать.Но имеет ли смысл,вроде решено делать промежуточный код ?

Добавлено через 1 час 1 минуту 0 секунд
А может,ты прав,я заметил,что у меня выражение вроде как по другому сворачивается,но как теперь переделать-ума не приложу.

Деревья как отдельное понятие не нужны,но ведь надо же куда-то свалить все эти структуры?

Добавлено через 13 минут 30 секунд
Вот поменял немного-вроде теперь ок
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
    static Value syntax_parserPrimary()
    {
#if DEBUG && SYNTAX_PARSER_DEBUG
        debugger_Print(SYNTAX_PARSER_PRIMARY);
#endif
        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_CONST_STRING: {
                Value string_x(::parser_CurTokenStr, STRING);
                return string_x;
            }
            case TOKEN_IDENT: {
                return syntax_parserIdentRValue();
            }
            case TOKEN_DELIM_MINUS: {
                return -syntax_parserPrimary();
            }
            case TOKEN_BINARY_NOT: {
                return ~syntax_parserBinaryExpr();
            }
            case TOKEN_LEFT_PARENTH: {
                Value lvalue;
                lvalue = syntax_parserBinaryExpr();
 
                if (::parser_CurToken != TOKEN_RIGHT_PARENTH)
                   error(RIGHTP_EXPECTED);
                return lvalue;
                }
            default:
                error(WRONG_EXPRESSION);
        }
        // This is bad
        //это просто чтобе не получать предупр.компилятора
        Value null_x("0",INT);
        return null_x;
    }
/* ************************************************************************** */
    static Value syntax_parserTerm ()
    {
#if DEBUG && SYNTAX_PARSER_DEBUG
        debugger_Print(SYNTAX_PARSER_TERM);
#endif
        // Начальное значение.
        Value lvalue;
        lvalue = syntax_parserPrimary();
 
        while (true){
            switch (parser_GetToken())
            {
                case TOKEN_DELIM_MULTIPLY:
                    lvalue = lvalue * syntax_parserPrimary();
                break;
                case TOKEN_DELIM_DIVIDE:
                     lvalue = lvalue / syntax_parserPrimary();
                break;
                default: return lvalue;
            }
        }
        return lvalue;
    }
Тесты прогнал-работает.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru