anchor.diff:  {--------------------------------------------------------------}
   { Variable Declarations }
   
  -var Look: char;              { Lookahead Character }
  +var Look: char; { Lookahead Character }
   
   {--------------------------------------------------------------}
   { Read New Character From Input Stream }
  
positive.code: 
  {--------------------------------------------------------------}
  { Match a Specific Input Character }
  
  procedure Match(x: char);
  begin
      if Look = x then GetChar
      else Expected('''' + x + '''');
  end;
  
  
  {--------------------------------------------------------------}
  { Recognize an Alpha Character }
  
  function IsAlpha(c: char): boolean;
  begin
      IsAlpha := upcase(c) in ['A'..'Z'];
  end;
                                
  
  {--------------------------------------------------------------}
  
  { Recognize a Decimal Digit }
  
  function IsDigit(c: char): boolean;
  begin
      IsDigit := c in ['0'..'9'];
  end;
  
  
  {--------------------------------------------------------------}
  { Get an Identifier }
  
  function GetName: char;
  begin
      if not IsAlpha(Look) then Expected('Name');
  
negative.code:     GetChar;
  end;
  
  {--------------------------------------------------------------}
  { Output a String with Tab }
  procedure Emit(s: string);
  begin
      Write(TAB, s);
  end;
  
  {--------------------------------------------------------------}
  { Output a String with Tab and CRLF }
  procedure EmitLn(s: string);
  begin
      Emit(s);
  