Создай язык сам, или конструктор для программиста
Спецвыпуск Хакер, номер #004, стр. 004-066-3
PLC_ExecExpression(PLC_TOK_Anchor(Expression1));
while(1)
{
if(Expression2!=NULL)
{
PLC_ExecExpression(PLC_TOK_Anchor(Expression2));
if(!PLC_DT_GetBool(&PLC_Result)) break;
}
PLC_ExecStatement(Statement,NULL);
if(PLC_FlowStatus==PLC_FLOW_BREAK) {PLC_FlowStatus=PLC_FLOW_NORMAL; break;}
else if(PLC_FlowStatus==PLC_FLOW_RETURN || PLC_FlowStatus==PLC_FLOW_GOTO)break;
else if(PLC_FlowStatus==PLC_FLOW_CONTINUE) PLC_FlowStatus=PLC_FLOW_NORMAL;
PLC_ExecExpression(PLC_TOK_Anchor(Expression3));
}
break;
// GOTO
case TT_KEY_GOTO:
PLC_SYMBOL *Symbol=(PLC_SYMBOL*)PLC_TOK_Pointer(Token);
Symbol=PLC_SymbolSearch(Symbol->Name,0,false); // atp-search local scope only!
if(Symbol==NULL || Symbol->LabelTarget==NULL) PLC_Err(PLC_ERR_UNKNOWN_LABEL_s,((PLC_SYMBOL*)PLC_TOK_Pointer(Token))->Name);
PLC_GotoToken=Symbol->LabelTarget;
PLC_FlowStatus=PLC_FLOW_GOTO;
break;
}
}
Точно так же в процедуре ApplyOperator() оставляются только пункты, отвечающие за арифметику и операции сравнения. А процедуру PLC_C_Init() нужно оставить неизмененной. Теперь осталось только перекомпилировать пример и попробовать какую-нибудь простенькую прогу:
10 PRINT "Я ЭТО СДЕЛАЛ!"
20 GOTO 20
Все довольно просто, если учиться на примерах. Теперь твоя очередь. Уверен: посидишь недельку - и сам напишешь свой собственный дельфи :). Желаю удачи!
Частенько бывает, что в Сети находишь материалы, ценность которых поначалу неочевидна. Иногда в поисках чего-нибудь этакого бродишь по софтверно-даунлоадному сайту и ничегошеньки на нем вроде бы хорошего нет. Другое дело, когда кто-нибудь рассказывает про крутую фишку, скачанную в течение бессонной ночи с какого-нибудь зимбабвийского сервера или стащенную прямо под носом у тамошнего растяпы-админа. В этот раз все было не столь романтично - редактор нашего журнала рассказал мне о классной проге, которая якобы была найдена им на www.softseek.com и которая позволяет создавать языки самому. Честно признаюсь, доселе не видел ни одной программы, которая позволяла бы создавать языки и потом на них что-нибудь писать. Любопытство поразило меня в то самое место, на которое я так часто нахожу приключения, и я не смог удержаться - сказал, что берусь поведать начинающим хакерам про эту сказочную утилитку. Так, вооружившись компьютером, момедом и купленными по случаю часами Интернета, я позволил вовлечь себя в эту авантюру. Итак, загрузившись на www.softseek.com и пошарив по разным каталогам, я все-таки нашел меченую моим редактором прогу. Затем я смело шагнул навстречу опасности, нажав на "download".