Skip to content

Package: TokenStream

TokenStream

Coverage

1: package de.fhdw.wtf.common.stream;
2:
3: import de.fhdw.wtf.common.token.Token;
4:
5: /**
6: * Definition of a sequence of Token.
7: */
8: public interface TokenStream {
9:         
10:         /**
11:          * Adds the {@link Token} <code>t</code> to the end of the stream.
12:          *
13:          * @param t
14:          * {@link Token} to be added.
15:          */
16:         void add(Token t);
17:         
18:         /**
19:          * Returns the next {@link Token} element from the stream. <br>
20:          * <br>
21:          * <code>
22:          * TokenStream stream = new ...; <br>
23:          * stream.next() // first element <br>
24:          * stream.next() // second element <br>
25:          * </code> and so on. <br>
26:          *
27:          * @return the next {@link Token}.
28:          */
29:         Token next();
30:         
31:         /**
32:          * Tests if there is at least one more {@link Token} at the Stream.
33:          *
34:          * @return <code>true</code> if there are {@link Token}s left at the Stream. <br>
35:          * <code>false</code> if the Stream is empty.
36:          */
37:         boolean hasNext();
38:         
39:         /**
40:          * Removes the first Token in the stream.
41:          *
42:          * @return Returns true if an element is removed, false otherwise.
43:          */
44:         boolean removeFirst();
45:         
46:         /**
47:          * Returns the next {@link Token} element without removing it from the stream.
48:          *
49:          * @return the next {@link Token}.
50:          */
51:         Token peek();
52:         
53:         /**
54:          * Return a Copy of the {@link TokenStream}.
55:          *
56:          * @return copied Tokenstream
57:          */
58:         TokenStream copy();
59:         
60: }