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

Пишем свой интерпретатор языка 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
Временно недоступен
954 / 225 / 6
Регистрация: 12.04.2009
Сообщений: 921
25.10.2010, 22:34  [ТС]
Действительно,о таком случае последовательного вызова я как-то даже и не подумал . Надо глянуть.
Видимо,там дело в том,что при построении дерева функции func1 func2 ещё не известна,нужно делать похожую вещь,как с метками,проверяя соответствие вызовов с определениями.
Странно,но у меня почему-то после удаления func2 выдаёт-таки ошибку: file:source_err.bas line:5 error: Undefined symbol: LOC на код:
код
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DIM SHARED glob AS INTEGER
LET glob = 10
 
SUB func1
  LET loc = loc + 1
  PRINT "func1: glob="; glob; "; loc="; loc
  LET glob = glob - 1
  IF glob > 0 THEN
    CALL func1
  END IF 
END SUB
 
CALL func1
 
PRINT "main end: glob="; glob; "; loc="; loc

Добавлено позже:
Я походу,так увлёкся функциями,что или сломал что-то,или до этого так и было : у меня ошибку на LOC выдавало потому,что интерпретатор запущен с опцией --noinit-errors,а по идее там должна быть инициализация нулём в выражении... и она даже есть,просто механизм функций всё поменял. Буду исправлять.

Про сборку:
Я пытался сделать,чтобы при отсутствии Qt собиралась только косольная программа,в итоге я так и не смог этого добиться,судя по твоим логам. Всё это я пытался проделать в Makefile.
Насчёт предупреждений,я как раз думал,как лучше сделать.До сих пор с сомнениях.
Дело в том,что в программе неудачно реализован "менеджмент" памяти.Есть шаблонная функция memalloc() которая принимает неинициализированный указатель,а возвращает инициализированный+подсчитывает количество выделенной памяти.Это,в свою очередь,вызывает кучу предупреждений о том что в функцию посылается неинициализированный указатель. Очень мозолит глаза Вот теперь не знаю,как же быть,прокручиваю все варианты(autoptr и другое пока использовать неохота).Думал сделать специальный интерфейс выделения памяти,но тоже получается не очень красиво:
C++
1
pool.alloc(memory::alloctype::STATEMENT)
Что-то типа того,но проблема в том,что при добавлении нового типа нужно будет залезть в enum,а также в функцию alloc,и ещё в том,что alloc будет типа void *.А если делать по функции на каждый тип,то будет много функций-тоже криво.Нужно добиться жёсткого конроля памяти,и в то же время не испортить то,что уже есть..
Это что, в бэйсике так придумано?
Я,честно говоря,точно не понял,как там на самом деле,ибо на разных ресурсах пишут по-разному. Но вроде qbasicstation авторитетный ресурс,и если я правильно понял английский текст,то так и сделал.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.