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

Пишем свой интерпретатор языка 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; ... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18691 / 6657 / 469
Регистрация: 30.03.2009
Сообщений: 18,630
Записей в блоге: 29
14.08.2009, 20:43
Цитата Сообщение от #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 секунды
Кстати, звучит как парадокс, но вариант с промежуточным представлением проще, чем с двумя проходами. Хотя тебе полезно сделать оба варианта (сначала "плохой")
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru