move expr

This commit is contained in:
Aleksey Kladov 2021-12-27 16:17:29 +03:00
parent 04ae18de29
commit c5d8a9b341
3 changed files with 10 additions and 1 deletions

View file

@ -691,7 +691,11 @@ fn match_leaf(lhs: &tt::Leaf, src: &mut TtIter) -> Result<(), ExpandError> {
fn match_meta_var(kind: &str, input: &mut TtIter) -> ExpandResult<Option<Fragment>> {
let fragment = match kind {
"path" => ParserEntryPoint::Path,
"expr" => ParserEntryPoint::Expr,
"expr" => {
return input
.expect_fragment2(parser::PrefixEntryPoint::Expr)
.map(|tt| tt.map(Fragment::Expr));
}
"ty" => {
return input
.expect_fragment2(parser::PrefixEntryPoint::Ty)

View file

@ -69,6 +69,9 @@ pub(crate) fn pat(p: &mut Parser) {
pub(crate) fn ty(p: &mut Parser) {
types::type_(p);
}
pub(crate) fn expr(p: &mut Parser) {
let _ = expressions::expr(p);
}
}
}

View file

@ -57,6 +57,7 @@ pub enum PrefixEntryPoint {
Stmt,
Pat,
Ty,
Expr,
}
impl PrefixEntryPoint {
@ -67,6 +68,7 @@ pub fn parse(&self, input: &Input) -> Output {
PrefixEntryPoint::Stmt => grammar::entry::prefix::stmt,
PrefixEntryPoint::Pat => grammar::entry::prefix::pat,
PrefixEntryPoint::Ty => grammar::entry::prefix::ty,
PrefixEntryPoint::Expr => grammar::entry::prefix::expr,
};
let mut p = parser::Parser::new(input);
entry_point(&mut p);