1 parser grammar LeafRefPathParser;
\r
4 package org.opendaylight.yangtools.yang.data.impl.leafref;
\r
8 tokenVocab = LeafRefPathLexer;
\r
11 path_arg : absolute_path | relative_path;
\r
13 absolute_path : (SLASH node_identifier (path_predicate)*)+;
\r
15 relative_path : (DOTS SLASH)* descendant_path;
\r
17 descendant_path : node_identifier ((path_predicate)* absolute_path)?;
\r
19 path_predicate : LEFT_SQUARE_BRACKET SEP? path_equality_expr SEP? RIGHT_SQUARE_BRACKET;
\r
21 path_equality_expr : node_identifier SEP? EQUAL SEP? path_key_expr;
\r
23 path_key_expr : current_function_invocation SEP? SLASH SEP? rel_path_keyexpr;
\r
25 rel_path_keyexpr : (DOTS SEP? SLASH SEP?)* (node_identifier SEP? SLASH SEP?)* node_identifier;
\r
27 node_identifier : (prefix COLON)? identifier;
\r
29 current_function_invocation : CURRENT_KEYWORD SEP? LEFT_PARENTHESIS SEP? RIGHT_PARENTHESIS;
\r
31 descendant_schema_nodeid : node_identifier
\r
32 absolute_schema_nodeid;
\r
34 absolute_schema_nodeid : (SLASH node_identifier)+;
\r
36 prefix : identifier;
\r
38 identifier: IDENTIFIER | CURRENT_KEYWORD;
\r