]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/help/C/sec_usernotation.html
Manual(s) fixed and committed to avoid rebuilding them in dune
[helm.git] / matita / matita / help / C / sec_usernotation.html
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 5. Extending the syntax</title><link rel="stylesheet" type="text/css" href="docbook.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Matita V0.99.5 User Manual (rev. 0.99.5 )" /><link rel="up" href="index.html" title="Matita V0.99.5 User Manual (rev. 0.99.5 )" /><link rel="prev" href="tacticargs.html" title="Tactic arguments" /><link rel="next" href="ch05s02.html" title="interpretation" /></head><body><a xmlns="" href="../../../"><div class="matita_logo"><img src="figures/matita.png" alt="Tiny Matita logo" /><span>Matita Home</span></div></a><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Extending the syntax</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="tacticargs.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch05s02.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="sec_usernotation"></a>Chapter 5. Extending the syntax</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="sect1"><a href="sec_usernotation.html#idm1489">notation</a></span></dt><dt><span class="sect1"><a href="ch05s02.html">interpretation</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm1489"></a>notation</h2></div></div></div><p><strong class="userinput"><code>notation usage "presentation" associativity with precedence p for content</code></strong></p><p><a id="notation"></a>
3     </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Synopsis:</span></dt><dd><p><span class="bold"><strong>notation</strong></span>
4            [<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.usage">usage</a></em></span>] <span class="bold"><strong>"</strong></span><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.notation_lhs">notation_lhs</a></em></span><span class="bold"><strong>"</strong></span> [<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.associativity">associativity</a></em></span>] <span class="bold"><strong>with</strong></span> <span class="bold"><strong>precedence</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.nat">nat</a></em></span>
5            <span class="bold"><strong>for</strong></span>
6            <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.notation_rhs">notation_rhs</a></em></span>
7           </p></dd><dt><span class="term">Action:</span></dt><dd><p>Declares a mapping between the presentation
8           AST <span class="command"><strong>presentation</strong></span> and the content AST
9           <span class="command"><strong>content</strong></span>. The declared presentation AST fragment
10           <span class="command"><strong>presentation</strong></span> is at precedence level
11           <span class="command"><strong>p</strong></span>. The precedence level is used to determine where
12           parentheses must be inserted. In particular, the content AST fragment
13           <span class="command"><strong>content</strong></span> is actually a pattern, since it contains
14           placeholders (variables) for sub-ASTs. Every placeholder for a term
15           is given an expected precedence level. Parentheses must be inserted
16           around sub-ASTs having a precedence level strictly smaller than the
17           expected one.</p><p>If <span class="command"><strong>presentation</strong></span> describes a binary
18           infix operator and if no precedence level is explicitly given for the
19           operator arguments, an <span class="command"><strong>associativity</strong></span> declaration
20           can be given to automatically choose the right level for the operands.
21           Otherwise, no <span class="command"><strong>associativity</strong></span> can be given.</p><p>If <span class="command"><strong>direction</strong></span> is
22           omitted, the mapping is bi-directional and is used both during
23           parsing and pretty-printing of terms. If <span class="command"><strong>direction</strong></span>
24           is <span class="command"><strong>&gt;</strong></span>, the mapping is used only during parsing;
25           if it is <span class="command"><strong>&lt;</strong></span>, it is used only during
26           pretty-printing. Thus it is possible to use simple notations to type
27           for writing the term, and nicer ones for rendering it.</p></dd><dt><span class="term">Notation arguments:</span></dt><dd><div class="table"><a id="idm1537"></a><p class="title"><strong>Table 5.1. usage</strong></p><div class="table-contents"><table class="table" summary="usage" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.usage"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.usage">usage</a></em></span></td><td style="">::=</td><td style=""><span class="bold"><strong>&lt;</strong></span></td><td style="">Only for pretty-printing</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>&gt;</strong></span></td><td style="">Only for parsing</td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm1555"></a><p class="title"><strong>Table 5.2. associativity</strong></p><div class="table-contents"><table class="table" summary="associativity" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.associativity"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.associativity">associativity</a></em></span></td><td style="">::=</td><td style=""><span class="bold"><strong>left</strong></span> <span class="bold"><strong>associative</strong></span></td><td style="">Left associative</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>right</strong></span> <span class="bold"><strong>associative</strong></span></td><td style="">Right associative</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>non</strong></span> <span class="bold"><strong>associative</strong></span></td><td style="">Non associative (default)</td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm1582"></a><p class="title"><strong>Table 5.3. notation_rhs</strong></p><div class="table-contents"><table class="table" summary="notation_rhs" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.notation_rhs"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.notation_rhs">notation_rhs</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.unparsed_ast">unparsed_ast</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.unparsed_meta">unparsed_meta</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm1604"></a><p class="title"><strong>Table 5.4. unparsed_ast</strong></p><div class="table-contents"><table class="table" summary="unparsed_ast" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.unparsed_ast"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.unparsed_ast">unparsed_ast</a></em></span></td><td style="">::=</td><td style=""><span class="bold"><strong>@{</strong></span><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.enriched_term">enriched_term</a></em></span><span class="bold"><strong>}</strong></span></td><td style="">A content level AST (a term which is parsed, but not disambiguated).</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>@</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style=""><span class="command"><strong>@id</strong></span> is just an abbreviation for <span class="command"><strong>@{id}</strong></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>@</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.csymbol">csymbol</a></em></span></td><td style=""><span class="command"><strong>@'symbol</strong></span> is just an abbreviation for <span class="command"><strong>@{'symbol}</strong></span></td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm1639"></a><p class="title"><strong>Table 5.5. enriched_term</strong></p><div class="table-contents"><table class="table" summary="enriched_term" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.enriched_term"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.enriched_term">enriched_term</a></em></span></td><td style="">::=</td><td style="">〈〈A term that may contain occurrences of <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.unparsed_meta">unparsed_meta</a></em></span>, even as variable names in binders, and occurrences of <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.csymbol">csymbol</a></em></span>〉〉</td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm1655"></a><p class="title"><strong>Table 5.6. unparsed_meta</strong></p><div class="table-contents"><table class="table" summary="unparsed_meta" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.unparsed_meta"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.unparsed_meta">unparsed_meta</a></em></span></td><td style="">::=</td><td style=""><span class="bold"><strong>${</strong></span><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.level2_meta">level2_meta</a></em></span><span class="bold"><strong>}</strong></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>$</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style=""><span class="command"><strong>$id</strong></span> is just an abbreviation for <span class="command"><strong>${id}</strong></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>$</strong></span><span class="bold"><strong>_</strong></span></td><td style=""><span class="command"><strong>$_</strong></span> is just an abbreviation for <span class="command"><strong>${_}</strong></span></td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm1690"></a><p class="title"><strong>Table 5.7. level2_meta</strong></p><div class="table-contents"><table class="table" summary="level2_meta" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.level2_meta"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.level2_meta">level2_meta</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.unparsed_ast">unparsed_ast</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>term</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.nat">nat</a></em></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>number</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>ident</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>fresh</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>anonymous</strong></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>fold</strong></span> [<span class="bold"><strong>left</strong></span>|<span class="bold"><strong>right</strong></span>] <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.level2_meta">level2_meta</a></em></span> <span class="bold"><strong>rec</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.level2_meta">level2_meta</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>default</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.level2_meta">level2_meta</a></em></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.level2_meta">level2_meta</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>if</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.level2_meta">level2_meta</a></em></span> <span class="bold"><strong>then</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.level2_meta">level2_meta</a></em></span> <span class="bold"><strong>else</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.level2_meta">level2_meta</a></em></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>fail</strong></span></td><td style=""><span class="emphasis"><em>TODO</em></span></td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm1806"></a><p class="title"><strong>Table 5.8. notation_lhs</strong></p><div class="table-contents"><table class="table" summary="notation_lhs" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.notation_lhs"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.notation_lhs">notation_lhs</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> [<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>]…</td><td class="auto-generated" style=""> </td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm1820"></a><p class="title"><strong>Table 5.9. layout</strong></p><div class="table-contents"><table class="table" summary="layout" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.layout"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="bold"><strong>\sub</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style="">Subscript</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="bold"><strong>\sup</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style="">Superscript</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="bold"><strong>\below</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style=""> </td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="bold"><strong>\above</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style=""> </td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="bold"><strong>\over</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style=""> </td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="bold"><strong>\atop</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style=""> </td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="bold"><strong>\frac</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style="">Fraction</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>\infrule</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style="">Inference rule (premises, conclusion, rule name)</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>\sqrt</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style="">Square root</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>\root</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> <span class="bold"><strong>\of</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style="">Generalized root</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>hbox</strong></span> <span class="bold"><strong>(</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> [<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>]… <span class="bold"><strong>)</strong></span></td><td style="">Horizontal box</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>vbox</strong></span> <span class="bold"><strong>(</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> [<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>]… <span class="bold"><strong>)</strong></span></td><td style="">Vertical box</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>hvbox</strong></span> <span class="bold"><strong>(</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> [<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>]… <span class="bold"><strong>)</strong></span></td><td style="">Horizontal and vertical box</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>hovbox</strong></span> <span class="bold"><strong>(</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> [<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>]… <span class="bold"><strong>)</strong></span></td><td style="">Horizontal or vertical box</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>break</strong></span></td><td style="">Breakable space</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>(</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span> [<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>]… <span class="bold"><strong>)</strong></span></td><td style="">Group</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style="">Placeholder for a term with no explicit precedence</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>term</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.nat">nat</a></em></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style="">Placeholder for a term with explicit expected precedence</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>number</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style="">Placeholder for a natural number</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>ident</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style="">Placeholder for an identifier</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.literal">literal</a></em></span></td><td style="">Literal</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>opt</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span></td><td style="">Optional layout (it can be omitted for parsing)</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>list0</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>
28                [<span class="bold"><strong>sep</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.literal">literal</a></em></span>]</td><td style="">List of layouts separated by <span class="command"><strong>sep</strong></span> (default:
29                any blank)</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>list1</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>
30                [<span class="bold"><strong>sep</strong></span> <span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.literal">literal</a></em></span>]</td><td style="">Non empty list of layouts separated by <span class="command"><strong>sep</strong></span>
31                (default: any blank)</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>mstyle</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span> value (<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>)
32         </td><td style="">Style attributes like color #ff0000</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>mpadded</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span> value (<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>)
33         </td><td style="">padding attributes like width -150%</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>maction</strong></span> (<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>)
34                 [ (<span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.layout">layout</a></em></span>) … ]
35         </td><td style="">Alternative notations (output only)</td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm2094"></a><p class="title"><strong>Table 5.10. literal</strong></p><div class="table-contents"><table class="table" summary="literal" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.literal"></a><span class="emphasis"><em><a class="link" href="sec_usernotation.html#grammar.literal">literal</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.symbol">symbol</a></em></span></td><td style="">Unicode symbol</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.nat">nat</a></em></span></td><td style="">Natural number (a constant)</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>'</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span><span class="bold"><strong>'</strong></span></td><td style="">New keyword for the lexer</td></tr></tbody></table></div></div><br class="table-break" /></dd></dl></div><p>
36   </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tacticargs.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch05s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Tactic arguments </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> interpretation</td></tr></table></div></body></html>