Files
mruby-mruby/mrbgems/mruby-compiler
Yukihiro "Matz" Matsumoto a91ffcfe0d mruby-compiler: fix as-pattern parsing with symbol values
Remove non-standard `symbol tASSOC p_as` rule from hash pattern
elements. This rule conflicted with the as-pattern rule and caused
`:foo => x` to be incorrectly parsed as a hash pattern instead of
an as-pattern.

CRuby only supports label syntax (foo:) for hash pattern keys,
not hashrocket syntax (:foo =>). This change aligns mruby with
CRuby behavior and reduces bison shift-reduce conflicts from 2 to 1.

Before: `case :foo; in :foo => x; end` raised NoMethodError
After:  `case :foo; in :foo => x; end` binds x to :foo

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-29 13:42:19 +09:00
..
2025-07-02 07:14:04 +09:00

mruby-compiler

This mrbgem provides the mruby compiler, which is responsible for parsing Ruby code and generating mruby bytecode.

Functionality

The mruby-compiler gem includes the following components:

  • Parser: Translates Ruby source code into an abstract syntax tree (AST).
  • Code Generator: Traverses the AST to produce executable mruby bytecode.
  • mrbc executable: A command-line tool for compiling .rb files into .mrb bytecode files.

Usage

The mrbc (mruby-bin-mrbc) executable will generate compiled binary from Ruby programs via this gem.

Example of using mrbc:

# Compile a Ruby script to bytecode
bin/mrbc my_script.rb

# Run the compiled script
bin/mruby my_script.mrb