What's Changed
- Fix the level of headings by @yui-knk in #516
- Update steep-check CI task by @yui-knk in #518
- More explanation for Digraph algorithm by @yui-knk in #517
- Comments for
Digraph#initializeby @yui-knk in #519 - Fix formatting by @yui-knk in #520
- Add comments for State methods by @yui-knk in #521
- Fix comments about
State#goto_followsby @yui-knk in #522 - Add diagram generation feature and integrate Railroad Diagrams by @ydah in #523
- Support
--profileoption by @yui-knk in #525 - Fix an error when specify
--define=fooby @ydah in #527 - Enhance debug option handling to include 'parse.trace' definition by @ydah in #528
- Enhance diagram display with hover effects and improved styling by @ydah in #529
- Add
--profileoption to NEWS.md by @yui-knk in #530 - Add RBS type annotations to StatesReporter methods and generate RBS signature by @ydah in #531
- Remove unused Warning class and update Steepfile checks by @ydah in #532
- Refactor ERB handling in Diagram and Output classes; introduce Lrama::ERB for template rendering by @ydah in #533
- Make the rbs_inline task run when the steep task is run by @ydah in #535
- Organized directories and classes by @ydah in #534
- Reimplement IELR phase 2&3 with InadequacyAnnotation by @junk0612 in #524
- Fix type declarations of InadequacyAnnotation by @yui-knk in #539
- Change some trivial improvement by @ydah in #538
- Add some comments for states.rb by @yui-knk in #540
- Print conflicts of each state on output file by @yui-knk in #541
- Add comments to states.rb by @yui-knk in #543
- Render valid options for '--trace' and '--report' when invalid option is specified by @yui-knk in #544
- Add warning output when using %require, which exists only for compatibility with Bison by @ydah in #478
- Specify where a test case IELR grammar comes from by @yui-knk in #545
- Remove GrammarValidator class and refactor grammar validation to States class by @ydah in #537
- Add ';' to the end of nonterminal definitions by @yui-knk in #546
- Clarify
expectto be%expectby @yui-knk in #548 - Fix ArgumentError by @yui-knk in #547
- Refactor related parameterized rule and inline rule by @ydah in #536
- Add syntax diagrams section to README for grammar development by @ydah in #550
- Update version number in README to 0.7.0 by @ydah in #552
- Inline type declarations of state related classes by @yui-knk in #553
- Fix
ResolvedConflicttype declarations by @yui-knk in #554 - Update railroad_diagrams gem version to 0.3.0 by @ydah in #555
- Fix some warnings: assigned but unused variable by @ydah in #556
- Add type declarations to Item by @yui-knk in #557
- Remove duplicated instance variable initialization by @yui-knk in #558
- Fix
InadequacyAnnotation#initializeargument type by @yui-knk in #559 - Add type declarations to State by @yui-knk in #560
- Refactor transition by @yui-knk in #561
- Introduce
lookahead_settype alias by @yui-knk in #562 - Use local variable to store interim data by @yui-knk in #564
- Fix comment format to correctly reflect type annotation by @yui-knk in #565
- Fix type declaration of lhs_contributions by @yui-knk in #566
- Use
#term_transitionsinstead of#shiftsby @yui-knk in #569 - Add a sample of simple JSON parser by @ydah in #563
- Introduce
Actionclasses to refactorStatetransitions by @yui-knk in #571 - Refactor inline rule handling to use inline? method for clarity by @ydah in #570
- Use
term_transitionsinstead oftransitionsby @yui-knk in #572 - Refactor inadequacy annotation by @yui-knk in #573
- Add attributes for define and required by @ydah in #575
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::Code by @ydah in #577
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::Counter by @ydah in #578
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::PercentCode by @ydah in #579
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::Type by @ydah in #580
- Add check in Steepfile by @ydah in #583
- Fix type annotations by @yui-knk in #584
- Fix tracer class type declarations by @yui-knk in #586
- Example types by @yui-knk in #587
- Conflict type by @yui-knk in #588
- Refactor Lrama::Reporter::States by @ydah in #582
- Refactor conflict reporting methods by @ydah in #581
- Fix ielr tests by @junk0612 in #574
- Refactor inadequacy list by @yui-knk in #589
- Enable
Lrama::ERBtype checking in Steepfile by @ydah in #591 - Enable
Lrama::Reportertype checking in Steepfile by @ydah in #590 - Refactor "lib/lrama/reporter/states.rb" by @yui-knk in #593
- Sort out IERL computation order by @yui-knk in #592
- Add RBS signature for Lrama::VERSION and Lrama::OptionParser by @ydah in #594
- Update steep gem to 1.9.4 by @yui-knk in #596
- Add a sample of SQL Parser by @ydah in #585
- Optimize
compute_ielrby @junk0612 in #595 - Type declarations of
StateandStatesby @yui-knk in #597 - Migrate counterexamples rbs to rbs-inline by @yui-knk in #598
- Refactor to use
pathtype by @yui-knk in #599 - Remove needless comments by @yui-knk in #600
- Save call stack profile result even if an exception is raised by @yui-knk in #601
- Refactor Counterexamples by @yui-knk in #602
- Refactor derivation by @yui-knk in #603
- Define
bitmaptype alias by @yui-knk in #604 - Optimize
split_statesby @junk0612 in #605 - Migrate
Grammar::Symbolrbs to rbs-inline by @yui-knk in #606 - Optimize
Lrama::Counterexamples#follow_lby @yui-knk in #607 - Use
bitmaptype by @yui-knk in #608 - Suppress
StateIteminstance creation by @yui-knk in #609 - Don't create array for each lookahead-sensitive path candidate by @yui-knk in #610
- Write duration information to stderr by @yui-knk in #611
- Render counter example path iteration and duration if
--trace=timeis specified by @yui-knk in #612 - Define
Triple#hashandTriple#eql?so thatvisitedhash lookup works correctly by @yui-knk in #613 - Optimize counter examples iteration of candidates by @yui-knk in #614
- Introduce
Bitmap::from_integerby @yui-knk in #615 - Remove unused
from_state_itemfromPathby @yui-knk in #616 - Refactor counterexamples by @yui-knk in #617
- Render counter example shift conflict path iteration and duration if
--trace=timeis specified by @yui-knk in #618 - Use
StateItem#typefor shortest path search method by @yui-knk in #619 - Include state id into Counterexamples test cases by @yui-knk in #621
- Use List structure to manage shift conflict path candidates to avoid
Array#+by @yui-knk in #622 - Introduce counterexamples timeout by @yui-knk in #623
- Use Array#combination to compute R/R Conflicts by @junk0612 in #620
Goto#not_selectedis not used by @yui-knk in #625- Create StateItem in advance for optimization by @yui-knk in #627
- Clear conflicts information of states before IELR computation by @yui-knk in #626
- Create StateItem in advance for optimization by @yui-knk in #629
- Add a failed test case for IELR with R/R conflict grammar by @yui-knk in #630
- Use
lookahead_settype alias by @yui-knk in #631 - Migrate
Grammarrbs to rbs-inline by @yui-knk in #632 - Fix a typo by @yui-knk in #633
- Fix behavior for R/R conflicts by @junk0612 in #634
- Fix wording related inline test by @ydah in #636
- Upgrade rbs and steep to the latest by @yui-knk in #638
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::Auxiliary by @ydah in #640
- Fix RBS type annotations for Node class by @ydah in #639
- Add type declarations to
Lexermethods by @yui-knk in #642 - Add varsion.rb and warnings.rb to Steepfile checks by @ydah in #643
- Remove unused Parameterized class from Lrama grammar by @ydah in #648
- Update transition caches instead of clearing by @junk0612 in #641
- bundle exec rbs collection update by @ydah in #645
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::Destructor by @ydah in #646
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::ErrorToken by @ydah in #647
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::Precedence by @ydah in #649
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::Printer by @ydah in #650
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::Union by @ydah in #652
- Rewrite to rbs_inline style type definitions for Lrama::Grammar::Reference by @ydah in #651
- Add reporter.rb to Steepfile checks by @ydah in #644
Reference#position_in_rhsdoesn't exist anymore by @yui-knk in #655- Remove duplicated
includeandextendby @yui-knk in #656 - Migrate
Grammar::CodeandGrammar::RuleBuilderrbs to rbs-inline by @yui-knk in #657 - Lexer type annotations by @yui-knk in #658
- Optimize Counterexamples by @yui-knk in #659
- Adjusting the indentation of parser.y by @ydah in #653
- Freeze
ruleswhen all rules are appended by @yui-knk in #660 - Freeze
termsandntermswhen all symbols are appended by @yui-knk in #661 - Update rbs gem version to 3.9.1 by @ydah in #662
- Update NEWS.md fix grammar and spelling by @jbampton in #663
- Fix comments in stdlib to match the comments by @ydah in #664
- Adjust indentation for stdlib by @ydah in #665
- Add test case for %empty style nullable case by @ydah in #668
- Add tests for error handling with multiple %empty and symbol after %empty by @ydah in #670
- Update rbs gem version to 3.9.2 in Gemfile by @ydah in #675
- Add output for terms and non-terminals count in report by @ydah in #667
- Fix
token_codetypes by @yui-knk in #669 - Add @state_item_shift type in Counterexamples class by @ydah in #679
- Add support for
%define variable {value}by @ydah in #676 - Allow multiple
;for Bison compatibility by @ydah in #678 - Add --frozen option when bundle exec racc by @ydah in #680
- Add support for reporting Rule Usage Frequency by @ydah in #677
- Add ioption support to the Standard library by @ydah in #666
- Add a note to the README about the pronunciation of lrama by @ydah in #682
- Update rbs gem version to 3.9.3 in Gemfile by @ydah in #681
- Update minimum BASERUBY version to 3.1 in workflow configuration by @ydah in #683
- Fix MSYS2 setup by disabling auto-update and adding manual recovery steps by @ydah in #684
- Update rbs gem version to 3.9.4 in Gemfile by @ydah in #686
- bundle exec rbs collection update by @ydah in #687
- Cache some values to make annotate_predecessor fast by @junk0612 in #685
- Ensure compatibility with Bison for
--locationsoption by @ydah in #542 - Fix typos in translation test descriptions in code_spec.rb by @ydah in #689
- Add support for allowing multiple tags to be mixed on one line in precedence declarations by @ydah in #688
- Temporarily uses ruby 3.4 to avoid "uninitialized constant RBS::Collection::Sources::Git::FileUtils (NameError)" by @yui-knk in #693
- Update minimum BASERUBY version referred in "doc/Index.md" by @yui-knk in #690
- Update rbs_collection.lock.yaml by @yui-knk in #691
- Split "Profiling Lrama" doc under doc/development by @yui-knk in #692
- Save memory profile result even if an exception is raised by @yui-knk in #694
- Use
actiontype inInadequacyAnnotationby @yui-knk in #695 - Use
transitiontype inStateby @yui-knk in #696 - Add a comment refers to Observation 3.33 (Simple Split-Stable Dominance) by @yui-knk in #697
- Remove a duplicated content by @yui-knk in #698
- Include grammar file name into the duration report labels by @yui-knk in #699
- Make IELR calculation 10x faster by @yui-knk in #700
- Make
ReduceReduceConflictto be plain object by @yui-knk in #701 - Make
ShiftReduceConflictto be plain object by @yui-knk in #702 - Refactor
ResolvedConflictby @yui-knk in #703 - Render Split States information on output file by @yui-knk in #624
- Fix confusing error messages when specifying non-terminators for
%precedenceby @ydah in #704 - Remove unnecessary raise statement in set_precedence method by @ydah in #705
- Refactor binding methods for clarity and optimization by @ydah in #628
- Make error messages more understandable by @yui-knk in #707
- Add validation for ASCII characters in Token::Char and implement symbol validation by @ydah in #706
- Rename validation methods for clarity regarding precedence rules by @ydah in #709
- Make error messages more understandable by @ydah in #708
- Support parameterized rule's arguments include inline by @ydah in #637
- Tweak for an error message by @yui-knk in #712
- Change the method
validate_no_precedence_for_nterm!to searchntermsinstead of the Rule's LHS by @ydah in #710 - Make struct to be plain class by @yui-knk in #713
- Use alias name for conflict report by @yui-knk in #715
- Print stackprof dump file path if
--profile=call-stackis enabled by @yui-knk in #717 - Fix a test format in spec/lrama/grammar_spec.rb by @ydah in #716
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #719
- Change to raise an error if
%precedenceis set more than once for the same terminal symbol by @ydah in #718 - Update comments and type definitions of LALR logic by @yui-knk in #720
- Add support Start-Symbol:
%startby @ydah in #576 - Allocate
key(reduce) outside of the loop by @yui-knk in #721 - Extract method calls for look ahead sets computation by @yui-knk in #722
- Use
State::Action::Gotoinstead of[state_id, nterm_id]by @yui-knk in #723 - Remove local variable assignments by @yui-knk in #725
- Describe where conflicted tokens come from on the output file by @yui-knk in #726
- Reorder gem declarations in Gemfile for clarity by @ydah in #727
- Introduce
Int,StrandTokentypes for terminal symbols so that these token can store location information by @yui-knk in #728 - Refactor to use
Token::Base#first_lineby @yui-knk in #729 - Refactor to use
Token::Base#first_lineby @yui-knk in #730 - Fix comment format by @yui-knk in #731
- Allow syntax when
%precis used in RHS other than the rightmost by @ydah in #724 - Rename
midrule_actiontoactionin parser rules for clarity by @ydah in #732 - Fix an action in last rule of token definition for Precedence by @ydah in #733
- Fix the comment about
%nonassocand%precedenceby @yui-knk in #735 - Remove unnecessary file by @ydah in #734
- Move
ItemfromStatestoStateby @yui-knk in #736 - Exclude sample codes from documentation site by @yui-knk in #737
- Bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in #738
- Define
type_enumforPrecedence#typeby @yui-knk in #739 - Add
%define lr.type ielrto IELR test case grammar files by @yui-knk in #740 - Add precedences usage information into output file by @yui-knk in #741
- Add support for precedence handling and warnings for unused precedences by @ydah in #711
- Optimize
#compute_la_sourcesby @yui-knk in #742 - Add new line on the last of conflict list of states by @yui-knk in #743
- Fix CI error for windows by @ydah in #745
- Create parser without defining
%unionby @ydah in #654 - Allow
%precwith%emptyby @ydah in #744 - Improve format for generate_error_message by @ydah in #747
- Fix line number counting when there are trailing spaces by @mame in #748
- Optimize Lrama by @mame in #749
- Update rbs gem version to 3.9.5 in Gemfile by @ydah in #752
visitedis not used by @yui-knk in #753- Refactor Bitmap#to_bool_array for conciseness by @ydah in #750
- Improve error messages in Lexer for unexpected tokens and code by @ydah in #751
- Pass
Lrama::Grammar::Reference.indexof$:1by @yui-knk in #754 - Add a prefix to identify warnings or errors by @ydah in #756
- Add support warning [-Wempty-rule] by @ydah in #755
- Specify Ubuntu 22.04 as the runner version for build and deploy jobs by @ydah in #757
- Fix Ruby version in GitHub Actions workflow to avoid errors during setup by @ydah in #758
- Add .gitattributes to mark generated files for linguist by @ydah in #759
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #762
- Add warning for parameterized rule name conflicts with symbols by @ydah in #760
- Update NEWS for v0.7.1 by @yui-knk in #714
- v0.7.1 by @yui-knk in #766
Full Changelog: v0.7.0...v0.7.1