Yoko

All sides of Injection
It is currently 2024-03-28 16:58:19

All times are UTC+02:00




Post new topic  Reply to topic  [ 3 posts ] 
Author Message
 Post subject: Break
PostPosted: 2004-09-13 15:56:23 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
В свете обсуждения в General перспектив переписывания скриптового модуля хочу написать о наболевшем :)

Очень хотелось бы увидеть в синтаксисе языка команду Break. Эта команда (обычно) прерывает исполнение циклов while, repeat, for. То есть, например:

Code:
for i=1 to 5
   if i == 3 then
      break
   endif
next


На сегодняшний день выполнить такое можно только вынеся этот цикл в отдельную функцию, а в ней вместо break поставить return. Но этот способ приводит во-первых к излишнему умельчению модулей скрипта, во-вторых (из-за необходимости передавать в эти функции множество параметров и получать некоторые из них обратно) - к раздуванию количества глобальных переменных. Что тоже не есть хорошо. Такой оператор есть практически в каждом языке программирования и, насколько я понимаю, его реализация в интерпретаторе или компиляторе не должна вызывать значительных трудностей.


Top
   
 Post subject:
PostPosted: 2004-09-13 16:33:22 
Offline
Site Admin
User avatar

Joined: 2004-04-03 16:49:38
Posts: 1964
не брейков единых не хватает в скриптовом модуле. его проблемы в особенностях реализации. вообще автор сделал скриптовый модуль из компилятора, что является экзотическим решением для интерпретаторов.

кстати насчёт прерывания фора, если такое мне требуется, я обычно приспосабливаю для этого изменение переменной счётчика (в твоём случае if i==3 then \ i=5 \ end if)


Top
   
 Post subject:
PostPosted: 2004-09-13 17:12:18 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Yoko wrote:
не брейков единых не хватает в скриптовом модуле. его проблемы в особенностях реализации. вообще автор сделал скриптовый модуль из компилятора, что является экзотическим решением для интерпретаторов.

кстати насчёт прерывания фора, если такое мне требуется, я обычно приспосабливаю для этого изменение переменной счётчика (в твоём случае if i==3 then \ i=5 \ end if)


Ну фор я привел только для примера... Можно конечно вводить спецпеременную, специально для прерывания циклов, проверку ее в условия, эх... но гимор страшный. Насчет способа реализации - я читал. И сам поражался... А в языке конечно не хватает оператора Case, но вряд ли он и будет реализован. Хотя для него тоже нужен break.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 3 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 12 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited