Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [ 52 ] 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

{ Match a Specific Input String } procedure MatchString(x: string); begin

if Value <> x then Expected( + x + ); 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);

WriteLn; end;

{ Generate a Unique Label } function NewLabel: string; var S: string; begin

Str(LCount, S);

NewLabel := L + S;

Inc(LCount); end;

{ Post a Label To Output } procedure PostLabel(L: string); begin

WriteLn(L, :);

end;

{ Clear the Primary Register }

procedure Clear;

begin

EmitLnCCLR D0); end;

{ Negate the Primary Register }

procedure Negate;

begin

EmitLnCNEG D0); end;

{ Complement the Primary Register }

procedure NotIt;

begin

EmitLnCNOT D0); end;



{ Load a Constant Value to Primary Register }

procedure LoadConst(n: integer);

begin

EmitCMOVE #);

WriteLn(n, ,D0); end;

{ Load a Variable to Primary Register } procedure LoadVar(Name: string); begin

if not InTable(Name) then Undefined(Name); EmitLnCMOVE + Name + (PC),D0); end;

{ Push Primary onto Stack }

procedure Push;

begin

EmitLnCMOVE D0,-(SP)); end;

{ Add Top of Stack to Primary }

procedure PopAdd;

begin

EmitLnCADD (SP)+,D0); end;

{ Subtract Primary from Top of Stack }

procedure PopSub;

begin

EmitLnCSUB (SP)+,D0); EmitLnCNEG D0); end;

{ Multiply Top of Stack by Primary }

procedure PopMul;

begin

EmitLnCMULS (SP) + ,D0); end;

{ Divide Top of Stack by Primary }

procedure PopDiv;

begin

EmitLnCMOVE (SP) + ,D7); EmitLnCEXT.L D7); EmitLnCDIVS D0,D7); EmitLnCMOVE D7,D0); end;

{ AND Top of Stack with Primary }

procedure PopAnd;

begin

EmitLnCAND (SP)+,D0); end;



{ OR Top of Stack with Primary }

procedure PopOr;

begin

EmitLnCOR (SP) + ,D0); end;

{ XOR Top of Stack with Primary }

procedure PopXor;

begin

EmitLnCEOR (SP)+,D0); end;

{ Compare Top of Stack with Primary }

procedure PopCompare;

begin

EmitLnCCMP (SP)+,D0); end;

{ Set D0 If Compare was = } procedure SetEqual; begin

EmitLnCSEQ D0);

EmitLnCEXT D0); end;

{ Set D0 If Compare was != } procedure SetNEqual; begin

EmitLnCSNE D0);

EmitLnCEXT D0); end;

{ Set D0 If Compare was > } procedure SetGreater; begin

EmitLnCSLT D0);

EmitLnCEXT D0); end;

{ Set D0 If Compare was < }

procedure SetLess;

begin

EmitLnCSGT D0);

EmitLnCEXT D0); end;

{ Set D0 If Compare was <= } procedure SetLessOrEqual; begin

EmitLnCSGE D0);

EmitLnCEXT D0); end;



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [ 52 ] 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97