blob: 3dc07ed02e1a7802ef44e0da28f6ba0479d531e4 [file] [log] [blame]
# Check identifier specific parsing functionality.
#
# RUN: %{llbuild} ninja parse %s 2> %t.err
# RUN: %{FileCheck} < %t.err %s
# Check for identifier specific cases in non-binding contents.
#
# CHECK: actOnBeginPoolDecl(/*Name=*/"pool")
pool pool
depth = 10
# CHECK: actOnBeginRuleDecl(/*Name=*/"rule")
rule rule
command = echo value
# Check identifier specific cases in bindings, for all the other contexts.
# CHECK: actOnBeginBuildDecl(/*Name=*/"rule", /*Outputs=*/["foo"], /*Inputs=*/["baz"]
build foo: rule baz
# CHECK: actOnBuildBindingDecl(/*Decl=*/{{.*}}, /*Name=*/"rule", /*Value=*/"a")
rule = a
# CHECK: actOnBuildBindingDecl(/*Decl=*/{{.*}}, /*Name=*/"pool", /*Value=*/"pool")
pool = pool
# CHECK: actOnBuildBindingDecl(/*Decl=*/{{.*}}, /*Name=*/"build", /*Value=*/"a")
build = a
# CHECK: actOnBuildBindingDecl(/*Decl=*/{{.*}}, /*Name=*/"default", /*Value=*/"a")
default = a
# CHECK: actOnBuildBindingDecl(/*Decl=*/{{.*}}, /*Name=*/"include", /*Value=*/"a")
include = a
# CHECK: actOnBuildBindingDecl(/*Decl=*/{{.*}}, /*Name=*/"subninja", /*Value=*/"a")
subninja = a
# This trailing blank line tests we switch out of identifier specific mode for the next decl
#
# CHECK: actOnDefaultDecl(/*Names=*/["foo"])
default foo
# This is still an error though.
#
# CHECK: identifier-specific-parsing.ninja:[[@LINE+1]]:5: error: expected pool name identifier
pool = bar