Example #1
0
 private SyntacticalExtension<SyntaxNode> typeExtension(IncompleteMemberSyntax node)
 {
     throw new NotImplementedException();
 }
Example #2
0
        public override SyntaxNode VisitIncompleteMember(IncompleteMemberSyntax node)
        {
            SyntacticalExtension<SyntaxNode> extension = typeExtension(node);
            if (extension != null)
            {
                if (extension.Kind == ExtensionKind.Type)
                {
                    _lookahead = MatchTypeExtension(node, extension);
                    return null; //remove the incomplete member
                }
                else
                {
                    //td: error, incorrect extension (i.e. a code extension being used inside a type)
                    return null;
                }
            }

            return node; //error, stop processing
        }
Example #3
0
        private Func<SyntaxNode, Scope, LookAheadResult> MatchTypeExtension(IncompleteMemberSyntax incomplete, SyntacticalExtension<SyntaxNode> extension)
        {
            return (node, scope) =>
            {
                var resulSyntaxNode = node;
                if (node is ClassDeclarationSyntax)
                {
                    ClassDeclarationSyntax clazz = (ClassDeclarationSyntax)node;
                    clazz = clazz
                        .WithAttributeLists(incomplete.AttributeLists)
                        .WithModifiers(incomplete.Modifiers);

                    resulSyntaxNode = extension.Handler(node, scope, extension);
                }

                //td: error?, expecting class
                return new LookAheadResult
                {
                    Matched = resulSyntaxNode != null,
                    Result = resulSyntaxNode
                };
            };
        }
 public override void VisitIncompleteMember(IncompleteMemberSyntax node)
 {
     this.Incompletes.Add(node);
     base.VisitIncompleteMember(node);
 }
Example #5
0
        public override SyntaxNode VisitIncompleteMember(IncompleteMemberSyntax node)
        {
            string typename = node.Type.ToString();
            IDSLHandler dsl = ctx_.CreateDSL(typename);
            if (dsl != null)
            {
                pending_ = new ResolveDSLClass(dsl, ctx_, members_);
                return null;
            }

            return node;
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitIncompleteMember(IncompleteMemberSyntax node)
 {
     this.OnNodeVisited(node, this.type.IsInstanceOfType(node));
     base.VisitIncompleteMember(node);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitIncompleteMember(IncompleteMemberSyntax node)
 {
     this.OnNodeVisited(node);
     if (!this.traverseRootOnly) base.VisitIncompleteMember(node);
 }