Move ParsedFile to top

This commit is contained in:
Aleksey Kladov 2018-08-25 11:40:17 +03:00
parent f104458d45
commit 9fae494a8d
7 changed files with 39 additions and 39 deletions

View file

@ -4,8 +4,7 @@ use itertools::Itertools;
use smol_str::SmolStr;
use {
SyntaxNode, SyntaxNodeRef, TreeRoot, SyntaxError,
SyntaxKind::*,
SyntaxNodeRef, SyntaxKind::*,
};
pub use self::generated::*;
@ -37,28 +36,6 @@ pub trait AttrsOwner<'a>: AstNode<'a> {
}
}
#[derive(Clone, Debug)]
pub struct ParsedFile {
root: SyntaxNode
}
impl ParsedFile {
pub fn parse(text: &str) -> Self {
let root = ::parse(text);
ParsedFile { root }
}
pub fn ast(&self) -> File {
File::cast(self.syntax()).unwrap()
}
pub fn syntax(&self) -> SyntaxNodeRef {
self.root.borrowed()
}
pub fn errors(&self) -> Vec<SyntaxError> {
self.syntax().root.syntax_root().errors.clone()
}
}
impl<'a> FnDef<'a> {
pub fn has_atom_attr(&self, atom: &str) -> bool {
self.attrs()

View file

@ -44,12 +44,33 @@ pub mod text_utils;
pub use {
text_unit::{TextRange, TextUnit},
smol_str::SmolStr,
ast::{AstNode, ParsedFile},
ast::AstNode,
lexer::{tokenize, Token},
syntax_kinds::SyntaxKind,
yellow::{SyntaxNode, SyntaxNodeRef, OwnedRoot, RefRoot, TreeRoot, SyntaxError},
};
#[derive(Clone, Debug)]
pub struct ParsedFile {
root: SyntaxNode
}
impl ParsedFile {
pub fn parse(text: &str) -> Self {
let root = ::parse(text);
ParsedFile { root }
}
pub fn ast(&self) -> ast::File {
ast::File::cast(self.syntax()).unwrap()
}
pub fn syntax(&self) -> SyntaxNodeRef {
self.root.borrowed()
}
pub fn errors(&self) -> Vec<SyntaxError> {
self.syntax().root.syntax_root().errors.clone()
}
}
pub fn parse(text: &str) -> SyntaxNode {
let tokens = tokenize(&text);