mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 15:47:53 +02:00
* better get_current_col
This commit is contained in:
parent
cc476415ee
commit
ed10a74289
@ -147,15 +147,15 @@ unit scanner;
|
||||
orgpattern,
|
||||
pattern : string;
|
||||
macrobuffer : ^tmacrobuffer;
|
||||
inputbuffer : pchar;
|
||||
lastlinepos,
|
||||
lasttokenpos,
|
||||
inputbuffer,
|
||||
inputpointer : pchar;
|
||||
{ parse_types, } { true, if type declarations are parsed }
|
||||
s_point : boolean;
|
||||
comment_level,
|
||||
yylexcount,
|
||||
macropos,
|
||||
lastlinepos,
|
||||
lasttokenpos : longint;
|
||||
macropos : longint;
|
||||
lastasmgetchar : char;
|
||||
preprocstack : ppreprocstack;
|
||||
|
||||
@ -259,10 +259,14 @@ unit scanner;
|
||||
|
||||
function get_current_col : longint;
|
||||
begin
|
||||
if lastlinepos<=lasttokenpos then
|
||||
get_current_col:=lasttokenpos-lastlinepos
|
||||
else
|
||||
get_current_col:=0;
|
||||
{$ifdef TP}
|
||||
if lastlinepos<=lasttokenpos then
|
||||
get_current_col:=longint(lasttokenpos)-longint(lastlinepos)
|
||||
else
|
||||
get_current_col:=longint(lastlinepos)-longint(lasttokenpos);
|
||||
{$else}
|
||||
get_current_col:=cardinal(lasttokenpos)-cardinal(lastlinepos);
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
|
||||
@ -382,7 +386,7 @@ unit scanner;
|
||||
inc(current_module^.current_inputfile^.line_no);
|
||||
status.currentline:=current_module^.current_inputfile^.line_no;
|
||||
inc(status.compiledlines);
|
||||
lastlinepos:=longint(inputpointer);
|
||||
lastlinepos:=inputpointer;
|
||||
end;
|
||||
|
||||
|
||||
@ -710,13 +714,13 @@ unit scanner;
|
||||
until false;
|
||||
|
||||
{ Save current token position }
|
||||
lasttokenpos:=longint(inputpointer);
|
||||
lasttokenpos:=inputpointer;
|
||||
tokenpos.line:=current_module^.current_inputfile^.line_no;
|
||||
tokenpos.column:=get_current_col;
|
||||
tokenpos.fileindex:=current_module^.current_index;
|
||||
|
||||
|
||||
{ Check first for a identifier/keyword, this is 20+% faster (PFV) }
|
||||
|
||||
{ Check first for a identifier/keyword, this is 20+% faster (PFV) }
|
||||
|
||||
if c in ['_','A'..'Z','a'..'z'] then
|
||||
begin
|
||||
@ -777,7 +781,7 @@ unit scanner;
|
||||
end;
|
||||
goto exit_label;
|
||||
end
|
||||
else
|
||||
else
|
||||
begin
|
||||
case c of
|
||||
'$' : begin
|
||||
@ -1167,8 +1171,8 @@ exit_label:
|
||||
reload;
|
||||
preprocstack:=nil;
|
||||
comment_level:=0;
|
||||
lasttokenpos:=0;
|
||||
lastlinepos:=0;
|
||||
lasttokenpos:=inputpointer;
|
||||
lastlinepos:=inputpointer;
|
||||
s_point:=false;
|
||||
end;
|
||||
|
||||
@ -1256,7 +1260,10 @@ exit_label:
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.21 1998-05-27 00:20:32 peter
|
||||
Revision 1.22 1998-05-31 14:10:54 peter
|
||||
* better get_current_col
|
||||
|
||||
Revision 1.21 1998/05/27 00:20:32 peter
|
||||
* some scanner optimizes
|
||||
* automaticly aout2exe for go32v1
|
||||
* fixed dynamiclinker option which was added at the wrong place
|
||||
|
Loading…
Reference in New Issue
Block a user