1<Comment># comment</Comment><br/>
2<Keyword>rule</Keyword><Normal> b</Normal><br/>
3<Keyword>rule</Keyword><Normal> c</Normal><br/>
4<Comment>#d</Comment><br/>
5<Keyword>rule</Keyword><Normal> c</Normal><br/>
6<Key>description</Key><Operator>=</Operator><Normal>a</Normal><br/>
7<Keyword>rule</Keyword><Normal> d</Normal><br/>
8<Normal>  </Normal><Special Key>description</Special Key><Normal> </Normal><Operator>=</Operator><Normal> ds</Normal><br/>
9<Normal>  </Normal><Special Key>description</Special Key><Normal> </Normal><Operator>=</Operator><Normal> ds</Normal><br/>
10<Normal>  </Normal><Error>rule=ds</Error><br/>
11<Normal>  </Normal><Special Key>description</Special Key><Normal> </Normal><Operator>=</Operator><Normal> ds</Normal><br/>
12<Keyword>rule</Keyword><Normal> b</Normal><br/>
13<Normal></Normal><br/>
14<Keyword>rule</Keyword><Normal> c</Normal><br/>
15<Normal></Normal><br/>
16<Keyword>rule</Keyword><Normal> c</Normal><br/>
17<Normal> </Normal><Comment># ds</Comment><br/>
18<Normal> </Normal><Error>ds=ds</Error><br/>
19<Key>description</Key><Operator>=</Operator><Normal>a</Normal><br/>
20<Keyword>rule</Keyword><Normal> d</Normal><br/>
21<Normal>  </Normal><Error>rule =description = ds</Error><br/>
22<Normal></Normal><br/>
23<Keyword>rule</Keyword><Normal> b</Normal><br/>
24<Normal>  </Normal><Special Key>command</Special Key><Normal> </Normal><Operator>=</Operator><Normal> clang -MMD -MF </Normal><Variable Delimiter>$</Variable Delimiter><Special Variable>out</Special Variable><Normal>.d -o </Normal><Variable Delimiter>$</Variable Delimiter><Special Variable>out</Special Variable><Normal> -c </Normal><Variable Delimiter>$</Variable Delimiter><Special Variable>in</Special Variable><br/>
25<Normal>  </Normal><Special Key>description</Special Key><Normal> </Normal><Operator>=</Operator><Normal> building </Normal><Variable Delimiter>$</Variable Delimiter><Special Variable>out</Special Variable><br/>
26<Normal>  </Normal><Error>unknown = xyz</Error><br/>
27<Normal></Normal><br/>
28<Keyword>rule</Keyword><Normal> dump</Normal><br/>
29<Normal>  </Normal><Special Key>command</Special Key><Normal> </Normal><Operator>=</Operator><Normal> sleep 1</Normal><Symbol>;</Symbol><Normal> ls -l /proc/self/fd</Normal><Symbol>;</Symbol><Normal> exit 1</Normal><br/>
30<Normal>  </Normal><Special Key>pool</Special Key><Normal> </Normal><Operator>=</Operator><Normal> link_pool</Normal><br/>
31<Normal>  </Normal><Comment># blah blah</Comment><br/>
32<Normal>  </Normal><Special Key>pool</Special Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Special Value>console</Special Value><br/>
33<Normal>  </Normal><Special Key>pool</Special Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>console</Variable><br/>
34<Normal></Normal><br/>
35<Keyword>rule</Keyword><Normal> xy-z_</Normal><br/>
36<Keyword>rule</Keyword><Normal> --xy-z_</Normal><br/>
37<Keyword>rule</Keyword><Normal> _xy-z_</Normal><br/>
38<Normal></Normal><br/>
39<Comment># error</Comment><br/>
40<Keyword>rule</Keyword><Normal> with </Normal><Error>error</Error><br/>
41<Keyword>rule</Keyword><Normal> a</Normal><Error>:a</Error><br/>
42<Keyword>rule</Keyword><Normal> a</Normal><Error>|a</Error><br/>
43<Keyword>rule</Keyword><Normal> a</Normal><Error>$</Error><br/>
44<Keyword>rule</Keyword><Normal> 0-</Normal><Error>@#d</Error><br/>
45<Normal></Normal><br/>
46<Comment># browse_py.h is used to inline browse.py.</Comment><br/>
47<Keyword>rule</Keyword><Normal> inline</Normal><br/>
48<Normal>  </Normal><Special Key>command</Special Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Symbol>"</Symbol><Variable Delimiter>$</Variable Delimiter><Variable>root</Variable><Normal>/src/inline.sh</Normal><Symbol>"</Symbol><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>varname</Variable><Normal> </Normal><Symbol><</Symbol><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Special Variable>in</Special Variable><Normal> </Normal><Symbol>></Symbol><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Special Variable>out</Special Variable><br/>
49<Normal>  </Normal><Special Key>description</Special Key><Normal> </Normal><Operator>=</Operator><Normal> INLINE </Normal><Variable Delimiter>$</Variable Delimiter><Special Variable>out</Special Variable><br/>
50<Normal></Normal><br/>
51<Keyword>default</Keyword><Normal> foo bar</Normal><br/>
52<Keyword>default</Keyword><Normal> baz</Normal><br/>
53<Normal></Normal><br/>
54<Keyword>include</Keyword><Normal> ninja1.ninja</Normal><br/>
55<Normal></Normal><br/>
56<Keyword>subninja</Keyword><Normal> ninja2.ninja</Normal><br/>
57<Normal></Normal><br/>
58<Keyword>pool</Keyword><Normal> link_pool</Normal><br/>
59<Normal>  </Normal><Special Key>depth</Special Key><Normal> </Normal><Operator>=</Operator><Normal> 4</Normal><br/>
60<Normal>  </Normal><Error>xxx = d</Error><br/>
61<Normal></Normal><br/>
62<Keyword>pool</Keyword><Normal> link_pool </Normal><Error>d</Error><br/>
63<Normal>  </Normal><Special Key>depth</Special Key><Normal> </Normal><Operator>=</Operator><Normal> 4</Normal><br/>
64<Normal></Normal><br/>
65<Keyword>build</Keyword><Normal> a.o</Normal><Operator>:</Operator><Normal> </Normal><Rule Name>b</Rule Name><Dependancy> a.c</Dependancy><br/>
66<Normal></Normal><br/>
67<Keyword>build</Keyword><Normal> a.o</Normal><Operator>|</Operator><Implicit Output>c</Implicit Output><Operator>:</Operator><Normal> </Normal><Rule Name>b</Rule Name><Dependancy> a.c </Dependancy><Operator>||</Operator><Implicit Dependancy> a </Implicit Dependancy><Operator>|</Operator><Implicit Dependancy> b</Implicit Dependancy><br/>
68<Normal></Normal><br/>
69<Keyword>build</Keyword><Normal> a.o </Normal><Operator>|</Operator><Implicit Output> c </Implicit Output><Operator>:</Operator><Normal> </Normal><Rule Name>b</Rule Name><Dependancy> a.c </Dependancy><Operator>|</Operator><Implicit Dependancy> a </Implicit Dependancy><Operator>||</Operator><Implicit Dependancy> b</Implicit Dependancy><br/>
70<Normal></Normal><br/>
71<Keyword>build</Keyword><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>a</Variable><Normal>.o </Normal><Operator>|</Operator><Implicit Output> </Implicit Output><Variable Delimiter>$</Variable Delimiter><Variable>c</Variable><Implicit Output> </Implicit Output><Operator>:</Operator><Normal> </Normal><Rule Name>b</Rule Name><Dependancy> </Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>a</Variable><Dependancy>.c </Dependancy><Operator>|</Operator><Implicit Dependancy> </Implicit Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>a</Variable><Implicit Dependancy> </Implicit Dependancy><Operator>||</Operator><Implicit Dependancy> </Implicit Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>b</Variable><br/>
72<Normal></Normal><br/>
73<Keyword>build</Keyword><Normal> 0</Normal><Operator>:</Operator><Normal> </Normal><Rule Name>sleep</Rule Name><Dependancy> README</Dependancy><br/>
74<Normal></Normal><br/>
75<Keyword>build</Keyword><Normal> 1</Normal><Operator>:</Operator><Normal> </Normal><Rule Name>sleep</Rule Name><Dependancy> README</Dependancy><br/>
76<Normal></Normal><br/>
77<Keyword>build</Keyword><Normal> all</Normal><Operator>:</Operator><Normal> </Normal><Special Rule Name>phony</Special Rule Name><Dependancy> 0 1</Dependancy><br/>
78<Key>deps</Key><Normal> </Normal><Operator>=</Operator><Normal> xxx</Normal><br/>
79<Key>CMD</Key><Normal> </Normal><Operator>=</Operator><Normal> cc</Normal><br/>
80<Keyword>build</Keyword><Normal> all</Normal><Operator>:</Operator><Normal> </Normal><Special Rule Name>phony</Special Rule Name><Dependancy> 0 1</Dependancy><br/>
81<Normal></Normal><br/>
82<Keyword>build</Keyword><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Normal>/browse_py.h</Normal><Operator>:</Operator><Normal> </Normal><Rule Name>inline</Rule Name><Dependancy> </Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>root</Variable><Dependancy>/src/browse.py </Dependancy><Operator>|</Operator><Implicit Dependancy> </Implicit Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>root</Variable><Implicit Dependancy>/src/inline.sh</Implicit Dependancy><br/>
83<Normal>  </Normal><Key>varname</Key><Normal> </Normal><Operator>=</Operator><Normal> kBrowsePy</Normal><br/>
84<Normal></Normal><br/>
85<Keyword>build</Keyword><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Normal>/subprocess-posix.o</Normal><Operator>:</Operator><Normal> </Normal><Rule Name>cxx</Rule Name><Dependancy> </Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>root</Variable><Dependancy>/src/subprocess-posix.cc</Dependancy><br/>
86<Keyword>build</Keyword><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Normal>/libninja.a</Normal><Operator>:</Operator><Normal> </Normal><Rule Name>ar</Rule Name><Dependancy> </Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Dependancy>/browse.o </Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Dependancy>/build.o </Dependancy><Line Continuation>$</Line Continuation><br/>
87<Line Continuation>    </Line Continuation><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Dependancy>/build_log.o </Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Dependancy>/clean.o </Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Dependancy>/debug_flags.o </Dependancy><Line Continuation>$</Line Continuation><br/>
88<Line Continuation>    </Line Continuation><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Dependancy>/depfile_parser.o </Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Dependancy>/deps_log.o</Dependancy><br/>
89<Normal></Normal><br/>
90<Keyword>build</Keyword><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>root</Variable><Normal>/doc/manual.pdf</Normal><Operator>:</Operator><Normal> </Normal><Rule Name>dblatex</Rule Name><Dependancy> </Dependancy><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><Dependancy>/manual.xml </Dependancy><Operator>|</Operator><Implicit Dependancy> </Implicit Dependancy><Line Continuation>$</Line Continuation><br/>
91<Line Continuation>    </Line Continuation><Variable Delimiter>$</Variable Delimiter><Variable>root</Variable><Implicit Dependancy>/doc/dblatex.xsl</Implicit Dependancy><br/>
92<Normal></Normal><br/>
93<Special Key>builddir</Special Key><Operator>=</Operator><Normal>/</Normal><br/>
94<Special Key>builddir</Special Key><Normal> </Normal><Operator>=</Operator><Normal>/</Normal><br/>
95<Special Key>builddir</Special Key><Operator>=</Operator><Normal> /</Normal><br/>
96<Key>ldflags</Key><Normal> </Normal><Operator>=</Operator><Normal> -L</Normal><Variable Delimiter>$</Variable Delimiter><Variable>builddir</Variable><br/>
97<Normal></Normal><br/>
98<Key>xx</Key><Normal> </Normal><Error>x</Error><br/>
99<Normal></Normal><br/>
100<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>a</Variable><br/>
101<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>-a_</Variable><br/>
102<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>${</Variable Delimiter><Variable>a</Variable><Variable Delimiter>}</Variable Delimiter><br/>
103<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>${</Variable Delimiter><Variable>-a</Variable><Variable Delimiter>}</Variable Delimiter><br/>
104<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>a</Variable><Normal>@</Normal><br/>
105<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Error>@</Error><br/>
106<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Special Char>$$</Special Char><br/>
107<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Special Char>$:</Special Char><br/>
108<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Special Char>$ </Special Char><Normal>a</Normal><br/>
109<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Line Continuation>$</Line Continuation><br/>
110<Line Continuation>    </Line Continuation><Normal>b</Normal><br/>
111<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Line Continuation>$</Line Continuation><br/>
112<Line Continuation>    $</Line Continuation><br/>
113<Line Continuation>    </Line Continuation><Normal>a</Normal><br/>
114<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Line Continuation>$</Line Continuation><br/>
115<Line Continuation>    </Line Continuation><Variable Delimiter>$</Variable Delimiter><Variable>a</Variable><br/>
116<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Variable>a</Variable><Normal> a</Normal><br/>
117<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>${</Variable Delimiter><Variable>a</Variable><Variable Delimiter>}</Variable Delimiter><Normal> a</Normal><br/>
118<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Special Char>$$</Special Char><Normal> a</Normal><br/>
119<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Special Char>$:</Special Char><Normal> a</Normal><br/>
120<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>$</Variable Delimiter><Error>! a</Error><br/>
121<Key>x</Key><Normal> </Normal><Operator>=</Operator><Normal> </Normal><Variable Delimiter>${</Variable Delimiter><Variable>a</Variable><Error> b ds</Error><br/>
122<Normal> </Normal><Error>x = a</Error><br/>
123