fix #1419
This commit is contained in:
parent
64ef16a3fa
commit
02991b622f
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "4";
|
||||
public const string Build = "2";
|
||||
public const string Revision = "1845";
|
||||
public const string Revision = "1846";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%COREVERSION%=2
|
||||
%REVISION%=1845
|
||||
%MINOR%=4
|
||||
%REVISION%=1846
|
||||
%COREVERSION%=2
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
// Использование вспомогательных переменных
|
||||
var r: real;
|
||||
// Использование вспомогательных переменных
|
||||
|
||||
begin
|
||||
write('Введите r: ');
|
||||
readln(r);
|
||||
var r := ReadlnReal('Введите r: ');
|
||||
var r2,r4,r8: real; // вспомогательные переменные
|
||||
r2 := r * r;
|
||||
r4 := r2 * r2;
|
||||
r8 := r4 * r4;
|
||||
writeln(r,' в степени 8 = ',r8);
|
||||
Println(r,'в степени 8 =',r8);
|
||||
end.
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
// Перемена местами значений двух переменных с использованием третьей
|
||||
// Перемена местами значений двух переменных с использованием третьей
|
||||
var x,y: real;
|
||||
|
||||
begin
|
||||
write('Введите x,y: ');
|
||||
readln(x,y);
|
||||
Write('Введите x,y: ');
|
||||
Readln(x,y);
|
||||
var v: real; // вспомогательная переменная
|
||||
v := x;
|
||||
x := y;
|
||||
y := v;
|
||||
writeln('Новые значения x,y: ',x,' ',y);
|
||||
Writeln('Новые значения x,y: ',x,' ',y);
|
||||
end.
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
// Присваивания += -= *= /=
|
||||
// Присваивания += -= *= /=
|
||||
var
|
||||
i: integer;
|
||||
r: real;
|
||||
|
||||
begin
|
||||
i := 1;
|
||||
writeln('i := 1; i = ',i);
|
||||
Writeln('i := 1; i = ',i);
|
||||
i += 2; // Увеличение на 2
|
||||
writeln('i += 2; i = ',i);
|
||||
Writeln('i += 2; i = ',i);
|
||||
i *= 3; // Увеличение в 3 раза
|
||||
writeln('i *= 3; i = ',i);
|
||||
writeln;
|
||||
Writeln('i *= 3; i = ',i);
|
||||
Writeln;
|
||||
r := 6;
|
||||
writeln('r := 6; r = ',r);
|
||||
Writeln('r := 6; r = ',r);
|
||||
r /= 2;
|
||||
writeln('r /= 2; r = ',r);
|
||||
Writeln('r /= 2; r = ',r);
|
||||
end.
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
// Логический тип. Логические выражения с and, or и not
|
||||
// Логический тип. Логические выражения с and, or и not
|
||||
var
|
||||
b: boolean;
|
||||
x: integer;
|
||||
begin
|
||||
write('Введите x (от 1 до 9): ');
|
||||
readln(x);
|
||||
Write('Введите x (от 1 до 9): ');
|
||||
Readln(x);
|
||||
b := x=5;
|
||||
writeln('x=5? ',b);
|
||||
Writeln('x=5? ',b);
|
||||
b := (x>=3) and (x<=5);
|
||||
writeln('x=3,4 или 5? ',b);
|
||||
Writeln('x=3,4 или 5? ',b);
|
||||
b := (x=3) or (x=4) or (x=5);
|
||||
writeln('x=3,4 или 5? ',b);
|
||||
Writeln('x=3,4 или 5? ',b);
|
||||
b := not Odd(x);
|
||||
writeln('x - четное? ',b);
|
||||
Writeln('x - четное? ',b);
|
||||
end.
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
// Вывод результатов вычислений
|
||||
// Вывод результатов вычислений
|
||||
begin
|
||||
writeln('Вычисления:');
|
||||
Writeln('Вычисления:');
|
||||
// Вывод пустой строки
|
||||
writeln;
|
||||
writeln('121 + 363 = ',121+363);
|
||||
writeln('121 - 363 = ',121-363);
|
||||
writeln('121 * 363 = ',121*363);
|
||||
writeln('121 / 363 = ',121/363);
|
||||
Writeln;
|
||||
Writeln('121 + 363 = ',121+363);
|
||||
Writeln('121 - 363 = ',121-363);
|
||||
Writeln('121 * 363 = ',121*363);
|
||||
Writeln('121 / 363 = ',121/363);
|
||||
end.
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
// Вывод результатов вычислений. Используются именованные константы
|
||||
// Вывод результатов вычислений. Используются именованные константы
|
||||
const
|
||||
a = 121;
|
||||
b = 363;
|
||||
|
||||
begin
|
||||
writeln('Вычисления:');
|
||||
writeln;
|
||||
writeln(a,' + ',b,' = ',a+b);
|
||||
writeln(a,' - ',b,' = ',a-b);
|
||||
writeln(a,' * ',b,' = ',a*b);
|
||||
writeln(a,' / ',b,' = ',a/b);
|
||||
Writeln('Вычисления:');
|
||||
Writeln;
|
||||
Writeln(a,' + ',b,' = ',a+b);
|
||||
Writeln(a,' - ',b,' = ',a-b);
|
||||
Writeln(a,' * ',b,' = ',a*b);
|
||||
Writeln(a,' / ',b,' = ',a/b);
|
||||
end.
|
||||
|
|
@ -1,12 +1,10 @@
|
|||
// Вывод результатов вычислений. Используются переменные и процедура ввода
|
||||
var a,b: integer;
|
||||
// Вывод результатов вычислений. Используются переменные и процедура ввода
|
||||
|
||||
begin
|
||||
writeln('Введите a и b:');
|
||||
readln(a,b);
|
||||
writeln;
|
||||
writeln(a,' + ',b,' = ',a+b);
|
||||
writeln(a,' - ',b,' = ',a-b);
|
||||
writeln(a,' * ',b,' = ',a*b);
|
||||
writeln(a,' / ',b,' = ',a/b);
|
||||
var (a,b) := ReadlnInteger2('Введите a и b:');
|
||||
Writeln;
|
||||
Writeln(a,' + ',b,' = ',a+b);
|
||||
Writeln(a,' - ',b,' = ',a-b);
|
||||
Writeln(a,' * ',b,' = ',a*b);
|
||||
Writeln(a,' / ',b,' = ',a/b);
|
||||
end.
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
// Операции div и mod
|
||||
// Операции div и mod
|
||||
var a: integer;
|
||||
|
||||
begin
|
||||
write('Введите a: ');
|
||||
readln(a);
|
||||
writeln('Последняя цифра числа: ',a mod 10);
|
||||
writeln('Число без последней цифры: ',a div 10);
|
||||
writeln('Если число a четно, то 0: ',a mod 2);
|
||||
Write('Введите a: ');
|
||||
Readln(a);
|
||||
Writeln('Последняя цифра числа: ',a mod 10);
|
||||
Writeln('Число без последней цифры: ',a div 10);
|
||||
Writeln('Если число a четно, то 0: ',a mod 2);
|
||||
end.
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
// Операции div и mod
|
||||
// Операции div и mod
|
||||
var a: integer := 247;
|
||||
|
||||
begin
|
||||
write('Цифры числа в обратном порядке: ');
|
||||
Write('Цифры числа в обратном порядке: ');
|
||||
// Выводим последнюю цифру
|
||||
write(a mod 10,' ');
|
||||
Print(a mod 10);
|
||||
// Отбрасываем последнюю цифру
|
||||
a := a div 10;
|
||||
write(a mod 10,' ');
|
||||
Print(a mod 10);
|
||||
a := a div 10;
|
||||
write(a mod 10,' ');
|
||||
Print(a mod 10);
|
||||
end.
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
// Демонстрация работы функции eof. Запускать по Shift-F9
|
||||
var s: char;
|
||||
// Демонстрация работы функции eof. Запускать по Shift-F9, завершать по Ctrl-Z
|
||||
begin
|
||||
while not eof do
|
||||
var s: char;
|
||||
while not Eof do
|
||||
begin
|
||||
read(s);
|
||||
writeln('- ',Ord(s),' -');
|
||||
Read(s);
|
||||
Println('-',Ord(s),' -');
|
||||
end;
|
||||
end.
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
// Демонстрация работы функции eoln
|
||||
// Демонстрация работы функции Eoln
|
||||
begin
|
||||
while not eoln do
|
||||
while not Eoln do
|
||||
begin
|
||||
var c: char;
|
||||
read(c);
|
||||
write(c,' ');
|
||||
var c := ReadChar;
|
||||
Print(c);
|
||||
end;
|
||||
end.
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
// Первая программа
|
||||
// Первая программа
|
||||
program HelloWorld;
|
||||
begin
|
||||
writeln('Привет, мир!');
|
||||
Writeln('Привет, мир!');
|
||||
end.
|
||||
|
|
@ -1,13 +1,10 @@
|
|||
// Генерация случайного числа
|
||||
var
|
||||
i: integer;
|
||||
r: real;
|
||||
// Генерация случайного числа
|
||||
|
||||
begin
|
||||
i := Random(100);
|
||||
writeln('Случайное целое в диапазоне 0..99: ',i);
|
||||
var i := Random(100);
|
||||
Writeln('Случайное целое в диапазоне 0..99: ',i);
|
||||
i := Random(2,5);
|
||||
writeln('Случайное целое в диапазоне 2..5: ',i);
|
||||
r := Random;
|
||||
writeln('Случайное вещественное в диапазоне [0,1): ',r);
|
||||
Writeln('Случайное целое в диапазоне 2..5: ',i);
|
||||
var r: real := Random;
|
||||
Writeln('Случайное вещественное в диапазоне [0,1): ',r);
|
||||
end.
|
||||
|
|
@ -1,10 +1,7 @@
|
|||
// Бросание кубиков
|
||||
|
||||
var k1,k2: integer;
|
||||
// Бросание кубиков
|
||||
|
||||
begin
|
||||
k1 := Random(1,6);
|
||||
k2 := Random(1,6);
|
||||
writeln('Очки на кубиках: ',k1,' ',k2);
|
||||
writeln('Сумма очков: ',k1+k2);
|
||||
var (k1,k2) := Random2(1,6);
|
||||
Writeln($'Очки на кубиках: {k1} {k2}');
|
||||
Writeln($'Сумма очков: {k1+k2}');
|
||||
end.
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
// Ввод строки
|
||||
var s: string;
|
||||
// Ввод строки
|
||||
|
||||
begin
|
||||
write('Введите Ваше имя: ');
|
||||
readln(s);
|
||||
writeln('Здравствуйте, ',s);
|
||||
var имя := ReadString('Введите Ваше имя:');
|
||||
Writeln($'Здравствуйте, {имя}!');
|
||||
end.
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
// Демонстрация операции shl
|
||||
// Демонстрация операции shl
|
||||
begin
|
||||
writeln('Степени двойки');
|
||||
writeln(' n 2^n');
|
||||
Writeln('Степени двойки');
|
||||
Writeln(' n 2^n');
|
||||
for var i:=0 to 30 do
|
||||
writeln(i:2,(1 shl i):12);
|
||||
Writeln(i:2,(1 shl i):12);
|
||||
end.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
// Стандартные функции
|
||||
// Стандартные функции
|
||||
var x: real;
|
||||
|
||||
begin
|
||||
write('Введите x: ');
|
||||
readln(x);
|
||||
writeln('Квадрат ',x,' равен ',sqr(x));
|
||||
writeln(x,' в степени 5 равно ',power(x,5));
|
||||
writeln('Квадратный корень из ',x,' равен ',sqrt(x));
|
||||
writeln('Модуль ',x,' равен ',abs(x));
|
||||
writeln('Натуральный логарифм ',x,' равен ',ln(x));
|
||||
writeln('Синус ',x,' равен ',sin(x));
|
||||
writeln('Косинус ',x,' равен ',cos(x));
|
||||
Readln(x);
|
||||
Writeln('Квадрат ',x,' равен ',Sqr(x));
|
||||
Writeln(x,' в степени 5 равно ',Power(x,5));
|
||||
Writeln('Квадратный корень из ',x,' равен ',Sqrt(x));
|
||||
Writeln('Модуль ',x,' равен ',Abs(x));
|
||||
Writeln('Натуральный логарифм ',x,' равен ',Ln(x));
|
||||
Writeln('Синус ',x,' равен ',Sin(x));
|
||||
Writeln('Косинус ',x,' равен ',Cos(x));
|
||||
end.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/// Стандартные размерные типы данных и их размер
|
||||
/// Стандартные размерные типы данных и их размер
|
||||
var
|
||||
i: integer;
|
||||
j: shortint;
|
||||
|
|
@ -16,18 +16,18 @@ var
|
|||
c: char;
|
||||
|
||||
begin
|
||||
writeln('sizeof(integer) = ':20, sizeof(integer));
|
||||
writeln('sizeof(shortint) = ':20,sizeof(shortint));
|
||||
writeln('sizeof(smallint) = ':20,sizeof(smallint));
|
||||
writeln('sizeof(longint) = ':20, sizeof(longint));
|
||||
writeln('sizeof(int64) = ':20, sizeof(int64));
|
||||
writeln('sizeof(byte) = ':20, sizeof(byte));
|
||||
writeln('sizeof(word) = ':20, sizeof(word));
|
||||
writeln('sizeof(longword) = ':20,sizeof(longword));
|
||||
writeln('sizeof(cardinal) = ':20,sizeof(cardinal));
|
||||
writeln('sizeof(uint64) = ':20, sizeof(uint64));
|
||||
writeln('sizeof(real) = ':20, sizeof(real));
|
||||
writeln('sizeof(double) = ':20, sizeof(double));
|
||||
writeln('sizeof(single) = ':20, sizeof(single));
|
||||
writeln('sizeof(char) = ':20, sizeof(char));
|
||||
Writeln('sizeof(integer) = ':20, sizeof(integer));
|
||||
Writeln('sizeof(shortint) = ':20,sizeof(shortint));
|
||||
Writeln('sizeof(smallint) = ':20,sizeof(smallint));
|
||||
Writeln('sizeof(longint) = ':20, sizeof(longint));
|
||||
Writeln('sizeof(int64) = ':20, sizeof(int64));
|
||||
Writeln('sizeof(byte) = ':20, sizeof(byte));
|
||||
Writeln('sizeof(word) = ':20, sizeof(word));
|
||||
Writeln('sizeof(longword) = ':20,sizeof(longword));
|
||||
Writeln('sizeof(cardinal) = ':20,sizeof(cardinal));
|
||||
Writeln('sizeof(uint64) = ':20, sizeof(uint64));
|
||||
Writeln('sizeof(real) = ':20, sizeof(real));
|
||||
Writeln('sizeof(double) = ':20, sizeof(double));
|
||||
Writeln('sizeof(single) = ':20, sizeof(single));
|
||||
Writeln('sizeof(char) = ':20, sizeof(char));
|
||||
end.
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
// Сложение строк
|
||||
// Сложение строк
|
||||
var s1: string := 'Pascal';
|
||||
var s2: string := 'NET';
|
||||
|
||||
begin
|
||||
writeln(s2+'-'+s1);
|
||||
writeln(s1+'.'+s2);
|
||||
Writeln(s2+'-'+s1);
|
||||
Writeln(s1+'.'+s2);
|
||||
end.
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
// Исправьте ошибку компиляции.
|
||||
// Исправьте ошибку компиляции.
|
||||
// Обратите внимание, что курсор позиционируется в конце слова, вызвавшего ошибку
|
||||
var i: integer
|
||||
|
||||
begin
|
||||
i := 2;
|
||||
writeln(i);
|
||||
Writeln(i);
|
||||
end.
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
// Исправьте ошибки компиляции. Опишите переменную r
|
||||
// Исправьте ошибки компиляции. Опишите переменную r
|
||||
begin
|
||||
r := 2.5;
|
||||
witeln(r);
|
||||
Witeln(r);
|
||||
end.
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
// Исправьте ошибку компиляции. Не всегда надо "верить" тексту ошибки
|
||||
// Исправьте ошибку компиляции. Не всегда надо "верить" тексту ошибки
|
||||
|
||||
var k: real;
|
||||
|
||||
begin
|
||||
k := 2,5;
|
||||
writeln(r);
|
||||
Writeln(r);
|
||||
end.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// Введите не число
|
||||
// Введите не число
|
||||
// Посмотрите, как выглядит ошибка при выполнении программы
|
||||
var i: integer;
|
||||
|
||||
begin
|
||||
read(i);
|
||||
Read(i);
|
||||
end.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
// Посмотрите, как выглядит ошибка выполнения при целочисленном делении на 0
|
||||
// Посмотрите, как выглядит ошибка выполнения при целочисленном делении на 0
|
||||
var i: integer := 0;
|
||||
|
||||
begin
|
||||
write(2 div i);
|
||||
Write(2 div i);
|
||||
end.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
// При обычном делении на 0 ошибки не возникает
|
||||
// При вещественном делении на 0 ошибки не возникает
|
||||
var r: real := 0;
|
||||
|
||||
begin
|
||||
write(1/0);
|
||||
Write(1/r);
|
||||
end.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// При работе с вещественными числами невозможно получить ошибку выполнения
|
||||
// При работе с вещественными числами невозможно получить ошибку выполнения
|
||||
begin
|
||||
writeln(sqrt(-1));
|
||||
Writeln(Sqrt(-1));
|
||||
end.
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
// This CSharp output file generated by Gardens Point LEX
|
||||
// Version: 1.1.3.301
|
||||
// Machine: DESKTOP-A6LT9RI
|
||||
// DateTime: 11.10.2018 17:41:30
|
||||
// DateTime: 26.10.2018 20:10:07
|
||||
// UserName: ?????????
|
||||
// GPLEX input file <ABCPascal.lex>
|
||||
// GPLEX frame file <embedded resource>
|
||||
|
|
@ -2365,6 +2365,13 @@ public LexLocation CurrentLexLocation
|
|||
string full_path = fName;
|
||||
if (!Path.IsPathRooted(full_path))
|
||||
full_path = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(parsertools.CurrentFileName), fName));
|
||||
|
||||
if (fNameStack.Contains(full_path))
|
||||
{
|
||||
parsertools.AddErrorFromResource("RECUR_INCLUDE", CurrentLexLocation, fName);
|
||||
return;
|
||||
}
|
||||
|
||||
SetSource(File.ReadAllText(full_path), 0);
|
||||
fNameStack.Push(parsertools.CurrentFileName);
|
||||
parsertools.CurrentFileName = full_path;
|
||||
|
|
|
|||
|
|
@ -529,6 +529,13 @@ UNICODEARROW \x890
|
|||
string full_path = fName;
|
||||
if (!Path.IsPathRooted(full_path))
|
||||
full_path = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(parsertools.CurrentFileName), fName));
|
||||
|
||||
if (fNameStack.Contains(full_path))
|
||||
{
|
||||
parsertools.AddErrorFromResource("RECUR_INCLUDE", CurrentLexLocation, fName);
|
||||
return;
|
||||
}
|
||||
|
||||
SetSource(File.ReadAllText(full_path), 0);
|
||||
fNameStack.Push(parsertools.CurrentFileName);
|
||||
parsertools.CurrentFileName = full_path;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
// GPPG version 1.3.6
|
||||
// Machine: DESKTOP-A6LT9RI
|
||||
// DateTime: 11.10.2018 17:41:31
|
||||
// DateTime: 26.10.2018 20:10:08
|
||||
// UserName: ?????????
|
||||
// Input file <ABCPascal.y>
|
||||
|
||||
|
|
|
|||
|
|
@ -231,5 +231,6 @@ script=
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.4.2.1845'
|
||||
!define VERSION '3.4.2.1846'
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ namespace PascalABCCompiler.SyntaxTreeConverters
|
|||
public string Name { get; } = "Standard";
|
||||
public syntax_tree_node Convert(syntax_tree_node root)
|
||||
{
|
||||
CapturedNamesHelper.Reset();
|
||||
// Прошивание ссылками на Parent nodes. Должно идти первым
|
||||
// FillParentNodeVisitor расположен в SyntaxTree/tree как базовый визитор, отвечающий за построение дерева
|
||||
//FillParentNodeVisitor.New.ProcessNode(root); // почему-то перепрошивает не всё. А следующий вызов - всё
|
||||
|
|
@ -59,6 +58,7 @@ namespace PascalABCCompiler.SyntaxTreeConverters
|
|||
PatternsDesugaringVisitor.New.ProcessNode(root);
|
||||
|
||||
// Всё, связанное с yield
|
||||
CapturedNamesHelper.Reset();
|
||||
MarkMethodHasYieldAndCheckSomeErrorsVisitor.New.ProcessNode(root);
|
||||
ProcessYieldCapturedVarsVisitor.New.ProcessNode(root);
|
||||
|
||||
|
|
|
|||
|
|
@ -49,4 +49,29 @@ namespace SyntaxVisitors
|
|||
ProcessNode(dn.right);
|
||||
}
|
||||
}
|
||||
|
||||
public class ExprHasNameVisitor : WalkingVisitorNew // есть ли в выражении переменная с данным именем (не включая вложенные лямбды) (используется для поиска Result)
|
||||
{
|
||||
private string varname;
|
||||
public bool Has = false;
|
||||
public ExprHasNameVisitor(string varname)
|
||||
{
|
||||
this.varname = varname.ToLower();
|
||||
}
|
||||
public override void visit(ident id)
|
||||
{
|
||||
if (id.name.ToLower() == varname)
|
||||
Has = true;
|
||||
}
|
||||
public override void visit(dot_node dn)
|
||||
{
|
||||
ProcessNode(dn.left);
|
||||
if (dn.right.GetType() != typeof(ident))
|
||||
ProcessNode(dn.right);
|
||||
}
|
||||
public override void visit(function_lambda_definition fd)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ UNEXPECTED_SYMBOL{0}=Unexpected symbol '{0}'
|
|||
UNSUPPORTED_OLD_DIRECTIVES=Compiler directives began with # are not supported. Use directives {$ }
|
||||
INCLUDE_COULDNT_OPEN_FILE{0}=Compiler directive $include: can't open file '{0}'
|
||||
INCLUDE_EMPTY_FILE=Compiler directive $include: file name is absent
|
||||
RECUR_INCLUDE=Compiler directive $include: recursive include
|
||||
UNNECESSARY $endif=Extra $endif
|
||||
ENDIF_ABSENT=Not closed directive $ifdef or $ifndef - $endif is absent
|
||||
UNNECESSARY $else=Extra $else
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ UNEXPECTED_SYMBOL{0}=Неожиданный символ '{0}'
|
|||
UNSUPPORTED_OLD_DIRECTIVES=Директивы компилятора в стиле # более не поддерживаются. Используйте директивы в стиле {$ }
|
||||
INCLUDE_COULDNT_OPEN_FILE{0}=Директива компилятора $include: нельзя открыть файл '{0}'
|
||||
INCLUDE_EMPTY_FILE=Директива компилятора $include: не указано имя файла
|
||||
RECUR_INCLUDE=Директива компилятора $include: рекурсивное включение файла
|
||||
UNNECESSARY $endif=Лишний $endif
|
||||
ENDIF_ABSENT=Незакрытая директива $ifdef или $ifndef - отсутствует $endif
|
||||
UNNECESSARY $else=Лишний $else
|
||||
|
|
|
|||
Loading…
Reference in a new issue