not in
if (System.Environment.OSVersion.Version.Major >= 6) and (System.Environment.OSVersion.Version.Minor >= 2) then System.Console.OutputEncoding := Encoding.UTF8; School - таблица истинности - доп. параметр
This commit is contained in:
parent
a33d2cdcf1
commit
70576addb0
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
||||||
public const string Major = "3";
|
public const string Major = "3";
|
||||||
public const string Minor = "8";
|
public const string Minor = "8";
|
||||||
public const string Build = "1";
|
public const string Build = "1";
|
||||||
public const string Revision = "2980";
|
public const string Revision = "2985";
|
||||||
|
|
||||||
public const string MainVersion = Major + "." + Minor;
|
public const string MainVersion = Major + "." + Minor;
|
||||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
%COREVERSION%=1
|
|
||||||
%REVISION%=2980
|
|
||||||
%MINOR%=8
|
%MINOR%=8
|
||||||
|
%REVISION%=2985
|
||||||
|
%COREVERSION%=1
|
||||||
%MAJOR%=3
|
%MAJOR%=3
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
// This CSharp output file generated by Gardens Point LEX
|
// This CSharp output file generated by Gardens Point LEX
|
||||||
// Version: 1.1.3.301
|
// Version: 1.1.3.301
|
||||||
// Machine: DESKTOP-G8V08V4
|
// Machine: DESKTOP-G8V08V4
|
||||||
// DateTime: 21.08.2021 17:29:06
|
// DateTime: 23.09.2021 17:46:26
|
||||||
// UserName: ?????????
|
// UserName: ?????????
|
||||||
// GPLEX input file <ABCPascal.lex>
|
// GPLEX input file <ABCPascal.lex>
|
||||||
// GPLEX frame file <embedded resource>
|
// GPLEX frame file <embedded resource>
|
||||||
|
|
|
||||||
|
|
@ -3474,11 +3474,17 @@ relop_expr
|
||||||
{ $$ = $1; }
|
{ $$ = $1; }
|
||||||
| relop_expr relop simple_expr
|
| relop_expr relop simple_expr
|
||||||
{
|
{
|
||||||
$$ = new bin_expr($1, $3, $2.type, @$);
|
if ($2.type == Operators.NotIn)
|
||||||
|
$$ = new un_expr(new bin_expr($1, $3, Operators.In, @$),Operators.LogicalNOT,@$);
|
||||||
|
else
|
||||||
|
$$ = new bin_expr($1, $3, $2.type, @$);
|
||||||
}
|
}
|
||||||
| relop_expr relop new_question_expr
|
| relop_expr relop new_question_expr
|
||||||
{
|
{
|
||||||
$$ = new bin_expr($1, $3, $2.type, @$);
|
if ($2.type == Operators.NotIn)
|
||||||
|
$$ = new un_expr(new bin_expr($1, $3, Operators.In, @$),Operators.LogicalNOT,@$);
|
||||||
|
else
|
||||||
|
$$ = new bin_expr($1, $3, $2.type, @$);
|
||||||
}
|
}
|
||||||
| is_type_expr tkRoundOpen pattern_out_param_list tkRoundClose
|
| is_type_expr tkRoundOpen pattern_out_param_list tkRoundClose
|
||||||
{
|
{
|
||||||
|
|
@ -3886,6 +3892,16 @@ relop
|
||||||
{ $$ = $1; }
|
{ $$ = $1; }
|
||||||
| tkIn
|
| tkIn
|
||||||
{ $$ = $1; }
|
{ $$ = $1; }
|
||||||
|
| tkNot tkIn
|
||||||
|
{
|
||||||
|
if (parsertools.build_tree_for_formatter)
|
||||||
|
$$ = $2;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$$ = $2;
|
||||||
|
$$.type = Operators.NotIn;
|
||||||
|
}
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
simple_expr
|
simple_expr
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -347,6 +347,8 @@ script=
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
3.8.1.2980
|
3.8.1.2985
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
!define VERSION '3.8.1.2980'
|
!define VERSION '3.8.1.2985'
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,7 @@ namespace PascalABCCompiler.SyntaxTree
|
||||||
//Other operators
|
//Other operators
|
||||||
Assignment, // := =
|
Assignment, // := =
|
||||||
In, // in
|
In, // in
|
||||||
|
NotIn, // not in
|
||||||
Is, // is
|
Is, // is
|
||||||
As, // as
|
As, // as
|
||||||
Dereference, // ^ *
|
Dereference, // ^ *
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ namespace PascalABCCompiler.SyntaxTreeConverters
|
||||||
// slice_expr и slice_expr_question
|
// slice_expr и slice_expr_question
|
||||||
SliceDesugarVisitor.New.ProcessNode(root); // поставил раньше AssignTuplesDesugarVisitor из за var (a,b) := a[1:3];
|
SliceDesugarVisitor.New.ProcessNode(root); // поставил раньше AssignTuplesDesugarVisitor из за var (a,b) := a[1:3];
|
||||||
|
|
||||||
|
// теперь коллизия с (a[1:6], a[6:11]):= (a[6:11], a[1:6]);
|
||||||
// assign_tuple и assign_var_tuple
|
// assign_tuple и assign_var_tuple
|
||||||
AssignTuplesDesugarVisitor.New.ProcessNode(root); // теперь это - на семантике
|
AssignTuplesDesugarVisitor.New.ProcessNode(root); // теперь это - на семантике
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -14068,7 +14068,8 @@ procedure __InitModule;
|
||||||
begin
|
begin
|
||||||
try
|
try
|
||||||
DefaultEncoding := Encoding.GetEncoding(1251);
|
DefaultEncoding := Encoding.GetEncoding(1251);
|
||||||
System.Console.OutputEncoding := Encoding.UTF8;
|
if (System.Environment.OSVersion.Version.Major >= 6) and (System.Environment.OSVersion.Version.Minor >= 2) then
|
||||||
|
System.Console.OutputEncoding := Encoding.UTF8;
|
||||||
except
|
except
|
||||||
DefaultEncoding := Encoding.UTF8;
|
DefaultEncoding := Encoding.UTF8;
|
||||||
end;
|
end;
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,9 @@ function TrueTable(f: function(a, b, c, d, e: boolean): boolean):
|
||||||
/// Выводит на монитор таблицу истинности
|
/// Выводит на монитор таблицу истинности
|
||||||
/// f = 0 - только для значения функции False
|
/// f = 0 - только для значения функции False
|
||||||
/// f = 1 - только для значения функции True
|
/// f = 1 - только для значения функции True
|
||||||
procedure TrueTablePrint(a: array[,] of boolean; f: integer := -1);
|
/// f = 2 (или не 0, 1, или отсутствует) - полная таблица истинности
|
||||||
|
/// s = 'abcde' использует указанные буквы для именования колонок. Может отсутствовать.
|
||||||
|
procedure TrueTablePrint(a: array[,] of boolean; f: integer := 2; s: string := 'abcde');
|
||||||
|
|
||||||
/// Заменяет последнее вхождение подстроки в строку
|
/// Заменяет последнее вхождение подстроки в строку
|
||||||
procedure ReplaceLast(var Строка: string; ЧтоЗаменить, ЧемЗаменить: string);
|
procedure ReplaceLast(var Строка: string; ЧтоЗаменить, ЧемЗаменить: string);
|
||||||
|
|
@ -764,15 +766,17 @@ end;
|
||||||
/// Выводит на монитор таблицу истинности
|
/// Выводит на монитор таблицу истинности
|
||||||
/// f = 0 - только для значения функции False
|
/// f = 0 - только для значения функции False
|
||||||
/// f = 1 - только для значения функции True
|
/// f = 1 - только для значения функции True
|
||||||
procedure TrueTablePrint(a: array[,] of boolean; f: integer);
|
/// f = 2 (или не 0, 1, или отсутствует) - полная таблица истинности
|
||||||
|
/// s = 'abcde' использует указанные буквы для именования колонок. Может отсутствовать.
|
||||||
|
procedure TrueTablePrint(a: array[,] of boolean; f: integer; s: string);
|
||||||
begin
|
begin
|
||||||
var (n, c) := (a.ColCount, 'a');
|
var (n, c) := (a.ColCount, 'a');
|
||||||
for var i := 0 to n - 2 do
|
s := s?[:n];
|
||||||
begin
|
s := s.PadRight(n - 1, ' ');
|
||||||
Write(' ' + c);
|
Write(' ');
|
||||||
Inc(c)
|
for var i := 1 to s.Length do
|
||||||
end;
|
Print(s[i]);
|
||||||
Writeln(' F');
|
Writeln('F');
|
||||||
Writeln(' ' + (2 * n - 1) * '-');
|
Writeln(' ' + (2 * n - 1) * '-');
|
||||||
for var i := 0 to a.RowCount - 1 do
|
for var i := 0 to a.RowCount - 1 do
|
||||||
if not (((f = 0) and a[i, n - 1]) or ((f = 1) and not a[i, n - 1])) then
|
if not (((f = 0) and a[i, n - 1]) or ((f = 1) and not a[i, n - 1])) then
|
||||||
|
|
|
||||||
6
TestSuite/notin.pas
Normal file
6
TestSuite/notin.pas
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
begin
|
||||||
|
var a := Arr(1, 2, 3);
|
||||||
|
Assert(6 not in a);
|
||||||
|
Assert(4 not in a);
|
||||||
|
Assert(not (1 not in a));
|
||||||
|
end.
|
||||||
|
|
@ -111,7 +111,9 @@ function TrueTable(f: function(a, b, c, d, e: boolean): boolean):
|
||||||
/// Выводит на монитор таблицу истинности
|
/// Выводит на монитор таблицу истинности
|
||||||
/// f = 0 - только для значения функции False
|
/// f = 0 - только для значения функции False
|
||||||
/// f = 1 - только для значения функции True
|
/// f = 1 - только для значения функции True
|
||||||
procedure TrueTablePrint(a: array[,] of boolean; f: integer := -1);
|
/// f = 2 (или не 0, 1, или отсутствует) - полная таблица истинности
|
||||||
|
/// s = 'abcde' использует указанные буквы для именования колонок. Может отсутствовать.
|
||||||
|
procedure TrueTablePrint(a: array[,] of boolean; f: integer := 2; s: string := 'abcde');
|
||||||
|
|
||||||
/// Заменяет последнее вхождение подстроки в строку
|
/// Заменяет последнее вхождение подстроки в строку
|
||||||
procedure ReplaceLast(var Строка: string; ЧтоЗаменить, ЧемЗаменить: string);
|
procedure ReplaceLast(var Строка: string; ЧтоЗаменить, ЧемЗаменить: string);
|
||||||
|
|
@ -764,15 +766,17 @@ end;
|
||||||
/// Выводит на монитор таблицу истинности
|
/// Выводит на монитор таблицу истинности
|
||||||
/// f = 0 - только для значения функции False
|
/// f = 0 - только для значения функции False
|
||||||
/// f = 1 - только для значения функции True
|
/// f = 1 - только для значения функции True
|
||||||
procedure TrueTablePrint(a: array[,] of boolean; f: integer);
|
/// f = 2 (или не 0, 1, или отсутствует) - полная таблица истинности
|
||||||
|
/// s = 'abcde' использует указанные буквы для именования колонок. Может отсутствовать.
|
||||||
|
procedure TrueTablePrint(a: array[,] of boolean; f: integer; s: string);
|
||||||
begin
|
begin
|
||||||
var (n, c) := (a.ColCount, 'a');
|
var (n, c) := (a.ColCount, 'a');
|
||||||
for var i := 0 to n - 2 do
|
s := s?[:n];
|
||||||
begin
|
s := s.PadRight(n - 1, ' ');
|
||||||
Write(' ' + c);
|
Write(' ');
|
||||||
Inc(c)
|
for var i := 1 to s.Length do
|
||||||
end;
|
Print(s[i]);
|
||||||
Writeln(' F');
|
Writeln('F');
|
||||||
Writeln(' ' + (2 * n - 1) * '-');
|
Writeln(' ' + (2 * n - 1) * '-');
|
||||||
for var i := 0 to a.RowCount - 1 do
|
for var i := 0 to a.RowCount - 1 do
|
||||||
if not (((f = 0) and a[i, n - 1]) or ((f = 1) and not a[i, n - 1])) then
|
if not (((f = 0) and a[i, n - 1]) or ((f = 1) and not a[i, n - 1])) then
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue