equal
deleted
inserted
replaced
|
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 '>' |