Преглед изворни кода

* beter line info for conditionals

peter пре 27 година
родитељ
комит
8e363906e2
2 измењених фајлова са 19 додато и 4 уклоњено
  1. 10 1
      compiler/scandir.inc
  2. 9 3
      compiler/scanner.pas

+ 10 - 1
compiler/scandir.inc

@@ -276,9 +276,12 @@ const
         mac   : pmacrosym;
         found : boolean;
         state : char;
+        oldaktfilepos : tfileposinfo;
       begin
+        oldaktfilepos:=aktfilepos;
         while true do
          begin
+           current_scanner^.gettokenpos;
            case t of
    _DIR_ENDIF : begin
                   current_scanner^.poppreprocstack;
@@ -324,14 +327,17 @@ const
             break
            else
             begin
+              current_scanner^.gettokenpos;
               Message(scan_c_skipping_until);
               repeat
                 current_scanner^.skipuntildirective;
                 t:=Get_Directive(current_scanner^.readid);
               until is_conditional(t);
+              current_scanner^.gettokenpos;
               Message1(scan_d_handling_switch,'$'+directive[t]);
             end;
          end;
+        oldaktfilepos:=aktfilepos;
       end;
 
 
@@ -944,7 +950,10 @@ const
 
 {
   $Log$
-  Revision 1.39  1998-10-13 16:50:21  pierre
+  Revision 1.40  1998-10-21 20:16:04  peter
+    * beter line info for conditionals
+
+  Revision 1.39  1998/10/13 16:50:21  pierre
     * undid some changes of Peter that made the compiler wrong
       for m68k (I had to reinsert some ifdefs)
     * removed several memory leaks under m68k

+ 9 - 3
compiler/scanner.pas

@@ -554,10 +554,11 @@ implementation
 
     procedure tscannerfile.poppreprocstack;
       var
-         hp : ppreprocstack;
+        hp : ppreprocstack;
       begin
         if assigned(preprocstack) then
          begin
+           Message1(scan_c_endif_found,preprocstack^.name);
            hp:=preprocstack^.next;
            dispose(preprocstack,done);
            preprocstack:=hp;
@@ -921,8 +922,10 @@ implementation
         m       : longint;
         mac     : pmacrosym;
         asciinr : string[3];
+{$ifdef new__is_keyword}
         encoded : longint;
-        p:^byte;
+        p       : ^byte;
+{$endif}
       label
          exit_label;
       begin
@@ -1515,7 +1518,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.63  1998-10-16 14:20:57  daniel
+  Revision 1.64  1998-10-21 20:16:05  peter
+    * beter line info for conditionals
+
+  Revision 1.63  1998/10/16 14:20:57  daniel
   * Faster keyword scanning.
   * Import library and smartlink library in one file.