Exemple #1
0
        public static AstRoot Parse(ITextProvider textProvider, ITextRange range, IExpressionTermFilter filter) {
            var tokenizer = new RTokenizer(separateComments: true);

            IReadOnlyTextRangeCollection<RToken> tokens = tokenizer.Tokenize(textProvider, range.Start, range.Length);
            TokenStream<RToken> tokenStream = new TokenStream<RToken>(tokens, new RToken(RTokenType.EndOfStream, TextRange.EmptyRange));

            return Parse(textProvider, range, tokenStream, tokenizer.CommentTokens, filter);
        }
Exemple #2
0
        public static AstRoot Parse(ITextProvider textProvider, ITextRange range, IExpressionTermFilter filter)
        {
            var tokenizer = new RTokenizer(separateComments: true);

            var tokens      = tokenizer.Tokenize(textProvider, range.Start, range.Length);
            var tokenStream = new TokenStream <RToken>(tokens, new RToken(RTokenType.EndOfStream, TextRange.EmptyRange));

            return(Parse(textProvider, range, tokenStream, tokenizer.CommentTokens, filter));
        }
Exemple #3
0
 public ParseContext(ITextProvider textProvider, ITextRange range, TokenStream<RToken> tokens, IReadOnlyList<RToken> comments, IExpressionTermFilter filter = null) {
     AstRoot = new AstRoot(textProvider);
     TextProvider = textProvider;
     Tokens = tokens;
     TextRange = range;
     Scopes = new Stack<IScope>();
     Expressions = new Stack<Expression>();
     Comments = comments;
     ExpressionTermFilter = filter ?? new DefaultExpressionTermFilter();
 }
Exemple #4
0
 public ParseContext(ITextProvider textProvider, ITextRange range, TokenStream <RToken> tokens, IReadOnlyList <RToken> comments, IExpressionTermFilter filter = null)
 {
     AstRoot              = new AstRoot(textProvider);
     TextProvider         = textProvider;
     Tokens               = tokens;
     TextRange            = range;
     Scopes               = new Stack <IScope>();
     Expressions          = new Stack <Expression>();
     Comments             = comments;
     ExpressionTermFilter = filter ?? new DefaultExpressionTermFilter();
 }
Exemple #5
0
        /// <summary>
        /// Creates document tree on a given text buffer.
        /// </summary>
        /// <param name="textBuffer">Text buffer</param>
        /// <param name="shell"></param>
        public EditorTree(ITextBuffer textBuffer, ICoreShell shell, IExpressionTermFilter filter = null)
        {
            _ownerThread         = Thread.CurrentThread.ManagedThreadId;
            ExpressionTermFilter = filter;

            TextBuffer = textBuffer;
            TextBuffer.ChangedHighPriority += OnTextBufferChanged;

            TreeUpdateTask = new TreeUpdateTask(this, shell);
            TreeLock       = new EditorTreeLock();
        }
Exemple #6
0
        /// <summary>
        /// Parse text from a text provider within a given range
        /// </summary>
        /// <param name="textProvider">Text provider</param>
        /// <param name="range">Range to parse</param>
        internal static AstRoot Parse(ITextProvider textProvider, ITextRange range, TokenStream <RToken> tokenStream, IReadOnlyList <RToken> commentTokens, IExpressionTermFilter filter)
        {
            var context = new ParseContext(textProvider, range, tokenStream, commentTokens, filter);

            return(Parse(context));
        }
Exemple #7
0
 public static AstRoot Parse(ITextProvider textProvider, IExpressionTermFilter filter = null)
 => Parse(textProvider, new TextRange(0, textProvider.Length), filter);
Exemple #8
0
        public REditorDocument(IEditorBuffer editorBuffer, IServiceContainer services, IExpressionTermFilter termFilter = null)
        {
            EditorBuffer = editorBuffer;
            _services    = services;

            EditorBuffer.Services.AddService(this);
            EditorBuffer.Closing += OnBufferClosing;

            var tree = new EditorTree(EditorBuffer, services, termFilter);

            tree.Build();
            EditorTree = tree;

            TreeValidator.FromEditorBuffer(EditorTree, services);
        }
Exemple #9
0
        /// <summary>
        /// Creates document tree on a given text buffer.
        /// </summary>
        /// <param name="textBuffer">Text buffer</param>
        /// <param name="shell"></param>
        public EditorTree(ITextBuffer textBuffer, ICoreShell shell, IExpressionTermFilter filter = null) {
            _ownerThread = Thread.CurrentThread.ManagedThreadId;
            ExpressionTermFilter = filter;

            TextBuffer = textBuffer;
            TextBuffer.ChangedHighPriority += OnTextBufferChanged;

            TreeUpdateTask = new TreeUpdateTask(this, shell);
            TreeLock = new EditorTreeLock();
        }
Exemple #10
0
 /// <summary>
 /// Parse text from a text provider within a given range
 /// </summary>
 /// <param name="textProvider">Text provider</param>
 /// <param name="range">Range to parse</param>
 internal static AstRoot Parse(ITextProvider textProvider, ITextRange range, TokenStream<RToken> tokenStream, IReadOnlyList<RToken> commentTokens, IExpressionTermFilter filter) {
     ParseContext context = new ParseContext(textProvider, range, tokenStream, commentTokens, filter);
     return Parse(context);
 }
Exemple #11
0
 public static AstRoot Parse(ITextProvider textProvider, IExpressionTermFilter filter = null) {
     return RParser.Parse(textProvider, new TextRange(0, textProvider.Length), filter);
 }