Advertisement
Guest User

Untitled

a guest
Dec 28th, 2015
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. procedure _tostr_proc(var s:string);
  2. begin
  3.   replace(s, '\', '\\');
  4.   replace(s, '"', '\"');
  5. end;
  6.  
  7. function _getType(dt:PScData):integer;
  8. begin
  9.   Result := dt.getType;
  10.   if(Result = data_code)or(Result = data_array)then
  11.     Result := dt.getSubType;
  12. end;
  13.      
  14. function _toCode(data:PScData; toType:byte):PScData;
  15. var ok:boolean;
  16. begin
  17.    Result := data;
  18.    ok := false;
  19.    case toType of
  20.      data_int:
  21.       case _getType(data) of
  22.        data_null:
  23.         // Преобразовать NULL в int
  24.         begin
  25.           Result := MakeData('0', true);
  26.           ok := true;
  27.         end;
  28.         // Преобразовать string в int
  29.        data_str:
  30.         begin
  31.           Result := MakeData('S2I(', true);
  32.           Result.AddValue(data, true);
  33.           Result.AddValue(MakeData(')', true), true);
  34.           ok := true;
  35.         end;
  36.         // Преобразовать string в real
  37.        data_real:
  38.         begin
  39.           Result := MakeData('R2I(', true);
  40.           Result.AddValue(data, true);
  41.           Result.AddValue(MakeData(')', true), true);
  42.           ok := true;
  43.         end;
  44.       end;
  45.      data_str:
  46.       case _getType(data) of
  47.       // Преобразовать null в str
  48.        data_null:
  49.         begin
  50.           Result := MakeData('""');
  51.           ok := true;
  52.         end;
  53.         // Преобразовать int в str
  54.        data_int:
  55.         begin
  56.           Result := MakeData('I2S(', true);
  57.           Result.AddValue(data, true);
  58.           Result.AddValue(MakeData(')', true), true);
  59.           ok := true;
  60.         end;
  61.         // Преобразовать real в str
  62.        data_real:
  63.         begin
  64.           Result := MakeData('R2S(, ', true);
  65.           Result.AddValue(data, true);
  66.           Result.AddValue(MakeData(')', true), true);
  67.           ok := true;
  68.         end;
  69.       end;
  70.      data_real:
  71.       case _getType(data) of
  72.       // Преобразовать null в real
  73.        data_null:
  74.         begin
  75.           Result := MakeData('0.0', true);
  76.           ok := true;
  77.         end;
  78.         // Преобразовать string в real
  79.        data_str:
  80.         begin
  81.           Result := MakeData('S2R(', true);
  82.           Result.AddValue(data, true);
  83.           Result.AddValue(MakeData(')', true), true);
  84.           ok := true;
  85.         end;
  86.         // Преобразовать int в real
  87.         data_int:
  88.         begin
  89.           Result := MakeData('I2R(', true);
  90.           Result.AddValue(data, true);
  91.           Result.AddValue(MakeData(')', true), true);
  92.           ok := true;
  93.         end;
  94.       end
  95.    end;
  96.   if ok then Result.SetSubType(toType);
  97. end;
  98.  
  99.  
  100. function _cpp_type(b:byte):string;
  101. begin
  102.   case b of
  103.    data_int: result := 'int';
  104.    data_str: result := 'string';
  105.    data_real: result := 'real';
  106.    else
  107.      Result := '';
  108.   end;
  109. end;
  110.  
  111. function lng_proc(parser:TParser; obj:pointer; index:integer; args:TArgs):TScData;
  112. begin
  113.  
  114. end;
  115.  
  116. procedure fill_lng_object(var methods:TAObjMethod; var count:integer);
  117. begin
  118.  
  119. end;
  120.  
  121. // change this for your pack settings
  122. const
  123.   lng_count = 1;
  124.   lngs:array[0..lng_count-1] of TLangRec = (
  125.      (entry:'MapInitialize';     name:'JASS';  str_del_o: '"'; str_del_c: '"'; op_del: ' + ';   var_mask:'%n%i'; tostr_proc:_tostr_proc)
  126.   );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement