# Literals

TRUE

    => %

true

    => TRUE

FALSE

    => %

false

    => FALSE

0

    => %

1

    => %

42

    => %

0.77

    => %

"Foo Bar"

    => 'Foo Bar'

"Foo {$test} Bar"

    => 'Foo {$test} Bar'

'Foo Bar'

    => %

'Foo \'Blubb\' Bar'

    => %

"Foo \"Blubb\" 'Buzz' Bar"

    => 'Foo \"Blubb\" \'Buzz\' Bar'

['a', 'b', 'c']

    => array('a', 'b', 'c')

['a', 'b', ['a', 'b']]

    => array('a', 'b', array('a', 'b'))

{key: 'value'}

    => array('key' => 'value')

{bar: myvar}

    => array('bar' => $v->g('myvar'))

{foo: 'bar', "Super glue": true, baz: {bar: myvar}}

    => array('foo' => 'bar', 'Super glue' => TRUE, 'baz' => array('bar' => $v->g('myvar')))

# Object paths

myvar

    => $v->g('myvar')

foo.bar

    => $v->g('foo.bar')

myarr[i]

    => $v->g('myvar')->g($v->g('i')) ???

foo.bar[i].baz

    => $v->g('foo')->g('bar')->g($v->g('i'))->g('baz') ???

# Comparison

myvar == 1

    => $v->g('myvar') === 1

mystr == "Foo"

    => $v->g('mystr') === 'Foo'

# Regexp?

mystr ~= /Test/

# Calculation

myvar + 1

    => $v->g('myvar') + 1

# Comparison

myvar == 1

mystr == 'Test'

myint > 42

foo.bar <= 17

myint + i < 42

# Boolean expression

myexp || myvar

myexp || myvar || bar.baz == 1