Показать сообщение отдельно
Старый 09.10.2009, 06:35   #28
satan
Нуждающийся
 
Регистрация: 10.02.2007
Сообщений: 99
Написано 18 полезных сообщений
(для 28 пользователей)
Re: Предложения для добавления функционала в MP

program test;

const
    a = 1;
    b = 1.222;
    c = 'a';
    d = true;
    e = 'aaasssddd';

  MaxCode     = 65536;
  MaxIdent    = 512;
  MaxType     = 32;
  MaxList     = 10;
  MaxAlfa     = 20;
  MaxStrLen   = 255;
  MaxCase     = 256;
  MaxBinCode  = 262144;


type
  TAlfa = array [1..22] of char;
  TAlfa1 = TAlfa;
  TAlfa2 = TAlfa1;
  TAlfa3 = TAlfa2;

  TIdent=record
    //name          :TAlfa3;
  end;

  TType=record
    Size          :TIdent;
    Kind          :integer;
    StartIndex    :integer;
    EndIndex      :integer;
    SubType       :integer;
    Fields        :integer;
  end;

  TType2=record
    Size          :TType;
    Kind          :TIdent;
    StartIndex    :integer;
    EndIndex      :integer;
    SubType       :integer;
    Fields        :integer;
  end;

var
  Code        :array [0..22] of integer;
  TokNameList :array [0..22] of integer;
  CurChar     :char;
  LinePos     :integer;
  LineNum     :integer;
  CurTok      :integer;
  CurID       :TAlfa;
  CurNum      :integer;
  CurStr      :array [1..MaxStrLen] of char;
  CurStrLen   :integer;
  FuncDecl    :integer;
  LastOpcode  :integer;
  CurLevel    :integer;
  IsLabeled   :boolean;
  IdentPos    :integer;
  TypePos     :integer;
  IdentTab    :array [0..MaxIdent] of TIdent;
  TypeTab     :array [1..MaxType] of TType;
  CodePos     :integer;
  StackPos    :real;

procedure NewParameter(var P,PS:integer);
var
  R:boolean;
  T:integer;

begin

end;

begin
    StackPos:= b+22.134;
end.
В процедуре create_put_variable_bytecode (bytecode.c) есть
class_index := cp_add_class('Real');
        method_index := cp_add_methodref('Real', '<init>', '(LReal;)V');
        bytecode_append(code, new_);
То есть реал поддержка есть, там вообще много чего хитрого есть...
Например запрет на вложенные процедуры или отрицательные интервалы

array [-22..22] of ...
Однако по коду можно судить, что автор это сделал намерено...
(Offline)