Перейти к содержимому


Фотография

Синтаксический сахар для Lua

translator

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 12 Октябрь 2015 - 22:46

Создал небольшой транслятор для lua-кода, суть его превращать конструкции вида  if stat {...} -> if stat then ... end, while stat {...} -> while stat do ... end, for stat {...} -> for stat do ... end.

Натолкнуло меня на это то что многие текстовые редакторы, который поддерживаю программирование, рассчитаны на быстрое написание языков с блоками {}, то есть написал {, а тебе автоматом  }, + 2 символа меньше {then end} = 7 {do end} = 5, больше намного.

 

Описание:

На вход подавать список файлов, на выходе получите filename+".out"

 

Pastebin: http://pastebin.com/6fQsWnk1

 

Программа тестировалась, но не набольших текстах, так что про все баги сообщать сюда.

 

ow7H9Sa.png


Сообщение отредактировал NEO: 12 Октябрь 2015 - 22:47

  • Fingercomp и ECS это нравится

#2 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 12 Октябрь 2015 - 23:00

Нашёл баг, сейчас пытаюсь исправить.



#3 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,35%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 13 Октябрь 2015 - 07:38

Ты же, вроде, писал че-то такое, еще были операции множественного присваивания...


Сообщение отредактировал SergOmarov: 13 Октябрь 2015 - 07:38


#4 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 13 Октябрь 2015 - 13:09

Ты же, вроде, писал че-то такое, еще были операции множественного присваивания...


То была показательная версия, как и эта. На больших программах возникают ошибки, но я занимаюсь решением этого бага.

#5 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,65%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 13 Октябрь 2015 - 14:27

сделай, чтоб if a=b меняло на if a==b :)



#6 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,35%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 14 Октябрь 2015 - 10:18

сделай, чтоб if a=b меняло на if a==b :)

Байсик любишь?



#7 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,65%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 14 Октябрь 2015 - 13:21

Байсик любишь?

Я его не знаю, просто вечно путаю эти операторы



#8 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,35%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 16 Октябрь 2015 - 13:22

А смешанный код можно сувать?

if(a){

}
if(a)then

end


#9 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 16 Октябрь 2015 - 14:17

Да, но это показательная версия, есть баг, очень плохой.



#10 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,35%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 16 Октябрь 2015 - 14:22

Рассказывай)



#11 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,35%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 12 Январь 2016 - 13:45

Переделал под вид api(Нео, я тебе отправил письмо с вопросом по этой проблеме, но не дождался): http://pastebin.com/cbED8cbK






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных