csc360-a1-shell/ruby/shell
Sami Samhuri 4f4e97475b
[ruby] Modernize Ruby shell parsing and expansion, add C compat test mode (#4)
Replace Ruby's old wordexp-like command splitting with a tokenizer and
parser that understands ; and && while honoring quotes and nesting.

Implement richer expansions for command substitution, arithmetic,
parameter defaults (${var:-...}), brace expansion, and escaped
dollar/backtick behavior via shared quote-state handling.

Expand the test suite with parser/expansion edge cases, escaping
parity checks, builtin usage validation, and job-control refresh tests.

Keep C green by adding a compat test profile for c/Makefile test and
by returning nonzero on builtin failures in -c mode, including clearer
`bg` usage output.
2026-02-07 15:18:41 -08:00
..
builtins.rb [ruby] Modernize Ruby shell parsing and expansion, add C compat test mode (#4) 2026-02-07 15:18:41 -08:00
cli.rb [ruby] Modernize Ruby shell parsing and expansion, add C compat test mode (#4) 2026-02-07 15:18:41 -08:00
colours.rb Extract remaining code from main.rb 2022-01-17 21:30:30 -08:00
job.rb Extract remaining code from main.rb 2022-01-17 21:30:30 -08:00
job_control.rb [ruby] Modernize Ruby shell parsing and expansion, add C compat test mode (#4) 2026-02-07 15:18:41 -08:00
logger.rb Update to Ruby 4, update gems, s/rubocop/standard/ 2026-01-02 12:40:38 -08:00
quote_cursor.rb [ruby] Modernize Ruby shell parsing and expansion, add C compat test mode (#4) 2026-02-07 15:18:41 -08:00
repl.rb [ruby] Modernize Ruby shell parsing and expansion, add C compat test mode (#4) 2026-02-07 15:18:41 -08:00
string_parser.rb [ruby] Modernize Ruby shell parsing and expansion, add C compat test mode (#4) 2026-02-07 15:18:41 -08:00
word_expander.rb [ruby] Modernize Ruby shell parsing and expansion, add C compat test mode (#4) 2026-02-07 15:18:41 -08:00