syntax = "proto2";

package test;

option x = 0;
option x = 42.4;
option x = inf;
option x = nan;
option x = -inf;
option x = -nan;
option x = true;
option x = false;
option x = Infinity;
option x = -Infinity;
option x = foo.bar;
option x = foo.(foo.bar).bar;
option x = .foo;
option x = x to y;

option x = [];
option x = [1];
option x = [1, 2];

option x = <>:
option x = <a: 42>;

option x = {};
option x = {
    x: 0
    x: 42.4
    x: inf
    x: nan
    x: -inf
    x: -nan
    x: true
    x: false
    x: Infinity
    x: -Infinity
    x: foo.bar
    x: foo.(foo.bar).bar
    x: .foo
    
    x: x to y

    x

    x: []
    x: [1]
    x: [1, 2]
    x: [1, 2, 3, [4, 5, [6]]]
    x: [
        [1],
    ]

    x: <>
    x: <a: 42>
    x: <a: <a: 42>>

    x {}
    x {a: 42}
    x <a: 42>
    x <a: 42, b: 43>

    x1: 55 to {}
    x2: {} to {}
    x3 17 to {}
    x4 {} to 91
    x1: to

    reserved: true
    to: true

    "ident": 42
    "???": 42
    42: 42
    x.y: 42
    (x.y): 42
    .x: 42

    [x]: 42
    [x.y]: 42
    [.x.y]: 42
    [x, y, z]: 42
    []: 42
    [buf.build/x.y]: 42
    [buf.build/x/y]: 42

    x [{x: 5}, 1, <x: 5>, 2, 3],
};

