Sha256: 8d0122fd3ef363ede3d0a90bb6e46688ff20d44f00e4e34aefa7a3efeee01249

Contents?: true

Size: 906 Bytes

Versions: 1

Compression:

Stored size: 906 Bytes

Contents

module Antlr4ruby

  # @abstract
  class SemanticContext
    def self.and: (SemanticContext, SemanticContext) -> SemanticContext

    def self.or: (SemanticContext, SemanticContext) -> SemanticContext

    def eval_precedence: (Recognizer[untyped, untyped], RuleContext) -> SemanticContext
    def eval: (Recognizer[untyped, untyped], RuleContext) -> bool

    class Empty < SemanticContext
      INSTANCE: Empty
    end

    class Predicate < SemanticContext

      attr_reader is_ctx_dependent: bool
      attr_reader pred_index: Integer
      attr_reader rule_index: Integer
    end

    class PrecedencePredicate < SemanticContext
      # todo
    end

    class Operator < SemanticContext
      def get_operands: -> Array[SemanticContext]

    end

    private

    def filter_precedence_predicates: (Array[SemanticContext]) -> Array[PrecedencePredicate]
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
antlr4ruby-0.1.0 sig/antlr4ruby/atn/context/semantic_context.rbs