]>
Commit | Line | Data |
---|---|---|
1 | # Copyright 2006 Google, Inc. All Rights Reserved. | |
2 | # Licensed to PSF under a Contributor Agreement. | |
3 | ||
4 | # A grammar to describe tree matching patterns. | |
5 | # Not shown here: | |
6 | # - 'TOKEN' stands for any token (leaf node) | |
7 | # - 'any' stands for any node (leaf or interior) | |
8 | # With 'any' we can still specify the sub-structure. | |
9 | ||
10 | # The start symbol is 'Matcher'. | |
11 | ||
12 | Matcher: Alternatives ENDMARKER | |
13 | ||
14 | Alternatives: Alternative ('|' Alternative)* | |
15 | ||
16 | Alternative: (Unit | NegatedUnit)+ | |
17 | ||
18 | Unit: [NAME '='] ( STRING [Repeater] | |
19 | | NAME [Details] [Repeater] | |
20 | | '(' Alternatives ')' [Repeater] | |
21 | | '[' Alternatives ']' | |
22 | ) | |
23 | ||
24 | NegatedUnit: 'not' (STRING | NAME [Details] | '(' Alternatives ')') | |
25 | ||
26 | Repeater: '*' | '+' | '{' NUMBER [',' NUMBER] '}' | |
27 | ||
28 | Details: '<' Alternatives '>' |