home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------- *)
- (* STANDARD.PAS *)
- (* Standardschreibweise aller Pascalwörter *)
- (* (c) 1991 Wilfried Lottermoser & DMV-Verlag *)
- (* ------------------------------------------------- *)
- {$A+,B-,G-,I-,O-,R-,S-,X+,D-,L-}
- UNIT Standard;
-
- INTERFACE
-
- PROCEDURE StandSchrW( UpWort : STRING;
- VAR Wort : STRING);
- FUNCTION Up(Wort : STRING) : STRING;
- { wandelt 'Wort' in Großbuchstaben um }
-
- IMPLEMENTATION
-
- CONST
- Prozedur : ARRAY [1..130] OF STRING [18] =
- ('Append', 'Arc', 'Assign', 'AssignCrt', 'Bar',
- 'Bar3D', 'BlockRead', 'BlockWrite', 'ChDir',
- 'Circle', 'ClearDevice', 'ClearViewPort',
- 'Close', 'CloseGraph', 'ClrEol', 'ClrScr',
- 'Delay', 'Delete', 'DelLine', 'DetectGraph',
- 'Dispose', 'Ellipse', 'Erase', 'Exec', 'Exit',
- 'FillChar', 'FillEllipse', 'FillPoly',
- 'FindFirst', 'FindNext', 'FloodFill', 'Flush',
- 'FreeMem', 'FSplit', 'GetArcCoords',
- 'GetAspectRatio', 'GetCBreak', 'GetDate',
- 'GetDefaultPalette', 'GetDir', 'GetFAttr',
- 'GetFillSettings', 'GetFTime', 'GetImage',
- 'GetIntVec', 'GetLineSettings', 'GetMem',
- 'GetPalette', 'GetTextSettings', 'GetTime',
- 'GetVerify', 'GetViewSettings', 'GotoXY', 'Halt',
- 'HighVideo', 'InitGraph', 'Insert', 'InsLine',
- 'Intr', 'Keep', 'Line', 'LineRel', 'LineTo',
- 'LowVideo', 'Mark', 'MkDir', 'Move', 'MoveTo',
- 'New', 'NormVideo', 'NoSound', 'OvrClearBuf',
- 'OvrInit', 'OvrInitEMS', 'OvrSetBuf', 'OutText',
- 'OutTextXY', 'PackTime', 'PieSlice', 'PutImage',
- 'PutPixel', 'Randomize', 'Read', 'ReadLn',
- 'Rectangle', 'Release', 'Rename', 'Reset',
- 'RestoreCrtMode', 'Rewrite', 'RmDir', 'RunError',
- 'Sector', 'Seek', 'SetActivePage',
- 'SetAllPalette', 'SetAspectRatio', 'SetBkColor',
- 'SetCBreak', 'SetColor', 'SetDate', 'SetFAttr',
- 'SetFillPattern', 'SetFillStyle', 'SetFTime',
- 'SetGraphMode', 'SetIntVec', 'SetLineStyle',
- 'SetPalette', 'SetRGBPalette', 'SetTextBuf',
- 'SetTextJustify', 'SetTextStyle', 'SetTime',
- 'SetUserCharSize', 'SetVerify', 'SetViewPort',
- 'SetVisualPage', 'SetWriteMode', 'Str',
- 'SwapVectors', 'TextBackground', 'TextColor',
- 'TextMode', 'Truncate', 'UnpackTime',
- 'Val', 'Window', 'Write', 'WriteLn');
-
- CONST
- Funktion : ARRAY [1..75] OF STRING [14] =
- ('Abs', 'Addr', 'ArcTan', 'Chr', 'Concat', 'Copy',
- 'Cos', 'CSeg', 'DiskFree', 'DiskSize',
- 'DosExitCode', 'DosVersion', 'DSeg', 'EnvCount',
- 'EnvStr', 'Eof', 'EoLn', 'Exp', 'FExpand',
- 'FilePos', 'FileSize', 'Frac', 'FSearch',
- 'GetBkColor', 'GetColor', 'GetEnv',
- 'GetGraphMode', 'GetMaxX', 'GetMaxY',
- 'GetPixel', 'GetX', 'GetY', 'GraphErrorMsg',
- 'GraphResult', 'Hi', 'ImageSize', 'Int',
- 'IOResult', 'KeyPressed', 'Length', 'Lo',
- 'MaxAvail', 'MemAvail', 'MsDos', 'Odd', 'Ofs',
- 'Ord', 'ParamCount', 'ParamStr', 'Pi', 'Pos',
- 'Pred', 'Ptr', 'Random', 'ReadKey', 'Round',
- 'SeekEof', 'SeekEoLn', 'Seg', 'SetAspectRatio',
- 'Sin', 'SizeOf', 'Sound', 'SPtr', 'Sqr', 'Sqrt',
- 'SSeg', 'Succ', 'Swap', 'TextHeight',
- 'TextWidth',
- 'Trunc', 'UpCase', 'WhereX', 'WhereY');
-
- CONST
- reserved : ARRAY [1..59] OF STRING [14] =
- ('ABSOLUTE', 'AND', 'ARRAY', 'BEGIN', 'BOOLEAN',
- 'BYTE', 'CASE', 'CHAR', 'CONST', 'DIV', 'DO',
- 'DOUBLE', 'DOWNTO', 'ELSE', 'END', 'EXTERNAL',
- 'FALSE', 'FILE', 'FOR', 'FORWARD', 'FUNCTION',
- 'GOTO', 'IF', 'IMPLEMENTATION', 'IN', 'INLINE',
- 'INTEGER', 'INTERFACE', 'INTERRUPT', 'LABEL',
- 'LONGINT', 'MOD', 'NIL', 'NOT', 'OF', 'OR',
- 'PACKED', 'PROCEDURE', 'PROGRAM', 'REAL',
- 'RECORD', 'REPEAT', 'SET', 'SHL', 'SHR', 'STRING',
- 'TEXT', 'THEN', 'TO', 'TRUE', 'TYPE', 'UNIT',
- 'UNTIL', 'USES', 'VAR', 'WHILE', 'WITH', 'WORD',
- 'XOR');
-
- TYPE
- Zeiger = ^tZeiger;
- tZeiger = RECORD
- GrossStr : STRING;
- StandStr : STRING;
- Ptr : zeiger;
- END;
- VAR
- PascalW : ARRAY [2..18] OF Zeiger;
- HilfW : Zeiger;
-
-
- FUNCTION Up(Wort : STRING) : STRING;
- { wandelt 'Wort' in Großbuchstaben um }
- VAR
- i : BYTE;
- BEGIN
- FOR i := 1 TO Length(Wort) DO
- Wort[i] := UpCase(Wort[i]);
- Up := Wort;
- END; { up }
-
- PROCEDURE Init; { Initialisierung }
- VAR
- i, L : BYTE;
-
- PROCEDURE ZeigBeleg(PascalWort : STRING);
- { einfach verkettete Listen bilden und
- Woerter nach Wortlänge speichern }
- BEGIN
- L := Length(PascalWort);
- New(HilfW);
- HilfW^.GrossStr := Up(PascalWort);
- HilfW^.StandStr := PascalWort;
- HilfW^.Ptr := PascalW[L];
- PascalW[L] := HilfW;
- END;
-
- BEGIN
- FOR i := 2 TO 18 DO PascalW[i] := NIL;
- FOR i := 1 TO 130 DO ZeigBeleg(Prozedur[i]);
- FOR i := 1 TO 75 DO ZeigBeleg(Funktion[i]);
- FOR i := 1 TO 48 DO ZeigBeleg(Reserved[i]);
- END;
-
- PROCEDURE StandSchrW( UpWort : STRING;
- VAR Wort : STRING);
- { falls Wort in Liste,
- dann ersetzen durch Standardschreibweise }
- VAR
- L : BYTE;
- BEGIN
- L := Length(UpWort);
- IF (L > 1) AND ( L < 19) THEN BEGIN
- HilfW := PascalW[L];
- WHILE (UpWort <> HilfW^.GrossStr) AND
- (HilfW <> NIL)
- DO
- HilfW := HilfW^.Ptr;
- IF UpWort = HilfW^.GrossStr THEN
- Wort := HilfW^.StandStr;
- END;
- END;
-
- BEGIN
- Init;
- END.
- (* ------------------------------------------------- *)
- (* Ende von STANDARD.PAS *)
-
-