diff options
author | 2015-06-29 20:16:15 +0000 | |
---|---|---|
committer | 2015-06-29 20:16:15 +0000 | |
commit | 64106c4d3d4ddba8c7bc2af75376e6d3d3d75601 (patch) | |
tree | 8c64d6e8be006486d975a651505fbbde61365cd6 /regex_syntax/index.html | |
download | irsc-gh-pages.tar.gz irsc-gh-pages.tar.xz irsc-gh-pages.zip |
Update documentationgh-pages
Diffstat (limited to 'regex_syntax/index.html')
-rw-r--r-- | regex_syntax/index.html | 223 |
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'>−</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"ab|yz"</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'>'a'</span>, <span class='string'>'b'</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'>'y'</span>, <span class='string'>'z'</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"[z-a]"</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'>&</span><span class='ident'>ErrorKind</span>::<span class='ident'>InvalidClassRange</span> { + <span class='ident'>start</span>: <span class='string'>'z'</span>, + <span class='ident'>end</span>: <span class='string'>'a'</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"ab(cd"</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'>&</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>⇤</dt> + <dd>Move up in search results</dd> + <dt>⇥</dt> + <dd>Move down in search results</dd> + <dt>⏎</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 |