# Check variable string specific parsing functionality.
#
# RUN: %{llbuild} ninja parse %s 2> %t.err
# RUN: %{FileCheck} < %t.err %s

# Check that we accept and preserve spaces in variable bindings.
#
# CHECK: actOnBindingDecl(/*Name=*/"a0", /*Value=*/"b0  c0")
a0 = b0  c0

# Check that we strip leading space.
#
# CHECK: actOnBindingDecl(/*Name=*/"a1", /*Value=*/"b1  c1")
a1 =     b1  c1

# Check that we accept "special" characters in this context.
#
# CHECK: actOnBindingDecl(/*Name=*/"a2", /*Value=*/"this is a : followed by a |")
a2 = this is a : followed by a |

# Check that we don't stop on escapes.
#
# CHECK: actOnBindingDecl(/*Name=*/"a3", /*Value=*/"this spans$\na$ line")
a3 = this spans$
a$ line

# Check that we diagnose missing '=' properly.
#
# CHECK: string-parsing.ninja:[[@LINE+1]]:2: error: expected '=' token
a4

# Check that we allow empty assignments.
#
# CHECK: actOnBindingDecl(/*Name=*/"a5", /*Value=*/"")
a5 =

# Check that we handle escapes at the beginning of the variable string parsing.
#
# CHECK: actOnBindingDecl(/*Name=*/"a6", /*Value=*/"value")
a6 =$
value
