anchor.diff:      function HashValue(AChar: Char): Integer;
       function EvaluateConditionalExpression(const AParams: String): Boolean;
       procedure IncludeFile;
  +    function GetIncludeFileNameFromToken(const IncludeToken: string): string;
     protected
       procedure SetLine(const Value: string); virtual;
       procedure SetOrigin(NewValue: PChar); virtual;
  
positive.code:   Result := UpperCase(Result);
  end;
  
  procedure TmwBasePasLex.IncludeFile;
  var
    IndludeFileName, IncludeDirective, Content, Origin, BehindIncludedContent: string;
  
negative.code:   sl:TstringList;
  begin
    IncludeDirective := Token;
    IndludeFileName := GetIncludeFileNameFromToken(IncludeDirective);
    Content := FIncludeHandler.GetIncludeFileContent(IndludeFileName) + #10#13;
  
    Origin := FOrigin;
    GetMem(pBehindIncludedContent, INCLUDE_BUFFER_SIZE);
    try
      StrPCopy(pBehindIncludedContent, MidStr(Origin, Run+1, Length(Origin)));
      BehindIncludedContent := pBehindIncludedContent;
      Run := Run - Length(IncludeDirective);
      EndOfIncludedArea := Run + Length(Content);
  
      i := 1;
      while i <= Length(Content) do
      begin
        if Content[i] = #10 then
          Inc(IncludedLineCount)
        else if Content[i] = #13 then
        begin
          Inc(IncludedLineCount);
          if (i+1 <= Length(Content)) and (Content[i+1] = #10) then
            inc(i);
        end;
  
        inc(i);
      end;
  
      Content := Content + BehindIncludedContent;
      StrPCopy(@FOrigin[Run], Content);
  
      FOrigin[Run + Length(Content)] := #0;
      sl := TstringList.Create;
      sl.Text := FOrigin;
      sl.SaveToFile('d:\inc.test.pas');
      sl.Free;
  
      Next;
    finally
      FreeMem(pBehindIncludedContent);
    end;
  end;
  
  