Эще раз о локализации MQL - страница 7

 
DDFedor >>:

вообщем, я хотел сказать, что бухи - вообще не суются в программирование, финансисты - не считают составление СВОЕГО "отчета" программированием, все это к тому, что нужно различать "пользователя" и "программиста" в ЛЮБОМ ПРОДУКТЕ... сейчас же мы говорим об окружении ДЛЯ ПРОГРАММИСТА, и "бухгалтера-финансисты", как пользователи, в этой теме - совершенно не показательны, как и трейдеры, которые не открывают метаэдитор... которым будет по-барабану "русский язык" или "НЕ русский"...


А ну теперь идея понятна. Могу привести в пример (уже) своих бывших колег. Они быстрее осваивают 1С-ку поскольку та на русском, почти что как пользователи.
 
А сложно составить модуль, в котором через "дефайны" всё и определить? И будет программирование на русском или другом языке.
 
yuripk >>:
А сложно составить модуль, в котором через "дефайны" всё и определить? И будет программирование на русском или другом языке.

не сложно, вот код который компилится без ошибок

#define цикл for 
#define целое int 
#define Печать Print

void OnStart()
{
   целое Сумма = 0;
   цикл (целое Номер = 0; Номер < 10; Номер++) Сумма += Номер;
   Печать ( Сумма );
}

Вопрос в том, что это: недоделанная багофича или уже так и останется? ведь может статься так, что у разработчиков когда нибудь дойдут руки до проверок и они решат запретить использовать в дефайнах зарезервированные слова :(

 
ForexTools >>:

не сложно, вот код который компилится без ошибок

Вопрос в том, что это: недоделанная багофича или уже так и останется? ведь может статься так, что у разработчиков когда нибудь дойдут руки до проверок и они решат запретить использовать в дефайнах зарезервированные слова :(

Технически, дефайн - это набор неких токенов языка, подставляемых в процессе синтаксического разбора.

Запрещать какие либо токены или какой либо их набор не имеет смысла.
Важно лишь одно, нельзя допустить переопределения оператора языка (if, for, return, ...).
Сейчас думаем также исключить из списка возможных имён дефайнов "системные" функции языка.

 
ForexTools >>:

не сложно, вот код который компилится без ошибок

Вопрос в том, что это: недоделанная багофича или уже так и останется? ведь может статься так, что у разработчиков когда нибудь дойдут руки до проверок и они решат запретить использовать в дефайнах зарезервированные слова :(

Если у них препроцессор работает по принципу сишного - то никаких проверок не появится.

Единственное что, что не уверен, что сишный препроцессор бы дал назначить макросу русское имя. :)

 
mql5 >>:


Важно лишь одно, нельзя допустить переопределения оператора языка (if, for, return, ...).

переопределять их конечно нельзя, но "переназвать" можно (в моем примере for переназвался циклом)

 
mql5 >>:

Технически, дефайн - это набор неких токенов языка, подставляемых в процессе синтаксического разбора.

Запрещать какие либо токены или какой либо их набор не имеет смысла.
Важно лишь одно, нельзя допустить переопределения оператора языка (if, for, return, ...).
Сейчас думаем также исключить из списка возможных имён дефайнов "системные" функции языка.


  Запретить - то, что нашим гражданам привычно.
 
yuripk >>:


Запретить - то, что нашим гражданам привычно.

Не понял к чему это....


так можно:

#define если "тут можно написать что угодно и это всё вставиться в код при встрече 'если'"


так нельзя:

#define if "нельзя ключевые слова переопределять - ошибка компиляции"


возможно так будет нельзя:

#define Sleep "на данный момент так написать можно, но скорее всего это мы прикроем - будет ошибкой при компиляции"

 

Вот выбрал из справки. Кто хочет - можно потестить ;)

// Типы данных			
                                    
#define		логический      bool			
#define		символ          char			
#define		бзсимвол        uchar			
#define		короткий        short			
#define		бзкороткий      ushort		
#define		целый           int			  
#define		бзцелый         uint			
#define		длинный         long			
#define		бздлинный       ulong			
#define		двойной         double		
#define		плавающий       float			
#define		цвет            color			
#define		датавремя       datetime	
#define		строка          string		
#define		перечисление    enum			
#define		структура       struct		
#define		класс           class			
#define		безтипа         void			
		 			                          
                                    
// Спецификаторы доступа			
					                          
#define		константа       const			
#define		личный          private		
#define		защищенный      protected	
#define		публичный       public		
#define		виртуальный     virtual		
					                          
                                    
// Классы памяти			
                                    
#define		внешний         extern		
#define		статический     static		
#define		ввод            input			
		 			                          
					                          
// Операторы			
					                          
#define		поумолчанию     default		
#define		размер          sizeof		
#define		новый           new			  
#define		удалить         delete		
#define		если            if			  
#define		иначе           else			
#define		выбор           switch		
#define		вариант         case			
#define		выполнить       do			  
#define		пока            while			
#define		цикл            for			  
#define		прервать        break			
#define		продолжить      continue	
#define		возврат         return		
			                              
					                          
// Прочие			
					                          
#define		ложь            false			
#define		этот            this			
#define		истина          true			
                          
                          
 
ForexTools >>:

Вот выбрал из справки. Кто хочет - можно потестить ;)

А ещё это можно на mqh-шечку залить в инклюдничек поместить, а вызовочек из инклюдничка прописать сразу в шаблончик,

ну и над чем копья ломяться?

Причина обращения: