Sha256: f8aa8af586a2c72e165eb7379622ff4ba92e27f3881d3dd255f6bd97dcf71328

Contents?: true

Size: 1.49 KB

Versions: 1

Compression:

Stored size: 1.49 KB

Contents

module Lrama
  class Grammar
    class RuleBuilder
      attr_accessor lhs: Lexer::Token
      attr_accessor lhs_tag: untyped
      attr_accessor line: Integer?
      attr_reader rhs: Array[Lexer::Token]
      attr_reader user_code: Lexer::Token::UserCode?
      attr_reader precedence_sym: Lexer::Token?

      @rule_counter: Counter
      @midrule_action_counter: Counter
      @position_in_original_rule_rhs: Integer?
      @skip_preprocess_references: bool
      @user_code: Lexer::Token::UserCode?
      @rule_builders_for_derived_rules: Array[RuleBuilder]
      @rules: Array[Rule]
      @replaced_rhs: Array[Lexer::Token]
      @parameterizing_rules: Array[Rule]
      @midrule_action_rules: Array[Rule]

      def initialize: (Counter rule_counter, Counter midrule_action_counter, ?Integer position_in_original_rule_rhs, ?skip_preprocess_references: bool) -> void
      def add_rhs: (Lexer::Token rhs) -> void
      def user_code=: (Lexer::Token::UserCode user_code) -> void
      def precedence_sym=: (Lexer::Token user_code) -> void
      def complete_input: () -> void
      def setup_rules: (Grammar::ParameterizingRuleResolver parameterizing_resolver) -> void
      def rules: () -> Array[Rule]

      private

      def freeze_rhs: () -> void
      def preprocess_references: () -> void
      def build_rules: () -> void
      def process_rhs: (Grammar::ParameterizingRuleResolver parameterizing_resolver) -> void
      def numberize_references: () -> void
      def flush_user_code: () -> void
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lrama-0.6.0 sig/lrama/grammar/rule_builder.rbs