{"id":82127,"library":"oedipus-lex","title":"Oedipus Lex","description":"A lexer generator that produces hand-written style lexers using StrScanner and multi-level case statements.","status":"active","version":"2.6.3","language":"ruby","source_language":null,"source_url":"https://github.com/seattlerb/oedipus_lex","tags":["lexer","parser","generator","tokenizer"],"install":[{"cmd":"gem install oedipus_lex","lang":"bash","label":"gem install"},{"cmd":"# Gemfile\ngem 'oedipus_lex', '~> 2.6.3'","lang":"ruby","label":"Gemfile"}],"dependencies":[],"imports":[{"symbol":"Oedipus","correct":"require 'oedipus_lex'"}],"quickstart":{"code":"require 'oedipus_lex'\nclass MyLexer < Oedipus::Lexer\n  rule :/\\d+/ => :NUMBER\n  rule :/\\s+/ => nil\nend\nlexer = MyLexer.new\nlexer.lex(\"123 456\")","lang":"ruby","description":"Define and use a simple lexer"},"warnings":[{"fix":"Add slashes around all regex patterns when migrating from Rexical","message":"Regexps must be delimited with slashes, unlike Rexical","severity":"breaking","affected_versions":">= 2.0.0"}],"env_vars":null,"search_vec":"'case':19 'generat':5,23 'hand':9 'hand-written':8 'level':18 'lex':2 'lexer':4,12,21 'multi':17 'multi-level':16 'oedipus':1 'parser':22 'produc':7 'statement':20 'strscanner':14 'style':11 'token':24 'use':13 'written':10","created_at":"2026-06-19T05:11:59.936950+00:00","updated_at":"2026-06-19T05:11:59.936950+00:00","problems":[],"ecosystem":"rubygems","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"http://github.com/seattlerb/oedipus_lex","github":"https://github.com/seattlerb/oedipus_lex","docs":"http://www.rubydoc.info/gems/oedipus_lex/","changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["build-tool","utility"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-19","next_check":"2026-12-16","install_tag":null}}