summaryrefslogtreecommitdiff
path: root/compiler/pbase.pas
diff options
context:
space:
mode:
authorpaul <paul@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-08-24 10:54:17 +0000
committerpaul <paul@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-08-24 10:54:17 +0000
commit9e3bf7f292327df86302cab6d8d86f971114a3df (patch)
tree980d45cc147d16251c110debe2a5a760b9adc30a /compiler/pbase.pas
parent8d34dfca39c05c24cfc27dd5ee358fb7ca13b2a7 (diff)
downloadfpc-9e3bf7f292327df86302cab6d8d86f971114a3df.tar.gz
compiler: use try_consume_unitsym for except variable parse. this is needed to reduce maintenance cost for later unit identifier search changes
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@18826 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/pbase.pas')
-rw-r--r--compiler/pbase.pas12
1 files changed, 7 insertions, 5 deletions
diff --git a/compiler/pbase.pas b/compiler/pbase.pas
index 62c7f3d195..38cf1962ee 100644
--- a/compiler/pbase.pas
+++ b/compiler/pbase.pas
@@ -88,7 +88,7 @@ interface
function consume_sym(var srsym:tsym;var srsymtable:TSymtable):boolean;
function consume_sym_orgid(var srsym:tsym;var srsymtable:TSymtable;var s : string):boolean;
- function try_consume_unitsym(var srsym:tsym;var srsymtable:TSymtable;var tokentoconsume : ttoken):boolean;
+ function try_consume_unitsym(var srsym:tsym;var srsymtable:TSymtable;var tokentoconsume:ttoken;consume_id:boolean):boolean;
function try_consume_hintdirective(var symopt:tsymoptions; var deprecatedmsg:pshortstring):boolean;
@@ -191,7 +191,7 @@ implementation
end;
searchsym(pattern,srsym,srsymtable);
{ handle unit specification like System.Writeln }
- try_consume_unitsym(srsym,srsymtable,t);
+ try_consume_unitsym(srsym,srsymtable,t,true);
{ if nothing found give error and return errorsym }
if assigned(srsym) then
check_hints(srsym,srsym.symoptions,srsym.deprecatedmsg)
@@ -224,7 +224,7 @@ implementation
end;
searchsym(pattern,srsym,srsymtable);
{ handle unit specification like System.Writeln }
- try_consume_unitsym(srsym,srsymtable,t);
+ try_consume_unitsym(srsym,srsymtable,t,true);
{ if nothing found give error and return errorsym }
if assigned(srsym) then
check_hints(srsym,srsym.symoptions,srsym.deprecatedmsg)
@@ -240,10 +240,11 @@ implementation
end;
- function try_consume_unitsym(var srsym:tsym;var srsymtable:TSymtable;var tokentoconsume : ttoken):boolean;
+ function try_consume_unitsym(var srsym:tsym;var srsymtable:TSymtable;var tokentoconsume:ttoken;consume_id:boolean):boolean;
var
hmodule: tmodule;
begin
+ // TODO: dot units
result:=false;
tokentoconsume:=_ID;
if assigned(srsym) and
@@ -260,7 +261,8 @@ implementation
internalerror(201001120);
if hmodule.unit_index=current_filepos.moduleindex then
begin
- consume(_ID);
+ if consume_id then
+ consume(_ID);
consume(_POINT);
case token of
_ID: