示例#1
0
// Выполнение одного слова
void LFMRunWord(AnsiString Word)
{
if (Word!="") {
    try{
    if (!IntConvert(Word)) {
                    Words *Wrd=DictBegin->Find(Word);
                    if (Wrd==NULL)
                                    throw (AnsiString("Неизвестно слово: "+Word)).c_str();
                                        else
                                    if ((StateLFM==Immediat) || (Wrd->Immediate))
                                        {
                                        Stret->push(NULL);
                                        (Run[Wrd->Execute])(Wrd->Link);
                                        Stret->pop();
                                        }
                                            else {
                                        EWord *x=new EWord;
                                        x->Data=Wrd;CatDat(x); }
                    } else {
                        if (StateLFM==Compilat) {
                            bool typ=false;
                            typ=ILit();
                            if (!typ) throw "Нельзя компилировать неизвестные компилятору данные";
                            }
                    }
    }
    catch (char *S) {
    MessageDlg(AnsiString(S),mtError,TMsgDlgButtons() << mbOK,0);
    }
}
}
void
Connection::WriteInt(int val)
{
    if(doConversion)
    {
        unsigned char buffer[8];
        int nbytes = IntConvert(val, buffer, IntFormat());
        Append(buffer, nbytes);
    }
    else
        Append((unsigned char *)&val, SIZEOF_INT);
}