summaryrefslogtreecommitdiff
path: root/lib/coderay/encoders/tokens.rb
blob: 457330779ab58d59186c4e391a069f7227f90943 (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