mirror of
https://github.com/Noratrieb/dilaria.git
synced 2026-01-16 18:35:02 +01:00
fix span error
This commit is contained in:
parent
87790d4049
commit
53c2cdb085
4 changed files with 15 additions and 6 deletions
|
|
@ -14,7 +14,7 @@ mod span {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Span {
|
impl Span {
|
||||||
pub fn new(start: usize, len: usize) -> Self {
|
pub fn start_len(start: usize, len: usize) -> Self {
|
||||||
Self {
|
Self {
|
||||||
start,
|
start,
|
||||||
end: start + len,
|
end: start + len,
|
||||||
|
|
@ -22,7 +22,7 @@ mod span {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn start_end(start: usize, end: usize) -> Self {
|
pub fn start_end(start: usize, end: usize) -> Self {
|
||||||
Self::new(start, end)
|
Self { start, end }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn single(start: usize) -> Self {
|
pub fn single(start: usize) -> Self {
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ impl<'code> Lexer<'code> {
|
||||||
if self.expect(expect_char) {
|
if self.expect(expect_char) {
|
||||||
let _ = self.code.next(); // consume first one
|
let _ = self.code.next(); // consume first one
|
||||||
Token {
|
Token {
|
||||||
span: Span::new(start, start + 2),
|
span: Span::start_len(start, start + 2),
|
||||||
kind: true_type,
|
kind: true_type,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -192,7 +192,7 @@ impl<'code> Iterator for Lexer<'code> {
|
||||||
if self.expect('=') {
|
if self.expect('=') {
|
||||||
let _ = self.code.next(); // consume =;
|
let _ = self.code.next(); // consume =;
|
||||||
break Token {
|
break Token {
|
||||||
span: Span::new(start, start + 2),
|
span: Span::start_len(start, start + 2),
|
||||||
kind: TokenType::BangEqual,
|
kind: TokenType::BangEqual,
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -331,7 +331,10 @@ impl<'code> Parser<'code> {
|
||||||
span: next.span,
|
span: next.span,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
_ => Err(ParseErr::InvalidTokenPrimary(next)),
|
_ => {
|
||||||
|
println!("{:?}", next);
|
||||||
|
Err(ParseErr::InvalidTokenPrimary(next))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
8
test.sl
8
test.sl
|
|
@ -1,3 +1,9 @@
|
||||||
fn test() {
|
fn test() {
|
||||||
"u" + "w" + "u";
|
if true {
|
||||||
|
print;
|
||||||
|
} else if false {
|
||||||
|
dont_print;
|
||||||
|
} else {
|
||||||
|
"uwu";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue