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,
|
||||||
|
@ -246,14 +247,14 @@ impl TokenKind {
|
||||||
BitOr => 120, // ||
|
BitOr => 120, // ||
|
||||||
Closed | LeftOpen | RightOpen | Open => 100, // range operators
|
Closed | LeftOpen | RightOpen | Open => 100, // range operators
|
||||||
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, // = :=
|
||||||
Newline | Semi => 10, // \n ;
|
Newline | Semi => 10, // \n ;
|
||||||
LParen | LBrace | LSqBr | Indent => 0, // ( { [ Indent
|
LParen | LBrace | LSqBr | Indent => 0, // ( { [ Indent
|
||||||
_ => return None,
|
_ => return None,
|
||||||
};
|
};
|
||||||
Some(prec)
|
Some(prec)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue