compiler: add a check for srsym <> nil since try_consume_unitsym may change srsym to nil, better error message

git-svn-id: trunk@25423 -
This commit is contained in:
paul 2013-09-05 08:39:10 +00:00
parent 3f2e62874b
commit 8d526e9b07
23 changed files with 238 additions and 238 deletions

View File

@ -1273,8 +1273,8 @@ sym_e_forward_type_not_resolved=05009_E_No s'ha resolt el tipus posterior "$1"
% A symbolwas forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Només les variables estàtiques poden ser utilitzades en mètodes estàtics o fora dels mètodes
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_S'esperava un tipus de registre o classe
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_No es permeten les instàncies de les classes o els objectes amb un mètode abstracte
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1984,8 +1984,8 @@ sym_e_forward_type_not_resolved=05009_E_Forward-Typ "$1" nicht gefunden
% The compiler encountered an unknown type.
sym_e_only_static_in_static=05010_E_Nur statische Variablen k”nnen in statischen oder „usseren Methoden verwendet werden
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Record- oder Klassen-Typ erwartet
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Instanzen von Klassen oder Objekten mit abstrakten Methoden sind unzul„ssig
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1326,8 +1326,8 @@ sym_e_forward_type_not_resolved=05009_E_Forward-type ikke erklæret: "$1"
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Kun statiske variabler kan bruges i statiske metoder, eller uden for metoder
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Struktur- eller klassetype forventet
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Instancer af klasser eller objekter med abstrakte metoder er ikke tilladt
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1984,8 +1984,8 @@ sym_e_forward_type_not_resolved=05009_E_Forward-Typ "$1" nicht gefunden
% The compiler encountered an unknown type.
sym_e_only_static_in_static=05010_E_Nur statische Variablen können in statischen oder äusseren Methoden verwendet werden
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Record- oder Klassen-Typ erwartet
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Instanzen von Klassen oder Objekten mit abstrakten Methoden sind unzulässig
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1969,8 +1969,8 @@ sym_e_forward_type_not_resolved=05009_E_Forward type not resolved "$1"
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Only static variables can be used in static methods or outside methods
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_record or class type expected
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Instances of classes or objects with an abstract method are not allowed
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1276,8 +1276,8 @@ sym_e_forward_type_not_resolved=05009_E_Tipo posterior no resuelto "$1"
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Solo las variables estáticas pueden ser usadas en métodos estáticos o fuera de métodos
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_tipo record o class esperado
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_No se permiten instancias de clases u objetos con un métodos abstractos
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1058,8 +1058,8 @@ sym_e_invalid_call_tvarsymmangledname=05011_E_Invalid call to tvarsym.manglednam
% An internal error occurred in the compiler; If you encounter such an error,
% please contact the developers and try to provide an exact description of
% the circumstances in which the error occurs.
sym_f_type_must_be_rec_or_class=05012_F_record or class type expected
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Instances of classes or objects with an abstract method are not allowed
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1358,8 +1358,8 @@ sym_e_forward_type_not_resolved=05009_E_D
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Seules les variables statiques peuvent être utilisées dans les méthodes statiques ou en dehors des méthodes
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Type record ou classe attendu
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Les instances de classes ou les objets avec une méthode abstraite ne sont pas autorisés
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1457,8 +1457,8 @@ sym_e_forward_type_not_resolved=05009_E_
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_ø÷ îùúðéí ñèèééí éëåìéí ìäéåú áùéîåù òí îúåãåú ñèèéåú àå îçåõ ìîèåãåú
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_îöôä ìèéôåñ ùì øùåîä àå èéôåñ ùì îçì÷ä
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_àãâí ùì îçì÷åú àå àåáéé÷èéí òí îúåãåú abstract àéðí îåøùéí
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1457,8 +1457,8 @@ sym_e_forward_type_not_resolved=05009_E_הגדרת הטיפוס לא הושלה
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_רק משתנים סטטיים יכולים להיות בשימוש עם מתודות סטטיות או מחוץ למטודות
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_מצפה לטיפוס של רשומה או טיפוס של מחלקה
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_אדגם של מחלקות או אובייקטים עם מתודות abstract אינם מורשים
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1476,8 +1476,8 @@ sym_e_forward_type_not_resolved=05009_E_Tipe forward tidak memecahkan "$1"
% Simbol forward didefinisikan, tapi tidak ada deklarasi yang ditemukan.
sym_e_only_static_in_static=05010_E_Hanya variabel statis bisa dipakai dalam metode statis atau di luar metode
% Metode statis pada obyek hanya bisa mengakses variabel statis.
sym_f_type_must_be_rec_or_class=05012_F_tipe record atau class diharapkan
% Variabel atau ekspresi bukan tipe \var{record} atau \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Turunan kelas atau obyek dengan metode abstrak tidak dibolehkan
% Anda mencoba untuk membuat turunan kelas yang memiliki metode abstrak yang
% tidak diganti.

View File

@ -1568,8 +1568,8 @@ sym_e_forward_type_not_resolved=05009_E_Tipo "$1" dichiarato ma non implementato
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Al di fuori dei metodi o nei metodi statici si possono usare solo variabli statiche
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Qui era atteso un tipo record o classe
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Non sono permesse istanze di classi o di oggetti con un metodo astratto
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1331,8 +1331,8 @@ sym_e_forward_type_not_resolved=05009_E_Forward declaratie niet opgelost $1
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Alleen statische variabelen kunnen gebruikt worden in statische methoden
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Record- of klassetype verwacht
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_U kunt geen vertegenwoordiger van een klasse met abstracte methoden instantieren
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1281,8 +1281,8 @@ sym_e_forward_type_not_resolved=05009_E_Brak definicji typu $1
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Tylko zmienne statyczne mog¥ by† u¾ywane w metodach statycznych
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Oczekiwano rekordu lub klasy
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Instancje klas i obiekt¢w z metodami abstrakcyjnymi niedozwolone
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1281,8 +1281,8 @@ sym_e_forward_type_not_resolved=05009_E_Brak definicji typu $1
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Tylko zmienne statyczne mog± byæ u¿ywane w metodach statycznych
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Oczekiwano rekordu lub klasy
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Instancje klas i obiektów z metodami abstrakcyjnymi niedozwolone
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1834,8 +1834,8 @@ sym_e_forward_type_not_resolved=05009_E_Tipo posterior n
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Apenas vari veis est ticas podem ser usadas em mtodos est ticos ou mtodos externos
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Tipo registro ou classe esperados
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Instƒncias de classes ou objetos com mtodos abstratos nÆo sÆo permitidas
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1834,8 +1834,8 @@ sym_e_forward_type_not_resolved=05009_E_Tipo posterior não resolvido "$1"
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Apenas variáveis estáticas podem ser usadas em métodos estáticos ou métodos externos
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_Tipo registro ou classe esperados
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Instâncias de classes ou objetos com métodos abstratos não são permitidas
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -1446,8 +1446,8 @@ sym_e_forward_type_not_resolved=05009_E_
% ‘¨¬¢®« ¡ë« ®¡ê¥­ § à ­¥¥, ­® ®¯à¥¤¥«¥­¨¥ ¤«ï ­¥£® ­¥ ¡ë«® ®¡­ à㦥­®.
sym_e_only_static_in_static=05010_E_®«ìª® áâ â¨ç¥áª¨¥ ¯¥à¥¬¥­­ë¥ ¬®£ã⠨ᯮ«ì§®¢ âìáï ¢ áâ â¨ç¥áª¨å ¬¥â®¤ å ¨«¨ ¢­¥ ¬¥â®¤®¢
% ‘â â¨ç¥áª¨© ¬¥â®¤ ®¡ê¥ªâ  ¨¬¥¥â ¤®áâ㯠⮫쪮 ª áâ â¨ç¥áª¨¬ ¯¥à¥¬¥­­ë¬.
sym_f_type_must_be_rec_or_class=05012_F_ަ¨¤ ¥âáï ⨯ record ¨«¨ class
% ¥à¥¬¥­­ ï ¨«¨ ¢ëà ¦¥­¨¥ ¨¬¥¥â ⨯, ®â«¨ç­ë© ®â \var{record} ¨«¨ \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_ަ¨¤ ¥âáï ⨯ record ¨«¨ object ¨«¨ class
% ¥à¥¬¥­­ ï ¨«¨ ¢ëà ¦¥­¨¥ ¨¬¥¥â ⨯, ®â«¨ç­ë© ®â \var{record} ¨«¨ \var{object} ¨«¨ \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_ª§¥¬¯«ïàë ª« áᮢ ¨«¨ ®¡ê¥ªâ®¢ á  ¡áâp ªâ­ë¬ ¬¥â®¤®¬ ­¥ ¤®¯ã᪠îâáï
% ®¯ë⪠ á®§¤ âì íª§¥¬¯«ïà ª« áá  á  ¡áâà ªâ­ë¬ ¬¥â®¤®¬, ª®â®àë© ­¥ ¡ë« ¯¥à¥ªàëâ.
sym_w_label_not_defined=05014_W_Œ¥âª  "$1" ­¥ ®¯p¥¤¥«¥­ 

View File

@ -1446,8 +1446,8 @@ sym_e_forward_type_not_resolved=05009_E_Раннее объявление тип
% Символ был объявлен заранее, но определение для него не было обнаружено.
sym_e_only_static_in_static=05010_E_Только статические переменные могут использоваться в статических методах или вне методов
% Статический метод объекта имеет доступ только к статическим переменным.
sym_f_type_must_be_rec_or_class=05012_F_Ожидается тип record или class
% Переменная или выражение имеет тип, отличный от \var{record} или \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Ожидается тип record или object или class
% Переменная или выражение имеет тип, отличный от \var{record} или \var{object} или \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_Экземпляры классов или объектов с абстpактным методом не допускаются
% Попытка создать экземпляр класса с абстрактным методом, который не был перекрыт.
sym_w_label_not_defined=05014_W_Метка "$1" не опpеделена

View File

@ -1270,8 +1270,8 @@ sym_e_forward_type_not_resolved=05009_E_Tipo posterior no resuelto "$1"
% A symbol was forward defined, but no declaration was encountered.
sym_e_only_static_in_static=05010_E_Solo las variables estáticas pueden ser usadas en métodos estáticos o fuera de métodos
% A static method of an object can only access static variables.
sym_f_type_must_be_rec_or_class=05012_F_tipo record o class esperado
% The variable or expression isn't of the type \var{record} or \var{class}.
sym_e_type_must_be_rec_or_object_or_class=05012_E_Record or object or class type expected
% The variable or expression isn't of the type \var{record} or \var{object} or \var{class}.
sym_e_no_instance_of_abstract_object=05013_E_No se permiten instancias de clases u objetos con un métodos abstractos
% You are trying to generate an instance of a class which has an abstract
% method that wasn't overridden.

View File

@ -552,7 +552,7 @@ const
sym_e_error_in_type_def=05007;
sym_e_forward_type_not_resolved=05009;
sym_e_only_static_in_static=05010;
sym_f_type_must_be_rec_or_class=05012;
sym_e_type_must_be_rec_or_object_or_class=05012;
sym_e_no_instance_of_abstract_object=05013;
sym_w_label_not_defined=05014;
sym_e_label_used_and_not_defined=05015;
@ -977,7 +977,7 @@ const
option_info=11024;
option_help_pages=11025;
MsgTxtSize = 69467;
MsgTxtSize = 69477;
MsgIdxMax : array[1..20] of longint=(
26,95,335,121,88,56,126,27,202,64,

File diff suppressed because it is too large Load Diff

View File

@ -955,7 +955,7 @@ In case not, the value returned can be arbitrary.
end;
while (current_scanner.preproc_token=_POINT) do
begin
if srsym.typ=typesym then
if assigned(srsym)and(srsym.typ=typesym) then
begin
def:=ttypesym(srsym).typedef;
if is_class_or_object(def) or is_record(def) or is_java_class_or_interface(def) then
@ -976,7 +976,7 @@ In case not, the value returned can be arbitrary.
end
else
begin
Message(parser_e_invalid_qualifier);
Message(sym_e_type_must_be_rec_or_object_or_class);
exit;
end;
end