lrama 0.6.11 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +2 -0
  3. data/.github/workflows/codespell.yaml +1 -1
  4. data/.github/workflows/gh-pages.yml +45 -0
  5. data/.github/workflows/test.yaml +57 -18
  6. data/.gitignore +1 -0
  7. data/.rdoc_options +2 -0
  8. data/Gemfile +6 -3
  9. data/NEWS.md +427 -32
  10. data/README.md +43 -95
  11. data/Rakefile +14 -1
  12. data/Steepfile +12 -4
  13. data/doc/Index.md +58 -0
  14. data/doc/development/compressed_state_table/parser.rb +2 -0
  15. data/doc/development/profiling.md +44 -0
  16. data/exe/lrama +1 -1
  17. data/lib/lrama/bitmap.rb +19 -3
  18. data/lib/lrama/command.rb +96 -43
  19. data/lib/lrama/context.rb +22 -24
  20. data/lib/lrama/counterexamples/derivation.rb +14 -4
  21. data/lib/lrama/counterexamples/example.rb +47 -22
  22. data/lib/lrama/counterexamples/node.rb +30 -0
  23. data/lib/lrama/counterexamples/path.rb +12 -14
  24. data/lib/lrama/counterexamples/state_item.rb +24 -1
  25. data/lib/lrama/counterexamples/triple.rb +27 -9
  26. data/lib/lrama/counterexamples.rb +216 -88
  27. data/lib/lrama/diagram.rb +77 -0
  28. data/lib/lrama/digraph.rb +52 -1
  29. data/lib/lrama/erb.rb +29 -0
  30. data/lib/lrama/grammar/auxiliary.rb +6 -1
  31. data/lib/lrama/grammar/binding.rb +60 -16
  32. data/lib/lrama/grammar/code/destructor_code.rb +11 -0
  33. data/lib/lrama/grammar/code/initial_action_code.rb +3 -0
  34. data/lib/lrama/grammar/code/no_reference_code.rb +3 -0
  35. data/lib/lrama/grammar/code/printer_code.rb +11 -0
  36. data/lib/lrama/grammar/code/rule_action.rb +17 -0
  37. data/lib/lrama/grammar/code.rb +16 -1
  38. data/lib/lrama/grammar/counter.rb +10 -0
  39. data/lib/lrama/grammar/destructor.rb +14 -1
  40. data/lib/lrama/grammar/error_token.rb +14 -1
  41. data/lib/lrama/grammar/inline/resolver.rb +80 -0
  42. data/lib/lrama/grammar/inline.rb +3 -0
  43. data/lib/lrama/grammar/{parameterizing_rule → parameterized}/resolver.rb +19 -8
  44. data/lib/lrama/grammar/{parameterizing_rule → parameterized}/rhs.rb +7 -2
  45. data/lib/lrama/grammar/parameterized/rule.rb +36 -0
  46. data/lib/lrama/grammar/parameterized.rb +5 -0
  47. data/lib/lrama/grammar/percent_code.rb +12 -1
  48. data/lib/lrama/grammar/precedence.rb +43 -1
  49. data/lib/lrama/grammar/printer.rb +9 -0
  50. data/lib/lrama/grammar/reference.rb +13 -0
  51. data/lib/lrama/grammar/rule.rb +69 -1
  52. data/lib/lrama/grammar/rule_builder.rb +84 -81
  53. data/lib/lrama/grammar/stdlib.y +68 -48
  54. data/lib/lrama/grammar/symbol.rb +63 -19
  55. data/lib/lrama/grammar/symbols/resolver.rb +64 -3
  56. data/lib/lrama/grammar/type.rb +13 -1
  57. data/lib/lrama/grammar/union.rb +12 -1
  58. data/lib/lrama/grammar.rb +236 -35
  59. data/lib/lrama/lexer/grammar_file.rb +8 -1
  60. data/lib/lrama/lexer/location.rb +42 -9
  61. data/lib/lrama/lexer/token/base.rb +73 -0
  62. data/lib/lrama/lexer/token/char.rb +16 -2
  63. data/lib/lrama/lexer/token/empty.rb +14 -0
  64. data/lib/lrama/lexer/token/ident.rb +3 -2
  65. data/lib/lrama/lexer/token/instantiate_rule.rb +8 -3
  66. data/lib/lrama/lexer/token/int.rb +14 -0
  67. data/lib/lrama/lexer/token/str.rb +11 -0
  68. data/lib/lrama/lexer/token/tag.rb +5 -3
  69. data/lib/lrama/lexer/token/token.rb +11 -0
  70. data/lib/lrama/lexer/token/user_code.rb +68 -38
  71. data/lib/lrama/lexer/token.rb +7 -45
  72. data/lib/lrama/lexer.rb +55 -28
  73. data/lib/lrama/logger.rb +16 -2
  74. data/lib/lrama/option_parser.rb +71 -15
  75. data/lib/lrama/options.rb +26 -7
  76. data/lib/lrama/output.rb +4 -11
  77. data/lib/lrama/parser.rb +858 -721
  78. data/lib/lrama/reporter/conflicts.rb +44 -0
  79. data/lib/lrama/reporter/grammar.rb +39 -0
  80. data/lib/lrama/reporter/precedences.rb +54 -0
  81. data/lib/lrama/reporter/profile/call_stack.rb +45 -0
  82. data/lib/lrama/reporter/profile/memory.rb +44 -0
  83. data/lib/lrama/reporter/profile.rb +4 -0
  84. data/lib/lrama/reporter/rules.rb +43 -0
  85. data/lib/lrama/reporter/states.rb +387 -0
  86. data/lib/lrama/reporter/terms.rb +44 -0
  87. data/lib/lrama/reporter.rb +39 -0
  88. data/lib/lrama/state/action/goto.rb +33 -0
  89. data/lib/lrama/state/action/reduce.rb +71 -0
  90. data/lib/lrama/state/action/shift.rb +39 -0
  91. data/lib/lrama/state/action.rb +5 -0
  92. data/lib/lrama/state/inadequacy_annotation.rb +140 -0
  93. data/lib/lrama/{states → state}/item.rb +40 -3
  94. data/lib/lrama/state/reduce_reduce_conflict.rb +14 -1
  95. data/lib/lrama/state/resolved_conflict.rb +38 -4
  96. data/lib/lrama/state/shift_reduce_conflict.rb +14 -1
  97. data/lib/lrama/state.rb +416 -28
  98. data/lib/lrama/states.rb +483 -144
  99. data/lib/lrama/tracer/actions.rb +22 -0
  100. data/lib/lrama/tracer/closure.rb +30 -0
  101. data/lib/lrama/tracer/duration.rb +38 -0
  102. data/lib/lrama/tracer/only_explicit_rules.rb +24 -0
  103. data/lib/lrama/tracer/rules.rb +23 -0
  104. data/lib/lrama/tracer/state.rb +33 -0
  105. data/lib/lrama/tracer.rb +51 -0
  106. data/lib/lrama/version.rb +2 -1
  107. data/lib/lrama/warnings/conflicts.rb +27 -0
  108. data/lib/lrama/warnings/implicit_empty.rb +29 -0
  109. data/lib/lrama/warnings/name_conflicts.rb +63 -0
  110. data/lib/lrama/warnings/redefined_rules.rb +23 -0
  111. data/lib/lrama/warnings/required.rb +23 -0
  112. data/lib/lrama/warnings/useless_precedence.rb +25 -0
  113. data/lib/lrama/warnings.rb +33 -0
  114. data/lib/lrama.rb +5 -5
  115. data/lrama.gemspec +1 -1
  116. data/parser.y +496 -404
  117. data/rbs_collection.lock.yaml +27 -3
  118. data/rbs_collection.yaml +2 -0
  119. data/sig/generated/lrama/bitmap.rbs +19 -0
  120. data/sig/generated/lrama/counterexamples/derivation.rbs +36 -0
  121. data/sig/generated/lrama/counterexamples/example.rbs +58 -0
  122. data/sig/generated/lrama/counterexamples/node.rbs +18 -0
  123. data/sig/generated/lrama/counterexamples/path.rbs +23 -0
  124. data/sig/generated/lrama/counterexamples/state_item.rbs +19 -0
  125. data/sig/generated/lrama/counterexamples/triple.rbs +32 -0
  126. data/sig/generated/lrama/counterexamples.rbs +98 -0
  127. data/sig/generated/lrama/diagram.rbs +34 -0
  128. data/sig/generated/lrama/digraph.rbs +59 -0
  129. data/sig/generated/lrama/erb.rbs +14 -0
  130. data/sig/generated/lrama/grammar/auxiliary.rbs +16 -0
  131. data/sig/generated/lrama/grammar/binding.rbs +40 -0
  132. data/sig/generated/lrama/grammar/code/destructor_code.rbs +26 -0
  133. data/sig/{lrama → generated/lrama}/grammar/code/initial_action_code.rbs +6 -0
  134. data/sig/{lrama → generated/lrama}/grammar/code/no_reference_code.rbs +6 -0
  135. data/sig/generated/lrama/grammar/code/printer_code.rbs +26 -0
  136. data/sig/generated/lrama/grammar/code/rule_action.rbs +63 -0
  137. data/sig/generated/lrama/grammar/code.rbs +38 -0
  138. data/sig/{lrama → generated/lrama}/grammar/counter.rbs +4 -0
  139. data/sig/generated/lrama/grammar/destructor.rbs +19 -0
  140. data/sig/generated/lrama/grammar/error_token.rbs +19 -0
  141. data/sig/generated/lrama/grammar/inline/resolver.rbs +26 -0
  142. data/sig/generated/lrama/grammar/parameterized/resolver.rbs +42 -0
  143. data/sig/generated/lrama/grammar/parameterized/rhs.rbs +21 -0
  144. data/sig/generated/lrama/grammar/parameterized/rule.rbs +28 -0
  145. data/sig/{lrama → generated/lrama}/grammar/percent_code.rbs +8 -0
  146. data/sig/generated/lrama/grammar/precedence.rbs +45 -0
  147. data/sig/{lrama/grammar/error_token.rbs → generated/lrama/grammar/printer.rbs} +8 -3
  148. data/sig/generated/lrama/grammar/reference.rbs +31 -0
  149. data/sig/generated/lrama/grammar/rule.rbs +83 -0
  150. data/sig/generated/lrama/grammar/rule_builder.rbs +91 -0
  151. data/sig/generated/lrama/grammar/symbol.rbs +89 -0
  152. data/sig/generated/lrama/grammar/symbols/resolver.rbs +131 -0
  153. data/sig/generated/lrama/grammar/type.rbs +21 -0
  154. data/sig/generated/lrama/grammar/union.rbs +17 -0
  155. data/sig/generated/lrama/grammar.rbs +289 -0
  156. data/sig/generated/lrama/lexer/grammar_file.rbs +28 -0
  157. data/sig/generated/lrama/lexer/location.rbs +61 -0
  158. data/sig/generated/lrama/lexer/token/base.rbs +53 -0
  159. data/sig/generated/lrama/lexer/token/char.rbs +17 -0
  160. data/sig/generated/lrama/lexer/token/empty.rbs +11 -0
  161. data/sig/generated/lrama/lexer/token/ident.rbs +10 -0
  162. data/sig/generated/lrama/lexer/token/instantiate_rule.rbs +22 -0
  163. data/sig/generated/lrama/lexer/token/int.rbs +13 -0
  164. data/sig/generated/lrama/lexer/token/str.rbs +10 -0
  165. data/sig/generated/lrama/lexer/token/tag.rbs +12 -0
  166. data/sig/generated/lrama/lexer/token/token.rbs +10 -0
  167. data/sig/{lrama → generated/lrama}/lexer/token/user_code.rbs +8 -3
  168. data/sig/generated/lrama/lexer/token.rbs +8 -0
  169. data/sig/generated/lrama/lexer.rbs +54 -0
  170. data/sig/generated/lrama/logger.rbs +20 -0
  171. data/sig/generated/lrama/option_parser.rbs +52 -0
  172. data/sig/{lrama → generated/lrama}/options.rbs +27 -2
  173. data/sig/generated/lrama/reporter/conflicts.rbs +18 -0
  174. data/sig/generated/lrama/reporter/grammar.rbs +13 -0
  175. data/sig/generated/lrama/reporter/precedences.rbs +15 -0
  176. data/sig/generated/lrama/reporter/profile/call_stack.rbs +19 -0
  177. data/sig/generated/lrama/reporter/profile/memory.rbs +19 -0
  178. data/sig/generated/lrama/reporter/rules.rbs +13 -0
  179. data/sig/generated/lrama/reporter/states.rbs +69 -0
  180. data/sig/generated/lrama/reporter/terms.rbs +13 -0
  181. data/sig/generated/lrama/reporter.rbs +13 -0
  182. data/sig/generated/lrama/state/action/goto.rbs +28 -0
  183. data/sig/generated/lrama/state/action/reduce.rbs +49 -0
  184. data/sig/generated/lrama/state/action/shift.rbs +33 -0
  185. data/sig/generated/lrama/state/inadequacy_annotation.rbs +45 -0
  186. data/sig/generated/lrama/state/item.rbs +75 -0
  187. data/sig/generated/lrama/state/reduce_reduce_conflict.rbs +19 -0
  188. data/sig/generated/lrama/state/resolved_conflict.rbs +38 -0
  189. data/sig/generated/lrama/state/shift_reduce_conflict.rbs +19 -0
  190. data/sig/generated/lrama/state.rbs +231 -0
  191. data/sig/generated/lrama/states.rbs +215 -0
  192. data/sig/generated/lrama/tracer/actions.rbs +13 -0
  193. data/sig/generated/lrama/tracer/closure.rbs +13 -0
  194. data/sig/generated/lrama/tracer/duration.rbs +18 -0
  195. data/sig/generated/lrama/tracer/only_explicit_rules.rbs +13 -0
  196. data/sig/generated/lrama/tracer/rules.rbs +13 -0
  197. data/sig/generated/lrama/tracer/state.rbs +16 -0
  198. data/sig/generated/lrama/tracer.rbs +23 -0
  199. data/sig/generated/lrama/version.rbs +5 -0
  200. data/sig/generated/lrama/warnings/conflicts.rbs +13 -0
  201. data/sig/generated/lrama/warnings/implicit_empty.rbs +17 -0
  202. data/sig/generated/lrama/warnings/name_conflicts.rbs +31 -0
  203. data/sig/generated/lrama/warnings/redefined_rules.rbs +13 -0
  204. data/sig/generated/lrama/warnings/required.rbs +13 -0
  205. data/sig/generated/lrama/warnings/useless_precedence.rbs +13 -0
  206. data/sig/generated/lrama/warnings.rbs +11 -0
  207. data/sig/railroad_diagrams/railroad_diagrams.rbs +16 -0
  208. data/template/bison/_yacc.h +8 -0
  209. data/template/diagram/diagram.html +102 -0
  210. metadata +142 -77
  211. data/lib/lrama/counterexamples/production_path.rb +0 -19
  212. data/lib/lrama/counterexamples/start_path.rb +0 -23
  213. data/lib/lrama/counterexamples/transition_path.rb +0 -19
  214. data/lib/lrama/diagnostics.rb +0 -36
  215. data/lib/lrama/grammar/parameterizing_rule/rule.rb +0 -24
  216. data/lib/lrama/grammar/parameterizing_rule.rb +0 -5
  217. data/lib/lrama/grammar_validator.rb +0 -37
  218. data/lib/lrama/report/duration.rb +0 -27
  219. data/lib/lrama/report/profile.rb +0 -16
  220. data/lib/lrama/report.rb +0 -4
  221. data/lib/lrama/state/reduce.rb +0 -37
  222. data/lib/lrama/state/shift.rb +0 -15
  223. data/lib/lrama/states_reporter.rb +0 -362
  224. data/lib/lrama/trace_reporter.rb +0 -30
  225. data/sig/lrama/bitmap.rbs +0 -7
  226. data/sig/lrama/counterexamples/derivation.rbs +0 -33
  227. data/sig/lrama/counterexamples/example.rbs +0 -45
  228. data/sig/lrama/counterexamples/path.rbs +0 -21
  229. data/sig/lrama/counterexamples/production_path.rbs +0 -11
  230. data/sig/lrama/counterexamples/start_path.rbs +0 -13
  231. data/sig/lrama/counterexamples/state_item.rbs +0 -10
  232. data/sig/lrama/counterexamples/transition_path.rbs +0 -11
  233. data/sig/lrama/counterexamples/triple.rbs +0 -20
  234. data/sig/lrama/counterexamples.rbs +0 -29
  235. data/sig/lrama/digraph.rbs +0 -23
  236. data/sig/lrama/grammar/auxiliary.rbs +0 -10
  237. data/sig/lrama/grammar/binding.rbs +0 -19
  238. data/sig/lrama/grammar/code/destructor_code.rbs +0 -14
  239. data/sig/lrama/grammar/code/printer_code.rbs +0 -14
  240. data/sig/lrama/grammar/code/rule_action.rbs +0 -19
  241. data/sig/lrama/grammar/code.rbs +0 -24
  242. data/sig/lrama/grammar/destructor.rbs +0 -13
  243. data/sig/lrama/grammar/parameterizing_rule/resolver.rbs +0 -24
  244. data/sig/lrama/grammar/parameterizing_rule/rhs.rbs +0 -14
  245. data/sig/lrama/grammar/parameterizing_rule/rule.rbs +0 -16
  246. data/sig/lrama/grammar/parameterizing_rule.rbs +0 -6
  247. data/sig/lrama/grammar/precedence.rbs +0 -13
  248. data/sig/lrama/grammar/printer.rbs +0 -13
  249. data/sig/lrama/grammar/reference.rbs +0 -22
  250. data/sig/lrama/grammar/rule.rbs +0 -45
  251. data/sig/lrama/grammar/rule_builder.rbs +0 -48
  252. data/sig/lrama/grammar/symbol.rbs +0 -38
  253. data/sig/lrama/grammar/symbols/resolver.rbs +0 -60
  254. data/sig/lrama/grammar/type.rbs +0 -11
  255. data/sig/lrama/grammar/union.rbs +0 -12
  256. data/sig/lrama/grammar.rbs +0 -108
  257. data/sig/lrama/lexer/grammar_file.rbs +0 -17
  258. data/sig/lrama/lexer/location.rbs +0 -26
  259. data/sig/lrama/lexer/token/char.rbs +0 -8
  260. data/sig/lrama/lexer/token/ident.rbs +0 -8
  261. data/sig/lrama/lexer/token/instantiate_rule.rbs +0 -14
  262. data/sig/lrama/lexer/token/tag.rbs +0 -9
  263. data/sig/lrama/lexer/token.rbs +0 -23
  264. data/sig/lrama/report/duration.rbs +0 -11
  265. data/sig/lrama/report/profile.rbs +0 -7
  266. data/sig/lrama/state/reduce.rbs +0 -20
  267. data/sig/lrama/state/reduce_reduce_conflict.rbs +0 -13
  268. data/sig/lrama/state/resolved_conflict.rbs +0 -14
  269. data/sig/lrama/state/shift.rbs +0 -14
  270. data/sig/lrama/state/shift_reduce_conflict.rbs +0 -13
  271. data/sig/lrama/state.rbs +0 -79
  272. data/sig/lrama/states/item.rbs +0 -30
  273. data/sig/lrama/states.rbs +0 -101
  274. data/sig/lrama/warning.rbs +0 -16
@@ -1,17 +0,0 @@
1
- module Lrama
2
- class Lexer
3
- class GrammarFile
4
- class Text < String
5
- end
6
- attr_reader path: String
7
- attr_reader text: String
8
-
9
- @lines: Array[String]
10
-
11
- def initialize: (String path, String text) -> void
12
-
13
- def ==: (GrammarFile other) -> bool
14
- def lines: () -> Array[String]
15
- end
16
- end
17
- end
@@ -1,26 +0,0 @@
1
- module Lrama
2
- class Lexer
3
- class Location
4
- attr_reader grammar_file: GrammarFile
5
- attr_reader first_line: Integer
6
- attr_reader first_column: Integer
7
- attr_reader last_line: Integer
8
- attr_reader last_column: Integer
9
-
10
- def initialize: (grammar_file: GrammarFile, first_line: Integer, first_column: Integer, last_line: Integer, last_column: Integer) -> void
11
-
12
- def ==: (Location other) -> bool
13
- def partial_location: (Integer, Integer) -> Location
14
- def generate_error_message: (String) -> String
15
- def line_with_carets: () -> String
16
-
17
- private
18
-
19
- def path: () -> String
20
- def blanks: () -> String
21
- def carets: () -> String
22
- def text: () -> String
23
- def _text: () -> Array[String]
24
- end
25
- end
26
- end
@@ -1,8 +0,0 @@
1
- module Lrama
2
- class Lexer
3
- class Token
4
- class Char < Token
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Lrama
2
- class Lexer
3
- class Token
4
- class Ident < Token
5
- end
6
- end
7
- end
8
- end
@@ -1,14 +0,0 @@
1
- module Lrama
2
- class Lexer
3
- class Token
4
- class InstantiateRule < Token
5
- attr_reader args: Array[Lexer::Token]
6
- attr_reader lhs_tag: Lexer::Token::Tag?
7
-
8
- def initialize: (s_value: String, ?alias_name: String, ?location: Location, ?args: Array[Lexer::Token], ?lhs_tag: Lexer::Token::Tag?) -> void
9
- def rule_name: () -> String
10
- def args_count: () -> Integer
11
- end
12
- end
13
- end
14
- end
@@ -1,9 +0,0 @@
1
- module Lrama
2
- class Lexer
3
- class Token
4
- class Tag < Token
5
- def member: () -> String
6
- end
7
- end
8
- end
9
- end
@@ -1,23 +0,0 @@
1
- module Lrama
2
- class Lexer
3
- class Token
4
- attr_reader s_value: String
5
- attr_accessor alias_name: String
6
- attr_reader location: Location
7
- attr_accessor referred: bool
8
-
9
- def initialize: (s_value: String, ?alias_name: String, ?location: Location) -> void
10
-
11
- def to_s: () -> String
12
- def referred_by?: (String string) -> bool
13
- def ==: (Token other) -> bool
14
- def first_line: () -> Integer
15
- def first_column: () -> Integer
16
- def last_line: () -> Integer
17
- def last_column: () -> Integer
18
- alias line first_line
19
- alias column first_column
20
- def invalid_ref: (Lrama::Grammar::Reference ref, String message) -> bot
21
- end
22
- end
23
- end
@@ -1,11 +0,0 @@
1
- module Lrama
2
- class Report
3
- module Duration
4
- self.@_report_duration_enabled: bool | nil
5
-
6
- def self.enable: -> void
7
- def self.enabled?: -> bool
8
- def report_duration: [T] (_ToS method_name) { -> T } -> T
9
- end
10
- end
11
- end
@@ -1,7 +0,0 @@
1
- module Lrama
2
- class Report
3
- module Profile
4
- def self.report_profile: { -> void } -> StackProf::result
5
- end
6
- end
7
- end
@@ -1,20 +0,0 @@
1
- module Lrama
2
- class State
3
- class Reduce
4
- @item: States::Item
5
- @look_ahead: Array[Grammar::Symbol]?
6
- @not_selected_symbols: Array[Grammar::Symbol]
7
-
8
- attr_reader item: States::Item
9
- attr_reader look_ahead: Array[Grammar::Symbol]?
10
- attr_reader not_selected_symbols: Array[Grammar::Symbol]
11
- attr_accessor default_reduction: bool
12
-
13
- def initialize: (States::Item item) -> void
14
- def rule: -> Grammar::Rule
15
- def look_ahead=: (Array[Grammar::Symbol] look_ahead) -> Array[Grammar::Symbol]
16
- def add_not_selected_symbol: (Grammar::Symbol sym) -> Array[Grammar::Symbol]
17
- def selected_look_ahead: () -> (::Array[Grammar::Symbol?])
18
- end
19
- end
20
- end
@@ -1,13 +0,0 @@
1
- module Lrama
2
- class State
3
- class ReduceReduceConflict
4
- attr_accessor symbols: Array[Grammar::Symbol]
5
- attr_accessor reduce1: State::Reduce
6
- attr_accessor reduce2: State::Reduce
7
-
8
- def initialize: (?symbols: Array[Grammar::Symbol], ?reduce1: State::Reduce, ?reduce2: State::Reduce) -> void
9
-
10
- def type: () -> :reduce_reduce
11
- end
12
- end
13
- end
@@ -1,14 +0,0 @@
1
- module Lrama
2
- class State
3
- class ResolvedConflict
4
- attr_accessor symbol: Grammar::Symbol
5
- attr_accessor reduce: State::Reduce
6
- attr_accessor which: (:reduce | :shift)
7
- attr_accessor same_prec: bool
8
-
9
- def initialize: (?symbol: Grammar::Symbol, ?reduce: State::Reduce, ?which: (:reduce | :shift), ?same_prec: bool) -> void
10
-
11
- def report_message: () -> (::String | bot)
12
- end
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- module Lrama
2
- class State
3
- class Shift
4
- @next_sym: Grammar::Symbol
5
- @next_items: Array[States::Item]
6
-
7
- attr_reader next_sym: Grammar::Symbol
8
- attr_reader next_items: Array[States::Item]
9
- attr_accessor not_selected: bool
10
-
11
- def initialize: (Grammar::Symbol next_sym, Array[States::Item] next_items) -> void
12
- end
13
- end
14
- end
@@ -1,13 +0,0 @@
1
- module Lrama
2
- class State
3
- class ShiftReduceConflict
4
- attr_accessor symbols: Array[Grammar::Symbol]
5
- attr_accessor shift: State::Shift
6
- attr_accessor reduce: State::Reduce
7
-
8
- def initialize: (?symbols: Array[Grammar::Symbol], ?shift: State::Shift, ?reduce: State::Reduce) -> void
9
-
10
- def type: () -> :shift_reduce
11
- end
12
- end
13
- end
data/sig/lrama/state.rbs DELETED
@@ -1,79 +0,0 @@
1
- module Lrama
2
- class State
3
- @id: untyped
4
-
5
- @accessing_symbol: untyped
6
-
7
- @kernels: untyped
8
-
9
- @items: Array[States::Item]
10
-
11
- @items_to_state: untyped
12
-
13
- @conflicts: Array[State::ShiftReduceConflict|State::ReduceReduceConflict]
14
-
15
- @resolved_conflicts: untyped
16
-
17
- @default_reduction_rule: untyped
18
-
19
- @closure: untyped
20
-
21
- @nterm_transitions: untyped
22
-
23
- @term_transitions: untyped
24
-
25
- @transitions: Array[[Shift, State]]
26
-
27
- attr_reader id: untyped
28
-
29
- attr_reader accessing_symbol: untyped
30
-
31
- attr_reader kernels: untyped
32
-
33
- attr_reader conflicts: Array[State::ShiftReduceConflict|State::ReduceReduceConflict]
34
-
35
- attr_reader resolved_conflicts: untyped
36
-
37
- attr_reader default_reduction_rule: untyped
38
-
39
- attr_reader closure: untyped
40
-
41
- attr_reader items: Array[States::Item]
42
-
43
- attr_accessor shifts: Array[Shift]
44
-
45
- attr_accessor reduces: untyped
46
-
47
- def initialize: (untyped id, untyped accessing_symbol, Array[States::Item] kernels) -> void
48
-
49
- def closure=: (untyped closure) -> untyped
50
-
51
- def non_default_reduces: () -> untyped
52
-
53
- def compute_shifts_reduces: () -> untyped
54
-
55
- def set_items_to_state: (untyped items, untyped next_state) -> untyped
56
-
57
- def set_look_ahead: (untyped rule, untyped look_ahead) -> untyped
58
-
59
- def nterm_transitions: () -> untyped
60
-
61
- def term_transitions: () -> untyped
62
-
63
- def transitions: () -> Array[[Shift, State]]
64
-
65
- def selected_term_transitions: () -> untyped
66
-
67
- def transition: (untyped sym) -> untyped
68
-
69
- def find_reduce_by_item!: (untyped item) -> untyped
70
-
71
- def default_reduction_rule=: (untyped default_reduction_rule) -> untyped
72
-
73
- def has_conflicts?: () -> untyped
74
-
75
- def sr_conflicts: () -> untyped
76
-
77
- def rr_conflicts: () -> untyped
78
- end
79
- end
@@ -1,30 +0,0 @@
1
- module Lrama
2
- class States
3
- class Item
4
- extend Forwardable
5
- include Grammar::Rule::_DelegatedMethods
6
-
7
- attr_accessor rule: Grammar::Rule
8
- attr_accessor position: Integer
9
-
10
- def initialize: (?rule: Grammar::Rule, ?position: Integer) -> void
11
-
12
- def hash: () -> Integer
13
- def rule_id: () -> Integer
14
- def empty_rule?: () -> bool
15
- def number_of_rest_symbols: () -> Integer
16
- def next_sym: () -> Grammar::Symbol
17
- def next_next_sym: () -> Grammar::Symbol
18
- def previous_sym: () -> Grammar::Symbol
19
- def end_of_rule?: () -> bool
20
- def beginning_of_rule?: () -> bool
21
- def start_item?: () -> bool
22
- def new_by_next_position: () -> States::Item
23
- def symbols_before_dot: () -> Array[Grammar::Symbol]
24
- def symbols_after_dot: () -> Array[Grammar::Symbol]
25
- def to_s: () -> ::String
26
- def display_name: () -> ::String
27
- def display_rest: () -> ::String
28
- end
29
- end
30
- end
data/sig/lrama/states.rbs DELETED
@@ -1,101 +0,0 @@
1
- module Lrama
2
- class States
3
- include Grammar::_DelegatedMethods
4
-
5
- @grammar: untyped
6
-
7
- @warning: untyped
8
-
9
- @trace_state: untyped
10
-
11
- @states: Array[State]
12
-
13
- @direct_read_sets: untyped
14
-
15
- @reads_relation: untyped
16
-
17
- @read_sets: untyped
18
-
19
- @includes_relation: untyped
20
-
21
- @lookback_relation: untyped
22
-
23
- @follow_sets: untyped
24
-
25
- @la: untyped
26
-
27
- extend Forwardable
28
-
29
- include Lrama::Report::Duration
30
-
31
- attr_reader states: Array[State]
32
-
33
- attr_reader reads_relation: untyped
34
-
35
- attr_reader includes_relation: untyped
36
-
37
- attr_reader lookback_relation: untyped
38
-
39
- def initialize: (untyped grammar, untyped warning, ?trace_state: bool) -> void
40
-
41
- def compute: () -> untyped
42
-
43
- def reporter: () -> untyped
44
-
45
- def states_count: () -> untyped
46
-
47
- def direct_read_sets: () -> untyped
48
-
49
- def read_sets: () -> untyped
50
-
51
- def follow_sets: () -> untyped
52
-
53
- def la: () -> untyped
54
-
55
- private
56
-
57
- def sr_conflicts: () -> untyped
58
-
59
- def rr_conflicts: () -> untyped
60
-
61
- def trace_state: () { (untyped) -> untyped } -> (untyped | nil)
62
-
63
- def create_state: (untyped accessing_symbol, untyped kernels, untyped states_created) -> (::Array[untyped | false] | ::Array[untyped | true])
64
-
65
- def setup_state: (untyped state) -> untyped
66
-
67
- def enqueue_state: (untyped states, untyped state) -> untyped
68
-
69
- def compute_lr0_states: () -> untyped
70
-
71
- def nterm_transitions: () -> untyped
72
-
73
- def compute_direct_read_sets: () -> untyped
74
-
75
- def compute_reads_relation: () -> untyped
76
-
77
- def compute_read_sets: () -> untyped
78
-
79
- def transition: (untyped state, untyped symbols) -> untyped
80
-
81
- def compute_includes_relation: () -> untyped
82
-
83
- def compute_lookback_relation: () -> untyped
84
-
85
- def compute_follow_sets: () -> untyped
86
-
87
- def compute_look_ahead_sets: () -> untyped
88
-
89
- def bitmap_to_terms: (untyped bit) -> untyped
90
-
91
- def compute_conflicts: () -> untyped
92
-
93
- def compute_shift_reduce_conflicts: () -> untyped
94
-
95
- def compute_reduce_reduce_conflicts: () -> untyped
96
-
97
- def compute_default_reduction: () -> untyped
98
-
99
- def check_conflicts: () -> untyped
100
- end
101
- end
@@ -1,16 +0,0 @@
1
- module Lrama
2
- class Warning
3
- interface _Appendable
4
- def <<: (String message) -> self
5
- end
6
-
7
- @out: _Appendable
8
-
9
- attr_reader errors: Array[String]
10
- attr_reader warns: Array[String]
11
- def initialize: (?_Appendable out) -> void
12
- def error: (String message) -> void
13
- def warn: (String message) -> void
14
- def has_error?: -> bool
15
- end
16
- end