миха, давай за Game Maker. На нём я больше работал, чем на SC العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
Теперь я иду по следам simtiko, разбираясь в дебрях Coco/R. Одно дело что-то писать с нуля, и совсем другое - делать всё по шаблону. Терпенье и труд - всё перетрут! Молодец! العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
Skype: arab-emir
Сообщение отредактировал Arab-Emir - Вторник, 25 Января 2011, 15:43
Доброго времени суток, Уважаемые Форумчане! Последние дни интересовался программой генерации компиляторов и интерпретаторов Coco/R. В общем, набрал в Яндекс'е запрос "работа с Coco/R". На сайте Сhernyshov.сom нашёл небольшое руководство, статью, по работе с Coco/R в Microsoft Visual Studio. (Красным цветом выделено то, с чем я не могу разобраться.)
Порядок работы для COCO/R в Visual Studio В новый рабочий каталог разместить файлы Coco.exe, Scanner.frame и Parser.frame. Создать файл CLN.ATG с описанием лексики и грамматики языка. (в данной работе грамматика простая - последовательность лексем) Например: COMPILER CLN
TOKENS Ident = letter {letter | digit}. Number = digit {digit}.
COMMENTS FROM "//" TO lf
IGNORE cr + lf + tab
PRODUCTIONS
CLN = { Number | Ident }.
END CLN. Для создания приложения с экранной формой предусмотреть текстовое поле, куда будут выводиться лексемы. В классе Parsera необходимо также разместить объект типа TextBox, в который перед запуском записать указатель на поле в форме. В прогрммае должны быть выполнены следующие операторы: Scanner scanner = new Scanner("test.cln"); Parser parser = new Parser(scanner); parser.tB = this.textBox1; parser.Parse(); В грамматике делаются вставки, которые будут размещатся в сгенерированных программах. Одна для описания поля TextBox, две после определения каждой из двух лекскем. Последние заключаются в скобки (. .): COMPILER CLN public System.Windows.Forms.TextBox tB; CHARACTERS letter = 'A'..'Z' + 'a'..'z'. digit = "0123456789". cr = '\r'. lf = '\n'. tab = '\t'. TOKENS Ident = letter {letter | digit}. Number = digit {digit}. COMMENTS FROM "//" TO lf IGNORE cr + lf + tab PRODUCTIONS CLN = { Ident (. tB.Text += "\r\n" + t.val; .) | Number (. tB.Text += "\r\n" + t.val; .) }. END CLN. Поскольку Parser.cs и Scaner.cs создаются без указания пространства имен, в главной форме пространство имен также не нужно. Запустить в командной строке Coco.exe CLN.ATG. В случае отсутствия ошибок в каталоге создадутся файлы Scanner.cs и Parser.cs. При нормальном завершении выдаются сообщения: Coco/R (Sep 19, 2006) checking CLN deletable parser + scanner generated 0 errors detected Ошибки выглядят так: Coco/R (Sep 19, 2006) checking CLN deletable No production for Stat1 1 errors detected В данном случае в грамматике не найдено правило для нетерминала Stat1. Внесите в текст описания языка изменения и выясните, какие типы ошибок сообщает система. Используйте при запуске COCO.exe режимы работы, которые задаются так: COCO.exe CLN.atg -trace ASF. В последоватльености сиволов буквы означают следующее: A print the states of the scanner automaton F print the first sets and follow sets of all nonterminals G print the syntax graph of all productions I trace the computation of first sets J list the ANY and SYNC sets used in error recovery P print statistics about the run of Coco/R S print the symbol table and the list of declared literals X print a cross reference list of all terminals and nonterminals Для пакетного варианта приложения создайте файл CLN.cs с главной программой: using System; public class CLN { public static void Main(string[] arg) { Scanner scanner = new Scanner(arg[0]); // создать сканер Parser parser = new Parser(scanner); // создать парсер parser.Parse(); // запустить парсер Console.WriteLine("Обнаружено ошибок: "+ parser.errors.count); } } Оттранслируете главную программу, сканер и парсер: csc.exe CLN.cs Scanner.cs и Parser.cs Если траснялтор C# не доступен, создайте пакетный файл cs.bat для его вызова. Например: C:\WINNT\Microsoft.NET\Framework\v2.0.50727\csc.exe %1 scanner.cs parser.cs В таком случае он запускается cs.bat CLN.cs В результате получится исполнимый файл синтаксического анализатора CLN.exe! Напишите тестовую программу на языке CLN test.cln. Например: ccc 111 333 sss Выполните ее: CLN.exe test.cl При отсутствии ошибок выведется ссобщение "Обнаружено ошибок: 0" Внесите в текст программы ошибки и выясните, какие типы ошибок сообщает синтаксический анализатор.
Прошу программистов, которые работали (или работают) с этой программой, помочь. И если можно, объясните по пальцам мне, что и где писать в кодах. Пожалуйста, если можете, выложите исходные файлы (CLN.ATG, Parser.cs, Scanner.cs, test.cl) P.S. Использую Microsoft Visual C# 2010 Express. العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
Skype: arab-emir
Сообщение отредактировал Arab-Emir - Понедельник, 24 Января 2011, 15:36
Добавлено (22.01.2011, 11:16) --------------------------------------------- аТнОтХоАн, Skript47 написал, что невозможно. Как в MTA, так и в SAMP. Так что Toffi, ты не мог ничего сделать... Только в сингле
العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
Skype: arab-emir
Сообщение отредактировал Arab-Emir - Суббота, 22 Января 2011, 08:21
Man, +1. Графика там и не крутая, а тысячи людей проводят большое количество времени, именно за этой игрой. العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
vicmad, это точно. В эти моменты мы действительно становимся шаманами. Компьютерными. От синего экрана не застрахован никто. В некоторых случаях, действительно SP3 помогает. العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
nilrem, что с проектом? Последняя версия датируется 1 Октября прошлого года. العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
Skype: arab-emir
Сообщение отредактировал Arab-Emir - Понедельник, 24 Января 2011, 14:10
Интересный проект - "Мобильный киоск". Конструктор хороший. Автору удачи! العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
doxl, идея конечно интересная, но вот с грамматикой у тебя, немного не всё в порядке. (Не в обиду будет сказано ) العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
Skype: arab-emir
Сообщение отредактировал Arab-Emir - Суббота, 22 Января 2011, 07:45
AnnTenna, до поры, до времени относился ко всяким квестам отрицательно. Но твоя игра заставила меня взглянуть на этот жанр с другой стороны. Спасибо! العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
Хорошая программа. Если бы ещё Open Source... Из Autoplay'я можно выжать многое. При умении, конечно. аТнОтХоАн, на данный момент, лучше восьмая версия. Стабильная, и функций больше العرب من الإمارات - Араб из Эмиратов. "Плох ни тот, кто не знает, а тот, кто не хочет знать."
Skype: arab-emir
Сообщение отредактировал Arab-Emir - Суббота, 22 Января 2011, 07:23