mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-30 23:31:12 +00:00
Make State::xyzlcol a LineColumn, and change everything wanting a Position to use State::pos() instead
This commit is contained in:
parent
d2dcb462c7
commit
1b257da356
10 changed files with 127 additions and 87 deletions
|
@ -17,7 +17,7 @@ fn ascii_hex_digits<'a>() -> impl Parser<'a, &'a str, EString<'a>> {
|
|||
buf.push(byte as char);
|
||||
} else if buf.is_empty() {
|
||||
// We didn't find any hex digits!
|
||||
return Err((NoProgress, EString::CodePtEnd(state.xyzlcol), state));
|
||||
return Err((NoProgress, EString::CodePtEnd(state.pos()), state));
|
||||
} else {
|
||||
let state = state.advance_without_indenting_ee(buf.len(), |pos| {
|
||||
EString::Space(BadInputError::LineTooLong, pos)
|
||||
|
@ -27,7 +27,7 @@ fn ascii_hex_digits<'a>() -> impl Parser<'a, &'a str, EString<'a>> {
|
|||
}
|
||||
}
|
||||
|
||||
Err((NoProgress, EString::CodePtEnd(state.xyzlcol), state))
|
||||
Err((NoProgress, EString::CodePtEnd(state.pos()), state))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ pub fn parse<'a>() -> impl Parser<'a, StrLiteral<'a>, EString<'a>> {
|
|||
bytes = state.bytes()[1..].iter();
|
||||
state = advance_state!(state, 1)?;
|
||||
} else {
|
||||
return Err((NoProgress, EString::Open(state.xyzlcol), state));
|
||||
return Err((NoProgress, EString::Open(state.pos()), state));
|
||||
}
|
||||
|
||||
// At the parsing stage we keep the entire raw string, because the formatter
|
||||
|
@ -100,7 +100,7 @@ pub fn parse<'a>() -> impl Parser<'a, StrLiteral<'a>, EString<'a>> {
|
|||
Err(_) => {
|
||||
return Err((
|
||||
MadeProgress,
|
||||
EString::Space(BadInputError::BadUtf8, state.xyzlcol),
|
||||
EString::Space(BadInputError::BadUtf8, state.pos()),
|
||||
state,
|
||||
));
|
||||
}
|
||||
|
@ -192,7 +192,7 @@ pub fn parse<'a>() -> impl Parser<'a, StrLiteral<'a>, EString<'a>> {
|
|||
// all remaining chars. This will mask all other errors, but
|
||||
// it should make it easiest to debug; the file will be a giant
|
||||
// error starting from where the open quote appeared.
|
||||
return Err((MadeProgress, EString::EndlessSingle(state.xyzlcol), state));
|
||||
return Err((MadeProgress, EString::EndlessSingle(state.pos()), state));
|
||||
}
|
||||
}
|
||||
b'\\' => {
|
||||
|
@ -281,7 +281,7 @@ pub fn parse<'a>() -> impl Parser<'a, StrLiteral<'a>, EString<'a>> {
|
|||
// Invalid escape! A backslash must be followed
|
||||
// by either an open paren or else one of the
|
||||
// escapable characters (\n, \t, \", \\, etc)
|
||||
return Err((MadeProgress, EString::UnknownEscape(state.xyzlcol), state));
|
||||
return Err((MadeProgress, EString::UnknownEscape(state.pos()), state));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -295,9 +295,9 @@ pub fn parse<'a>() -> impl Parser<'a, StrLiteral<'a>, EString<'a>> {
|
|||
Err((
|
||||
MadeProgress,
|
||||
if is_multiline {
|
||||
EString::EndlessMulti(state.xyzlcol)
|
||||
EString::EndlessMulti(state.pos())
|
||||
} else {
|
||||
EString::EndlessSingle(state.xyzlcol)
|
||||
EString::EndlessSingle(state.pos())
|
||||
},
|
||||
state,
|
||||
))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue