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