Advertisement
Guest User

Untitled

a guest
Aug 8th, 2017
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. PROCEDURE (this: Parser) readTagValuePair(nesting: INTEGER): ParserError.ParserError;
  2.     (*
  3.         Description:    Reads a tag with value pair (e.g. <TAG>X</TAG>) at a specified nesting level. When no error occurs
  4.                                 the pair is passed on to the consumer
  5.         Param: -nesting     nesting level of the pair
  6.         Return: ParserError error that occurs while reading
  7.     *)
  8.    
  9.         VAR
  10.             openIdentifier, closeIdentifier, contents: Object.Object;
  11.             pair: TagValuePair.TagValuePair;
  12.    
  13.     BEGIN
  14.         openIdentifier := this.readOpeningTagIdentifier();
  15.         IF (openIdentifier IS ParserError.ParserError) THEN
  16.             RETURN openIdentifier(ParserError.ParserError);
  17.         END;
  18.                
  19.         (* Eventual Tag-contents *)
  20.         this.skipWhitespace;
  21.         contents := this.readTagContents( nesting );
  22.         this.skipWhitespace();
  23.        
  24.         IF ( contents # NIL ) & ( contents IS ParserError.ParserError) THEN;
  25.             RETURN contents(ParserError.ParserError);
  26.         END;
  27.                        
  28.         closeIdentifier := this.readClosingTagIdentifier();
  29.        
  30.         IF (closeIdentifier IS ParserError.ParserError) THEN
  31.             RETURN closeIdentifier(ParserError.ParserError);
  32.         END;
  33.        
  34.         IF openIdentifier(StringTypes.String) = closeIdentifier(StringTypes.String) THEN
  35.             NEW(pair);
  36.             pair.init(openIdentifier(StringTypes.String));
  37.             IF contents # NIL THEN
  38.                 pair.setValue(contents(StringTypes.String));
  39.             END;
  40.             this.consumer.foundAt(pair, nesting);
  41.         ELSE
  42.             Out.String("Fout bij parsen - openidentifier is niet gelijk aan closingidentifier");
  43.             Out.Ln();
  44.             Out.String("                - ga door met parsen");
  45.         END;
  46.         RETURN NIL;
  47.     END readTagValuePair;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement