anchor.diff:  { Main Program }
   
   begin
  -   Init;
  -   Expression;
  +    Init;
  +    Expression;
  +    Post;
   end.
   {--------------------------------------------------------------}
  
positive.code: 
  procedure Match(x: char);
  begin
     if Look = x then GetChar
     else Expected('''' + x + '''');
  end;
  
  
  
negative.code: 
  procedure Init;
  begin
      { pre progoram boiler plate }
      EmitLn('.text');
      EmitLn('.globl _main');
      EmitLn('    _main:');
      EmitLn('    subq $8, %rsp');
      { Grab the next character. Not doing token lookahead yet.}
      GetChar;
  end;
  
  procedure Post;
  begin
      { Post Program teardown. Always report program success for now. }
      EmitLn('    movq $0, %rdi');
      EmitLn('    call _exit');
  end;
  
  {---------------------------------------------------------------}
  { Parse and Translate an Expression }
  procedure Term;
  begin
      EmitLn('mov %eax, $' + GetNum)
  end;
  {---------------------------------------------------------------}
  
  