Sophie

Sophie

distrib > Fedora > 19 > i386 > by-pkgid > 6141746cd5048a6ddf1cf3194274ce61 > files > 781

ghc-Agda-devel-2.3.2.1-5.fc19.i686.rpm

<!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>Agda.Syntax.Concrete.Operators</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Agda-Syntax-Concrete-Operators.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Agda-Syntax-Concrete-Operators.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Agda-2.3.2.1: A dependently typed functional programming language and proof assistant</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Agda.Syntax.Concrete.Operators</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The parser doesn't know about operators and parses everything as normal
    function application. This module contains the functions that parses the
    operators properly. For a stand-alone implementation of this see
    <code>src/prototyping/mixfix/old</code>.
</p><p>It also contains the function that puts parenthesis back given the
    precedence of the context.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:parseApplication">parseApplication</a> :: [<a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a>] -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a></li><li class="src short"><a href="#v:parseLHS">parseLHS</a> :: <a href="Agda-Syntax-Concrete-Name.html#t:Name">Name</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> <a href="Agda-Syntax-Concrete.html#t:LHSCore">LHSCore</a></li><li class="src short"><a href="#v:parsePattern">parsePattern</a> :: <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a></li><li class="src short"><a href="#v:parsePatternSyn">parsePatternSyn</a> :: <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a></li><li class="src short"><a href="#v:paren">paren</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a> -&gt; m <a href="Agda-Syntax-Fixity.html#t:Fixity">Fixity</a>) -&gt; <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a> -&gt; m (<a href="Agda-Syntax-Fixity.html#t:Precedence">Precedence</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a>)</li><li class="src short"><a href="#v:mparen">mparen</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a></li><li class="src short"><a href="#v:validConPattern">validConPattern</a> :: [<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a>] -&gt; <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:patternAppView">patternAppView</a> :: <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; [<a href="Agda-Syntax-Common.html#t:NamedArg">NamedArg</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a>]</li><li class="src short"><a href="#v:fullParen">fullParen</a> :: <a href="Agda-Syntax-Concrete-Operators-Parser.html#t:IsExpr">IsExpr</a> e =&gt; e -&gt; e</li><li class="src short"><a href="#v:buildParser">buildParser</a> :: <span class="keyword">forall</span> e. <a href="Agda-Syntax-Concrete-Operators-Parser.html#t:IsExpr">IsExpr</a> e =&gt; <a href="Agda-Syntax-Position.html#t:Range">Range</a> -&gt; FlatScope -&gt; <a href="Agda-Syntax-Concrete-Operators.html#t:UseBoundNames">UseBoundNames</a> -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> (<a href="Agda-Utils-ReadP.html#t:ReadP">ReadP</a> e e)</li><li class="src short"><a href="#v:parsePat">parsePat</a> :: <a href="Agda-Utils-ReadP.html#t:ReadP">ReadP</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; [<a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a>]</li><li class="src short"><a href="#v:getDefinedNames">getDefinedNames</a> :: [<a href="Agda-Syntax-Scope-Base.html#t:KindOfName">KindOfName</a>] -&gt; FlatScope -&gt; [(<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a>, <a href="Agda-Syntax-Fixity.html#t:Fixity-39-">Fixity'</a>)]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:UseBoundNames">UseBoundNames</a> <ul class="subs"><li>= <a href="#v:UseBoundNames">UseBoundNames</a>  </li><li>| <a href="#v:DontUseBoundNames">DontUseBoundNames</a>  </li></ul></li><li class="src short"><a href="#v:qualifierModules">qualifierModules</a> :: [<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a>] -&gt; [[<a href="Agda-Syntax-Concrete-Name.html#t:Name">Name</a>]]</li><li class="src short"><a href="#v:patternQNames">patternQNames</a> :: <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; [<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:parseApplication" class="def">parseApplication</a> :: [<a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a>] -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a><a href="src/Agda-Syntax-Concrete-Operators.html#parseApplication" class="link">Source</a></p><div class="doc"><p>Parse a list of expressions into an application.
</p></div></div><div class="top"><p class="src"><a name="v:parseLHS" class="def">parseLHS</a> :: <a href="Agda-Syntax-Concrete-Name.html#t:Name">Name</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> <a href="Agda-Syntax-Concrete.html#t:LHSCore">LHSCore</a><a href="src/Agda-Syntax-Concrete-Operators.html#parseLHS" class="link">Source</a></p><div class="doc"><p>Parses a left-hand side, and makes sure that it defined the expected name.
   TODO: check the arities of constructors. There is a possible ambiguity with
   postfix constructors:
      Assume _ * is a constructor. Then 'true *' can be parsed as either the
      intended _* applied to true, or as true applied to a variable *. If we
      check arities this problem won't appear.
</p></div></div><div class="top"><p class="src"><a name="v:parsePattern" class="def">parsePattern</a> :: <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a><a href="src/Agda-Syntax-Concrete-Operators.html#parsePattern" class="link">Source</a></p><div class="doc"><p>Parses a pattern.
   TODO: check the arities of constructors. There is a possible ambiguity with
   postfix constructors:
      Assume _ * is a constructor. Then 'true *' can be parsed as either the
      intended _* applied to true, or as true applied to a variable *. If we
      check arities this problem won't appear.
</p></div></div><div class="top"><p class="src"><a name="v:parsePatternSyn" class="def">parsePatternSyn</a> :: <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a><a href="src/Agda-Syntax-Concrete-Operators.html#parsePatternSyn" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:paren" class="def">paren</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a> -&gt; m <a href="Agda-Syntax-Fixity.html#t:Fixity">Fixity</a>) -&gt; <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a> -&gt; m (<a href="Agda-Syntax-Fixity.html#t:Precedence">Precedence</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a>)<a href="src/Agda-Syntax-Concrete-Operators.html#paren" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:mparen" class="def">mparen</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Expr">Expr</a><a href="src/Agda-Syntax-Concrete-Operators.html#mparen" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:validConPattern" class="def">validConPattern</a> :: [<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a>] -&gt; <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Agda-Syntax-Concrete-Operators.html#validConPattern" class="link">Source</a></p><div class="doc"><p>Helper function for <code><a href="Agda-Syntax-Concrete-Operators.html#v:parseLHS">parseLHS</a></code> and <code><a href="Agda-Syntax-Concrete-Operators.html#v:parsePattern">parsePattern</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:patternAppView" class="def">patternAppView</a> :: <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; [<a href="Agda-Syntax-Common.html#t:NamedArg">NamedArg</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a>]<a href="src/Agda-Syntax-Concrete-Operators.html#patternAppView" class="link">Source</a></p><div class="doc"><p>View a pattern <code>p</code> as a list <code>p0 .. pn</code> where <code>p0</code> is the identifier
   (in most cases a constructor).
</p><p>Pattern needs to be parsed already (operators resolved).
</p></div></div><div class="top"><p class="src"><a name="v:fullParen" class="def">fullParen</a> :: <a href="Agda-Syntax-Concrete-Operators-Parser.html#t:IsExpr">IsExpr</a> e =&gt; e -&gt; e<a href="src/Agda-Syntax-Concrete-Operators.html#fullParen" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:buildParser" class="def">buildParser</a> :: <span class="keyword">forall</span> e. <a href="Agda-Syntax-Concrete-Operators-Parser.html#t:IsExpr">IsExpr</a> e =&gt; <a href="Agda-Syntax-Position.html#t:Range">Range</a> -&gt; FlatScope -&gt; <a href="Agda-Syntax-Concrete-Operators.html#t:UseBoundNames">UseBoundNames</a> -&gt; <a href="Agda-Syntax-Scope-Monad.html#t:ScopeM">ScopeM</a> (<a href="Agda-Utils-ReadP.html#t:ReadP">ReadP</a> e e)<a href="src/Agda-Syntax-Concrete-Operators.html#buildParser" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:parsePat" class="def">parsePat</a> :: <a href="Agda-Utils-ReadP.html#t:ReadP">ReadP</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; [<a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a>]<a href="src/Agda-Syntax-Concrete-Operators.html#parsePat" class="link">Source</a></p><div class="doc"><p>Returns the list of possible parses.
</p></div></div><div class="top"><p class="src"><a name="v:getDefinedNames" class="def">getDefinedNames</a> :: [<a href="Agda-Syntax-Scope-Base.html#t:KindOfName">KindOfName</a>] -&gt; FlatScope -&gt; [(<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a>, <a href="Agda-Syntax-Fixity.html#t:Fixity-39-">Fixity'</a>)]<a href="src/Agda-Syntax-Concrete-Operators.html#getDefinedNames" class="link">Source</a></p><div class="doc"><p>Compute all unqualified defined names in scope and their fixities.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:UseBoundNames" class="def">UseBoundNames</a>  <a href="src/Agda-Syntax-Concrete-Operators.html#UseBoundNames" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:UseBoundNames" class="def">UseBoundNames</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DontUseBoundNames" class="def">DontUseBoundNames</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:qualifierModules" class="def">qualifierModules</a> :: [<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a>] -&gt; [[<a href="Agda-Syntax-Concrete-Name.html#t:Name">Name</a>]]<a href="src/Agda-Syntax-Concrete-Operators.html#qualifierModules" class="link">Source</a></p><div class="doc"><p>Return all qualifiers occuring in a list of <code><a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a></code>s.
   Each qualifier is returned as a list of names, e.g.
   for <code>Data.Nat._+_</code> we return the list <code>[Data,Nat]</code>.
</p></div></div><div class="top"><p class="src"><a name="v:patternQNames" class="def">patternQNames</a> :: <a href="Agda-Syntax-Concrete.html#t:Pattern">Pattern</a> -&gt; [<a href="Agda-Syntax-Concrete-Name.html#t:QName">QName</a>]<a href="src/Agda-Syntax-Concrete-Operators.html#patternQNames" class="link">Source</a></p><div class="doc"><p>Collect all names in a pattern into a list of qualified names.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>