# Simple object

{a: 10}

==>

SurrealQL(Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,Number(Int))),BraceClose))

# Object with string keys

{"stringkey": 1, 'single': 2}

==>

SurrealQL(Object(BraceOpen,ObjectContent(
  ObjectProperty(ObjectKey(String),Colon,Number(Int)),
  ObjectProperty(ObjectKey(String),Colon,Number(Int))
),BraceClose))

# Empty object

{}

==>

SurrealQL(Object(BraceOpen,BraceClose))

# Empty object with space

{ }

==>

SurrealQL(Object(BraceOpen,BraceClose))

# Block vs Object

{block}

==>

SurrealQL(Block(BraceOpen,Ident,BraceClose))

# Object followed by value

{a: 10};
123

==>

SurrealQL(
  Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,Number(Int))),BraceClose),
  Number(Int)
)

# Nested objects

{a: {b: 1}}

==>

SurrealQL(Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,
  Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,Number(Int))),BraceClose)
)),BraceClose))
