Sha256: 1960dfafb9cde70467f1f666381acfdc8ce20e6a30a863da437efa374c45d9c3

Contents?: true

Size: 1.24 KB

Versions: 79

Compression:

Stored size: 1.24 KB

Contents

grammar TomlRB::Document
  include TomlRB::Primitive
  include TomlRB::Arrays

  rule document
    (comment | table_array | table | keyvalue | line_break)*
  end

  rule table_array
    (space? '[[' stripped_key ']]' comment?) <TomlRB::TableArrayParser>
  end

  rule table
    (space? '[' stripped_key ']' comment?) <TomlRB::TableParser>
  end

  rule keyvalue
    (stripped_key '=' space? v:(toml_values) comment? space) <TomlRB::KeyvalueParser>
  end

  rule inline_table
    (space? '{' (keyvalue? (',' keyvalue)*)? space? '}' ) <TomlRB::InlineTableParser>
  end

  rule inline_table_array
    (inline_table (space "," array_comments inline_table)*) {
      captures[:inline_table].map(&:value).map(&:value)
    }
  end

  rule array
    ("[" array_comments (array_elements)? space ","? array_comments "]" indent?) <TomlRB::ArrayParser>
  end

  rule array_elements
    inline_table_array | float_array | string_array | array_array | integer_array | datetime_array | bool_array
  end

  rule array_array
    (array (space "," array_comments array)*) {
      captures[:array].map(&:value)
    }
  end

  rule toml_values
    primitive | inline_table | array | inline_table_array
  end

  rule stripped_key
    (space? key space?) { captures[:key].first.value }
  end
end

Version data entries

79 entries across 79 versions & 2 rubygems

Version Path
harbr-2.8.1 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
toml-rb-3.0.1 lib/toml-rb/grammars/document.citrus
toml-rb-3.0.0 lib/toml-rb/grammars/document.citrus
harbr-0.2.10 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.9 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.8 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.7 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.6 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.5 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.4 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.3 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.2 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.1 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.2.0 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.1.99 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.1.98 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.1.97 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.1.96 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.1.95 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus
harbr-0.1.94 vendor/bundle/ruby/3.2.0/gems/toml-rb-2.2.0/lib/toml-rb/grammars/document.citrus