Sha256: cacb261a434cd56e60d927f027f77c3cebf3ab474b1ddc4648720bdc26915c66

Contents?: true

Size: 696 Bytes

Versions: 5

Compression:

Stored size: 696 Bytes

Contents

grammar Primitive
  include Helper

  rule primitive
    string | bool | datetime | number
  end

  rule string
    (/(["'])(?:\\?.)*?\1/ space) <TomlString>
  end

  rule bool
    true | false
  end

  # Full Zulu form
  rule datetime
    (y:/\d\d\d\d/ "-" m:/\d\d/ "-" d:/\d\d/ "T" h:/\d\d/ ":" mi:/\d\d/ ":" s:/\d\d/ "Z") {
      Time.utc(*[y,m,d,h,mi,s].map(&:value))
    }
  end

  rule number
    float | integer
  end

  rule float
    (integer '.' integer) { to_f }
  end

  rule integer
    (sign? [0-9]+) { to_i }
  end

  rule sign
    '+' | '-'
  end

  rule key
    [a-zA-Z_] [a-zA-Z_0-9#?]*
  end

  rule true
    'true' { true }
  end

  rule false
    'false' { false }
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
toml-rb-0.1.5 lib/toml/grammars/primitive.citrus
toml-rb-0.1.4 lib/toml/grammars/primitive.citrus
toml-rb-0.1.3 lib/toml/grammars/primitive.citrus
toml-rb-0.1.2 lib/toml/grammars/primitive.citrus
toml-rb-0.1.0 lib/toml/grammars/primitive.citrus