Update of /cvsroot/instantobjects/Source/Core
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9824
Modified Files:
InstantCode.pas
Log Message:
Improved metadata tag signature detection. Error throws exception with
name of problem model class included.
Index: InstantCode.pas
===================================================================
RCS file: /cvsroot/instantobjects/Source/Core/InstantCode.pas,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** InstantCode.pas 21 Feb 2005 06:33:12 -0000 1.11
--- InstantCode.pas 12 Mar 2005 02:55:09 -0000 1.12
***************
*** 4415,4436 ****
class function TInstantCodeMetadataInfo.InternalAtInstance(
Reader: TInstantCodeReader; out Name: string): Boolean;
! var
! SavePos: TInstantCodePos;
begin
! Result := False;
! if Reader.NextChar = '{' then begin
! SavePos := Reader.Position;
try
! Reader.IgnoreComments := False;
! Result := Reader.ReadMatching('{' + MetadataInfoID + ' ')
! or (Reader.NextChar = '{');
finally
Reader.IgnoreComments := True;
- Reader.Position := SavePos;
end;
end;
- end;
- procedure TInstantCodeMetadataInfo.InternalRead(Reader: TInstantCodeReader);
var
Token: string;
--- 4415,4453 ----
class function TInstantCodeMetadataInfo.InternalAtInstance(
Reader: TInstantCodeReader; out Name: string): Boolean;
!
! function FindMetaDataTag: Boolean;
! var
! SavePos: TInstantCodePos;
! begin
! Result := False;
! if Reader.NextChar = '{' then begin
! SavePos := Reader.Position;
! try
! Reader.EnterComment;
! Result := Reader.ReadMatching(MetadataInfoID);
! finally
! Reader.Position := SavePos;
! end;
! end;
! end;
!
begin
! Result := FindMetaDataTag;
! end;
!
! procedure TInstantCodeMetadataInfo.InternalRead(Reader: TInstantCodeReader);
!
! procedure ReadMetaDataTagSig;
! begin
! Reader.IgnoreComments := False;
try
! if not Reader.ReadMatching('{' + MetadataInfoID + ' ') then
! Reader.ErrorExpected('''{' + MetadataInfoID + ' '' tag in ' + Name,
! False);
finally
Reader.IgnoreComments := True;
end;
end;
var
Token: string;
***************
*** 4439,4449 ****
SaveErrorSeverity: TInstantCodeErrorSeverity;
begin
! if not Reader.EnterComment then
! Reader.ErrorExpected('{');
!
! if SameText(Reader.NextToken, MetadataInfoID) then
! Reader.ReadToken;
! // else //For version 1.7: check MetadataInfoID Keyword
! // Reader.ErrorExpected(MetadataInfoID);
Persistence := peEmbedded;
--- 4456,4460 ----
SaveErrorSeverity: TInstantCodeErrorSeverity;
begin
! ReadMetaDataTagSig;
Persistence := peEmbedded;
***************
*** 4488,4492 ****
Start, I: Integer;
begin
! Writer.Write('{' + MetadataInfoID + ' ');
try
S := ClassStatement;
--- 4499,4503 ----
Start, I: Integer;
begin
! Writer.Write('{' + MetadataInfoID + ' ');
try
S := ClassStatement;
***************
*** 8554,8555 ****
--- 8565,8571 ----
+
+
+
+
+
|