summaryrefslogtreecommitdiff
path: root/lib/coderay/encoders/tokens.rb
blob: 2bcca408d917653dae8662178e02213eb746ffbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
module CodeRay
module Encoders

	# The Tokens encoder converts the tokens to a simple
	# readable format. It doesn't use colors and is mainly
	# intended for console output.
	# 
	# The tokens are converted with Tokens.write_token.
	#
	# The format is:
	#
	#   <token-kind> \t <escaped token-text> \n
	#
	# Example:
	#
	#   require 'coderay'
	#   puts CodeRay.scan("puts 3 + 4", :ruby).tokens
	# 
	# prints:
	#   
	#   ident   puts
	#   space
	#   integer 3
	#   space
	#   operator        +
	#   space
	#   integer 4
	# 
	class Tokens < Encoder

		include Streamable
		register_for :tokens

		FILE_EXTENSION = 'tok'

		protected
		def token *args
			@out << CodeRay::Tokens.write_token(*args)
		end

	end

end
end