Skip to content

Commit 9846ee2

Browse files
committed
Add PSLR-related RBS signatures, fix replace_term_attributes keyword argument defaults and nil guard, and update type annotations for details, format_ratio, and grammar delegated methods
1 parent 248f3f9 commit 9846ee2

10 files changed

Lines changed: 113 additions & 5 deletions

File tree

lib/lrama/grammar.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ class Grammar
4242
# def nterms: () -> Array[Grammar::Symbol]
4343
# def find_symbol_by_s_value!: (::String s_value) -> Grammar::Symbol
4444
# def ielr_defined?: () -> bool
45+
# def pslr_defined?: () -> bool
46+
# def token_patterns: () -> Array[Grammar::TokenPattern]
47+
# def lex_prec: () -> Grammar::LexPrec
48+
# def pslr_max_states: () -> Integer?
49+
# def pslr_max_state_ratio: () -> Float?
4550
# end
4651
#
4752
# include Symbols::Resolver::_DelegatedMethods

lib/lrama/grammar/symbols/resolver.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,11 @@ def find_nterm_by_id!(id)
232232
end
233233

234234
# @rbs (Grammar::Symbol sym, id: Lexer::Token::Base, ?alias_name: String?, ?tag: Lexer::Token::Tag?, ?token_id: Integer?) -> void
235-
def replace_term_attributes(sym, id:, alias_name:, tag:, token_id:)
235+
def replace_term_attributes(sym, id:, alias_name: nil, tag: nil, token_id: nil)
236236
sym.id = id
237237
sym.alias_name = alias_name
238238
sym.tag = tag
239-
sym.token_id = token_id
239+
sym.token_id = token_id if token_id
240240
end
241241

242242
# @rbs () -> void

lib/lrama/reporter/pslr.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# rbs_inline: enabled
12
# frozen_string_literal: true
23

34
module Lrama
@@ -30,7 +31,7 @@ def report(io, states)
3031

3132
private
3233

33-
# @rbs (Float?) -> String
34+
# @rbs (Numeric?) -> String
3435
def format_ratio(value)
3536
return "n/a" if value.nil?
3637

lib/lrama/state/pslr_inadequacy.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class PslrInadequacy
1616
attr_reader :type #: Symbol
1717
attr_reader :state #: State
1818
attr_reader :conflicting_states #: Array[State]
19-
attr_reader :details #: Hash[Symbol, Object]
19+
attr_reader :details #: Hash[Symbol, untyped]
2020

2121
# @rbs (type: Symbol, state: State, conflicting_states: Array[State], details: Hash[Symbol, untyped]) -> void
2222
def initialize(type:, state:, conflicting_states:, details:)

sig/generated/lrama/grammar.rbs

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sig/generated/lrama/grammar/symbols/resolver.rbs

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sig/generated/lrama/reporter/pslr.rbs

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sig/generated/lrama/state.rbs

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sig/generated/lrama/state/pslr_inadequacy.rbs

Lines changed: 9 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sig/generated/lrama/states.rbs

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)