aboutsummaryrefslogtreecommitdiff
path: root/regex_syntax/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'regex_syntax/index.html')
-rw-r--r--regex_syntax/index.html223
1 files changed, 223 insertions, 0 deletions
diff --git a/regex_syntax/index.html b/regex_syntax/index.html
new file mode 100644
index 0000000..2c4ad5c
--- /dev/null
+++ b/regex_syntax/index.html
@@ -0,0 +1,223 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="rustdoc">
+ <meta name="description" content="API documentation for the Rust `regex_syntax` crate.">
+ <meta name="keywords" content="rust, rustlang, rust-lang, regex_syntax">
+
+ <title>regex_syntax - Rust</title>
+
+ <link rel="stylesheet" type="text/css" href="../main.css">
+
+
+
+</head>
+<body class="rustdoc">
+ <!--[if lte IE 8]>
+ <div class="warning">
+ This old browser is unsupported and will most likely display funky
+ things.
+ </div>
+ <![endif]-->
+
+
+
+ <section class="sidebar">
+
+ <p class='location'></p><script>window.sidebarCurrent = {name: 'regex_syntax', ty: 'mod', relpath: '../'};</script>
+ </section>
+
+ <nav class="sub">
+ <form class="search-form js-only">
+ <div class="search-container">
+ <input class="search-input" name="search"
+ autocomplete="off"
+ placeholder="Click or press 'S' to search, '?' for more options..."
+ type="search">
+ </div>
+ </form>
+ </nav>
+
+ <section id='main' class="content mod">
+<h1 class='fqn'><span class='in-band'>Crate <a class='mod' href=''>regex_syntax</a></span><span class='out-of-band'><span id='render-detail'>
+ <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
+ [<span class='inner'>&#x2212;</span>]
+ </a>
+ </span><a id='src-0' class='srclink' href='../src/regex_syntax/lib.rs.html#11-1184' title='goto source code'>[src]</a></span></h1>
+<div class='docblock'><p>This crate provides a regular expression parser and an abstract syntax for
+regular expressions. The abstract syntax is defined by the <code>Expr</code> type. The
+concrete syntax is enumerated in the
+<a href="../regex/index.html#syntax"><code>regex</code></a>
+crate documentation.</p>
+
+<p>Note that since this crate is first and foremost an implementation detail for
+the <code>regex</code> crate, it may experience more frequent breaking changes. It is
+exposed as a separate crate so that others may use it to do analysis on regular
+expressions or even build their own matching engine.</p>
+
+<h1 id="example:-parsing-an-expression" class='section-header'><a
+ href="#example:-parsing-an-expression">Example: parsing an expression</a></h1>
+<p>Parsing a regular expression can be done with the <code>Expr::parse</code> function.</p>
+<pre class='rust rust-example-rendered'>
+<span class='kw'>use</span> <span class='ident'>regex_syntax</span>::<span class='ident'>Expr</span>;
+
+<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>Expr</span>::<span class='ident'>parse</span>(<span class='string'>r&quot;ab|yz&quot;</span>).<span class='ident'>unwrap</span>(), <span class='ident'>Expr</span>::<span class='ident'>Alternate</span>(<span class='macro'>vec</span><span class='macro'>!</span>[
+ <span class='ident'>Expr</span>::<span class='ident'>Literal</span> { <span class='ident'>chars</span>: <span class='macro'>vec</span><span class='macro'>!</span>[<span class='string'>&#39;a&#39;</span>, <span class='string'>&#39;b&#39;</span>], <span class='ident'>casei</span>: <span class='boolval'>false</span> },
+ <span class='ident'>Expr</span>::<span class='ident'>Literal</span> { <span class='ident'>chars</span>: <span class='macro'>vec</span><span class='macro'>!</span>[<span class='string'>&#39;y&#39;</span>, <span class='string'>&#39;z&#39;</span>], <span class='ident'>casei</span>: <span class='boolval'>false</span> },
+]));
+</pre>
+
+<h1 id="example:-inspecting-an-error" class='section-header'><a
+ href="#example:-inspecting-an-error">Example: inspecting an error</a></h1>
+<p>The parser in this crate provides very detailed error values. For example,
+if an invalid character class range is given:</p>
+<pre class='rust rust-example-rendered'>
+<span class='kw'>use</span> <span class='ident'>regex_syntax</span>::{<span class='ident'>Expr</span>, <span class='ident'>ErrorKind</span>};
+
+<span class='kw'>let</span> <span class='ident'>err</span> <span class='op'>=</span> <span class='ident'>Expr</span>::<span class='ident'>parse</span>(<span class='string'>r&quot;[z-a]&quot;</span>).<span class='ident'>unwrap_err</span>();
+<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>err</span>.<span class='ident'>position</span>(), <span class='number'>4</span>);
+<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>err</span>.<span class='ident'>kind</span>(), <span class='kw-2'>&amp;</span><span class='ident'>ErrorKind</span>::<span class='ident'>InvalidClassRange</span> {
+ <span class='ident'>start</span>: <span class='string'>&#39;z&#39;</span>,
+ <span class='ident'>end</span>: <span class='string'>&#39;a&#39;</span>,
+});
+</pre>
+
+<p>Or unbalanced parentheses:</p>
+<pre class='rust rust-example-rendered'>
+<span class='kw'>use</span> <span class='ident'>regex_syntax</span>::{<span class='ident'>Expr</span>, <span class='ident'>ErrorKind</span>};
+
+<span class='kw'>let</span> <span class='ident'>err</span> <span class='op'>=</span> <span class='ident'>Expr</span>::<span class='ident'>parse</span>(<span class='string'>r&quot;ab(cd&quot;</span>).<span class='ident'>unwrap_err</span>();
+<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>err</span>.<span class='ident'>position</span>(), <span class='number'>2</span>);
+<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>err</span>.<span class='ident'>kind</span>(), <span class='kw-2'>&amp;</span><span class='ident'>ErrorKind</span>::<span class='ident'>UnclosedParen</span>);
+</pre>
+</div><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
+<table>
+ <tr class=' module-item'>
+ <td><a class='struct' href='struct.CharClass.html'
+ title='regex_syntax::CharClass'>CharClass</a></td>
+ <td class='docblock short'>
+ <p>A character class.</p>
+
+ </td>
+ </tr>
+
+ <tr class=' module-item'>
+ <td><a class='struct' href='struct.ClassRange.html'
+ title='regex_syntax::ClassRange'>ClassRange</a></td>
+ <td class='docblock short'>
+ <p>A single inclusive range in a character class.</p>
+
+ </td>
+ </tr>
+
+ <tr class=' module-item'>
+ <td><a class='struct' href='struct.Error.html'
+ title='regex_syntax::Error'>Error</a></td>
+ <td class='docblock short'>
+ <p>A parse error.</p>
+
+ </td>
+ </tr>
+ </table><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
+<table>
+ <tr class=' module-item'>
+ <td><a class='enum' href='enum.ErrorKind.html'
+ title='regex_syntax::ErrorKind'>ErrorKind</a></td>
+ <td class='docblock short'>
+ <p>The specific type of parse error that can occur.</p>
+
+ </td>
+ </tr>
+
+ <tr class=' module-item'>
+ <td><a class='enum' href='enum.Expr.html'
+ title='regex_syntax::Expr'>Expr</a></td>
+ <td class='docblock short'>
+ <p>A regular expression abstract syntax tree.</p>
+
+ </td>
+ </tr>
+
+ <tr class=' module-item'>
+ <td><a class='enum' href='enum.Repeater.html'
+ title='regex_syntax::Repeater'>Repeater</a></td>
+ <td class='docblock short'>
+ <p>The type of a repeat operator expression.</p>
+
+ </td>
+ </tr>
+ </table><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
+<table>
+ <tr class=' module-item'>
+ <td><a class='fn' href='fn.quote.html'
+ title='regex_syntax::quote'>quote</a></td>
+ <td class='docblock short'>
+ <p>Escapes all regular expression meta characters in <code>text</code>.</p>
+
+ </td>
+ </tr>
+ </table><h2 id='types' class='section-header'><a href="#types">Type Definitions</a></h2>
+<table>
+ <tr class=' module-item'>
+ <td><a class='type' href='type.Result.html'
+ title='regex_syntax::Result'>Result</a></td>
+ <td class='docblock short'>
+ <p>An alias for computations that can return a <code>Error</code>.</p>
+
+ </td>
+ </tr>
+ </table></section>
+ <section id='search' class="content hidden"></section>
+
+ <section class="footer"></section>
+
+ <div id="help" class="hidden">
+ <div class="shortcuts">
+ <h1>Keyboard shortcuts</h1>
+ <dl>
+ <dt>?</dt>
+ <dd>Show this help dialog</dd>
+ <dt>S</dt>
+ <dd>Focus the search field</dd>
+ <dt>&larrb;</dt>
+ <dd>Move up in search results</dd>
+ <dt>&rarrb;</dt>
+ <dd>Move down in search results</dd>
+ <dt>&#9166;</dt>
+ <dd>Go to active search result</dd>
+ </dl>
+ </div>
+ <div class="infos">
+ <h1>Search tricks</h1>
+ <p>
+ Prefix searches with a type followed by a colon (e.g.
+ <code>fn:</code>) to restrict the search to a given type.
+ </p>
+ <p>
+ Accepted types are: <code>fn</code>, <code>mod</code>,
+ <code>struct</code>, <code>enum</code>,
+ <code>trait</code>, <code>typedef</code> (or
+ <code>tdef</code>).
+ </p>
+ <p>
+ Search functions by type signature (e.g.
+ <code>vec -> usize</code>)
+ </p>
+ </div>
+ </div>
+
+
+
+ <script>
+ window.rootPath = "../";
+ window.currentCrate = "regex_syntax";
+ window.playgroundUrl = "";
+ </script>
+ <script src="../jquery.js"></script>
+ <script src="../main.js"></script>
+
+ <script async src="../search-index.js"></script>
+</body>
+</html> \ No newline at end of file