Line | |
---|
1 | # A TokenStream is a list of tokens, gathered during the parse
|
---|
2 | # of some entity (say a method). Entities populate these streams
|
---|
3 | # by being registered with the lexer. Any class can collect tokens
|
---|
4 | # by including TokenStream. From the outside, you use such an object
|
---|
5 | # by calling the start_collecting_tokens method, followed by calls
|
---|
6 | # to add_token and pop_token
|
---|
7 |
|
---|
8 | module TokenStream
|
---|
9 | def token_stream
|
---|
10 | @token_stream
|
---|
11 | end
|
---|
12 |
|
---|
13 | def start_collecting_tokens
|
---|
14 | @token_stream = []
|
---|
15 | end
|
---|
16 | def add_token(tk)
|
---|
17 | @token_stream << tk
|
---|
18 | end
|
---|
19 | def add_tokens(tks)
|
---|
20 | tks.each {|tk| add_token(tk)}
|
---|
21 | end
|
---|
22 | def pop_token
|
---|
23 | @token_stream.pop
|
---|
24 | end
|
---|
25 | end
|
---|
Note:
See
TracBrowser
for help on using the repository browser.