Rework list ending data paths

There are now four modes to NodeParser. This mode is specified by the
NodeParserMode enum via a template argument.

Modes:
SchemaNode: will parse schema nodes.

CompleteDataNode: works exactly as the dataNode_ parser before. It will
parse data nodes.

IncompleteDataNode: works the same as CompleteDataNode, but allows
parsing a list without keys.

CompletionsOnly: in this mode, the parser only creates completions, and
doesn't do any actual parsing. This mode is needed when parsing a path
ending with a list without keys, with a trailing slash.
Example: /module:list/
After the path fragment and the trailing slash are parsed, no more node
parsing happens (because there's no more input). However, I still need
to generate completions. That's when I need to use CompletionsOnly.

PathParser now also has modes, they are similar to the NodeParser modes.
They are used to state what kind of path is supposed to be parsed.

Change-Id: I65b6de45c452ece37002a5cfe4048b9042562d2a
6 files changed
tree: 8aa0295fcd3476bee7702aa12ee3dda27df911aa
  1. .clang-format
  2. .gitmodules
  3. .zuul.CzechLight-internal.yaml
  4. .zuul.public.yaml
  5. CMakeLists.txt
  6. Doxyfile.in
  7. LICENSE
  8. LICENSE.md
  9. README.md
  10. ci/
  11. cmake/
  12. docs/
  13. src/
  14. submodules/
  15. tests/
README.md

Console interface to NETCONF servers

This program provides an interactive console for working with YANG data. It can connect to NETCONF servers, and also talk to sysrepo locally.

Installation

For building, one needs:

Use an exact commit of any dependencies as specified in submodules/dependencies/*.

The build process uses CMake. A quick-and-dirty build with no fancy options can be as simple as mkdir build && cd build && cmake .. && make && make install.

Bug Reporting

Issue reporting and feature requests are welcome via Taiga.io.

Development

We are using Gerrit for patch submission, code review and Continuous Integration (CI). Development roadmap and planning happens over Taiga.io.

Credits

Copyright © CESNET, https://www.cesnet.cz/ . Portions copyright © Faculty of Information Technology, Czech Technical University in Prague, https://fit.cvut.cz/ . Most of the code was written by Václav Kubernát (CESNET, formerly FIT ČVUT) and Jan Kundrát (CESNET). The project is distributed under the terms of the Apache 2.0 license.