File: TokenCreator.cs

package info (click to toggle)
antlr 2.7.7%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 9,920 kB
  • sloc: java: 54,649; cs: 12,533; makefile: 8,963; cpp: 7,359; pascal: 5,273; sh: 4,337; python: 4,301; lisp: 1,969; xml: 220; lex: 192; ansic: 134
file content (48 lines) | stat: -rw-r--r-- 1,229 bytes parent folder | download | duplicates (15)
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
45
46
47
48
namespace antlr
{
	using System;

	/*ANTLR Translator Generator
	* Project led by Terence Parr at http://www.jGuru.com
	* Software rights: http://www.antlr.org/license.html
	*
	* $Id:$
	*/
	
	//
	// ANTLR C# Code Generator by Micheal Jordan
	//                            Kunle Odutola       : kunle UNDERSCORE odutola AT hotmail DOT com
	//                            Anthony Oguntimehin
	//

	/// <summary>
	/// A creator of Token object instances.
	/// </summary>
	/// <remarks>
	/// <para>
	/// This class and it's sub-classes exists primarily as an optimization
	/// of the reflection-based mechanism(s) previously used exclusively to 
	/// create instances of Token objects.
	/// </para>
	/// <para>
	/// Since Lexers in ANTLR use a single Token type, each TokenCreator can 
	/// create one class of Token objects (that's why it's not called TokenFactory).
	/// </para>
	/// </remarks>
	public abstract class TokenCreator
	{
		/// <summary>
		/// Returns the fully qualified name of the Token type that this
		/// class creates.
		/// </summary>
		public abstract string TokenTypeName
		{
			get;
		}

		/// <summary>
		/// Constructs a <see cref="Token"/> instance.
		/// </summary>
		public abstract IToken Create();
	}
}