Module

lexers.solidity_sm

Hand-written Solidity lexer using composable scanner mixins.

O(n) guaranteed, zero regex, thread-safe.

Language Support:

  • Solidity 0.8.x syntax
  • NatSpec comments (/// and /**)
  • Contract, interface, library, function, mapping, event
  • All standard types (address, uint, int, bool, etc.)

Architecture:

Uses C-style mixins. Solidity-specific additions (from C template):

  • ///NatSpec line comments
  • =>for function types (from C++ OperatorConfig)
  • Contract-specific keywords and types

See Also:

  • rosettes.lexers.c_sm: Template for C-style tokenize loop
  • rosettes.lexers._scanners: Shared mixin implementations

Classes

SolidityStateMachineLexer 1
Solidity lexer using composable mixins.

Solidity lexer using composable mixins.

Methods

tokenize 4 Iterator[Token]
def tokenize(self, code: str, config: LexerConfig | None = None, *, start: int = 0, end: int | None = None) -> Iterator[Token]
Parameters
Name Type Description
code
config Default:None
start Default:0
end Default:None
Returns
Iterator[Token]