/fparsec/main/Doc/html/reference/error.html

http://github.com/sandersn/fing · HTML · 955 lines · 932 code · 17 blank · 6 comment · 0 complexity · 26a00c1049e17ca4ac4ce91fcf8ec2e5 MD5 · raw file

Large files are truncated click here to view the full file

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>FParsec.Error</title>
  6. <link rel="stylesheet" type="text/css" media="all" href="../css/style.css" />
  7. <link rel="stylesheet" type="text/css" media="screen" href="../css/screen-sidebar.css" title="Sidebar" />
  8. <link rel="alternate stylesheet" type="text/css" media="screen" href="../css/screen-no-sidebar.css" title="No sidebar" />
  9. <!--[if IE]>
  10. <link rel="stylesheet" type="text/css" media="all" href="../css/style-ie.css" />
  11. <![endif]-->
  12. <!--[if IE 6]>
  13. <link rel="stylesheet" type="text/css" media="all" href="../css/style-ie6.css" />
  14. <![endif]-->
  15. <link rel="stylesheet" type="text/css" media="print" href="../css/print.css" />
  16. </head>
  17. <body>
  18. <div id="fixed-layer">
  19. <div id="fixed-wrapper">
  20. <div id="sidebar">
  21. <div id="breadcrumbs-dummy"><span class="breadcrumbs">&nbsp;</span></div>
  22. <div id="nav-tree">
  23. <table class="nav n1">
  24. <tbody class="nav-open n1">
  25. <tr class="nav-entry n1 _1">
  26. <td class="nav-number n1"></td>
  27. <td class="nav-title n1"><a href="../index.html">FParsec Documentation</a></td>
  28. </tr>
  29. <tr class="nav-sub-entries n1 _1">
  30. <td class="nav-sub-entries-number n1"></td>
  31. <td class="nav-sub-entries n1">
  32. <table class="nav n2">
  33. <tbody class="nav-before-open n2">
  34. <tr class="nav-entry n2 _1">
  35. <td class="nav-number n2"><a href="../tutorial.html"><span class="section-number">1</span><span class="nav-space"></span></a></td>
  36. <td class="nav-title n2"><a href="../tutorial.html">Tutorial</a></td>
  37. </tr>
  38. </tbody>
  39. <tbody class="nav-open n2">
  40. <tr class="nav-entry n2 _2">
  41. <td class="nav-number n2"><a href="index.html"><span class="section-number">2</span><span class="nav-space"></span></a></td>
  42. <td class="nav-title n2"><a href="index.html">Reference</a></td>
  43. </tr>
  44. <tr class="nav-sub-entries n2 _2">
  45. <td class="nav-sub-entries-number n2"></td>
  46. <td class="nav-sub-entries n2">
  47. <table class="nav n3">
  48. <tbody class="nav-before-open n3">
  49. <tr class="nav-entry n3 _1">
  50. <td class="nav-number n3"><a href="parser-overview.html"><span class="section-number">1</span><span class="nav-space"></span></a></td>
  51. <td class="nav-title n3"><a href="parser-overview.html">Parser overview</a></td>
  52. </tr>
  53. <tr class="nav-entry n3 _2">
  54. <td class="nav-number n3"><a href="primitives.html"><span class="section-number">2</span><span class="nav-space"></span></a></td>
  55. <td class="nav-title n3"><a href="primitives.html">FParsec.Primitives</a></td>
  56. </tr>
  57. <tr class="nav-entry n3 _3">
  58. <td class="nav-number n3"><a href="charparsers.html"><span class="section-number">3</span><span class="nav-space"></span></a></td>
  59. <td class="nav-title n3"><a href="charparsers.html">FParsec.CharParsers</a></td>
  60. </tr>
  61. <tr class="nav-entry n3 _4">
  62. <td class="nav-number n3">
  63. <a href="operatorprecedenceparser.html"><span class="section-number">4</span><span class="nav-space"></span></a>
  64. </td>
  65. <td class="nav-title n3"><a href="operatorprecedenceparser.html">FParsec.OperatorPrecedenceParser</a></td>
  66. </tr>
  67. </tbody>
  68. <tbody class="nav-open selected n3">
  69. <tr class="nav-entry selected n3 _5">
  70. <td class="nav-number selected n3"><a href="#"><span class="section-number">5</span><span class="nav-space"></span></a></td>
  71. <td class="nav-title selected n3"><a href="#">FParsec.Error</a></td>
  72. </tr>
  73. <tr class="nav-sub-entries selected n3 _5">
  74. <td class="nav-sub-entries-number selected n3"></td>
  75. <td class="nav-sub-entries selected n3">
  76. <table class="nav n4">
  77. <tbody class="nav-before-open n4">
  78. <tr class="nav-entry n4 _1">
  79. <td class="nav-number n4"><a href="#interface"><span class="section-number">1</span><span class="nav-space"></span></a></td>
  80. <td class="nav-title n4"><a href="#interface">Interface</a></td>
  81. </tr>
  82. <tr class="nav-entry n4 _2">
  83. <td class="nav-number n4"><a href="#members"><span class="section-number">2</span><span class="nav-space"></span></a></td>
  84. <td class="nav-title n4"><a href="#members">Members</a></td>
  85. </tr>
  86. </tbody>
  87. </table>
  88. </td>
  89. </tr>
  90. </tbody>
  91. <tbody class="nav-after-open n3">
  92. <tr class="nav-entry n3 _6">
  93. <td class="nav-number n3"><a href="state.html"><span class="section-number">6</span><span class="nav-space"></span></a></td>
  94. <td class="nav-title n3"><a href="state.html">FParsec.State</a></td>
  95. </tr>
  96. <tr class="nav-entry n3 _7">
  97. <td class="nav-number n3"><a href="position.html"><span class="section-number">7</span><span class="nav-space"></span></a></td>
  98. <td class="nav-title n3"><a href="position.html">FParsec.Position</a></td>
  99. </tr>
  100. <tr class="nav-entry n3 _8">
  101. <td class="nav-number n3"><a href="charstream.html"><span class="section-number">8</span><span class="nav-space"></span></a></td>
  102. <td class="nav-title n3"><a href="charstream.html">FParsec.CharStream</a></td>
  103. </tr>
  104. </tbody>
  105. </table>
  106. </td>
  107. </tr>
  108. </tbody>
  109. </table>
  110. </td>
  111. </tr>
  112. </tbody>
  113. </table>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. <div id="wrapper">
  119. <div id="main">
  120. <div id="main-content">
  121. <div id="breadcrumbs">
  122. <span class="breadcrumbs">
  123. <span id="breadcrumbs-parents"><a href="../index.html">FParsec Documentation</a><span class="breadcrumbs-sep"> > </span><a href="index.html">Reference</a></span><span class="breadcrumbs-sep"> > </span>FParsec.Error
  124. </span>
  125. </div>
  126. <div class="section s2">
  127. <h1 class="title h2"><span class="section-number">2.5</span> FParsec.Error</h1>
  128. <div id="interface" class="section s3">
  129. <h2 class="title h3"><span class="section-number">2.5.1</span> Interface</h2>
  130. <div class="intro i3">
  131. <div class="para _1">
  132. <pre class="code fsharp"><span class="ck">module</span> <span class="ci">FParsec</span><span class="cm">.</span><span class="ci">Error</span>
  133. <span class="ck">type</span> <a id="interface.ErrorMessage:B:" href="#members.ErrorMessage"><span class="interface-member-marker"><span class="ci">ErrorMessage</span></span></a> <span class="co">=</span>
  134. <span class="cp">|</span> <a id="interface.Expected:B:" href="#members.Expected"><span class="interface-member-marker"><span class="ci">Expected</span></span></a> <span class="ck">of</span> <span class="ci">string</span>
  135. <span class="cp">|</span> <a id="interface.ExpectedString:B:" href="#members.ExpectedString"><span class="interface-member-marker"><span class="ci">ExpectedString</span></span></a> <span class="ck">of</span> <span class="ci">string</span>
  136. <span class="cp">|</span> <a id="interface.ExpectedStringCI:B:" href="#members.ExpectedStringCI"><span class="interface-member-marker"><span class="ci">ExpectedStringCI</span></span></a> <span class="ck">of</span> <span class="ci">string</span>
  137. <span class="cp">|</span> <a id="interface.Unexpected:B:" href="#members.Unexpected"><span class="interface-member-marker"><span class="ci">Unexpected</span></span></a> <span class="ck">of</span> <span class="ci">string</span>
  138. <span class="cp">|</span> <a id="interface.UnexpectedString:B:" href="#members.UnexpectedString"><span class="interface-member-marker"><span class="ci">UnexpectedString</span></span></a> <span class="ck">of</span> <span class="ci">string</span>
  139. <span class="cp">|</span> <a id="interface.UnexpectedStringCI:B:" href="#members.UnexpectedStringCI"><span class="interface-member-marker"><span class="ci">UnexpectedStringCI</span></span></a> <span class="ck">of</span> <span class="ci">string</span>
  140. <span class="cp">|</span> <a id="interface.Message:B:" href="#members.Message"><span class="interface-member-marker"><span class="ci">Message</span></span></a> <span class="ck">of</span> <span class="ci">string</span>
  141. <span class="cp">|</span> <a id="interface.CompoundError:B:" href="#members.CompoundError"><span class="interface-member-marker"><span class="ci">CompoundError</span></span></a> <span class="ck">of</span> <span class="ci">string</span> <span class="cp">*</span> <a href="position.html"><span class="ci">Position</span></a> <span class="cp">*</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  142. <span class="cp">|</span> <a id="interface.BacktrackPoint:B:" href="#members.BacktrackPoint"><span class="interface-member-marker"><span class="ci">BacktrackPoint</span></span></a> <span class="ck">of</span> <a href="position.html"><span class="ci">Position</span></a> <span class="cp">*</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  143. <span class="cp">|</span> <a id="interface.OtherError:B:" href="#members.OtherError"><span class="interface-member-marker"><span class="ci">OtherError</span></span></a> <span class="ck">of</span> <a href="http://msdn.microsoft.com/en-us/library/system.icomparable.aspx"><span class="ci">System</span><span class="cm">.</span><span class="ci">IComparable</span></a>
  144. <span class="cp">[&lt;</span><span class="ci">CompilationRepresentation</span><span class="cp">(</span><span class="ci">CompilationRepresentationFlags</span><span class="cm">.</span><span class="ci">UseNullAsTrueValue</span><span class="cp">)</span><span class="cp">;</span>
  145. <span class="ci">CustomEquality</span><span class="cp">;</span> <span class="ci">CustomComparison</span><span class="cp">&gt;]</span>
  146. <span class="ck">type</span> <a id="interface.ErrorMessageList:B:" href="#members.ErrorMessageList"><span class="interface-member-marker"><span class="ci">ErrorMessageList</span></span></a> <span class="co">=</span>
  147. <span class="cp">|</span> <a id="interface.AddErrorMessage:B:" href="#members.AddErrorMessage"><span class="interface-member-marker"><span class="ci">AddErrorMessage</span></span></a> <span class="ck">of</span> <a href="#members.ErrorMessage"><span class="ci">ErrorMessage</span></a> <span class="cp">*</span> <span class="ci">ErrorMessageList</span>
  148. <span class="cp">|</span> <a id="interface.NoErrorMessages:B:" href="#members.NoErrorMessages"><span class="interface-member-marker"><span class="ci">NoErrorMessages</span></span></a>
  149. <span class="ck">with</span>
  150. <span class="ck">member</span> <a id="interface.ToSet:B:" href="#members.ToSet"><span class="interface-member-marker"><span class="ci">ToSet</span></span></a><span class="cp">:</span> <span class="ci">unit</span> <span class="cr">-&gt;</span> <span class="ci">Set</span><span class="cp">&lt;</span><a href="#members.ErrorMessage"><span class="ci">ErrorMessage</span></a><span class="cp">&gt;</span>
  151. <span class="ck">static</span> <span class="ck">member</span> <a id="interface.OfSeq:B:" href="#members.OfSeq"><span class="interface-member-marker"><span class="ci">OfSeq</span></span></a><span class="cp">:</span> <span class="ci">seq</span><span class="cp">&lt;</span><a href="#members.ErrorMessage"><span class="ci">ErrorMessage</span></a><span class="cp">&gt;</span> <span class="cr">-&gt;</span> <span class="ci">ErrorMessageList</span>
  152. <span class="ck">override</span> <span class="ci">Equals</span><span class="cp">:</span> <span class="ci">obj</span> <span class="cr">-&gt;</span> <span class="ci">bool</span>
  153. <span class="ck">override</span> <span class="ci">GetHashCode</span><span class="cp">:</span> <span class="ci">unit</span> <span class="cr">-&gt;</span> <span class="ci">int</span>
  154. <span class="ck">interface</span> <a href="http://msdn.microsoft.com/en-us/library/system.icomparable.aspx"><span class="ci">System</span><span class="cm">.</span><span class="ci">IComparable</span></a>
  155. <span class="ck">val</span> <a id="interface.expectedError:B:" href="#members.expectedError"><span class="interface-member-marker"><span class="ci">expectedError</span></span></a><span class="cp">:</span> <span class="ci">string</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  156. <span class="ck">val</span> <a id="interface.expectedStringError:B:" href="#members.expectedStringError"><span class="interface-member-marker"><span class="ci">expectedStringError</span></span></a><span class="cp">:</span> <span class="ci">string</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  157. <span class="ck">val</span> <a id="interface.expectedStringCIError:B:" href="#members.expectedStringCIError"><span class="interface-member-marker"><span class="ci">expectedStringCIError</span></span></a><span class="cp">:</span> <span class="ci">string</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  158. <span class="ck">val</span> <a id="interface.unexpectedError:B:" href="#members.unexpectedError"><span class="interface-member-marker"><span class="ci">unexpectedError</span></span></a><span class="cp">:</span> <span class="ci">string</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  159. <span class="ck">val</span> <a id="interface.unexpectedStringError:B:" href="#members.unexpectedStringError"><span class="interface-member-marker"><span class="ci">unexpectedStringError</span></span></a><span class="cp">:</span> <span class="ci">string</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  160. <span class="ck">val</span> <a id="interface.unexpectedStringCIError:B:" href="#members.unexpectedStringCIError"><span class="interface-member-marker"><span class="ci">unexpectedStringCIError</span></span></a><span class="cp">:</span> <span class="ci">string</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  161. <span class="ck">val</span> <a id="interface.messageError:B:" href="#members.messageError"><span class="interface-member-marker"><span class="ci">messageError</span></span></a><span class="cp">:</span> <span class="ci">string</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  162. <span class="ck">val</span> <a id="interface.otherError:B:" href="#members.otherError"><span class="interface-member-marker"><span class="ci">otherError</span></span></a><span class="cp">:</span> <span class="ci">obj</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  163. <span class="ck">val</span> <a id="interface.compoundError:B:" href="#members.compoundError"><span class="interface-member-marker"><span class="ci">compoundError</span></span></a><span class="cp">:</span> <span class="ci">string</span> <span class="cr">-&gt;</span> <a href="state.html"><span class="ci">State</span></a><span class="cp">&lt;</span><span class="ctv">'u</span><span class="cp">&gt;</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  164. <span class="ck">val</span> <a id="interface.backtrackError:B:" href="#members.backtrackError"><span class="interface-member-marker"><span class="ci">backtrackError</span></span></a><span class="cp">:</span> <a href="state.html"><span class="ci">State</span></a><span class="cp">&lt;</span><span class="ctv">'u</span><span class="cp">&gt;</span> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  165. <span class="ck">val</span> <a id="interface.concatErrorMessages:B:" href="#members.concatErrorMessages"><span class="interface-member-marker"><span class="ci">concatErrorMessages</span></span></a><span class="cp">:</span>
  166. <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  167. <span class="ck">val</span> <span class="ck">inline</span> <a id="interface.mergeErrors:B:" href="#members.mergeErrors"><span class="interface-member-marker"><span class="ci">mergeErrors</span></span></a><span class="cp">:</span>
  168. <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a> <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  169. <span class="ck">val</span> <a id="interface.mergeErrorsIfNeeded:B:" href="#members.mergeErrorsIfNeeded"><span class="interface-member-marker"><span class="ci">mergeErrorsIfNeeded</span></span></a><span class="cp">:</span>
  170. <span class="ci">oldState</span><span class="cp">:</span> <a href="state.html"><span class="ci">State</span></a><span class="cp">&lt;</span><span class="ctv">'u</span><span class="cp">&gt;</span> <span class="cr">-&gt;</span> <span class="ci">oldError</span><span class="cp">:</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  171. <span class="cr">-&gt;</span> <span class="ci">newState</span><span class="cp">:</span> <a href="state.html"><span class="ci">State</span></a><span class="cp">&lt;</span><span class="ctv">'u</span><span class="cp">&gt;</span> <span class="cr">-&gt;</span> <span class="ci">newError</span><span class="cp">:</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  172. <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  173. <span class="ck">val</span> <a id="interface.mergeErrorsIfNeeded3:B:" href="#members.mergeErrorsIfNeeded3"><span class="interface-member-marker"><span class="ci">mergeErrorsIfNeeded3</span></span></a><span class="cp">:</span>
  174. <span class="ci">oldestState</span><span class="cp">:</span> <a href="state.html"><span class="ci">State</span></a><span class="cp">&lt;</span><span class="ctv">'u</span><span class="cp">&gt;</span> <span class="cr">-&gt;</span> <span class="ci">oldestError</span><span class="cp">:</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  175. <span class="cr">-&gt;</span> <span class="ci">oldState</span><span class="cp">:</span> <a href="state.html"><span class="ci">State</span></a><span class="cp">&lt;</span><span class="ctv">'u</span><span class="cp">&gt;</span> <span class="cr">-&gt;</span> <span class="ci">oldError</span><span class="cp">:</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  176. <span class="cr">-&gt;</span> <span class="ci">newState</span><span class="cp">:</span> <a href="state.html"><span class="ci">State</span></a><span class="cp">&lt;</span><span class="ctv">'u</span><span class="cp">&gt;</span> <span class="cr">-&gt;</span> <span class="ci">newError</span><span class="cp">:</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  177. <span class="cr">-&gt;</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  178. <span class="cp">[&lt;</span><span class="ci">Sealed</span><span class="cp">&gt;]</span>
  179. <span class="ck">type</span> <a id="interface.ParserError:B:" href="#members.ParserError"><span class="interface-member-marker"><span class="ci">ParserError</span></span></a> <span class="co">=</span>
  180. <a id="interface.new:B:" href="#members.new"><span class="interface-member-marker"><span class="ck">new</span></span></a><span class="cp">:</span> <a href="position.html"><span class="ci">Position</span></a> <span class="cp">*</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a> <span class="cr">-&gt;</span> <span class="ci">ParserError</span>
  181. <span class="ck">member</span> <a id="interface.Position:B:" href="#members.Position"><span class="interface-member-marker"><span class="ci">Position</span></span></a><span class="cp">:</span> <a href="position.html"><span class="ci">Position</span></a>
  182. <span class="ck">member</span> <a id="interface.member-ErrorMessageList:B:" href="#members.member-ErrorMessageList"><span class="interface-member-marker"><span class="ci">ErrorMessageList</span></span></a><span class="cp">:</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  183. <a id="interface.ToString:47:WriteTo"></a>
  184. <span class="ck">override</span> <a id="interface.ToString:B:" href="#members.ToString"><span class="interface-member-marker"><span class="ci">ToString</span></span></a><span class="cp">:</span> <span class="ci">unit</span> <span class="cr">-&gt;</span> <span class="ci">string</span>
  185. <span class="ck">member</span> <a id="interface.ToString_CharStream:B:" href="#members.ToString_CharStream"><span class="interface-member-marker"><span class="ci">ToString</span></span></a><span class="cp">:</span> <span class="ci">streamWhereErrorOccurred</span><span class="cp">:</span> <a href="charstream.html"><span class="ci">CharStream</span></a> <span class="cr">-&gt;</span> <span class="ci">string</span>
  186. <span class="ck">member</span> <a id="interface.WriteTo_stream:B:" href="#members.WriteTo_stream"><span class="interface-member-marker"><span class="ci">WriteTo</span></span></a><span class="cp">:</span>
  187. <span class="ci">textWriter</span><span class="cp">:</span> <a href="http://msdn.microsoft.com/en-us/library/system.io.textwriter.aspx"><span class="ci">System</span><span class="cm">.</span><span class="ci">IO</span><span class="cm">.</span><span class="ci">TextWriter</span></a>
  188. <span class="cp">*</span> <span class="ci">streamWhereErrorOccurred</span><span class="cp">:</span> <a href="charstream.html"><span class="ci">CharStream</span></a>
  189. <span class="cp">*</span> <span class="cp">?</span><span class="ci">columnWidth</span><span class="cp">:</span> <span class="ci">int</span>
  190. <span class="cp">*</span> <span class="cp">?</span><span class="ci">initialIndentation</span><span class="cp">:</span> <span class="ci">string</span> <span class="cp">*</span> <span class="cp">?</span><span class="ci">indentationIncrement</span><span class="cp">:</span> <span class="ci">string</span>
  191. <span class="cr">-&gt;</span> <span class="ci">unit</span>
  192. <span class="ck">member</span> <a id="interface.WriteTo_getStreamByName:B:" href="#members.WriteTo_getStreamByName"><span class="interface-member-marker"><span class="ci">WriteTo</span></span></a><span class="cp">:</span>
  193. <span class="ci">textWriter</span><span class="cp">:</span> <a href="http://msdn.microsoft.com/en-us/library/system.io.textwriter.aspx"><span class="ci">System</span><span class="cm">.</span><span class="ci">IO</span><span class="cm">.</span><span class="ci">TextWriter</span></a>
  194. <span class="cp">*</span> <span class="ci">getStreamByName</span><span class="cp">:</span> <span class="cp">(</span><span class="ci">string</span> <span class="cr">-&gt;</span> <a href="charstream.html"><span class="ci">CharStream</span></a><span class="cp">)</span>
  195. <span class="cp">*</span> <span class="cp">?</span><span class="ci">columnWidth</span><span class="cp">:</span> <span class="ci">int</span>
  196. <span class="cp">*</span> <span class="cp">?</span><span class="ci">initialIndentation</span><span class="cp">:</span> <span class="ci">string</span> <span class="cp">*</span> <span class="cp">?</span><span class="ci">indentationIncrement</span><span class="cp">:</span> <span class="ci">string</span>
  197. <span class="cr">-&gt;</span> <span class="ci">unit</span>
  198. <span class="ck">member</span> <a id="interface.WriteTo:B:" href="#members.WriteTo"><span class="interface-member-marker"><span class="ci">WriteTo</span></span></a><span class="cp">:</span>
  199. <span class="ci">textWriter</span><span class="cp">:</span> <a href="http://msdn.microsoft.com/en-us/library/system.io.textwriter.aspx"><span class="ci">System</span><span class="cm">.</span><span class="ci">IO</span><span class="cm">.</span><span class="ci">TextWriter</span></a>
  200. <span class="cp">*</span> <span class="cp">?</span><span class="ci">positionPrinter</span><span class="cp">:</span>
  201. <span class="cp">(</span><a href="http://msdn.microsoft.com/en-us/library/system.io.textwriter.aspx"><span class="ci">System</span><span class="cm">.</span><span class="ci">IO</span><span class="cm">.</span><span class="ci">TextWriter</span></a> <span class="cr">-&gt;</span> <a href="position.html"><span class="ci">Position</span></a> <span class="cr">-&gt;</span> <span class="ci">string</span> <span class="cr">-&gt;</span> <span class="ci">int</span> <span class="cr">-&gt;</span> <span class="ci">unit</span><span class="cp">)</span>
  202. <span class="cp">*</span> <span class="cp">?</span><span class="ci">columnWidth</span><span class="cp">:</span> <span class="ci">int</span>
  203. <span class="cp">*</span> <span class="cp">?</span><span class="ci">initialIndentation</span><span class="cp">:</span> <span class="ci">string</span> <span class="cp">*</span> <span class="cp">?</span><span class="ci">indentationIncrement</span><span class="cp">:</span> <span class="ci">string</span>
  204. <span class="cr">-&gt;</span> <span class="ci">unit</span>
  205. <span class="ck">override</span> <span class="ci">Equals</span><span class="cp">:</span> <span class="ci">obj</span> <span class="cr">-&gt;</span> <span class="ci">bool</span>
  206. <span class="ck">override</span> <span class="ci">GetHashCode</span><span class="cp">:</span> <span class="ci">unit</span> <span class="cr">-&gt;</span> <span class="ci">int</span>
  207. <span class="ck">interface</span> <a href="http://msdn.microsoft.com/en-us/library/system.icomparable.aspx"><span class="ci">System</span><span class="cm">.</span><span class="ci">IComparable</span></a>
  208. </pre>
  209. </div>
  210. </div>
  211. </div>
  212. <div id="members" class="section s3">
  213. <h2 class="title h3"><span class="section-number">2.5.2</span> Members</h2>
  214. <div class="intro i3">
  215. <div class="para _1">
  216. <div class="interface-members">
  217. <div class="interface-member _1" id="members.ErrorMessage">
  218. <div class="interface-member-code">
  219. <a class="interface-member-backlink" href="#interface.ErrorMessage:B:"></a>
  220. <pre class="code fsharp"><span class="ck">type</span> <span class="interface-member-marker"><span class="ci">ErrorMessage</span></span></pre>
  221. </div>
  222. <div class="interface-member-description">
  223. <p class="para _1">
  224. This union type represents an individual error message within the <code class="fsharp"><a href="#members.ErrorMessageList"><span
  225. class="ci">ErrorMessageList</span></a></code> returned by a <code class="fsharp"><a href="primitives.html#members.Parser"><span
  226. class="ci">Parser</span></a></code> function.
  227. </p>
  228. <p class="para _2">
  229. <code class="fsharp"><span class="ci">ErrorMessage</span></code> values are always associated with a particular input stream position. For
  230. example, the error messages of the <code class="fsharp"><a href="#members.ErrorMessageList"><span
  231. class="ci">ErrorMessageList</span></a></code> stored in the <code class="fsharp"><a href="primitives.html#members.Reply"><span
  232. class="ci">Reply</span></a><span class="cp">&lt;</span><span class="ci">_</span><span class="cp">,</span><span class="ci">_</span><span
  233. class="cp">&gt;</span><span class="cp">.</span><a href="primitives.html#members.Error"><span class="ci">Error</span></a></code> field
  234. describe an error at the position of the <code class="fsharp"><a href="primitives.html#members.Reply"><span class="ci">Reply</span></a><span
  235. class="cp">&lt;</span><span class="ci">_</span><span class="cp">,</span><span class="ci">_</span><span class="cp">&gt;</span><span
  236. class="cp">.</span><a href="state.html"><span class="ci">State</span></a></code> value. The <code class="fsharp"><a
  237. href="#members.ParserError"><span class="ci">ParserError</span></a></code> type is a convenient container type for binding together an <code
  238. class="fsharp"><a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a></code> with its associated position.
  239. </p>
  240. <p class="para _3"><code class="fsharp"><span class="ci">ErrorMessage</span></code> has the following union cases:</p>
  241. <div class="para _4">
  242. <div class="interface-members">
  243. <div class="interface-member _1" id="members.Expected">
  244. <div class="interface-member-code">
  245. <a class="interface-member-backlink" href="#interface.Expected:B:"></a>
  246. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">Expected</span></span> <span class="ck">of</span> <span class="ci">string</span>
  247. </pre>
  248. </div>
  249. <div class="interface-member-description">
  250. <p class="para _1">
  251. Parsers report this <code class="fsharp"><span class="ci">ErrorMessage</span></code> when the input does not match the expected input.
  252. The string argument describes the expected input.
  253. </p>
  254. <p class="para _2">
  255. This error message can be generated with the labeling operator <code class="fsharp"><a href="primitives.html#members.:60::63::62:"><span
  256. class="co">&lt;?&gt;</span></a></code>.
  257. </p>
  258. </div>
  259. </div>
  260. <div class="interface-member _2" id="members.ExpectedString">
  261. <div class="interface-member-code">
  262. <a class="interface-member-backlink" href="#interface.ExpectedString:B:"></a>
  263. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">ExpectedString</span></span> <span class="ck">of</span> <span class="ci">string</span>
  264. </pre>
  265. </div>
  266. <div class="interface-member-description">
  267. <p class="para _1">
  268. Parsers report this <code class="fsharp"><span class="ci">ErrorMessage</span></code> when the input does not match an expected string
  269. constant. The constructor argument is the expected string constant.
  270. </p>
  271. <p class="para _2">
  272. This <code class="fsharp"><span class="ci">ErrorMessage</span></code> is mainly generated by the <code class="fsharp"><a
  273. href="charparsers.html#members.pchar"><span class="ci">pchar</span></a></code> and <code class="fsharp"><a
  274. href="charparsers.html#members.pstring"><span class="ci">pstring</span></a></code> parsers and its variants.
  275. </p>
  276. </div>
  277. </div>
  278. <div class="interface-member _3" id="members.ExpectedStringCI">
  279. <div class="interface-member-code">
  280. <a class="interface-member-backlink" href="#interface.ExpectedStringCI:B:"></a>
  281. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">ExpectedStringCI</span></span> <span class="ck">of</span> <span class="ci">string</span>
  282. </pre>
  283. </div>
  284. <div class="interface-member-description">
  285. <p class="para _1">
  286. Parsers report this <code class="fsharp"><span class="ci">ErrorMessage</span></code> when the input does not match an expected
  287. caseinsensitive string constant. The constructor argument is the expected string constant.
  288. </p>
  289. <p class="para _2">
  290. This <code class="fsharp"><span class="ci">ErrorMessage</span></code> is mainly generated by the <code class="fsharp"><a
  291. href="charparsers.html#members.pstringCI"><span class="ci">pstringCI</span></a></code> parsers and its variants.
  292. </p>
  293. </div>
  294. </div>
  295. <div class="interface-member _4" id="members.Unexpected">
  296. <div class="interface-member-code">
  297. <a class="interface-member-backlink" href="#interface.Unexpected:B:"></a>
  298. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">Unexpected</span></span> <span class="ck">of</span> <span class="ci">string</span>
  299. </pre>
  300. </div>
  301. <div class="interface-member-description">
  302. <p class="para _1">
  303. Parsers report this <code class="fsharp"><span class="ci">ErrorMessage</span></code> when they encounter some unexpected input. The
  304. string argument describes the unexpected input.
  305. </p>
  306. <p class="para _2">
  307. This <code class="fsharp"><span class="ci">ErrorMessage</span></code> is mainly generated by the <code class="fsharp"><a
  308. href="primitives.html#members.notFollowedByL"><span class="ci">notFollowedByL</span></a></code> primitive.
  309. </p>
  310. </div>
  311. </div>
  312. <div class="interface-member _5" id="members.UnexpectedString">
  313. <div class="interface-member-code">
  314. <a class="interface-member-backlink" href="#interface.UnexpectedString:B:"></a>
  315. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">UnexpectedString</span></span> <span class="ck">of</span> <span class="ci">string</span>
  316. </pre>
  317. </div>
  318. <div class="interface-member-description">
  319. <p class="para _1">
  320. Parsers report this <code class="fsharp"><span class="ci">ErrorMessage</span></code> when they encounter an unexpected string constant.
  321. The constructor argument is the unexpected string.
  322. </p>
  323. <p class="para _2">
  324. This <code class="fsharp"><span class="ci">ErrorMessage</span></code> is mainly generated by the <code class="fsharp"><a
  325. href="charparsers.html#members.notFollowedByChar"><span class="ci">notFollowedByChar</span></a></code> and <code class="fsharp"><a
  326. href="charparsers.html#members.notFollowedByString"><span class="ci">notFollowedByString</span></a></code> parsers.
  327. </p>
  328. </div>
  329. </div>
  330. <div class="interface-member _6" id="members.UnexpectedStringCI">
  331. <div class="interface-member-code">
  332. <a class="interface-member-backlink" href="#interface.UnexpectedStringCI:B:"></a>
  333. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">UnexpectedStringCI</span></span> <span class="ck">of</span> <span class="ci">string</span>
  334. </pre>
  335. </div>
  336. <div class="interface-member-description">
  337. <p class="para _1">
  338. Parsers report this <code class="fsharp"><span class="ci">ErrorMessage</span></code> when they encounter an unexpected caseinsensitive
  339. string constant. The constructor argument is the unexpected string.
  340. </p>
  341. <p class="para _2">
  342. This <code class="fsharp"><span class="ci">ErrorMessage</span></code> is mainly generated by the <code class="fsharp"><a
  343. href="charparsers.html#members.notFollowedByStringCI"><span class="ci">notFollowedByStringCI</span></a></code> parsers.
  344. </p>
  345. </div>
  346. </div>
  347. <div class="interface-member _7" id="members.Message">
  348. <div class="interface-member-code">
  349. <a class="interface-member-backlink" href="#interface.Message:B:"></a>
  350. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">Message</span></span> <span class="ck">of</span> <span class="ci">string</span>
  351. </pre>
  352. </div>
  353. <div class="interface-member-description">
  354. <p class="para _1">
  355. Parsers report this <code class="fsharp"><span class="ci">ErrorMessage</span></code> when an the error does not fit into the other
  356. categories. The string argument contains the error message.
  357. </p>
  358. <p class="para _2">
  359. This error message can be generated with the <code class="fsharp"><a href="primitives.html#members.fail"><span
  360. class="ci">fail</span></a></code> and <code class="fsharp"><a href="primitives.html#members.failFatally"><span
  361. class="ci">failFatally</span></a></code> primitives.
  362. </p>
  363. </div>
  364. </div>
  365. <div class="interface-member _8" id="members.CompoundError">
  366. <div class="interface-member-code">
  367. <a class="interface-member-backlink" href="#interface.CompoundError:B:"></a>
  368. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">CompoundError</span></span> <span class="ck">of</span> <span class="ci">string</span> <span class="cp">*</span> <a href="position.html"><span class="ci">Position</span></a> <span class="cp">*</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  369. </pre>
  370. </div>
  371. <div class="interface-member-description">
  372. <p class="para _1">
  373. Parsers report this <code class="fsharp"><span class="ci">ErrorMessage</span></code> when a &#x201C;compound&#x201D; failed to parse. The
  374. constructor arguments are a label for the compound parser and the error (<code class="fsharp"><a href="#members.Position"><span
  375. class="ci">Position</span></a></code> + <code class="fsharp"><a href="#members.ErrorMessageList"><span
  376. class="ci">ErrorMessageList</span></a></code>) that caused the compound to fail to parse.
  377. </p>
  378. <p class="para _2">
  379. This error message is mainly generated by the compoundlabelling operator <code class="fsharp"><a
  380. href="primitives.html#members.:60::63::63::62:"><span class="co">&lt;??&gt;</span></a></code>.
  381. </p>
  382. </div>
  383. </div>
  384. <div class="interface-member _9" id="members.BacktrackPoint">
  385. <div class="interface-member-code">
  386. <a class="interface-member-backlink" href="#interface.BacktrackPoint:B:"></a>
  387. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">BacktrackPoint</span></span> <span class="ck">of</span> <a href="position.html"><span class="ci">Position</span></a> <span class="cp">*</span> <a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a>
  388. </pre>
  389. </div>
  390. <div class="interface-member-description">
  391. <p class="para _1">
  392. Parsers report this <code class="fsharp"><span class="ci">ErrorMessage</span></code> when they backtracked after an error occurred. The
  393. constructor argument is the error (<code class="fsharp"><a href="#members.Position"><span class="ci">Position</span></a></code> + <code
  394. class="fsharp"><a href="#members.ErrorMessageList"><span class="ci">ErrorMessageList</span></a></code>) that occurred before the
  395. backtracking.
  396. </p>
  397. <p class="para _2">
  398. This error message is mainly generated by the <code class="fsharp"><a href="primitives.html#members.attempt"><span
  399. class="ci">attempt</span></a></code>, <code class="fsharp"><a href="primitives.html#members.:62::62::63:"><span
  400. class="co">&gt;&gt;?</span></a></code> and <code class="fsharp"><a href="primitives.html#members.:.::62::62::63:"><span
  401. class="co">.&gt;&gt;?</span></a></code> primitives.
  402. </p>
  403. </div>
  404. </div>
  405. <div class="interface-member _0" id="members.OtherError">
  406. <div class="interface-member-code">
  407. <a class="interface-member-backlink" href="#interface.OtherError:B:"></a>
  408. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">OtherError</span></span> <span class="ck">of</span> <a href="http://msdn.microsoft.com/en-us/library/system.icomparable.aspx"><span class="ci">System</span><span class="cm">.</span><span class="ci">IComparable</span></a>
  409. </pre>
  410. </div>
  411. <div class="interface-member-description">
  412. <p class="para _1">
  413. Userdefined parsers can return this <code class="fsharp"><span class="ci">ErrorMessage</span></code> to report applicationspecific
  414. error data. The object argument contains the error data.
  415. </p>
  416. <p class="para _2">
  417. To display <code class="fsharp"><span class="ci">OtherError</span></code> values in error messages, you will have to define your own
  418. error printer, as <code class="fsharp"><a href="#members.ParserError"><span class="ci">ParserError</span></a><span class="cm">.</span><a
  419. href="#interface.ToString:47:WriteTo"><span class="ci">ToString</span><span class="co">/</span><span class="ci">WriteTo</span></a></code>
  420. ignores them.
  421. </p>
  422. </div>
  423. </div>
  424. </div>
  425. </div>
  426. </div>
  427. </div>
  428. <div class="interface-member _2" id="members.ErrorMessageList">
  429. <div class="interface-member-code">
  430. <a class="interface-member-backlink" href="#interface.ErrorMessageList:B:"></a>
  431. <pre class="code fsharp"><span class="ck">type</span> <span class="interface-member-marker"><span class="ci">ErrorMessageList</span></span></pre>
  432. </div>
  433. <div class="interface-member-description">
  434. <p class="para _1">
  435. This union type represents a list of error messages in which the order of the messages carries no meaning and any duplicates and empty
  436. messages are ignored. Essentially, an <code class="fsharp"><span class="ci">ErrorMessageList</span></code> is <em>constructed as a list, but
  437. interpreted as a set</em>.
  438. </p>
  439. <p class="para _2">
  440. All <code class="fsharp"><a href="#members.ErrorMessage"><span class="ci">ErrorMessage</span></a></code> values in an <code
  441. class="fsharp"><span class="ci">ErrorMessageList</span></code> are associated with the same input stream position. For example, the error
  442. messages stored in the <code class="fsharp"><a href="primitives.html#members.Reply"><span class="ci">Reply</span></a><span
  443. class="cp">&lt;</span><span class="ci">_</span><span class="cp">,</span><span class="ci">_</span><span class="cp">&gt;</span><span
  444. class="cp">.</span><a href="primitives.html#members.Error"><span class="ci">Error</span></a></code> field describe an error at the position
  445. of the <code class="fsharp"><a href="primitives.html#members.Reply"><span class="ci">Reply</span></a><span class="cp">&lt;</span><span
  446. class="ci">_</span><span class="cp">,</span><span class="ci">_</span><span class="cp">&gt;</span><span class="cp">.</span><a
  447. href="state.html"><span class="ci">State</span></a></code> value. The <code class="fsharp"><a href="#members.ParserError"><span
  448. class="ci">ParserError</span></a></code> type is a convenient container type for binding together an <code class="fsharp"><span
  449. class="ci">ErrorMessageList</span></code> with its associated position.
  450. </p>
  451. <p class="para _3">
  452. The easiest way to process an <code class="fsharp"><span class="ci">ErrorMessageList</span></code> as a set is to convert it into an actual
  453. set by using the <code class="fsharp"><a href="#members.ToSet"><span class="ci">ToSet</span></a></code> member. For example, the <code
  454. class="fsharp"><a href="#members.ParserError"><span class="ci">ParserError</span></a><span class="cm">.</span><a
  455. href="#members.WriteTo"><span class="ci">WriteTo</span></a></code> method uses this method to filter out duplicates before printing out the
  456. messages.
  457. </p>
  458. <p class="para _4">
  459. In order to enforce set semantics in comparison operations, the <code class="fsharp"><span class="ci">ErrorMessageList</span></code>
  460. overrides the <code class="fsharp"><span class="ci">Equals</span></code>, <code class="fsharp"><span class="ci">GetHashCode</span></code> and
  461. <code class="fsharp"><span class="ci">CompareTo</span></code> methods.
  462. </p>
  463. <div class="para _5">
  464. <div class="interface-members">
  465. <div class="interface-member _1" id="members.AddErrorMessage">
  466. <div class="interface-member-code">
  467. <a class="interface-member-backlink" href="#interface.AddErrorMessage:B:"></a>
  468. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">AddErrorMessage</span></span> <span class="ck">of</span> <a href="#members.ErrorMessage"><span class="ci">ErrorMessage</span></a> <span class="cp">*</span> <span class="ci">ErrorMessageList</span>
  469. </pre>
  470. </div>
  471. <div class="interface-member-description">
  472. <p class="para _1">
  473. Creates a new <code class="fsharp"><span class="ci">ErrorMessageList</span></code> with the given &#x201C;head&#x201D; and
  474. &#x201C;tail&#x201D;.
  475. </p>
  476. <div class="para _2">
  477. <p>For example,</p>
  478. <pre class="code fsharp"><span class="ci">AddErrorMessage</span><span class="cp">(</span><a href="#members.Expected"><span class="ci">Expected</span></a> <span class="cs"><span class="left-delimiter">"</span>a<span class="right-delimiter">"</span></span><span class="cp">,</span>
  479. <span class="ci">AddErrorMessage</span><span class="cp">(</span><a href="#members.Expected"><span class="ci">Expected</span></a> <span class="cs"><span class="left-delimiter">"</span>b<span class="right-delimiter">"</span></span><span class="cp">,</span> <a href="#members.NoErrorMessages"><span class="ci">NoErrorMessages</span></a><span class="cp">)</span><span class="cp">)</span>
  480. </pre>
  481. <p>creates an <code class="fsharp"><span class="ci">ErrorMessageList</span></code> with two error messages.</p>
  482. </div>
  483. </div>
  484. </div>
  485. <div class="interface-member _2" id="members.NoErrorMessages">
  486. <div class="interface-member-code">
  487. <a class="interface-member-backlink" href="#interface.NoErrorMessages:B:"></a>
  488. <pre class="code fsharp"><span class="cp">|</span> <span class="interface-member-marker"><span class="ci">NoErrorMessages</span></span>
  489. </pre>
  490. </div>
  491. <div class="interface-member-description">
  492. <p class="para _1">
  493. The empty <code class="fsharp"><span class="ci">ErrorMessageList</span></code>. This value is represented as <code class="fsharp"><span
  494. class="cnu">null</span></code>.
  495. </p>
  496. </div>
  497. </div>
  498. <div class="interface-member _3" id="members.ToSet">
  499. <div class="interface-member-code">
  500. <a class="interface-member-backlink" href="#interface.ToSet:B:"></a>
  501. <pre class="code fsharp"><span class="ck">member</span> <span class="interface-member-marker"><span class="ci">ToSet</span></span><span class="cp">:</span> <span class="ci">unit</span> <span class="cr">-&gt;</span> <span class="ci">Set</span><span class="cp">&lt;</span><a href="#members.ErrorMessage"><span class="ci">ErrorMessage</span></a><span class="cp">&gt;</span>
  502. </pre>
  503. </div>
  504. <div class="interface-member-description">
  505. <p class="para _1">
  506. Converts the <code class="fsharp"><span class="ci">ErrorMessageList</span></code> to a <code class="fsharp"><span
  507. class="ci">Set</span><span class="cp">&lt;</span><span class="ci">ErrorMessageList</span><span class="cp">&gt;</span></code>. Duplicate
  508. error messages and empty <code class="fsharp"><a href="#members.Expected"><span class="ci">Expected</span></a></code>, <code
  509. class="fsharp"><a href="#members.Unexpected"><span class="ci">Unexpected</span></a></code> and <code class="fsharp"><a
  510. href="#members.Message"><span class="ci">Message</span></a></code> messages are filtered out when the list is converted to a set.
  511. </p>
  512. </div>
  513. </div>
  514. <div class="interface-member _4" id="members.OfSeq">
  515. <div class="interface-member-code">
  516. <a class="interface-member-backlink" href="#interface.OfSeq:B:"></a>
  517. <pre class="code fsharp"><span class="ck">static</span> <span class="ck">member</span> <span class="interface-member-marker"><span class="ci">OfSeq</span></span><span class="cp">:</span> <span class="ci…