Exemplo n.º 1
0
        public static T Create()
        {
            ForeignGrammarFactory <T> factory = new ForeignGrammarFactory <T>();
            T result = proxyGenerator.CreateClassProxy <T>(factory);

            int nonterminalIndex = 0;

            // Now initialize the grammar
            foreach (MethodInfo method in typeof(T).GetMethods())
            {
                if (method.ReturnType == typeof(Expression) && method.GetParameters().Length == 0 && !method.IsSpecialName)
                {
                    ForeignNonterminal rule = new ForeignNonterminal();
                    rule.Name = method.Name;
                    factory.rules[rule.Name] = rule;
                }
            }

            T tokenizerGrammar = GrammarFactory <T> .Create();

            result.SetTokenizer(tokenizerGrammar, tokenizerGrammar.Tokenizer);

            return(result);
        }
Exemplo n.º 2
0
 public override void Visit(ForeignNonterminal expression, object context)
 {
     expressions.Add(expression);
     base.Visit(expression, context);
 }
Exemplo n.º 3
0
 public virtual void Visit(ForeignNonterminal expression, T context)
 {
 }
Exemplo n.º 4
0
 public void Visit(ForeignNonterminal expression, Nonterminal context)
 {
 }