source: trunk/yao/share/antlr-2.7.7/lib/csharp/antlr.runtime/antlr/ASTNodeCreator.cs @ 1

Last change on this file since 1 was 1, checked in by lnalod, 15 years ago

Initial import of YAO sources

File size: 1.4 KB
Line 
1namespace antlr
2{
3        using System;
4        using AST               = antlr.collections.AST;
5
6        /*ANTLR Translator Generator
7        * Project led by Terence Parr at http://www.jGuru.com
8        * Software rights: http://www.antlr.org/license.html
9        *
10        * $Id:$
11        */
12       
13        //
14        // ANTLR C# Code Generator by Micheal Jordan
15        //                            Kunle Odutola       : kunle UNDERSCORE odutola AT hotmail DOT com
16        //                            Anthony Oguntimehin
17        //
18
19        /// <summary>
20        /// A creator of AST node instances.
21        /// </summary>
22        /// <remarks>
23        /// <para>
24        /// This class and it's sub-classes exists primarily as an optimization
25        /// of the reflection-based mechanism(s) previously used exclusively to
26        /// create instances of AST node objects.
27        /// </para>
28        /// <para>
29        /// Parsers and TreeParsers already use the ASTFactory class in ANTLR whenever
30        /// they need to create an AST node objeect. What this class does is to support
31        /// performant extensibility of the basic ASTFactory. The ASTFactory can now be
32        /// extnded as run-time to support more new AST node types without using needing
33        /// to use reflection.
34        /// </para>
35        /// </remarks>
36        public abstract class ASTNodeCreator
37        {
38                /// <summary>
39                /// Returns the fully qualified name of the AST type that this
40                /// class creates.
41                /// </summary>
42                public abstract string ASTNodeTypeName
43                {
44                        get;
45                }
46
47                /// <summary>
48                /// Constructs an <see cref="AST"/> instance.
49                /// </summary>
50                public abstract AST Create();
51        }
52}
Note: See TracBrowser for help on using the repository browser.