Advertisement
Guest User

Untitled

a guest
May 25th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.31 KB | None | 0 0
  1. UNIT MethodsReader;    
  2. INTERFACE
  3. USES
  4.   Types;
  5.  
  6.   FUNCTION ReadLexem(VAR F: TEXT): LexemType;
  7.  
  8. IMPLEMENTATION
  9.  
  10. CONST
  11.   Letter = ['A' .. 'Z', 'a' .. 'z', 'À' .. 'ß', 'à' .. 'ÿ', '¨', '¸'];
  12.  
  13.   FUNCTION IsLetter(VAR Ch: CHAR): BOOLEAN;
  14.   BEGIN {IsLetter}
  15.     IsLetter := (Ch IN Letter)
  16.   END; {IsLetter}
  17.  
  18.  FUNCTION IsSymbol(VAR Ch: CHAR): BOOLEAN;
  19.   BEGIN {IsSymbol}
  20.     IsSymbol := ((Ch = '''') OR (Ch = '-'))
  21.   END; {IsSymbol}
  22.  
  23. FUNCTION ReadLexem(VAR F: TEXT): LexemType;
  24.   VAR
  25.     Ch, Status, Sym: CHAR;
  26.     St: LexemType;
  27.     N: INTEGER;
  28.   BEGIN
  29.     Ch := '#';
  30.     Sym := '#';
  31.     St := '';
  32.     Status := N;
  33.     WHILE NOT EOLN(F) AND (Ch <> ' ')
  34.     DO
  35.       BEGIN
  36.         READ(F, Ch);
  37.         IF ((IsLetter) AND ((Status = N) OR (Status = Y)))
  38.         THEN
  39.           BEGIN
  40.             St := St + Ch;
  41.             Status := Y
  42.           END
  43.         IF IsSymbol AND (Status = Y)
  44.         THEN
  45.           BEGIN
  46.             Sym := Ch;
  47.             Status := S
  48.           END
  49.         IF Ch IN Letter AND (Status = S)
  50.         THEN
  51.           BEGIN
  52.             St := St + Sym;
  53.             St := St + Ch;
  54.             Status := Y
  55.           END
  56.       END;
  57.     IF EOLN(F)
  58.     THEN
  59.       READLN(F);
  60.     ReadLexem := St
  61.   END; {ReadLexem}  
  62.  
  63. BEGIN
  64. END. {UNIT MethodsReader}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement