Update Vyper lexer for v0.4.x language changes by mo-anon · Pull Request #3053 · pygments/pygments

The Vyper language has had significant changes since v0.4.0. This updates
the lexer to support all current syntax and adds comprehensive snippet tests.

Keywords: flag (replaces enum), initializes, uses, exports, break, continue,
and, or, not, as, delegatecall, UNREACHABLE, True/False as Keyword.Constant.

Declarations: external, internal, deploy, payable, transient.

Builtins added: raw_create, raw_call, raw_log, raw_revert, abi_encode,
abi_decode, blobhash, epsilon, send, selfdestruct, create_forwarder_to,
breakpoint. Removed deprecated bitwise_* builtins.

Types: all int/uint sizes (8-256 in steps of 8), DynArray, HashMap.

Environment variables: block.prevrandao, block.basefee, block.blobbasefee,
block.coinbase, block.difficulty, block.gaslimit, block.prevhash, tx.origin,
tx.gasprice, chain.id, msg.data, msg.mana.

Operators: **, //, <<, >>, ~, :=.

Other: # pragma as Comment.Preproc, hex string literals (0x"..."),
byte string prefixes (b"..."), generalized import pattern for modules,
updated URL to docs.vyperlang.org.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>