v.token: make is_assign() contain .decl_assign (#21805)

This commit is contained in:
yuyi 2024-07-05 17:52:54 +08:00 committed by GitHub
parent 35e6a40c0e
commit cb42f32852
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 10 additions and 10 deletions

View file

@ -138,8 +138,8 @@ fn color_highlight(code string, tb &ast.Table) string {
else { else {
if token.is_key(tok.lit) || token.is_decl(tok.kind) { if token.is_key(tok.lit) || token.is_decl(tok.kind) {
tok_typ = .keyword tok_typ = .keyword
} else if tok.kind == .decl_assign || tok.kind.is_assign() || tok.is_unary() } else if tok.kind.is_assign() || tok.is_unary() || tok.kind.is_relational()
|| tok.kind.is_relational() || tok.kind.is_infix() || tok.kind.is_postfix() { || tok.kind.is_infix() || tok.kind.is_postfix() {
tok_typ = .operator tok_typ = .operator
} }
} }

View file

@ -444,8 +444,8 @@ fn html_highlight(code string, tb &ast.Table) string {
else { else {
if token.is_key(tok.lit) || token.is_decl(tok.kind) { if token.is_key(tok.lit) || token.is_decl(tok.kind) {
tok_typ = .keyword tok_typ = .keyword
} else if tok.kind == .decl_assign || tok.kind.is_assign() || tok.is_unary() } else if tok.kind.is_assign() || tok.is_unary() || tok.kind.is_relational()
|| tok.kind.is_relational() || tok.kind.is_infix() || tok.kind.is_postfix() { || tok.kind.is_infix() || tok.kind.is_postfix() {
tok_typ = .operator tok_typ = .operator
} }
} }

View file

@ -30,7 +30,7 @@ fn (mut p Parser) for_stmt() ast.Stmt {
} }
p.close_scope() p.close_scope()
return for_stmt return for_stmt
} else if p.peek_tok.kind in [.decl_assign, .assign, .semicolon] } else if p.peek_tok.kind == .semicolon
|| (p.peek_tok.kind in [.inc, .dec] && p.peek_token(2).kind in [.semicolon, .comma]) || (p.peek_tok.kind in [.inc, .dec] && p.peek_token(2).kind in [.semicolon, .comma])
|| p.peek_tok.kind.is_assign() || p.tok.kind == .semicolon || p.peek_tok.kind.is_assign() || p.tok.kind == .semicolon
|| (p.peek_tok.kind == .comma && p.peek_token(2).kind != .key_mut || (p.peek_tok.kind == .comma && p.peek_token(2).kind != .key_mut
@ -47,7 +47,7 @@ fn (mut p Parser) for_stmt() ast.Stmt {
mut has_inc := false mut has_inc := false
mut is_multi := p.peek_tok.kind == .comma && p.peek_token(2).kind != .key_mut mut is_multi := p.peek_tok.kind == .comma && p.peek_token(2).kind != .key_mut
&& p.peek_token(3).kind != .key_in && p.peek_token(3).kind != .key_in
if p.peek_tok.kind in [.assign, .decl_assign] || p.peek_tok.kind.is_assign() || is_multi { if p.peek_tok.kind.is_assign() || is_multi {
init = p.assign_stmt() init = p.assign_stmt()
has_init = true has_init = true
} else if p.peek_tok.kind in [.inc, .dec] { } else if p.peek_tok.kind in [.inc, .dec] {

View file

@ -2156,7 +2156,7 @@ fn (mut p Parser) parse_multi_expr(is_top_level bool) ast.Stmt {
return p.error('expecting `:=` (e.g. `mut x :=`)') return p.error('expecting `:=` (e.g. `mut x :=`)')
} }
// TODO: remove translated // TODO: remove translated
if p.tok.kind in [.assign, .decl_assign] || p.tok.kind.is_assign() { if p.tok.kind.is_assign() {
return p.partial_assign_stmt(left) return p.partial_assign_stmt(left)
} else if !p.pref.translated && !p.is_translated && !p.pref.is_fmt && !p.pref.is_vet } else if !p.pref.translated && !p.is_translated && !p.pref.is_fmt && !p.pref.is_vet
&& tok.kind !in [.key_if, .key_match, .key_lock, .key_rlock, .key_select] { && tok.kind !in [.key_if, .key_match, .key_lock, .key_rlock, .key_select] {

View file

@ -186,9 +186,9 @@ pub enum AtKind {
location location
} }
pub const assign_tokens = [Kind.assign, .plus_assign, .minus_assign, .mult_assign, .div_assign, pub const assign_tokens = [Kind.assign, .decl_assign, .plus_assign, .minus_assign, .mult_assign,
.xor_assign, .mod_assign, .or_assign, .and_assign, .right_shift_assign, .left_shift_assign, .div_assign, .xor_assign, .mod_assign, .or_assign, .and_assign, .right_shift_assign,
.unsigned_right_shift_assign, .boolean_and_assign, .boolean_or_assign] .left_shift_assign, .unsigned_right_shift_assign, .boolean_and_assign, .boolean_or_assign]
pub const valid_at_tokens = ['@VROOT', '@VMODROOT', '@VEXEROOT', '@FN', '@METHOD', '@MOD', '@STRUCT', pub const valid_at_tokens = ['@VROOT', '@VMODROOT', '@VEXEROOT', '@FN', '@METHOD', '@MOD', '@STRUCT',
'@VEXE', '@FILE', '@LINE', '@COLUMN', '@VHASH', '@VCURRENTHASH', '@VMOD_FILE', '@VMODHASH', '@VEXE', '@FILE', '@LINE', '@COLUMN', '@VHASH', '@VCURRENTHASH', '@VMOD_FILE', '@VMODHASH',