parent
4b8e9b297b
commit
15429f1061
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "3";
|
||||
public const string Build = "0";
|
||||
public const string Revision = "1590";
|
||||
public const string Revision = "1593";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%MINOR%=3
|
||||
%REVISION%=1590
|
||||
%COREVERSION%=0
|
||||
%REVISION%=1593
|
||||
%MINOR%=3
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
24
InstallerSamples/Graph3D/Platonic.pas
Normal file
24
InstallerSamples/Graph3D/Platonic.pas
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
uses Graph3D;
|
||||
|
||||
begin
|
||||
var РисоватьОписанныеСферы := True;
|
||||
var p := P3D(6,0,0);
|
||||
var p1 := p;
|
||||
var h := -4;
|
||||
Icosahedron(p,2,Colors.Green);
|
||||
p.Offset(h,0,0);
|
||||
Dodecahedron(p,2,Colors.Blue);
|
||||
p.Offset(h,0,0);
|
||||
Tetrahedron(p,2,Colors.Red);
|
||||
p.Offset(h,0,0);
|
||||
Octahedron(p,2,Colors.Magenta);
|
||||
|
||||
p := p1;
|
||||
if РисоватьОписанныеСферы then
|
||||
loop 4 do
|
||||
begin
|
||||
var s := Sphere(p,2.0,DiffuseMaterial(Colors.Gold.ChangeAlpha(64))+SpecularMaterial(64));
|
||||
s.BackMaterial := nil;
|
||||
p.Offset(h,0,0);
|
||||
end;
|
||||
end.
|
||||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.3.0.1590'
|
||||
!define VERSION '3.3.0.1593'
|
||||
|
|
|
|||
|
|
@ -9683,6 +9683,12 @@ begin
|
|||
Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a);
|
||||
end;
|
||||
|
||||
/// Возвращает True если значение находится между двумя другими
|
||||
function InRange(Self: integer; a,b: integer): boolean; extensionmethod;
|
||||
begin
|
||||
Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a);
|
||||
end;
|
||||
|
||||
|
||||
// Дополнения февраль 2016: IsEven, IsOdd
|
||||
|
||||
|
|
@ -9742,6 +9748,11 @@ begin
|
|||
Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a);
|
||||
end;
|
||||
|
||||
function InRange(Self: real; a,b: real): boolean; extensionmethod;
|
||||
begin
|
||||
Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a);
|
||||
end;
|
||||
|
||||
/// Возвращает квадратный корень числа
|
||||
function Sqrt(Self: real): real; extensionmethod;
|
||||
begin
|
||||
|
|
@ -9798,6 +9809,12 @@ begin
|
|||
Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a);
|
||||
end;
|
||||
|
||||
/// Возвращает True если значение находится между двумя другими
|
||||
function InRange(Self: char; a,b: char): boolean; extensionmethod;
|
||||
begin
|
||||
Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a);
|
||||
end;
|
||||
|
||||
/// Предыдущий символ
|
||||
function Pred(Self: char); extensionmethod := PABCSystem.Pred(Self);
|
||||
|
||||
|
|
@ -9857,6 +9874,12 @@ begin
|
|||
Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a);
|
||||
end;
|
||||
|
||||
/// Возвращает True если значение находится между двумя другими
|
||||
function InRange(Self: string; a,b: string): boolean; extensionmethod;
|
||||
begin
|
||||
Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a);
|
||||
end;
|
||||
|
||||
/// Считывает целое из строки начиная с позиции from и устанавливает from за считанным значением
|
||||
function ReadInteger(Self: string; var from: integer): integer; extensionmethod;
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -385,6 +385,8 @@ procedure Println(params args: array of object);
|
|||
|
||||
procedure Print(s: string);
|
||||
procedure Println(s: string);
|
||||
procedure Print(c: char);
|
||||
procedure Println(c: char);
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
|
|
@ -1721,15 +1723,10 @@ end;
|
|||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
procedure Print(s: string);
|
||||
begin
|
||||
write(s);
|
||||
end;
|
||||
|
||||
procedure Println(s: string);
|
||||
begin
|
||||
write(s);
|
||||
end;
|
||||
procedure Print(s: string) := Write(s);
|
||||
procedure Println(s: string) := Write(s);
|
||||
procedure Print(c: char) := Write(c);
|
||||
procedure Println(c: char) := Write(c);
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
4
TestSuite/LamInit.pas
Normal file
4
TestSuite/LamInit.pas
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
begin
|
||||
var l: string -> integer := t->t.Where(c->c='0').Count;
|
||||
Assert(l('abc0')=1);
|
||||
end.
|
||||
|
|
@ -4750,7 +4750,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
internal void visit_method_call(SyntaxTree.method_call _method_call)
|
||||
{
|
||||
// frninja 01/03/16 - for iterator capturing (yield)
|
||||
if (_method_call.dereferencing_value is yield_unknown_ident)
|
||||
if (_method_call.dereferencing_value is yield_unknown_ident)
|
||||
{
|
||||
var nodeToVisit = new method_call(ProcessUnknownIdent(_method_call.dereferencing_value as yield_unknown_ident), _method_call.parameters);
|
||||
visit(nodeToVisit);
|
||||
|
|
@ -15179,6 +15179,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
MaybeConvertFunctionLambdaDefinitionToProcedureLambdaDefinition(fld1);
|
||||
LambdaHelper.InferTypesFromVarStmt(tn, fld1, this); //lroman//
|
||||
fld1.lambda_visit_mode = LambdaVisitMode.VisitForAdvancedMethodCallProcessing; //SSM 12.2017
|
||||
}
|
||||
|
||||
ref_type_node rt = tn as ref_type_node;
|
||||
|
|
@ -15205,7 +15206,8 @@ namespace PascalABCCompiler.TreeConverter
|
|||
else
|
||||
{
|
||||
_var_def_statement.inital_value = get_possible_array_const(_var_def_statement.inital_value,tn);
|
||||
inital_value = convert_strong_to_constant_or_function_call_for_varinit(convert_strong(_var_def_statement.inital_value), tn);
|
||||
var ivc = convert_strong(_var_def_statement.inital_value);
|
||||
inital_value = convert_strong_to_constant_or_function_call_for_varinit(ivc, tn);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1123,6 +1123,7 @@ namespace VisualPascalABCPlugins
|
|||
public override void visit(function_lambda_definition node)
|
||||
{
|
||||
prepare_node(node.formal_parameters, "formal_parameters");
|
||||
prepare_node(node.proc_body, "proc_body");
|
||||
prepare_node(node.return_type, "return_type");
|
||||
}
|
||||
public override void visit(function_lambda_call node)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -385,6 +385,8 @@ procedure Println(params args: array of object);
|
|||
|
||||
procedure Print(s: string);
|
||||
procedure Println(s: string);
|
||||
procedure Print(c: char);
|
||||
procedure Println(c: char);
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
|
|
@ -1721,15 +1723,10 @@ end;
|
|||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
procedure Print(s: string);
|
||||
begin
|
||||
write(s);
|
||||
end;
|
||||
|
||||
procedure Println(s: string);
|
||||
begin
|
||||
write(s);
|
||||
end;
|
||||
procedure Print(s: string) := Write(s);
|
||||
procedure Println(s: string) := Write(s);
|
||||
procedure Print(c: char) := Write(c);
|
||||
procedure Println(c: char) := Write(c);
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue