Commit cbae8459 authored by Victor Yacovlev's avatar Victor Yacovlev

Fixed minor compiler errors

parent c89a971c
......@@ -3,23 +3,24 @@
"No one 'case'";"Нет ни одного “при”";"";"";"";"";
"Broken if statement";"Нет “все” для этой конструкции";"";"";"";"";
"Can't %1 %2 %3";"Нельзя “%1 %2 %3”";"";"";"";"";
"Too many ':=' operators";"Много “:=” в одной строке";"";"";"";"";
"The name is used by other algorithm";"Имя занято другим алгоритмом";"";"";"";"";
"Assignment of non-returning algorithm";"У этого алгоритма нет значения";"";"";"";"";
"Can't input string slice";"Нельзя ввести в вырезку";"";"";"";"";
"Use of 'not' for non-boolean value";"“не” вне логического выражения";"";"";"";"";
"Extra statement";"Строка не на месте";"";"";"";"";
"Can't pass in-argument as in/out-argument";"Нельзя арг передать в рез или аргрез";"";"";"";"";
"Wrong table constant";"";"";"";"";"";
"Unpaired ']'";"Нет парной “]”";"";"";"";"";
"Return valus is not a string";"Возвращаемая величина не строка";"";"";"";"";
"What to output?";"Что выводить?";"";"";"";"";
"Garbage in algorithm";"Лишние строки алгоритма";"";"";"";"";
"Assignment to array";"Присваивание массиву";"";"";"";"";
"Extra open brace";"";"";"";"";"";
"Garbage between if..then";"Мусор между “если”..”то”";"";"";"";"";
"Program structure error";"Ошибка структуры программы";"";"";"";"";
"No module name";"Нет имени исполнителя";"";"";"";"";
"Too big real value";"Слишком большое вещественное значение";"";"";"";"";
"No pairing 'begin module'";"Нет парной “исп”";"";"";"";"";
"No such module";"Нет такого исполнителя";"";"";"";"";
"No 'end' after 'then'";"Нет “все” после “то”";"";"";"";"";
"Can't run kumir2-bc to compile this module";"Не могу запустить компилятор для сборки этого испонителя";"";"";"";"";
"No condition after 'if'";"Нет условия для “если”";"";"";"";"";
"The name is used by global variable";"Имя занято глобальной величиной";"";"";"";"";
"Algorith out of module";"";"";"";"";"";
"Extra variable group specifier: %1";"Лишнее описание группы величин";"";"";"";"";
......@@ -27,17 +28,19 @@
"Nothing between '(' and ')'";"Пусто между “(“ и “)”";"";"";"";"";
"No operands";"Только операция";"";"";"";"";
"File handle is not integer";"Ключ – не целое число";"";"";"";"";
"Wrong E-real number";"Ошибка в E-записи числа";"";"";"";"";
"No colon after condition";"В конце нет “:”";"";"";"";"";
"Can't not %1";"Нельзя не %1";"";"";"";"";
"No pairing ']'";"Нет парной “]”";"";"";"";"";
"Can't integer:=charect";"Нельзя “цел := сим”";"";"";"";"";
"Can't charect:=integer";"Нельзя “сим := цел”";"";"";"";"";
"Can't boolean:=real";"Нельзя “лог := вещ”";"";"";"";"";
"The name is used by other algorithm";"Имя занято другим алгоритмом";"";"";"";"";
"No operator before (";"";"";"";"";"";
"Too many ':=' operators";"Много “:=” в одной строке";"";"";"";"";
"Variable already declared";"Величина уже описана";"";"";"";"";
"Can't boolean:=integer";"Нельзя “лог := цел”";"";"";"";"";
"Algorhitms can't return array";"Нельзя вернуть таблицу";"";"";"";"";
"'to' earler then 'from'";"“до” раньше чем “от”";"";"";"";"";
"Non-literal constant is not indexable";"У этой величины не бывает индексов";"";"";"";"";
"Error compiling this module";"Ошибка сборки этого исполнителя";"";"";"";"";
"Extra operator";"Лишний оператор";"";"";"";"";
"No coma before declaration";"Нет запятой перед объявлением";"";"";"";"";
......@@ -67,7 +70,7 @@
"Extra 'loop'";"Нет парного “кц”";"";"";"";"";
"Can't %1:=string";"";"";"";"";"";
"Recursive declaration of bound";"Рекурсивное объявление границ";"";"";"";"";
"Garbage after %1";"Мусор после %1";"";"";"";"";
"No operator before [";"";"";"";"";"";
"No step-value";"Нет значения после “шаг”";"";"";"";"";
"Name not declared";"Имя не объявлено";"";"";"";"";
"No paired 'end module'";"Нет парного “кон_исп”";"";"";"";"";
......@@ -79,12 +82,13 @@
"No coma before type";"Нет запятой перед объявлением";"";"";"";"";
"Right array bound is not integer";"Правая граница таблицы не целая";"";"";"";"";
"No arguments";"Нет аргументов";"";"";"";"";
"No name before [";"Перед [ должно быть имя";"";"";"";"";
"Extra 'fi'";"Что - “все”?";"";"";"";"";
"Type not declared before";"Не указан тип";"";"";"";"";
"Can't input algorithm in- argument";"Нельзя ввести в аргумент";"";"";"";"";
"Then-value not specified";"Нет значения после “до”";"";"";"";"";
"Extra 'module'";"Для “исп” нет “кон_исп”";"";"";"";"";
"No 'loop' before 'times'";"Перед “раз” нет “нц”";"";"";"";"";
"Array dimension must not be > 3";"Таблицы не бывают размерности > 3";"";"";"";"";
"Extra ','";"Лишняя запятая";"";"";"";"";
"Garbage after 'switch' statement";"Мусор после “выбор”";"";"";"";"";
"Can't input constant";"";"";"";"";"";
......@@ -100,7 +104,7 @@
"No 'begin' after header";"После “алг” нет “нач”";"";"";"";"";
"This algorhitm is broken";"Алгоритм с ошибкой";"";"";"";"";
"No operand before non-unary operator";"";"";"";"";"";
"Can't run kumir2-bc to compile this module";"Не могу запустить компилятор для сборки этого испонителя";"";"";"";"";
"No such module";"Нет такого исполнителя";"";"";"";"";
"Extra 'switch'";"Нет ”все” после “выбор”";"";"";"";"";
"Error contains unpaired quote";"Непарная кавычка";"";"";"";"";
"Constant type mismatch";"Несоответствие типа константы";"";"";"";"";
......@@ -114,17 +118,18 @@
"Garbage at the end of statement";"Мусор в конце выражения";"";"";"";"";
"No 'then' after 'if'";"Где “то” после условия?";"";"";"";"";
"Assignment to complex expression";"Нельзя присвоить выражению";"";"";"";"";
"Can't output value of type %1";"Нельзя вывести значение типа %1";"";"";"";"";
"'end' instead of 'endloop'";"“кон” вместо “кц”";"";"";"";"";
"Can't real:=string";"Нельзя “вещ := лит”";"";"";"";"";
"Wrong hex constant";"Плохая 16-ричная константа";"";"";"";"";
"Constant instead of name";"Здесь должно быть имя";"";"";"";"";
"':=' or '=' ?";"“:=” или “=” ?";"";"";"";"";
"Unpaired quote";"Непарная кавычка";"";"";"";"";
"Array name not specified before '['";"Перед “[“ должно быть имя таблицы";"";"";"";"";
"No algorithm name";"Не указано имя алгоритма";"";"";"";"";
"Can't input complex expression";"Нельзя ввести в выражение";"";"";"";"";
"Algorhitm not found";"Нет такого алгоритма";"";"";"";"";
"Not a constant value";"Это не константа";"";"";"";"";
"Can't input function";"Нельзя ввести в алгоритм";"";"";"";"";
"Algorithm out of module";"Алгоритм вне исполнителя";"";"";"";"";
"Garbage after %1";"Мусор после %1";"";"";"";"";
"Can't integer:=boolean";"Нельзя “цел := лог”";"";"";"";"";
"Extra type";"Лишнее объявление типа";"";"";"";"";
"Return value is not indexable";"У знач не может быть индексов";"";"";"";"";
......@@ -132,10 +137,10 @@
"Extra docstring";"Здесь не должно быть строк описания";"";"";"";"";
"Extra brackets for algorithm without arguments";"Нет аргументов – не нужны скобки";"";"";"";"";
"Assignment to function";"Нельзя присвоить алгоритму";"";"";"";"";
"Constant instead of name";"Здесь должно быть имя";"";"";"";"";
"Unmatched array dimensions";"Несоответствие размерностей таблиц";"";"";"";"";
"Wrong hex constant";"Плохая 16-ричная константа";"";"";"";"";
"Index is not integer";"Индекс – не целое число";"";"";"";"";
"Operator in name";"Имя содержит оператор";"";"";"";"";
"Times value not specified";"Сколько раз?";"";"";"";"";
"Garbage afrer module name";"Мусор после имени исполнителя";"";"";"";"";
"No for-loop variable";"Нет величины цикла";"";"";"";"";
"Left array bound is not integer";"Левая граница – не целое";"";"";"";"";
"No condition after 'case'";"Нет условия после “при”";"";"";"";"";
......@@ -143,8 +148,8 @@
"Array dimension mismatch";"Несоответствие размерностей таблиц";"";"";"";"";
"Initial value is empty";"Начальное значение не задано";"";"";"";"";
"'%1' in algorithm";"“%1” внутри алгоритма";"";"";"";"";
"Can't pass in-argument as in/out-argument";"Нельзя арг передать в рез или аргрез";"";"";"";"";
"Garbage between if..then";"Мусор между “если”..”то”";"";"";"";"";
"Extra statement";"Строка не на месте";"";"";"";"";
"Extra open brace";"";"";"";"";"";
"No such file";"Нет такого исполнителя рядом с программой";"";"";"";"";
"No loop 'to' value";"Нет “до” после “от”";"";"";"";"";
"Extra format";"";"";"";"";"";
......@@ -152,15 +157,15 @@
"Extra '['";"Лишняя “[“";"";"";"";"";
"Constant can not be a name";"Константа – это не имя";"";"";"";"";
"It is a garbage";"Это лишнее";"";"";"";"";
"Not integer for-loop variable";"Величина не целая";"";"";"";"";
"No condition after 'if'";"Нет условия для “если”";"";"";"";"";
"Extra format parameter";"Лишний параметр вывода";"";"";"";"";
"No 'end' after 'then'";"Нет “все” после “то”";"";"";"";"";
"Slice of string array, but not string";"Вырезка не из строки, а из таблицы";"";"";"";"";
"Void argument";"Пустой аргумент";"";"";"";"";
"What to input?";"Куда вводить?";"";"";"";"";
"Algorhitm not found";"Нет такого алгоритма";"";"";"";"";
"Can't input complex expression";"Нельзя ввести в выражение";"";"";"";"";
"Left array bound not specified";"Не указана левая граница таблицы";"";"";"";"";
"Array input must not be in a list";"";"";"";"";"";
"Index is not integer";"Индекс – не целое число";"";"";"";"";
"Unmatched array dimensions";"Несоответствие размерностей таблиц";"";"";"";"";
"Table dimension > 3";"";"";"";"";"";
"Extra variable group out-specifier";"Лишний “рез”";"";"";"";"";
"No 'loop' before 'while'";"Перед “пока” нет “нц”";"";"";"";"";
......@@ -178,40 +183,44 @@
"Extra 'else'";"Лишнее “иначе”";"";"";"";"";
"Extra 'begin'";"Нет “кон” после “нач”";"";"";"";"";
"Extra variable group inout-specifier";"Лишний “аргрез”";"";"";"";"";
"Can't -%1";"Нельзя -%1";"";"";"";"";
"Extra indeces in slice";"Лишние индексы в вырезке";"";"";"";"";
"Can't integer:=%1";"";"";"";"";"";
"Unpaired '['";"Не парная “[“";"";"";"";"";
"No pairing '('";"Нет парной “(“";"";"";"";"";
"Can't pass this expression as in/out-argumeny";"Не величина в аргрез-параметре";"";"";"";"";
"Must be a scalar constant";"";"";"";"";"";
"What to input from file?";"Куда вводить из файла?";"";"";"";"";
"No colon after condition";"В конце нет “:”";"";"";"";"";
"Unpaired [";"";"";"";"";"";
"Extra )";"Лишняя )";"";"";"";"";
"'end_module' instead of 'end'";"“кон_исп” вместо “кон”";"";"";"";"";
"Extra 'end'";"Лишний “кон”";"";"";"";"";
"Unpaired (";"";"";"";"";"";
"Algorhitm header in algorhitm body";"Вложенное описание алгоритма";"";"";"";"";
"Not a simple index";"Индекс – не число";"";"";"";"";
"Module in algorhitm body";"“исп” внутри алгоритма";"";"";"";"";
"Name contains quotation symbol";"Имя содержит кавычку";"";"";"";"";
"Not enought algorithm arguments";"Мало аргументов";"";"";"";"";
"Can't charect:=boolean";"Нельзя “сим := лог”";"";"";"";"";
"Array dimension must not be > 3";"Таблицы не бывают размерности > 3";"";"";"";"";
"No 'loop' before 'for'";"Перед “для” нет “нц”";"";"";"";"";
"No 'loop' before 'times'";"Перед “раз” нет “нц”";"";"";"";"";
"Wrong E-real number";"Ошибка в E-записи числа";"";"";"";"";
"Extra 'if'";"Нет “то..все” после “если”";"";"";"";"";
"Can't %1:=real";"";"";"";"";"";
"No condition between 'case' and colon";"Нет условия между “при” и “:”";"";"";"";"";
"No then before else";"Нет “то” перед “иначе”";"";"";"";"";
"Assignment of array";"Нельзя присваивать таблицы";"";"";"";"";
"Extra 'not'";"Лишнее “не”";"";"";"";"";
"'end' instead of 'endloop'";"“кон” вместо “кц”";"";"";"";"";
"Can't output value of type %1";"Нельзя вывести значение типа %1";"";"";"";"";
"Keyword in name";"Ключевое слово в имени";"";"";"";"";
"Can't input an array";"";"";"";"";"";
"What to output to file?";"Что выводить в файл?";"";"";"";"";
"No 'case' after 'switch'";"Нет “при:” после “выбор”";"";"";"";"";
"Can't %1:=charect";"";"";"";"";"";
"= instead of :=";"";"";"";"";"";
"Garbage afrer module name";"Мусор после имени исполнителя";"";"";"";"";
"Times value not specified";"Сколько раз?";"";"";"";"";
"Array element in array bound";"Элемент таблицы в границе";"";"";"";"";
"Can't string:=%1";"";"";"";"";"";
"First unnamed algorithm should not return anything";"Алгоритм без имени ничего не возвращает";"";"";"";"";
"Extra format parameter";"Лишний параметр вывода";"";"";"";"";
"Not integer for-loop variable";"Величина не целая";"";"";"";"";
"No left array bound";"Нет левой границы таблицы";"";"";"";"";
"Integer constant too big";"Слишком большое целое число";"";"";"";"";
"Literal can't be part of name";"Константа в имени";"";"";"";"";
......@@ -222,12 +231,11 @@
"Can't string:=real";"Нельзя “лит := вещ”";"";"";"";"";
"No 'from'..'to'.. after variable";"Нет “от”..”до”.. после величины";"";"";"";"";
"Forgotten operator after bracket";"Перед выражением пропущен оператор";"";"";"";"";
"Can't -%1";"Нельзя -%1";"";"";"";"";
"No 'loop' before 'for'";"Перед “для” нет “нц”";"";"";"";"";
"Can't pass in-argument as out-argument";"Нельзя арг передать в рез или аргрез";"";"";"";"";
"Condition after '%1' not boolean";"Условие после “%1” не логическое";"";"";"";"";
"Can't integer:=real";"Нельзя “цел := вещ”";"";"";"";"";
"Array required here";"Индексы не нужны";"";"";"";"";
"Garbage between alg..begin";"Мусор между “алг”..”нач”";"";"";"";"";
"No condition after 'end if'";"Нет условия для “кц при”";"";"";"";"";
"Assignment of void";"Нельзя присвоить пустое значение";"";"";"";"";
"Loop type not specified";"Не указан тип цикла";"";"";"";"";
......@@ -246,7 +254,6 @@
"Can't open module file";"Не могу открыть файл исполнителя";"";"";"";"";
"Algorhitm not implemented";"Алгоритм не реализован";"";"";"";"";
"Can't string:=boolean";"Нельзя “лит := лог”";"";"";"";"";
"'end_module' instead of 'end'";"“кон_исп” вместо “кон”";"";"";"";"";
"No 'from' before 'to'";"Нет “от”.. перед “до”";"";"";"";"";
"Name starts with digit";"Имя не может начинаться с цифры";"";"";"";"";
"Extra indeces";"Лишние индексы";"";"";"";"";
......@@ -276,10 +283,11 @@
"Format parameter not integer";"Параметр вывода – не целое число";"";"";"";"";
"Can't integer:=string";"Нельзя “цел := лит”";"";"";"";"";
"Garbage between switch..case";"Мусор между “выбор”..”при”";"";"";"";"";
"Extra ]";"Лишняя ]";"";"";"";"";
"No expressions after '%1'";"Нет величин после “%1”";"";"";"";"";
"Not integer times-value";"Величина не целая";"";"";"";"";
"No pairing '('";"Нет парной “(“";"";"";"";"";
"Assignment of non-returning algorithm";"У этого алгоритма нет значения";"";"";"";"";
"Unpaired '['";"Не парная “[“";"";"";"";"";
"Garbage between alg..begin";"Мусор между “алг”..”нач”";"";"";"";"";
"Bad symbol in name";"Имя содержит недопустимый символ";"";"";"";"";
"What to assign?";"Что назначать?";"";"";"";"";
"No condition after 'loop while'";"Нет условия после “нц пока”";"";"";"";"";
......
......@@ -3085,6 +3085,16 @@ AST::Expression * SyntaxAnalizerPrivate::parseExpression(
return 0;
}
if (oper && oper->type==LxOperRightBr) {
oper->error = _("Extra )");
return 0;
}
if (oper && oper->type==LxOperRightSqBr) {
oper->error = _("Extra ]");
return 0;
}
Lexem * notFlag = 0;
if (block.size()>1 && block.last()->type==LxSecNot) {
block.last()->error = _("Extra 'not'");
......@@ -3306,6 +3316,16 @@ AST::Expression * SyntaxAnalizerPrivate::parseExpression(
}
else if (IS_OPERATOR(lexems[curPos]->type)) {
oper = lexems[curPos];
if (oper->type==LxOperLeftSqBr) {
oper->error = _("No name before [");
delete operand;
return 0;
}
if (oper->type==LxOperLeftBr) {
oper->error = _("No operator before (");
delete operand;
return 0;
}
}
else {
lexems[curPos]->error = _("Forgotten operator after bracket"); // FIXME garbage error
......@@ -3597,6 +3617,7 @@ AST::Expression * SyntaxAnalizerPrivate::parseElementAccess(const QList<Lexem *>
QString name;
Lexem * openBracket = 0;
int openBracketIndex = -1;
bool nameIsNumericConstant = true;
for (int i=0; i<lexems.size(); i++) {
if (lexems[i]->type==LxOperLeftSqBr) {
openBracket = lexems[i];
......@@ -3606,7 +3627,21 @@ AST::Expression * SyntaxAnalizerPrivate::parseElementAccess(const QList<Lexem *>
else {
if (i>0) name += " ";
name += lexems[i]->data;
nameIsNumericConstant = nameIsNumericConstant &&
(lexems[i]->type==LxConstInteger
|| lexems[i]->type==LxConstReal
|| lexems[i]->type==LxConstBoolTrue
|| lexems[i]->type==LxConstBoolFalse
);
}
}
if (nameIsNumericConstant) {
if (openBracketIndex==-1)
openBracketIndex = lexems.size();
for (int i=0; i<openBracketIndex; i++) {
lexems[i]->error = _("Non-literal constant is not indexable");
}
return 0;
}
QList<AST::Expression*> realArguments;
QList< QList<Lexem*> > arguments;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment