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); }
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)); }
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(); }
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(); }
/// <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(); }
/// <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)); }
public static AstRoot Parse(ITextProvider textProvider, IExpressionTermFilter filter = null) => Parse(textProvider, new TextRange(0, textProvider.Length), filter);
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); }
/// <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); }
public static AstRoot Parse(ITextProvider textProvider, IExpressionTermFilter filter = null) { return RParser.Parse(textProvider, new TextRange(0, textProvider.Length), filter); }