• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# ITreeAdaptor类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中ITreeAdaptor的典型用法代码示例。如果您正苦于以下问题:C# ITreeAdaptor类的具体用法?C# ITreeAdaptor怎么用?C# ITreeAdaptor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ITreeAdaptor类属于命名空间,在下文中一共展示了ITreeAdaptor类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: TreePatternParser

 public TreePatternParser( TreePatternLexer tokenizer, TreeWizard wizard, ITreeAdaptor adaptor )
 {
     this.tokenizer = tokenizer;
     this.wizard = wizard;
     this.adaptor = adaptor;
     ttype = tokenizer.NextToken(); // kickstart
 }
开发者ID:sebasjm,项目名称:antlr,代码行数:7,代码来源:TreePatternParser.cs


示例2: EqualsCore

 protected static bool EqualsCore(object t1, object t2, ITreeAdaptor adaptor)
 {
     if ((t1 == null) || (t2 == null))
     {
         return false;
     }
     if (adaptor.GetType(t1) != adaptor.GetType(t2))
     {
         return false;
     }
     if (!adaptor.GetText(t1).Equals(adaptor.GetText(t2)))
     {
         return false;
     }
     int childCount = adaptor.GetChildCount(t1);
     int num2 = adaptor.GetChildCount(t2);
     if (childCount != num2)
     {
         return false;
     }
     for (int i = 0; i < childCount; i++)
     {
         object child = adaptor.GetChild(t1, i);
         object obj3 = adaptor.GetChild(t2, i);
         if (!EqualsCore(child, obj3, adaptor))
         {
             return false;
         }
     }
     return true;
 }
开发者ID:brunolauze,项目名称:mysql-connector-net-6,代码行数:31,代码来源:TreeWizard.cs


示例3: InContext

        /// <summary>
        /// The worker for <see cref="InContext(TreeParser, string)"/>. It's <see langword="static"/> and full of
        /// parameters for testing purposes.
        /// </summary>
        private static bool InContext(
            ITreeAdaptor adaptor,
            string[] tokenNames,
            object t,
            string context)
        {
            if (Regex.IsMatch(context, DotDot))
            {
                // don't allow "..", must be "..."
                throw new ArgumentException("invalid syntax: ..");
            }

            if (Regex.IsMatch(context, DoubleEtc))
            {
                // don't allow double "..."
                throw new ArgumentException("invalid syntax: ... ...");
            }

            context = context.Replace("...", " ... "); // ensure spaces around ...
            context = context.Trim();
            string[] nodes = context.Split(new[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
            int ni = nodes.Length - 1;
            t = adaptor.GetParent(t);
            while (ni >= 0 && t != null)
            {
                if (nodes[ni].Equals("..."))
                {
                    // walk upwards until we see nodes[ni-1] then continue walking
                    if (ni == 0)
                    {
                        // ... at start is no-op
                        return true;
                    }

                    string goal = nodes[ni - 1];
                    object ancestor = GetAncestor(adaptor, tokenNames, t, goal);
                    if (ancestor == null)
                        return false;

                    t = ancestor;
                    ni--;
                }

                string name = tokenNames[adaptor.GetType(t)];
                if (!name.Equals(nodes[ni]))
                {
                    //System.Console.Error.WriteLine("not matched: " + nodes[ni] + " at " + t);
                    return false;
                }

                // advance to parent and to previous element in context node list
                ni--;
                t = adaptor.GetParent(t);
            }

            if (t == null && ni >= 0)
                return false; // at root but more nodes to match
            return true;
        }
开发者ID:sharwell,项目名称:antlr4cs,代码行数:63,代码来源:TreeParserExtensions.cs


示例4: TreeViewModel

        public TreeViewModel(ITreeAdaptor adaptor, object tree)
        {
            if (adaptor == null)
                throw new ArgumentNullException("adaptor");
            if (tree == null)
                throw new ArgumentNullException("tree");

            _adaptor = adaptor;
            _tree = tree;
        }
开发者ID:mahanteshck,项目名称:antlrcs,代码行数:10,代码来源:TreeViewModel.cs


示例5: Concatenate_Depth2_Subtree_Name

        // Private interface
        private static string Concatenate_Depth2_Subtree_Name( ITreeAdaptor tree_adapter, object node )
        {
            StringBuilder builder = new StringBuilder();

            builder.Append( tree_adapter.GetText( node ) );

            for ( int i = 0; i < tree_adapter.GetChildCount( node ); i++ )
            {
                object child_node = tree_adapter.GetChild( node, i );
                builder.Append( tree_adapter.GetText( child_node ) );
            }

            return builder.ToString();
        }
开发者ID:bretambrose,项目名称:CCGOnlinePublic,代码行数:15,代码来源:EnumASTUtils.cs


示例6: TreeVisualizerViewModel

        public TreeVisualizerViewModel(ITreeAdaptor adaptor, object tree, ITokenStream tokenStream, string sourceText)
        {
            if (adaptor == null)
                throw new ArgumentNullException("adaptor");
            if (tree == null)
                throw new ArgumentNullException("tree");

            _adaptor = adaptor;
            _tree = tree;
            _tokenStream = tokenStream;
            _sourceText = sourceText;

            object root = adaptor.Nil();
            adaptor.AddChild(root, tree);
            _treeViewModel = new TreeViewModel(_adaptor, root);
        }
开发者ID:mahanteshck,项目名称:antlrcs,代码行数:16,代码来源:TreeVisualizerViewModel.cs


示例7: DefineNodes

 protected virtual IEnumerable<string> DefineNodes(object tree, ITreeAdaptor adaptor)
 {
     if (tree != null)
     {
         int childCount = adaptor.GetChildCount(tree);
         if (childCount != 0)
         {
             yield return this.GetNodeText(adaptor, tree);
             for (int i = 0; i < childCount; i++)
             {
                 object child = adaptor.GetChild(tree, i);
                 yield return this.GetNodeText(adaptor, child);
                 foreach (string iteratorVariable3 in this.DefineNodes(child, adaptor))
                 {
                     yield return iteratorVariable3;
                 }
             }
         }
     }
 }
开发者ID:brunolauze,项目名称:mysql-connector-net-6,代码行数:20,代码来源:DotTreeGenerator.cs


示例8: DefineEdges

 protected virtual IEnumerable<string> DefineEdges(object tree, ITreeAdaptor adaptor)
 {
     if (tree != null)
     {
         int childCount = adaptor.GetChildCount(tree);
         if (childCount != 0)
         {
             string iteratorVariable1 = "n" + this.GetNodeNumber(tree);
             string text = adaptor.GetText(tree);
             for (int i = 0; i < childCount; i++)
             {
                 object child = adaptor.GetChild(tree, i);
                 string iteratorVariable5 = adaptor.GetText(child);
                 string iteratorVariable6 = "n" + this.GetNodeNumber(child);
                 yield return string.Format("  {0} -> {1} // \"{2}\" -> \"{3}\"", new object[] { iteratorVariable1, iteratorVariable6, this.FixString(text), this.FixString(iteratorVariable5) });
                 foreach (string iteratorVariable7 in this.DefineEdges(child, adaptor))
                 {
                     yield return iteratorVariable7;
                 }
             }
         }
     }
 }
开发者ID:brunolauze,项目名称:mysql-connector-net-6,代码行数:23,代码来源:DotTreeGenerator.cs


示例9: TreeWizard

 public TreeWizard( ITreeAdaptor adaptor, IDictionary<string, int> tokenNameToTypeMap )
 {
     this.adaptor = adaptor;
     this.tokenNameToTypeMap = tokenNameToTypeMap;
 }
开发者ID:ksmyth,项目名称:antlr,代码行数:5,代码来源:TreeWizard.cs


示例10: RewriteRuleNodeStream

		/// <summary>Create a stream, but feed off an existing list</summary>
		public RewriteRuleNodeStream(
			ITreeAdaptor adaptor,
			string elementDescription,
            IList<object> elements
		) : base(adaptor, elementDescription, elements) {
		}
开发者ID:EightPillars,项目名称:PathwayEditor,代码行数:7,代码来源:RewriteRuleNodeStream.cs


示例11: _Equals

 protected static bool _Equals( object t1, object t2, ITreeAdaptor adaptor )
 {
     // make sure both are non-null
     if ( t1 == null || t2 == null )
     {
         return false;
     }
     // check roots
     if ( adaptor.GetType( t1 ) != adaptor.GetType( t2 ) )
     {
         return false;
     }
     if ( !adaptor.GetText( t1 ).Equals( adaptor.GetText( t2 ) ) )
     {
         return false;
     }
     // check children
     int n1 = adaptor.GetChildCount( t1 );
     int n2 = adaptor.GetChildCount( t2 );
     if ( n1 != n2 )
     {
         return false;
     }
     for ( int i = 0; i < n1; i++ )
     {
         object child1 = adaptor.GetChild( t1, i );
         object child2 = adaptor.GetChild( t2, i );
         if ( !_Equals( child1, child2, adaptor ) )
         {
             return false;
         }
     }
     return true;
 }
开发者ID:ksmyth,项目名称:antlr,代码行数:34,代码来源:TreeWizard.cs


示例12: RewriteRuleElementStream

 public RewriteRuleElementStream( ITreeAdaptor adaptor, string elementDescription )
 {
     this.elementDescription = elementDescription;
     this.adaptor = adaptor;
 }
开发者ID:EightPillars,项目名称:PathwayEditor,代码行数:5,代码来源:RewriteRuleElementStream.cs


示例13: RewriteRuleSubtreeStream

 public RewriteRuleSubtreeStream(ITreeAdaptor adaptor, string elementDescription, IList elements)            : base(adaptor, elementDescription, elements) { }
开发者ID:rgatkinson,项目名称:nadir,代码行数:1,代码来源:AntrRuntimeFixes.cs


示例14: ReadOnlyTreeVisitor

 public ReadOnlyTreeVisitor(ITreeAdaptor adaptor)
     {
     this.adaptor = adaptor;
     }
开发者ID:rgatkinson,项目名称:nadir,代码行数:4,代码来源:AntrRuntimeFixes.cs


示例15: UnBufferedTreeNodeStream

 public UnBufferedTreeNodeStream(ITreeAdaptor adaptor, object tree)
 {
     this.root = tree;
     this.adaptor = adaptor;
     Reset();
     down = adaptor.Create(Token.DOWN, "DOWN");
     up = adaptor.Create(Token.UP, "UP");
     eof = adaptor.Create(Token.EOF, "EOF");
 }
开发者ID:nikola-v,项目名称:jaustoolset,代码行数:9,代码来源:UnBufferedTreeNodeStream.cs


示例16: ToDot

        /** Generate DOT (graphviz) for a whole tree not just a node.
         *  For example, 3+4*5 should generate:
         *
         * digraph {
         *   node [shape=plaintext, fixedsize=true, fontsize=11, fontname="Courier",
         *         width=.4, height=.2];
         *   edge [arrowsize=.7]
         *   "+"->3
         *   "+"->"*"
         *   "*"->4
         *   "*"->5
         * }
         *
         * Takes a Tree interface object.
         */
        public virtual string ToDot(object tree, ITreeAdaptor adaptor) {
            StringBuilder builder = new StringBuilder();
            foreach (string line in HeaderLines)
                builder.AppendLine(line);

            nodeNumber = 0;
            var nodes = DefineNodes(tree, adaptor);
            nodeNumber = 0;
            var edges = DefineEdges(tree, adaptor);

            foreach (var s in nodes)
                builder.AppendLine(s);

            builder.AppendLine();

            foreach (var s in edges)
                builder.AppendLine(s);

            builder.AppendLine();

            builder.AppendLine(Footer);
            return builder.ToString();
        }
开发者ID:jjchaverra,项目名称:antlr3,代码行数:38,代码来源:DOTTreeGenerator.cs


示例17: CommonTreeNodeStream

		public CommonTreeNodeStream(ITreeAdaptor adaptor, object tree, int initialBufferSize) 
		{
			this.root = tree;
			this.adaptor = adaptor;
			nodes = new ArrayList(initialBufferSize);
			down = adaptor.Create(Token.DOWN, "DOWN");
			up = adaptor.Create(Token.UP, "UP");
			eof = adaptor.Create(Token.EOF, "EOF");
		}
开发者ID:Fedorm,项目名称:core-master,代码行数:9,代码来源:CommonTreeNodeStream.cs


示例18: ModifiableTreeVisitor

 public ModifiableTreeVisitor(ITreeAdaptor adaptor)
     {
     this.adaptor = adaptor;
     }
开发者ID:rgatkinson,项目名称:nadir,代码行数:4,代码来源:AntrRuntimeFixes.cs


示例19: Equals

 /** <summary>
  *  Compare t1 and t2; return true if token types/text, structure match exactly.
  *  The trees are examined in their entirety so that (A B) does not match
  *  (A B C) nor (A (B C)). 
  *  </summary>
  *
  *  <remarks>
  *  TODO: allow them to pass in a comparator
  *  TODO: have a version that is nonstatic so it can use instance adaptor
  *
  *  I cannot rely on the tree node's equals() implementation as I make
  *  no constraints at all on the node types nor interface etc... 
  *  </remarks>
  */
 public static bool Equals( object t1, object t2, ITreeAdaptor adaptor )
 {
     return _Equals( t1, t2, adaptor );
 }
开发者ID:ksmyth,项目名称:antlr,代码行数:18,代码来源:TreeWizard.cs


示例20: NadirTreePatternMatcher

    ///////////////////////////////////////////
    //
    // Construction
    //
    ///////////////////////////////////////////

    public NadirTreePatternMatcher(ITreeNodeStream input, RecognizerSharedState state) : base(input, state)
        {
        originalAdaptor     = (ITreeAdaptor)input.TreeAdaptor;
        originalTokenStream = input.TokenStream;
        }
开发者ID:rgatkinson,项目名称:nadir,代码行数:11,代码来源:AntrRuntimeFixes.cs



注:本文中的ITreeAdaptor类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# ITreeBuilder类代码示例发布时间:2022-05-24
下一篇:
C# ITree类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap