示例#1
0
文件: Parameter.cs 项目: alexrp/flare
 internal Parameter(Declaration declaration, SyntaxNodeList <AttributeNode> attributes, string name, int position,
                    bool variadic)
     : base(attributes)
 {
     Declaration = declaration;
     Name        = name;
     Position    = position;
     IsVariadic  = variadic;
 }
示例#2
0
文件: Metadata.cs 项目: alexrp/flare
        private protected Metadata(SyntaxNodeList <AttributeNode> nodes)
        {
            var attrs = ImmutableArray <Attribute> .Empty;

            foreach (var attr in nodes)
            {
                attrs = attrs.Add(new Attribute(attr.NameToken.Text, attr.ValueToken.Value !));
            }

            Attributes = attrs;
        }
示例#3
0
        static SyntaxDiagnostic?CheckDocAttribute(SyntaxNodeList <AttributeNode> attributes, SourceLocation location,
                                                  string error)
        {
            var doc = attributes.LastOrDefault(x => x.NameToken.Text == "doc");

            if (doc == null)
            {
                return(new SyntaxDiagnostic(location, error));
            }

            var value = doc.ValueToken;

            return(!value.IsMissing && value.Kind != SyntaxTokenKind.StringLiteral && value.Value != (object)false ?
                   new SyntaxDiagnostic(value.Location,
                                        $"The value of the 'doc' attribute must be a string literal or the 'false' Boolean literal") : null);
        }
示例#4
0
 internal TryStatementWithCodeAnalysis()
 {
     node            = new StatementNode <TryStatementWithCodeAnalysis, TryStatementSyntax>(this);
     catchStatements = new SyntaxNodeList <TryStatementWithCodeAnalysis, TryStatementSyntax, CatchStatementWithCodeAnalysis, CatchClauseSyntax>(
         node,
         syntax => syntax.Catches,
         (parentSyntax, childSyntax) => parentSyntax.WithCatches(childSyntax),
         () => new CatchStatementWithCodeAnalysis());
     finallyStatement = new CachedChildNode <TryStatementWithCodeAnalysis, TryStatementSyntax, FinallyStatementWithCodeAnalysis, FinallyClauseSyntax>(
         node,
         () => new FinallyStatementWithCodeAnalysis(),
         syntax => syntax.Finally,
         (parentSyntax, childSyntax) => parentSyntax.WithFinally(childSyntax));
     tryStatements = new StatementListWrapper <TryStatementWithCodeAnalysis, TryStatementSyntax>(
         node,
         syntax => syntax.Block.Statements,
         (parentSyntax, childSyntax) => parentSyntax.WithBlock(parentSyntax.Block.WithStatements(childSyntax)));
 }
示例#5
0
 private QueryExpressionListWrapper(
     SyntaxNodeList <TParent, TParentSyntax, IInternalQueryExpression, QueryClauseSyntax> list)
     : base(list, parent => parent, child => child as IInternalQueryExpression)
 {
     this.list = list;
 }
示例#6
0
 internal SeparatedSyntaxNodeList(SyntaxNodeList <T> nodes, SyntaxTokenList separators)
 {
     Nodes      = nodes;
     Separators = separators;
 }