Skip to content

Commit

Permalink
fix links in book docs
Browse files Browse the repository at this point in the history
  • Loading branch information
nikomatsakis committed Nov 9, 2023
1 parent 2078e17 commit fab9e5f
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions book/src/formality_core/parse.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ When parsing an enum there will be multiple possibilities. We will attempt to pa
We support left-recursive grammars like this one from the `parse-torture-tests`:

```rust
{{#include ../../../tests/parser-torture-tests/src/path.rs:path}}
{{#include ../../../tests/parser-torture-tests/path.rs:path}}
```

We also support ambiguous grammars. For example, you can code up arithmetic expressions like this:


```rust
{{#include ../../../tests/parser-torture-tests/src/left_associative.rs:Expr}}
{{#include ../../../tests/parser-torture-tests/left_associative.rs:Expr}}
```

When specifying the `#[precedence]` of a variant, the default is left-associativity, which can be written more explicitly as `#[precedence(L, left)]`. If you prefer, you can specify right-associativity (`#[precedence(L, right)]`) or non-associativity `#[precedence(L, none)]`. This affects how things of the same level are parsed:
Expand Down Expand Up @@ -71,7 +71,7 @@ A grammar consists of a series of *symbols*. Each symbol matches some text in th
* `$[?field]` -- parse `[E1, E2, E3]`, where `field: Vec<E>`, but accept empty string as empty vector
* `${field}` -- parse `{E1, E2, E3}`, where `field: Vec<E>`
* `${?field}` -- parse `{E1, E2, E3}`, where `field: Vec<E>`, but accept empty string as empty vector
* `$:guard <nonterminal>` -- parses `<nonterminal>` but only if the keyword `guard` is present. For example, `$:where $,where_clauses` would parse `where WhereClause1, WhereClause2, WhereClause3`
* `$:guard <nonterminal>` -- parses `<nonterminal>` but only if the keyword `guard` is present. For example, `$:where $,where_clauses` would parse `where WhereClause1, WhereClause2, WhereClause3` but would also accept nothing (in which case, you would get an empty vector).

### Greediness

Expand Down

0 comments on commit fab9e5f

Please sign in to comment.