Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17306 / 5554 / 347
Регистрация: 30.03.2009
Сообщений: 15,114
Записей в блоге: 26
14.08.2009, 20:43     Пишем свой интерпретатор языка BASIC
Цитата Сообщение от #pragma Посмотреть сообщение
Ну например
PureBasic
1
2
3
4
IF () {
     IF (){
          IF(){
#   Неизвестное количество раз
Но ведь тебе никто не мешает распарсить выражение a+a+a+...<неизвестное количество раз> и построить его в виде дерева. Так же и здесь если в лоб, что всё будет в виде дерева (без бумажки нарисовать трудно). Либо всё делать линейно (т.е. вообще отказаться от оператора IF в промежуточном представлении, заменив егона пару операций BRANCH и COND_BRANCH). В любом случае в процессе распарсивания у тебя будет рекурсивный вызов одного и того же синтаксического правила, а за счёт этого построится либо нужное количество уровней в дереве, либо нужное количество операций перехода

Цитата Сообщение от #pragma Посмотреть сообщение
Есть такое поверье-фирмы хайтек падают не при создании первой версии,а при переходе на вторую,иногда получается,что переделывать слишком много
Я потому тебя и веду по тому пути, чтобы пришлось переделывать. Ибо только занимаясь этим на практике можно реально понять КАК надо писать программу, чтобы она в будущем легко переделывалась, а так же сразу закладываться на какие-то переделки, которые сейчас не нужны, но теоретически могут понадобиться в будущем

Цитата Сообщение от #pragma Посмотреть сообщение
Так что я за парсинг два раза,просто пока отказываемся от процедур.Я пока стараюсь немного причесать код,кое-где подправил условия,как ты предложил,так действительно лучше(проинвертированные условия),также добавил работу с препроцессором,что немного уменьшило выходной файл.Ещё я поубавил отступы,код выглядит поплотнее,но не знаю,я только надеюсь,что это не ухудшило читабельность,мне то трудно судить,я его уже знаю от и до ..
Значит пока одна большая проблема снимается с повестки дня. ТОгда надо взять за основу какой-то из существующих бэйсиков. Если все они с процедурами, то просто выкидываем поддержку процедур. Тестовых примеров насребём в соотвествующем разделе форума. Щас я туда закину вопрос по поводу всех этих бэйсиков

Добавлено через 5 минут 26 секунд
Закинул сюда Вопрос про разные реализации бэйсиков

Добавлено через 1 час 16 минут 21 секунду
Пока не забыл. Функции тем не менее остаются, но только встроенные (SIN, COS и т.п.). С точки зрения парсера удобнее считать, что это keyword'ы - проще получается разбор. С точки зрения дальнейшей поддержки функций лучше считать, что это IDENT, а дальше уже разбираться, у нас идёт обращение к переменной или вызов функции

Добавлено через 4 часа 31 минуту 32 секунды
Кстати, звучит как парадокс, но вариант с промежуточным представлением проще, чем с двумя проходами. Хотя тебе полезно сделать оба варианта (сначала "плохой")
 
Текущее время: 11:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru