Микита Бєлошенко
 

Тут я розміщую свої сторінки. В деяких групах відвідувачі сайту можуть розміщувати свої сторінки або редагувати, доповнювати, коментувати вже існуючі.

подать объявление

Додати до обраного Відправити мені e-mail
     
Що нового?
Про власника сайту
Зображення
Файловий архів
Щоденник
Форум
Сторінки
Посилання
Чат
Лічильник
Друзі
Мітки
Опитування
Митець Юлія Красна
nikitabeloshenko.com
Google blog
1ua
Радіоінженер Анатолій Бєлошенко
Митець Карасьова Олександра
 
Цікаві сайти
 
 
Відвідувачі
 
 
Календар
 
<
Травень 2012
>
ПнВтСрЧтПтСбНд
 123456
78910111213
14151617181920
21222324252627
28293031
 
Підписка
 
E-mail: 
 
 
 
 
Яку мову програмування Ви використовуєте?

Результати опитування
 
Інші сайти
 
prostokvaw
juliakrasnaya Юлія Красна
sud СПРАВЕДЛИВИЙ СУД
zen-alona Альона Зень
jesypenko Олег Лаврись
 
Коментовані запису
 
 
Топ коментаторів
 
beloshenko Микита Бєлошенко
Коментрі: 223
nazar123 Назар
Коментрі: 8
alisa-2009 alisa
Коментрі: 7
falkons2 sergey
Коментрі: 5
lola605 lola
Коментрі: 5
  Повернутися на головнуМикита Бєлошенко / Сторінки / Programs / Стара версія проекту коду MLMP на С. Це поетапний результат перекладу з мови програмування Паскаль та з адоптацією до дії в середовищі налаштованому під ОС Лабіринт.  

Стара версія проекту коду MLMP на С. Це поетапний результат перекладу з мови програмування Паскаль та з адоптацією до дії в середовищі налаштованому під ОС Лабіринт.

0.00 (0)

Продовження перекладу MLMP з Pascal на C. Фрагмент.

//--------------------
//   MLMP Library
//--------------------


#include "pasemul.h"

#include "Counter.h"
#include "Memory.h"
#include "Module15.h"     

#define BufSize 250                 //+
#define StackSize 1000              //+

extern TP70_String cmExit = "Выход_из_программы";
extern TP70_String cmGoto = "Перейти_к";
extern TP70_String cmEQUid = ":=";
extern TP70_String cmvEQUid = "=";
extern TP70_String cmbLeft = "";
extern TP70_String cmRepeat = "Цикл";
extern TP70_String cmWrForX = "Записать_значение_цикла_в";
extern TP70_String cmExWFor = "Выход_из_цикла";
extern TP70_String cmVar = "Создать_переменную";
extern TP70_String cmReal = "Реальное_число";
extern TP70_String cmInteger = "Целое_число";
extern TP70_String cmString = "Строка_символов";
extern TP70_String cmChar = "Один_символ";

class MyVar                         //+
{                                   //+
public:                             //+
  TP70_String* Name;
  float*  R;
  int*    I;
  TP70_String* S;
  char*   C;                        //+
};                                  //+

int MFinder[StackSize+1];           //+
int BFinder[BufSize+1];             //+

class MType : public ThisProgram    //+
{                                   //+
public:                             //+
  GString* List[100+1];
  int*    MyMem[1000+1];
};                                  //+

class MClass : public ThisProgram   //+
{                                   //+
public:                             //+
  TP70_String* List[100+1];
  int*    MyMem[1000+1];
  TP70_String* Proc[100+1];
  TP70_String* Func[100+1];
};                                  //+

class COMMAND : public ThisProgram  //+
{                                   //+
public:                             //+
  TP70_String ErrMsg;            
  int NumRC;                        //+
  TP70_String Buffer[BufSize+1];
  TP70_String GetLastCommand();
  TP70_String GetNLastCommand(int N);
  int RunLabel(TP70_String Str);
  int cEQUDecode(TP70_String MLT, TP70_String S, MyVar EQU);
  void ClearBuffer();
  void SetCommandLine(TP70_String Str);
  void ReWriteBuffer(TP70_String Str);
  void RunBuffer();
  void RunCommand(TP70_String Str);
  void MLGotoCommand(TP70_String Command);
  void MLForCommand(TP70_String Command);
  void MLWriteForIntoX(TP70_String Command);
  void MLExitWithFor(TP70_String Command);
  void MLIfCommand(TP70_String Command);
  void MLProcedureCommand(TP70_String Command);
  void MLFunctionCommand(TP70_String Command);
  void MLTypeCommand(TP70_String Command);
  void MLObjectCommand(TP70_String Command);
  void MLConstCommand(TP70_String Command);
  void MLVarCommand(TP70_String Command);
};                                  //+

class MLEQUs : public Command       //+
{                                   //+
public:                             //+
  int EQUDecode(TP70_String MLT, TP70_String S, MyVar EQU);
  float RealDecode(TP70_String Str);
  int IntegerDecode(TP70_String Str);
  bool BoolIfer(TP70_String Str);
  void ChangeAllsVariables(TP70_String MStr);
  void ChangeAllsSignAndSaves(TP70_String S, char Ch);
  void CountAllsOperand(TP70_String S, float R);
};                                  //+

class MLRepeat                      //+
{                                   //+
public:                             //+
  int i;                            //+
  int Activ;
  TP70_String RLabel;
};                                  //+

class MLRep : public ThisProgram    //+
{                                   //+
public:                             //+
  MLRepeat RBuffer[BufSize+1];    
  int Init(TP70_String S);
  bool Done(TP70_String S);
  void ClearList();                 //+
};                                  //+

Субмодуль 1.

class MMemory : public ThisProgram  //+
{                                   //+
public:                             //+
  MyVar* Variables[StackSize+1];
  int NewVar(TP70_String Name, TP70_String NVType, MyVar EQU);
  int NewType(TP70_String Name, int Size, MType List);
  int NewClass(TP70_String Name, int Size, MClass List);
  int ReWStack(TP70_String Name, TP70_String NVType, MyVar EQU);
  void FindInMemory(TP70_String Name, MFinder F);
  void FindInBuffer(TP70_String Name, BFinder F);
  void ClearMem();                  //+
};                                  //+

MMemory* MLMemory;
COMMAND* C;
MLEQUs*  EQUs;
MLRep*   MLR;

Субмодуль 2.

GString COMMAND::GetLastCommand()
{
        int i = 1; //+
        while(Buffer!="")
        { //+
              i++; //+
        }; //+
        i = i - 2; //+
GetLastCommand = Buffer;
}

Субмодуль 3.

GString COMMAND::GetNLastCommand(int N)
{
        int i = 1; //+
        while(Buffer!="")
        { //+
              i++; //+
        }; //+
        if(N>BufSize-2) //+
        { //+
           GetNLastCommand = "КОММАНДА УТЕРЕНА(Buffer=100) (N>98)!";
        } else //+
        { //+
           N++; //+
           i = i - N; //+
           GetNLastCommand = Buffer;
        }; //+
        if(N>BufSize-2) //+
        { //+
           ErrMsg = "КОММАНДА УТЕРЕНА(Buffer=100) (N>98)!";
        }; //+
}

Продовження за адресою :

http://beloshenko.ucoz.ru/publ/2-3-0-60


Мітки: beloshenko, mlmp, programs
Коментар: 4 Переглядів: 246 [Історія змін] Розмір:5747 байт
Останні зміни зроблені: beloshenko Микита Бєлошенко 318 дні(в) тому 11.07.2011 22:48:55
 
Опублікувати коментар
 
 
 
Ім'я Пароль
розширений... ( / Реєстрація )

Тема

В тексті можна використовувати Wiki або HTML теги




 
Хто на сайті?
 
Анонімні: 5, Зареєстровані: 0 (?)
Скарга | Розміщено на MyLivePage | | Design by Drive | © Kolobok smiles, Aiwan