mirror of
https://github.com/erg-lang/erg.git
synced 2025-09-29 12:24:45 +00:00
Merge pull request #198 from GreasySlug/feature/update-lex
Tokenize the `<-`
This commit is contained in:
commit
f942a63066
2 changed files with 16 additions and 11 deletions
|
@ -851,6 +851,10 @@ impl Iterator for Lexer /*<'a>*/ {
|
||||||
)))
|
)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some('-') => {
|
||||||
|
self.consume();
|
||||||
|
self.accept(Inclusion, "<-")
|
||||||
|
}
|
||||||
Some('=') => {
|
Some('=') => {
|
||||||
self.consume();
|
self.consume();
|
||||||
self.accept(LessEq, "<=")
|
self.accept(LessEq, "<=")
|
||||||
|
|
|
@ -109,6 +109,8 @@ pub enum TokenKind {
|
||||||
RefMutOp,
|
RefMutOp,
|
||||||
/// =
|
/// =
|
||||||
Equal,
|
Equal,
|
||||||
|
/// <-
|
||||||
|
Inclusion,
|
||||||
/// :=
|
/// :=
|
||||||
Walrus,
|
Walrus,
|
||||||
/// ->
|
/// ->
|
||||||
|
@ -214,9 +216,8 @@ impl TokenKind {
|
||||||
| InfLit => TokenCategory::Literal,
|
| InfLit => TokenCategory::Literal,
|
||||||
PrePlus | PreMinus | PreBitNot | Mutate | RefOp | RefMutOp => TokenCategory::UnaryOp,
|
PrePlus | PreMinus | PreBitNot | Mutate | RefOp | RefMutOp => TokenCategory::UnaryOp,
|
||||||
Try => TokenCategory::PostfixOp,
|
Try => TokenCategory::PostfixOp,
|
||||||
Comma | Colon | DblColon | SupertypeOf | SubtypeOf | Dot | Pipe | Walrus => {
|
Comma | Colon | DblColon | SupertypeOf | SubtypeOf | Dot | Pipe | Walrus
|
||||||
TokenCategory::SpecialBinOp
|
| Inclusion => TokenCategory::SpecialBinOp,
|
||||||
}
|
|
||||||
Equal => TokenCategory::DefOp,
|
Equal => TokenCategory::DefOp,
|
||||||
FuncArrow | ProcArrow => TokenCategory::LambdaOp,
|
FuncArrow | ProcArrow => TokenCategory::LambdaOp,
|
||||||
Semi | Newline => TokenCategory::Separator,
|
Semi | Newline => TokenCategory::Separator,
|
||||||
|
@ -248,7 +249,7 @@ impl TokenKind {
|
||||||
Less | Gre | LessEq | GreEq | DblEq | NotEq | InOp | NotInOp | IsOp | IsNotOp => 90, // < > <= >= == != in notin is isnot
|
Less | Gre | LessEq | GreEq | DblEq | NotEq | InOp | NotInOp | IsOp | IsNotOp => 90, // < > <= >= == != in notin is isnot
|
||||||
AndOp => 80, // and
|
AndOp => 80, // and
|
||||||
OrOp => 70, // or
|
OrOp => 70, // or
|
||||||
FuncArrow | ProcArrow => 60, // -> =>
|
FuncArrow | ProcArrow | Inclusion => 60, // -> => <-
|
||||||
Colon | SupertypeOf | SubtypeOf => 50, // : :> <:
|
Colon | SupertypeOf | SubtypeOf => 50, // : :> <:
|
||||||
Comma => 40, // ,
|
Comma => 40, // ,
|
||||||
Equal | Walrus => 20, // = :=
|
Equal | Walrus => 20, // = :=
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue