当前位置: 首页>>代码示例>>C#>>正文


C# ParserRuleContext.GetChild方法代码示例

本文整理汇总了C#中ParserRuleContext.GetChild方法的典型用法代码示例。如果您正苦于以下问题:C# ParserRuleContext.GetChild方法的具体用法?C# ParserRuleContext.GetChild怎么用?C# ParserRuleContext.GetChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ParserRuleContext的用法示例。


在下文中一共展示了ParserRuleContext.GetChild方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: TagRegion

 private void TagRegion(ParserRuleContext context, int endChild)
 {
     var endToken = context.GetChild(endChild);
     if (endToken is LanguageService.SyntaxTree.Tree.TerminalNodeImpl)
     {
         LanguageService.SyntaxTree.IToken sym = ((LanguageService.SyntaxTree.Tree.TerminalNodeImpl)endToken).Symbol;
         var tokenSpan = new TextSpan(context.Start.StartIndex, 1);
         tags.Add(tokenSpan.ToClassificationSpan(Snapshot, xsharpRegionStartType));
         tokenSpan = new TextSpan( sym.StartIndex, sym.StopIndex - sym.StartIndex + 1);
         tags.Add(tokenSpan.ToClassificationSpan(Snapshot, xsharpRegionStopType));
     }
     else if (endToken is LanguageService.CodeAnalysis.XSharp.SyntaxParser.XSharpParser.StatementBlockContext)
     {
         XSharpParser.StatementBlockContext lastTokenInContext = endToken as LanguageService.CodeAnalysis.XSharp.SyntaxParser.XSharpParser.StatementBlockContext;
         var tokenSpan = new TextSpan(context.Start.StartIndex, 1);
         tags.Add(tokenSpan.ToClassificationSpan(Snapshot, xsharpRegionStartType));
         tokenSpan = new TextSpan(lastTokenInContext.Stop.StartIndex - 1, 1);
         tags.Add(tokenSpan.ToClassificationSpan(Snapshot, xsharpRegionStopType));
     }
 }
开发者ID:X-Sharp,项目名称:XSharpPublic,代码行数:20,代码来源:XSharpTreeDiscover.cs

示例2: StripChildrenOutOfRange

 /// <summary>
 /// Replace any subtree siblings of root that are completely to left
 /// or right of lookahead range with a CommonToken(Token.INVALID_TYPE,"...")
 /// node.
 /// </summary>
 /// <remarks>
 /// Replace any subtree siblings of root that are completely to left
 /// or right of lookahead range with a CommonToken(Token.INVALID_TYPE,"...")
 /// node. The source interval for t is not altered to suit smaller range!
 /// WARNING: destructive to t.
 /// </remarks>
 /// <since>4.5.1</since>
 public static void StripChildrenOutOfRange(ParserRuleContext t, ParserRuleContext root, int startIndex, int stopIndex)
 {
     if (t == null)
     {
         return;
     }
     for (int i = 0; i < t.ChildCount; i++)
     {
         IParseTree child = t.GetChild(i);
         Interval range = child.SourceInterval;
         if (child is ParserRuleContext && (range.b < startIndex || range.a > stopIndex))
         {
             if (IsAncestorOf(child, root))
             {
                 // replace only if subtree doesn't have displayed root
                 CommonToken abbrev = new CommonToken(TokenConstants.InvalidType, "...");
                 t.children.Set(i, new TerminalNodeImpl(abbrev));
             }
         }
     }
 }
开发者ID:sharwell,项目名称:antlr4cs,代码行数:33,代码来源:Trees.cs


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