Sha256: f328e1cda86f533f4d82e97db9907688b6d1d9ba204a6c64e6f952a634a07b96

Contents?: true

Size: 1.28 KB

Versions: 70

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

class Code
  class Parser
    class Dictionary < Language
      def code_present
        Code.new.present
      end

      def statement
        Statement
      end

      def name
        Name
      end

      def whitespace
        Whitespace
      end

      def whitespace?
        whitespace.maybe
      end

      def opening_curly_bracket
        str("{")
      end

      def closing_curly_bracket
        str("}")
      end

      def comma
        str(",")
      end

      def colon
        str(":")
      end

      def equal
        str("=")
      end

      def greater
        str(">")
      end

      def key_value
        (name.aka(:name) << colon << code_present.aka(:value).maybe) |
          (
            statement.aka(:statement) << colon << code_present.aka(:value).maybe
          ) |
          (
            statement.aka(:statement) << whitespace? << equal << greater <<
              code_present.aka(:value).maybe
          ) | statement.aka(:statement)
      end

      def root
        (
          opening_curly_bracket.ignore << whitespace? <<
            (whitespace? << key_value << (whitespace? << comma).maybe).repeat <<
            (whitespace? << closing_curly_bracket.ignore).maybe
        ).aka(:dictionnary) | List
      end
    end
  end
end

Version data entries

70 entries across 70 versions & 1 rubygems

Version Path
code-ruby-1.2.5 lib/code/parser/dictionary.rb
code-ruby-1.2.4 lib/code/parser/dictionary.rb
code-ruby-1.2.3 lib/code/parser/dictionary.rb
code-ruby-1.2.2 lib/code/parser/dictionary.rb
code-ruby-1.2.1 lib/code/parser/dictionary.rb
code-ruby-1.1.3 lib/code/parser/dictionary.rb
code-ruby-1.1.1 lib/code/parser/dictionary.rb
code-ruby-1.1.0 lib/code/parser/dictionary.rb
code-ruby-1.0.0 lib/code/parser/dictionary.rb
code-ruby-0.15.16 lib/code/parser/dictionary.rb
code-ruby-0.15.15 lib/code/parser/dictionary.rb
code-ruby-0.15.14 lib/code/parser/dictionary.rb
code-ruby-0.15.13 lib/code/parser/dictionary.rb
code-ruby-0.15.12 lib/code/parser/dictionary.rb
code-ruby-0.15.11 lib/code/parser/dictionary.rb
code-ruby-0.15.10 lib/code/parser/dictionary.rb
code-ruby-0.15.9 lib/code/parser/dictionary.rb
code-ruby-0.15.8 lib/code/parser/dictionary.rb
code-ruby-0.15.7 lib/code/parser/dictionary.rb
code-ruby-0.15.6 lib/code/parser/dictionary.rb