comparison docs/manual.docbook.sgml @ 111:c0aedb1584af

Updated manual to describe nolist pragma and pragma stacks
author lost@l-w.ca
date Sun, 07 Aug 2011 10:49:28 -0600
parents 99ce348b0e6b
children 8e2523061ce9
comparison
equal deleted inserted replaced
110:38c1537857ce 111:c0aedb1584af
1440 support this directive. Use this variation if the pragma is not required 1440 support this directive. Use this variation if the pragma is not required
1441 for correct functioning of the code. 1441 for correct functioning of the code.
1442 </para> 1442 </para>
1443 </listitem> 1443 </listitem>
1444 </varlistentry> 1444 </varlistentry>
1445
1446 <varlistentry>
1447 <term>*PRAGMAPUSH <parameter>pragma[,...]</parameter></term>
1448 <listitem>
1449 <para>
1450 This directive saves the current state of the specified pragma(s) for later retrieval. See discussion below for more information.
1451 </para>
1452
1453 <para>This directive will not throw any errors for any reason.</para>
1454
1455 </listitem>
1456 </varlistentry>
1457
1458 <varlistentry>
1459 <term>*PRAGMAPOP <parameter>pragma[,...]</parameter></term>
1460 <listitem>
1461 <para>
1462 This directive restores the previously saved state of the specified pragma(s). See discussion below for more information.
1463 </para>
1464
1465 <para>This directive will not throw any errors for any reason.</para>
1466
1467 </listitem>
1468 </varlistentry>
1445 </variablelist> 1469 </variablelist>
1446 1470
1447 <para>Each pragma supported has a positive version and a negative version. 1471 <para>Each pragma supported has a positive version and a negative version.
1448 The positive version enables the pragma while the negative version disables 1472 The positive version enables the pragma while the negative version disables
1449 it. The negatitve version is simply the positive version with "no" prefixed 1473 it. The negatitve version is simply the positive version with "no" prefixed
1566 is of dubious utility, it is disabled by default.</para> 1590 is of dubious utility, it is disabled by default.</para>
1567 1591
1568 </listitem> 1592 </listitem>
1569 </varlistentry> 1593 </varlistentry>
1570 1594
1595 <varlistentry>
1596 <term>nolist</term>
1597 <listitem>
1598
1599 <para>Lines where this pragma is in effect will not appear in the assembly
1600 listing. Also, any symbols defined under this pragma will not show up in
1601 the symbol list. This is most useful in include files to avoid spamming the
1602 assembly listing with dozens, hundreds, or thousands of irrelevant
1603 symbols.</para>
1604
1605 </listitem>
1606 </varlistentry>
1607
1571 </variablelist> 1608 </variablelist>
1609
1610 <para>As a convenience, each input file has a pragma state stack. This
1611 allows, through the use of *PRAGMAPUSH and *PRAGMAPOP, a file to change a
1612 pragma state and then restore it to the precise state it had previously.
1613 If, at the end of an input file, all pragma states have not been popped,
1614 they will be removed from the stack. Thus, it is critical to employ
1615 *PRAGMAPOP correctly. Because each input file has its own pragma stack,
1616 using *PRAGMAPUSH in one file and *PRAGMAPOP in another file will not
1617 work.</para>
1618
1619 <para>Pragma stacks are more useful in include files, in particular in
1620 conjunction with the nolist pragma. One can push the state of the nolist
1621 pragma, engage the nolist pragma, and then pop the state of the nolist
1622 pragma at the end of the include file. This will cause the entire include
1623 file to operate under the nolist pragma. However, if the file is included
1624 while nolist is already engaged, it will not undo that state.</para>
1625
1626
1572 1627
1573 </section> 1628 </section>
1574 1629
1575 </chapter> 1630 </chapter>
1576 1631