Exemple #1
0
            public override void VisitPatternDeclaration(PatternDeclaration node)
            {
                base.VisitPatternDeclaration(node);

                if (_position > node.Patterns.TextStart)
                {
                    _binder.AddDeclarationsToLocalScope(node.Parameters);

                    if (node.PathParameter != null)
                    {
                        _binder.AddDeclarationToLocalScope(node.PathParameter.Parameter.Name);
                    }
                }
            }
        private PatternDeclaration ParsePatternDeclaration()
        {
            var start = TakeKeyword(Keyword._Pattern);
            var name = ParseName();

            List<OptionDeclaration> options;
            List<SourceDeclaration> sources;
            ParseOptionList(out options, out sources);

            var body = ParseScope();

            if (sources.Count == 0)
                AddError(Severity.Error, "At least 1 Source is required.  Use the 'Source' keyword.", CreateSpan(_current.Span.Start, _tokens.Last().Span.End));

            var test = new PatternDeclaration(CreateSpan(start), name, options, sources, body);
            return test;
        }
 public override T VisitPatternDeclaration(PatternDeclaration node)
 {
     throw new NotImplementedException();
 }