Sha256: fe632fc8a2457826604c23ecfb9777242800ac540141a287de3a4d55cac77509

Contents?: true

Size: 1.04 KB

Versions: 13

Compression:

Stored size: 1.04 KB

Contents

module Rley # This module is used as a namespace
  module Syntax # This module is used as a namespace
    # Abstract class for grammar symbols.
    # A grammar symbol is an element that appears in grammar rules.
    class GrmSymbol
      # The name of the grammar symbol
      attr_reader(:name)

      # An indicator that tells whether the grammar symbol can generate a
      # non-empty string of terminals.
      attr_writer(:generative)

      # Constructor.
      # aName [String] The name of the grammar symbol.
      def initialize(aName)
        @name = aName.dup
      end

      # The String representation of the grammar symbol
      # @return [String]
      def to_s()
        return name.to_s
      end

      # @return [Boolean] true iff the symbol is a terminal
      def terminal?()
        # Default implementation to override if necessary
        return false
      end

      # @return [Boolean] true iff the symbol is generative.
      def generative?()
        return @generative
      end
    end # class
  end # module
end # module

# End of file

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rley-0.5.10 lib/rley/syntax/grm_symbol.rb
rley-0.5.09 lib/rley/syntax/grm_symbol.rb
rley-0.5.08 lib/rley/syntax/grm_symbol.rb
rley-0.5.07 lib/rley/syntax/grm_symbol.rb
rley-0.5.06 lib/rley/syntax/grm_symbol.rb
rley-0.5.05 lib/rley/syntax/grm_symbol.rb
rley-0.5.04 lib/rley/syntax/grm_symbol.rb
rley-0.5.03 lib/rley/syntax/grm_symbol.rb
rley-0.5.02 lib/rley/syntax/grm_symbol.rb
rley-0.5.01 lib/rley/syntax/grm_symbol.rb
rley-0.5.00 lib/rley/syntax/grm_symbol.rb
rley-0.4.08 lib/rley/syntax/grm_symbol.rb
rley-0.4.07 lib/rley/syntax/grm_symbol.rb