Record Builder parsing

This commit is contained in:
Agustin Zubiaga 2023-05-05 23:26:20 -03:00
parent 8009b524b4
commit 735721769c
3 changed files with 130 additions and 7 deletions

View file

@ -97,6 +97,7 @@ impl_space_problem! {
EPattern<'a>,
EProvides<'a>,
ERecord<'a>,
ERecordBuilder<'a>,
ERequires<'a>,
EString<'a>,
EType<'a>,
@ -358,6 +359,7 @@ pub enum EExpr<'a> {
InParens(EInParens<'a>, Position),
Record(ERecord<'a>, Position),
RecordBuilder(ERecordBuilder<'a>, Position),
// SingleQuote errors are folded into the EString
Str(EString<'a>, Position),
@ -418,6 +420,20 @@ pub enum ERecord<'a> {
Space(BadInputError, Position),
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ERecordBuilder<'a> {
End(Position),
Open(Position),
Field(Position),
Colon(Position),
Arrow(Position),
Expr(&'a EExpr<'a>, Position),
Space(BadInputError, Position),
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum EInParens<'a> {
End(Position),