Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- UNIT MethodsReader;
- INTERFACE
- USES
- Types;
- FUNCTION ReadLexem(VAR F: TEXT): LexemType;
- IMPLEMENTATION
- CONST
- Letter = ['A' .. 'Z', 'a' .. 'z', 'À' .. 'ß', 'à' .. 'ÿ', '¨', '¸'];
- FUNCTION IsLetter(VAR Ch: CHAR): BOOLEAN;
- BEGIN {IsLetter}
- IsLetter := (Ch IN Letter)
- END; {IsLetter}
- FUNCTION IsSymbol(VAR Ch: CHAR): BOOLEAN;
- BEGIN {IsSymbol}
- IsSymbol := ((Ch = '''') OR (Ch = '-'))
- END; {IsSymbol}
- FUNCTION ReadLexem(VAR F: TEXT): LexemType;
- VAR
- Ch, Status, Sym: CHAR;
- St: LexemType;
- N: INTEGER;
- BEGIN
- Ch := '#';
- Sym := '#';
- St := '';
- Status := N;
- WHILE NOT EOLN(F) AND (Ch <> ' ')
- DO
- BEGIN
- READ(F, Ch);
- IF ((IsLetter) AND ((Status = N) OR (Status = Y)))
- THEN
- BEGIN
- St := St + Ch;
- Status := Y
- END
- IF IsSymbol AND (Status = Y)
- THEN
- BEGIN
- Sym := Ch;
- Status := S
- END
- IF Ch IN Letter AND (Status = S)
- THEN
- BEGIN
- St := St + Sym;
- St := St + Ch;
- Status := Y
- END
- END;
- IF EOLN(F)
- THEN
- READLN(F);
- ReadLexem := St
- END; {ReadLexem}
- BEGIN
- END. {UNIT MethodsReader}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement