• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

type-ruby / t-ruby / 20560974963
92%

Build:
DEFAULT BRANCH: main
Ran 28 Dec 2025 11:21PM UTC
Jobs 1
Files 83
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Dec 2025 11:21PM UTC coverage: 79.076% (+1.7%) from 77.331%
20560974963

push

github

web-flow
refactor: migrate parser from regex to token-based parser combinator (#29)

* refactor: migrate parser from regex to token-based parser combinator

- Replace monolithic parser_combinator.rb (2833 lines) with modular architecture
- Add Scanner for tokenization with regex literal support
- Create IR::InterpolatedString for string interpolation parsing
- Fix type inference for interpolated strings (returns String)
- Add TRuby::ParseError for unified error handling
- Organize parsers into primitives/, combinators/, and token/ directories
- Each file contains exactly one class (snake_case filename matches PascalCase class)

* fix: enhance parser to support ternary, splat args, and statement expressions

- Add ternary operator (? :) parsing in ExpressionParser
- Support double splat (**opts) and single splat (*args) in method calls
- Support keyword arguments (name: value) in method calls
- Allow case/if/unless/begin as assignment right-hand side values
- Improve generic type compatibility (Array[untyped] with Array[T])

Fixes type inference errors in keyword_args samples.

* style: fix RuboCop violations and adjust metrics limits

* fix: require set for Ruby 3.1 compatibility

1849 of 2098 new or added lines in 53 files covered. (88.13%)

6 existing lines in 2 files now uncovered.

6644 of 8402 relevant lines covered (79.08%)

908.09 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
86.52
3.33% lib/t_ruby/ir.rb
1
98.13
-0.31% lib/t_ruby/parser.rb
2
91.67
lib/t_ruby/parser_combinator/parse_result.rb
2
71.43
lib/t_ruby/parser_combinator/primitives/fail.rb
2
71.43
lib/t_ruby/parser_combinator/primitives/pure.rb
4
91.11
-8.89% lib/t_ruby.rb
4
92.86
lib/t_ruby/parser_combinator/dsl.rb
4
87.88
lib/t_ruby/parser_combinator/parser.rb
4
84.0
lib/t_ruby/parser_combinator/token/token_parser.rb
5
50.0
lib/t_ruby/parser_combinator/combinators/lookahead.rb
5
50.0
lib/t_ruby/parser_combinator/combinators/not_followed_by.rb
6
88.06
-1.7% lib/t_ruby/compiler.rb
6
45.45
lib/t_ruby/parser_combinator/combinators/flat_map.rb
6
45.45
lib/t_ruby/parser_combinator/token/token_label.rb
7
88.14
lib/t_ruby/parser_combinator/declaration_parser.rb
7
68.18
lib/t_ruby/parser_combinator/token/token_body_parser.rb
12
29.41
lib/t_ruby/parser_combinator/token/token_many1.rb
14
26.32
lib/t_ruby/parser_combinator/token/token_sep_by1.rb
25
89.96
lib/t_ruby/parser_combinator/token/expression_parser.rb
30
90.57
lib/t_ruby/parser_combinator/token/statement_parser.rb
45
83.46
lib/t_ruby/parser_combinator/token/token_declaration_parser.rb
57
87.79
lib/t_ruby/scanner.rb

Uncovered Existing Lines

Lines Coverage ∆ File
2
86.52
3.33% lib/t_ruby/ir.rb
4
74.43
-1.57% lib/t_ruby/ast_type_inferrer.rb
Jobs
ID Job ID Ran Files Coverage
1 20560974963.1 28 Dec 2025 11:21PM UTC 83
79.08
GitHub Action Run
Source Files on build 20560974963
  • Tree
  • List 83
  • Changed 6
  • Source Changed 6
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #20560974963
  • a7c451da on github
  • Prev Build on main (#20556908621)
  • Next Build on main (#20573122825)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc